Job Title: C++ Embedded Software Engineer
Experience: 5+ Years (flexible based on expertise)
Employment Type: Full-Time, Permanent
Location: Hyderabad
Job Summary
We are seeking a highly skilled C++ Embedded Software Engineer to conceptualize, design, develop, and maintain high-performance applications.
The ideal candidate will have hands-on experience with C++ development, Linux environments, debugging on target hardware, and multi-threaded applications, along with a strong background in software engineering best practices.
Key Responsibilities
- Design, code, debug, and test C++ embedded software applications.
- Provide creative and practical solutions to complex technical problems using modern programming technologies.
- Analyse and contribute to system and subsystem requirements, specifications, and design definitions.
- Deliver high- and low-level software design documents, storyboards, and interface specifications.
- Implement Object-Oriented Design principles (UML, Design Patterns) in development.
- Build reusable libraries and ensure thorough documentation.
- Support the full SDLC from conception to product delivery, including maintenance and defect resolution.
- Collaborate with cross-functional teams, including QA, product managers, and customer support.
- Apply software engineering best practices: Automated Testing, CI/CD, TDD, SOLID, and Clean Code principles.
- Participate in Agile/Scrum or Kanban ceremonies and contribute to continuous improvement.
- Provide on-call/out-of-hours support when required.
Required Skills & Experience
- Proven experience in C++ development (embedded systems preferred).
- Strong knowledge of multi-threaded applications, client-side development, REST, JSON, and Web Services.
- Proficiency in debugging applications on target hardware and crash reporting solutions.
- Solid experience in Linux development with understanding of Linux UI/UX concepts and Ubuntu platform nuances.
- Familiarity with CLion or Eclipse IDEs, RPM packaging/installers.
- Experience in troubleshooting, debugging, and optimizing applications.
- Hands-on with Git, Jenkins, and Agile methodologies.
- Knowledge of test automation frameworks (Google Test, VSTest).
- Strong problem-solving and communication skills.
Desirable Skills
- Experience with other high-level languages: C#, Java, Python, JavaScript, XML.
- Familiarity with BitBucket, Conan, DOORS, Test Rail, JIRA.
- Hands-on experience with Valgrind, memory management, disk I/O optimization.
- Exposure to cryptography, NFC interfacing, and low-level smart card communication.
- Experience building simulators or test harnesses.
Education & Qualifications
- Bachelor’s degree in Computer Science, Electrical Engineering, or related field (or equivalent professional experience).
- Master’s degree in a related discipline – desirable.
- Certifications in relevant programming languages, frameworks, or Agile (Scrum Master) – a plus.