Software Engineer – Functional Programming

We believe work is not a place, but rather a thing you do. Our technology revolves around this core philosophy. We are relentlessly committed to helping people work and play from anywhere, on any device. Innovation, creativity and a passion for ever-improving performance drive our company and our people forward. We empower the original mobile device:  YOU!

What we’re looking for:

You’re an enthusiastic Software Engineer with the drive and passion to develop your functional programming experience in an Enterprise Software R&D setting. We’d like you to join a team of some of our most talented engineers working on Citrix Hypervisor.

What is Citrix Hypervisor? Simply put, it’s the server virtualization product built on top of the Xen hypervisor. With a mature codebase, it is widely used in data centres, from small companies right up to the largest cloud providers. Whilst originally a start-up spun out from the University of Cambridge, we are now based in Citrix’s UK R&D Centre with a team spread across the UK and beyond.

What you’ll be doing:

We’ll develop your skills and knowledge base as you join fellow engineers building and developing the control plane for the Citrix virtualisation stack.  This is the part of the code that manages storage, networking and virtual machines across clusters of physical hosts, and provides the public Citrix Hypervisor API.

As the control plane sits in the middle of the software stack, you’ll get to partner closely with other teams that manage Storage, Windows virtual machines, lower-level components such as the kernel, and the user interface. We’ll encourage you to progress and you’ll quickly have the opportunity to act as Feature Lead for the development of multi-person, cross-team features.

The control plane is largely written in a functional language, OCaml. We actively contribute to several open source projects (including Xen, Linux Kernel, and Xapi), and follow an agile development methodology.

You’ll be given lots of encouragement to participate in the evolution of an open source program that is backed by a major software company. Our developers interact with customers, partners, other Citrix product groups, and with the open source community.

Responsibilities:

  • Software development, including design, estimation, testing and coding
  • Leading the design and build of cross-team features, and participating in other cross-team initiatives
  • Day-to-day issue triage and code maintenance
  • Working as part of a self-organising team, working within an agile framework
  • Input into future product requirements for Citrix Hypervisor

We’d like you to have:

  • Knowledge of Unix/Linux internals
  • Experience with different types of programming language, including procedural languages (e.g., C, C++, C# or Java); scripting languages (e.g., Python); and functional languages (e.g., OCaml, ML, F#, Scala or Haskell)
  • Proven understanding of software engineering standard methodologies such as code maintainability, code review, automated testing, and continuous integration
  • A passion for excellence in terms of performance, reliability and usability, as well as functional correctness

Desirable:

  • Bachelor’s or higher degree, preferably in software engineering or computer science or equivalent experience
  • Proven experience of software development for Distributed systems
  • Server virtualisation in general, and Xen or Citrix Hypervisor in particular
  • Datacentre-sized and cloud-sized deployments
  • Scrum or other agile development practices

What you’re looking for:

Our technology is built on the idea that everyone should be able to work from anywhere, at any time, and on any device. It’s a simple philosophy that guides everything we do — including how we work.  If you’re an engineer, we’ll give you plenty of ways to test your skills on cutting edge technology. We want employees to do what they do best, every day.

Be bold. Take risks. Imagine a better way to work. If this sounds like you then we’d love to talk.

Functional Area:

Software Development

Share this job