Senior/Staff Software Engineer - C++
Senior/Staff Software Engineer - C++
Posted 4 days ago
SENIORITY
Lead
About the role
- Design, develop, and optimize high-performance software using modern C++ (C++17/20)
- Develop scalable, reliable, and maintainable software for Linux-based systems
- Design multi-threaded and asynchronous software architectures
- Analyze, profile, and optimize software performance across CPU, memory, storage, networking, and I/ORead, understand, maintain, and enhance existing Python code used for automation, testing, and data analysis
- Collaborate closely with firmware, hardware, and application engineering teams
- Participate in software architecture, technical design, and code reviews
- Debug complex system-level issues across software and hardware boundaries
- Take ownership of software components throughout the product development lifecycle
- Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related technical field 5+ years of professional software development experience (Senior) or 8+ years (Staff)
- Strong proficiency in modern C++ (C++17/20)
- Working knowledge of Python with the ability to read, understand, maintain, and modify existing Python code
- Strong experience developing software on LinuxStrong understanding of:o Operating systemso Memory managemento Multi-threading and concurrencyo Software architectureo Performance optimization
- Excellent debugging and problem-solving skills
- Experience using Git and modern software development workflows
- Experience designing and developing large-scale commercial software systemsExperience developing and shipping software for commercial products
- Experience with scientific instrumentation or data acquisition systemsExperience collaborating with firmware and hardware engineering teams
- Familiarity with low-latency, real-time, or data acquisition software systemsExperience developing desktop applications using
- Qt Widgetsand
- Qt Charts
- Familiarity with scientific computing, signal processing, physics, or machine learning
- Experience with Linux systems programming
- Experience with performance profiling tools such asperfor
- ValgrindExperience with CMake and GDBFamiliarity with Embedded Linux
- Experience with hardware communication interfaces such as Ethernet, USB, PCIe, or Serial
- Familiarity with CI/CD and automated testing
Before you apply
Applying takes about a minute. These four things decide how fast it moves after that.
Your profile is current
It's what we read first. Occupations, seniority and locations matter more than a long history.
Two examples you can talk through
Not a portfolio — just two pieces of work where you can explain the decisions and what you'd change.
A number in mind
What you're on now and what would make you move. We negotiate better when we know both.
Your notice period
Employers plan around it, and it's the question that stalls offers most often.
Once you apply, someone reads it and calls you before anything reaches the employer — usually within two working days.
