Job Description:
Embedded Software Engineer 3 San Diego, CA
Experience:
A bachelors degree in Software Engineering, Computer Engineering, or a related field.
Minimum of 5 years of relevant experience, ideally within a startup or technology company.
Skills:
5+ years of professional experience in C++ software development for embedded or instrumentation systems.
Strong understanding of modern C++ (C++14/17/20).
Proven experience developing software for Linux environments, including containerization with Docker.
Hands-on experience with multiple communication protocols: TCP/IP, UDP, serial (RS-232/RS-485), USB, and SDK integration.
Experience designing network-based APIs or control interfaces.
Demonstrated ability to work with hardware interfaces and understand datasheets, communication specifications, and timing requirements.
Experience with requirements gathering, system design, and architectural decision-making.
Familiarity with unit testing frameworks, preferably Google Test or similar.
Experience working with version control systems (Git).
Strong problem-solving skills and ability to work independently and in a team.
Experience with CMake or similar build systems for C++ projects.
Familiarity with multi-threaded programming and concurrency in C++.
Knowledge of software best practices, including design patterns, SOLID principles, and performance optimization.