At a Glance
- Tasks: Develop and enhance safety-critical medical technology using modern C++ on embedded Linux.
- Company: Join AND Digital, a mission-driven tech company focused on closing the tech skills gap.
- Benefits: Immediate start, competitive pay, and a chance to work on impactful projects.
- Other info: Inclusive workplace with opportunities for growth and learning.
- Why this job: Make a difference in healthcare technology while advancing your coding skills.
- Qualifications: Strong C++17 experience and familiarity with embedded systems required.
Location: London, 2 days onsite in Kings Cross
Contract: Immediate start - 12 week contract
Who We Are
AND Digital are on a mission to close the world's tech skills gap. We help organisations navigate the future of technology by combining human expertise, emerging tech and AI to deliver better outcomes, faster. Since 2014, we've worked alongside clients to solve complex challenges, build high-performing teams and create lasting capability. Today, we're over 1,300 people across the UK, Europe and the USA, with ambitious plans for continued growth.
The Role
We're looking for four Embedded C++ Developers to join an in-house backend engineering team working on a highly regulated, safety-critical medical technology product. You'll own a self-contained area of the application, taking work from initial design through to merged, tested and documented code. Depending on your experience and the team's needs, this could include areas such as alarms, patient data persistence, device supervision and start-up, session management or service functionality. You'll work closely with the Software Architect and engineers responsible for surrounding components, while taking ownership of delivery within your area. This role is well suited to an experienced Embedded C++ Engineer who has worked on Linux-based safety-critical, mission-critical or highly regulated products and is comfortable working with formal quality processes, static analysis, code coverage and rigorous testing requirements.
What You'll Be Working On
- Your work could span a number of areas of the embedded application, including:
- Alarms
- Developing technical alarm conditions based on hardware and operating system telemetry.
- Working with signals including battery, temperature, clock, power faults and telemetry quality.
- Implementing patient sensor, signal quality and external monitoring alarms.
- Working with hardware alarm interfaces including mute functionality, alarm-level verification and alarm telemetry.
- Building robust fault handling and recovery mechanisms.
- Start-Up, Self-Test & Supervision
- Developing power-on checks covering logging, hardware compatibility, GPU checks and system self-tests.
- Implementing fail-safe states and fault management.
- Integrating watchdog and system supervision mechanisms.
- Supporting interrupted-session detection and recovery.
- Developing logging, audit logging and log rotation functionality.
- Working with OS telemetry including power button and storage health monitoring.
- Patient Data Persistence & Presentation
- Developing storage interfaces supporting atomic and checksummed writes.
- Managing reading, deletion and session listing across fixed storage partitions.
- Building patient-data packaging, queueing, flushing, retention and retrieval functionality.
- Supporting data back-fill and historic data presentation.
- Developing versioned interfaces between backend data and the GUI.
- Session Lifecycle, Power-Down & Service
- Managing patient sensor and session lifecycles.
- Supporting session metadata, recovery and graceful shutdown.
- Developing power-button handling and controlled power-down functionality.
- Supporting USB data export functionality.
- Working with service tools and device service handlers.
- Supporting software updates, confirmation and rollback.
- Implementing log extraction and audit logging.
Essential Skills & Experience
- Strong experience developing modern C++17 applications on embedded Linux.
- Strong understanding of RAII, fixed-width types, std::atomic, multithreading and lock-free or bounded queues.
- Experience developing software where deterministic behaviour and reliability are critical.
- Experience with allocation-free or low-allocation runtime environments, including pre-allocated memory and fixed-capacity containers.
- Experience with ports-and-adapters / hexagonal architecture, interfaces and dependency injection.
- Strong Linux systems integration experience, including services, watchdogs and system-level fault management.
- Experience with IPC and serialisation technologies such as FlatBuffers, Unix-domain sockets or named pipes.
- Experience with CMake, automated testing and CI/CD pipelines.
- Experience with cross-compilation, ideally for aarch64 platforms.
- Strong experience with unit testing, code coverage and quality gates.
- Comfortable working within formal engineering processes, including peer review, traceable changes and documented design decisions.
- Experience working on safety-critical, mission-critical or highly regulated software.
Desirable Skills & Experience
- Experience developing medical devices or other safety-critical systems.
- Experience within regulated environments or lifesciences would be an advantage.
- Being Highly proficient with AI.
- Knowledge of IEC 62304, ISO 13485 or similar regulated software development standards.
- Experience with medical alarm systems or other alarm and fault-management systems.
- Understanding of IEC 60601-1-8 or equivalent safety standards.
- Experience working with state-machine-driven supervisors and fault-management systems.
- Experience with NVIDIA Jetson, CUDA or GPU-accelerated processing.
- Experience with Yocto and embedded Linux board-support packages.
- Experience with systemd, sd_notify, D-Bus and journald.
- Experience with OpenSSL, TensorRT or similar external technologies.
- Experience using Docker for development environments.
- Experience with GoogleTest, behaviour-driven testing or Gherkin.
- Python experience for tooling and deployment scripts.
- Experience contributing to software FMEA activities and implementing risk controls.
Engineering Environment
You'll be working with technologies and practices including:
- C++17
- Embedded Linux
- NVIDIA Jetson / aarch64
- Yocto
- CMake & Conan
- Docker
- GoogleTest
- FlatBuffers
- Boost.Asio
- D-Bus
- systemd / sd_notify
- Unix-domain sockets
- NVMe storage
- SonarQube
- MISRA C++ 2023
- Doxygen
- CI/CD and target-hardware testing
Equal Opportunities
AND Digital is an equal opportunity employer. We welcome applications from people of all backgrounds and experiences and are committed to creating an inclusive workplace where everyone can thrive. We will make reasonable adjustments throughout the recruitment process where required.
AI Statement
We champion tech that helps people work smarter, but we want to get to know you! If you use AI to assist with your application or interview prep, please ensure all information submitted remains an accurate, truthful representation of your personal achievements and capabilities rather than generating false or misleading information. We may reject applications where AI is used inappropriately at any stage of the recruitment process.
Contract C ++ Developer in London employer: ANDigital
As a leading consultancy in Manchester, we pride ourselves on fostering a collaborative and inclusive work culture that empowers our employees to thrive. With a strong focus on professional development, we offer numerous growth opportunities and encourage continuous learning, ensuring that our team members are equipped to tackle complex challenges using cutting-edge technology. Join us to be part of a dynamic environment where your contributions are valued, and you can make a real impact on our clients' success.
StudySmarter Expert Advice🤫
We think this is how you could land Contract C ++ Developer in London
✨Get Involved in Open-Source Projects
Diving into open-source projects is a brilliant way to showcase your skills and connect with other developers in the community. Not only will you beef up your GitHub profile but you might also catch the eye of someone at ANDigital who values hands-on experience over just theory.
✨Attend Local Tech Meetups
Tech meetups are gold mines for networking and discovering job opportunities, especially in the fast-paced world of software engineering. Check out local listings for events in your area and don’t shy away from introducing yourself. This could lead directly to a temporary position at ANDigital!
✨Showcase Your Work Online
With temporary roles, it’s all about standing out in a short space of time. Create a portfolio website where you highlight your projects and skills. Talk about your code, and provide links to your GitHub repositories. This will not only demonstrate your abilities but will also make it easier for recruiters at ANDigital to see what you bring to the table.
✨Leverage Temporary Job Boards
Don’t forget to check specialised job boards for temporary software development roles. Websites like We Work Remotely or Remote OK often list short-term gigs that can be a perfect fit. Apply directly through our website as well, making sure your application is sharp—temporary roles can move fast!
We think you need these skills to ace Contract C ++ Developer in London
Some tips for your application 🫡
Show Off Your Tech Skills:Make sure your CV highlights your tech stack and any programming languages you’re proficient in. Include specifics about any frameworks or technologies you’ve worked with; they can make you stand out in the sea of applicants. It’s all about showing that you have the chops we need at ANDigital!
Portfolio 2.0:Since you’re applying for a temporary gig, it’s super important to showcase a portfolio that highlights your best projects. Include links to GitHub or any personal projects that demonstrate what you can do in a real-world environment. This gives us a taste of your style and your problem-solving approach!
Keep It Brief and Relevant:With a temporary position, we want to see your ability to hit the ground running. Be concise in your CV and cover letter; stick to experiences that directly relate to the role. Highlight any previous temporary roles or freelance gigs that show your adaptability and quick learning!
Tailor Your Cover Letter:Don’t just send a generic cover letter. Personalise it for Contract C ++ Developer at ANDigital! Mention why this temporary role excites you and how you see yourself contributing in the short run. Show us what you've got and why you're the one for this quick turn-around!
How to prepare for a job interview at ANDigital
✨Nail the Technical Skills
For a software engineering role, you'll likely face technical questions or coding tasks during your interview. Brush up on the relevant programming languages and frameworks that ANDigital uses, and don’t forget to practice some coding challenges on platforms like LeetCode or HackerRank. Showing your coding prowess can really make you stand out!
✨Prepare for System Design Questions
Even for a temporary role, having a grasp of system design principles can be crucial. Be ready to discuss how you would architect a software solution, including discussing trade-offs, scalability, and performance considerations. Having examples from previous projects can really show off your analytical thinking.
✨Demonstrate Your Adaptability
Since this is a temporary role, you'll want to emphasise your ability to hit the ground running. Highlight experiences where you quickly adapted to new technologies or teams. Let’s make it clear to the interviewers at ANDigital that you can learn on the job and deliver results in a short timeframe!
✨Show Off Your Portfolio
Make sure to have a portfolio or GitHub ready showcasing your projects. Having tangible evidence of what you've done—be it personal projects, contributions to open-source, or previous work—can convey how capable you are. Tailor this for what might interest ANDigital, so it's relevant and sparks conversation during your interview.