Enable job alerts via email!

Senior / Principal Engineer, C++

Ecm Selection

Cambridge

Hybrid

GBP 50,000 - 75,000

Full time

30+ days ago

Job summary

Join a leading technology firm specializing in high-performance algorithmic software development in Cambridge. As a C++ Software Engineer, you will leverage your expertise to create state-of-the-art software while collaborating with a talented international team. This role offers hybrid working options and a chance to make a positive social impact.

Qualifications

  • Extensive familiarity with C++ and data structures.
  • Experience in concurrency and multithreading.
  • Strong critical thinking and collaborative skills.

Responsibilities

  • Create high-performance algorithmic software focusing on speed.
  • Collaborate with hardware engineers and ensure code quality.
  • Design elegant software with a strong focus on maintainability.

Skills

C++
Data Structures
Algorithms
Concurrency
Collaborative Skills
Critical Thinking
Software Design

Education

Technical Degree

Tools

Git
Linux
Python
Agile Techniques
CI/CD

Job description

Contribute to the state of the art in high performance, low latency algorithmic software where nanoseconds matter. Exercise your creativity and computer science knowledge in creating software which pushes the speed limit. Collaborate with hardware engineers and sculpt quality C++ code with a full test suite.

You’d be joining a specialised international technology firm in their Cambridge office, with hybrid working available. They are experts in their field and aim to have a positive social impact, contributing to good causes.

Your C++ skills and comprehensive knowledge of data structures, algorithms and concurrency will serve you well here. You may be someone who particularly enjoys unorthodox and novel optimisations which others wouldn’t have thought of. You’ll likely have a strong technical degree and you will have full existing UK work permission without sponsorship.

Overall your expertise will include:

  • A senior engineer’s familiarity, independence, critical thinking, collaborative skills and technical initiative
  • Software design skills for elegant, high performance, easy to maintain code
  • Extensive knowledge of data structures, algorithms, complexity and concurrency
  • Strong C++ language knowledge and coding skills

Relevant technical knowledge:

  • Concurrency (multithreading, synchronisation and alternatives, parallel hardware)
  • CPU architecture (CPI, dynamic execution, caching levels, cache misses, pipeline stalls)
  • Data structures (linear, tree, hash and graph), algorithm selection and complexity (big O)
  • Networking (standard packet protocols, performance in particular contexts)
  • Linux development (user and/or kernel space) and scripting languages (bash, Python)
  • Git, Agile techniques, CI/CD plus TDD or otherwise comprehensively tested code

Please note: even if you don't have exactly the background indicated, do contact us now if this type of job is of interest - we may well have similar opportunities that you would be suited to. And of course, we always get your permission before submitting your CV to a company.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.