Senior Software Engineer C++ / Python (Embedded Systems & Cross-Platform Development)
Location | Work Mode | Experience Location: Hyderabad or Bangalore, India
- Work Mode: Onsite
- Experience: 5+ Years
Role Overview We are looking for an experienced Software Engineer with strong expertise in C++ and Python development for software applications used in embedded and electronics-based systems. The role involves designing, developing, testing, and maintaining high-quality software across multiple operating systems while collaborating with multidisciplinary engineering teams.
The ideal candidate should have a strong foundation in object-oriented programming, algorithms, data structures, software verification, and version control, with exposure to embedded systems and communication protocols.
Key Responsibilities - Design, develop, and maintain software applications using C++ and Python
- Develop object-oriented software with emphasis on performance, scalability, and maintainability
- Design efficient algorithms and optimize data structures for software performance
- Develop and support applications across Windows, Linux/Unix, and other supported platforms
- Implement and maintain software using established coding standards and documentation practices
- Participate in software verification, validation, debugging, and regression testing activities
- Work with software version control systems including Git, Perforce, or Mercurial
- Develop software interfaces for embedded hardware and communication protocols
- Collaborate with hardware, embedded, and electronics engineering teams during development
- Support GUI application development where required using modern GUI frameworks
- Investigate software defects and provide timely resolution
- Contribute to continuous improvement of software development processes and engineering best practices
Required Qualifications - Bachelor's Degree in Computer Science, Software Engineering, Electronics, or equivalent
- Minimum 5 years of professional software development experience
- Strong programming experience in C++ and Python
- Solid understanding of Object-Oriented Programming (OOP)
- Experience developing software on Windows and Unix/Linux environments
- Experience with software verification, regression testing, and debugging
- Good understanding of software development lifecycle and documentation practices
Technical Skills Programming Languages
- C++
- Python
- Object-Oriented Programming (OOP)
Algorithms & Software Engineering
- Algorithms
- Data Structures
- Software Design
- Performance Optimization
- Code Reviews
- Software Documentation
Operating Systems
- Linux
- Unix
- Windows
- Multi-platform Software Development
- macOS (preferred)
Version Control
Software Quality
- Software Verification
- Regression Testing
- Debugging
- Unit Testing
Communication Protocols
- SERDES (High-Speed Serial Communication)
- SPI
- I2C
GUI Development
Embedded Systems
- Embedded Software Development
- Low-Level Programming
- Assembly Language
- Microprocessor Programming
- Microcontroller Programming
Good to Have - Experience with SERDES (High-Speed Serial Interfaces)
- Experience developing GUI applications using Qt or GTK
- Assembly language programming
- Experience with microprocessors and microcontrollers
- Cross-platform development including macOS
- Knowledge of electronics and digital hardware
- Formal education or practical experience in embedded electronics
- Exposure to hardware/software integration and device communication
- Experience working in semiconductor, embedded systems, or electronics product development
- Familiarity with Agile software development methodologies
#LI-SD1