Embedded Software Engineer C++ (Embedded Linux)
We're looking for an experienced Embedded C++ Software Developer to join an engineering team developing high-performance software for embedded Linux systems.
This is a hands-on role where you'll be designing and developing robust, performance-critical software that interfaces closely with embedded hardware. You'll work on complex technical challenges involving multi-threading, concurrency, system performance and Linux internals, collaborating with software, electronics and hardware engineers throughout the development lifecycle.
If you enjoy low-level programming, optimising software performance and solving technically demanding problems, this could be the role for you.
Responsibilities
- Design, develop and maintain software using modern C++
- Develop applications for Embedded Linux platforms
- Design and implement robust multi-threaded software
- Debug and optimise performance-critical applications
- Work closely with hardware and electronics engineers to integrate software with embedded devices
- Investigate and resolve complex concurrency and memory issues
- Participate in architecture discussions, code reviews and technical planning
- Write clean, maintainable and well-tested code
Essential Skills & Experience
- Strong commercial experience developing software in C++
- Experience developing software for Embedded Linux
- Excellent understanding of multi-threading, concurrency and synchronisation
- Hands-on experience with:
- Mutexes
- Locks
- Condition Variables
- Deadlock prevention
- Race condition analysis
- Thread-safe programming
- Strong understanding of Linux internals, including:
- Processes and threads
- Scheduling
- Memory management
- Inter-process communication (IPC)
- Signals
- File systems
- Experience debugging Linux applications using tools such as GDB
- Comfortable working within a Linux command-line environment
- Experience using Git
Desirable Skills
- Embedded ARM platforms
- Cross-compilation toolchains
- Yocto or Buildroot
- Device communication (SPI, I2C, UART, CAN or USB)
- Network programming (TCP/IP, sockets)
- CMake
- Python or Bash scripting
- Docker and CI/CD pipelines
About You
You'll be someone who:
- Enjoys solving complex technical problems
- Has a genuine passion for embedded software development
- Thrives in a collaborative engineering environment
- Takes pride in writing efficient, reliable and maintainable code
- Is curious, proactive and keen to continually improve
What's on Offer
- Competitive salary
- Hybrid working
- Interesting embedded software projects
- Modern development tools and technologies
- Collaborative engineering culture
- Ongoing training and career development
- Opportunity to work on products from concept through to deployment
If you're an experienced Embedded C++ Developer with strong Linux expertise and a passion for building high-performance software, we'd love to hear from you.
Apply today or contact 4Square Recruitment for a confidential discussion.