Job opportunity

Senior Software Engineer (C/C++)

If you are tired of being a cog in the machine and want to take an active part in developing really exciting technology, this role could be for you.

Engineering at Undo

Undo engineers are trusted to do their best to do the right thing. We grow teams that have the freedom to make their own decisions so individual engineers are empowered to choose how best to achieve their committed goals.

In return, we ask that you do your best to understand your internal or external customers’ needs, deliver engineering changes within the timeframes agreed with your colleagues, take ownership of specific tasks and be flexible when company priorities change.

Expect to participate in open discussions, to challenge and be challenged with arguments based on reason, and to compromise occasionally in order to achieve team consensus. Trust, honesty and respect for others is essential. Enthusiasm and drive are valued.

Purpose of this role

Your role is to lead technical projects/teams and develop/enhance our software products.


  • Provide technical project leadership as “Technical Lead”
  • As a project technical lead, you will:
    • Set and maintain the project's technical vision
    • Maintain technical oversight during implementation
    • Track progress within the project
    • Understand and manage the project’s external commitments, risks and dependencies
    • Communicate with external stakeholders
  • As a software engineer you will:
    • Take ownership of software development tasks and complete to agreed schedule and quality (mainly C on Linux)
    • Take ownership of quality improvement activities as part of our defined processes
    • Participate in team development activities like task estimation, code reviews, improvement activities etc.
    • Occasionally provide customer training


  • B.Sc. in Computer Science, Engineering, Mathematics or similar would be an advantage


  • At least 7 years commercial experience.
  • Required: C
  • Required: Linux programming
  • Required: Team leadership desire/experience
  • Optional: Python
  • Optional: Debugger or compiler internals
  • Optional: JITs or other code generators.
  • Optional: Low-level user-level coding (i.e. good understanding of kernel ABI)
  • Optional: x86, ARM or other assembly
  • Optional: Kernel development


Permanent / Contractor


Cambridge, UK

Please apply to with your CV.

We are making Undo a place to work of which we can all be really proud.

About Undo