Overview
Senior Software Engineer on the Infant Care team, working hands-on as an individual contributor to design, develop and deliver software for Infant Care product development while providing technical leadership to the team.
What you'll do
- Design, code, unit-test and deliver features as an individual contributor, and maintain and improve existing features using the latest software development technologies and infrastructure.
- Provide module-level technical leadership, acting as a role model and mentoring engineers on design best practices, coding, debugging and a customer-first mindset.
- Perform and lead system-level software integration, debugging, crash-dump analysis and defect triage across application, OS and firmware layers to drive root-cause resolution.
- Architect and develop mission-critical Modern C++ components and microservices applying SOLID principles and design patterns (e.g., Factory, Observer).
- Own the end-to-end implementation of assigned components or modules, contributing a significant share of production code and actively participating in peer design and code reviews.
- Identify the scope of work, provide initial estimates, and justify them with facts.
- Work in an agile/scrum development model, delivering integrated software products in collaboration with different teams.
- Collaborate with Principal Engineers, cross-functional architects, Product Mgmt, Clinical and product marketing teams to understand user needs and evolving requirements, and translate them into software requirements, architectural runway features and proof-of-concept solutions.
- Drive design reviews, seek and provide feedback on design and development, define interfaces between code modules, and apply existing technology to designs.
- Write code that meets coding and quality standards, and maintain code quality through best practices, unit testing and code quality automation.
- Collaborate with verification teams to ensure the right testing of developed features.
- Make informed technology choices after due diligence and impact assessment.
- Understand the whole product, its modules and their interrelationships while being an expert in the assigned component or module.
- Assess and optimize application performance and scalability through design and best coding practices.
What you'll need
- Bachelor's degree in a STEM major (Science, Technology, Engineering and Math).
- Minimum of 10 years of experience in object-oriented design and programming in a production software environment using Agile development methodologies.
- Hands-on experience in Linux-based products with Modern C++ (C++ 14/17), C and Embedded C/C++, including STL, POSIX threads and IPC.
- Experience with the Linux kernel and distributions (e.g., Yocto, Ubuntu) and real-time operating systems (e.g., FreeRTOS).
- Strong understanding of design patterns, algorithms and data structures.
- Strong debugging and critical thinking skills working with existing, complex code bases.
- Proficiency with debugging and quality tools such as GDB, Valgrind, kdump, Coverity and GTest, and build/version-control tools such as GCC/G++, CMake and Git.
- Scripting and automation experience using Python, Perl and Shell, including Linux build and deployment automation.
- Proven track record as a hands-on individual contributor delivering production-quality code, along with experience as a technical leader for end-to-end systems and experiences.
Nice to have
- Understanding of medical device/medical software development.
- Knowledge of microcontrollers and microprocessors (e.g., ARM), bare-metal firmware and hardware interfaces (SPI, I2C, UART).
- Exposure to healthcare and device communication protocols (e.g., HL7, REST / MQTT).
- Experience with AI-enabled, spec-driven development, using AI coding assistants (e.g., GitHub Copilot, Kiro) to turn structured requirements and design specifications into code, unit tests and documentation, with human review and traceability appropriate for regulated software.
- Self-starter, motivated and able to work with minimal supervision.
- Ability to work with global cross-functional teams, flexible to accommodate time zones as required.
- Proven ability to quickly ramp up on complex and unfamiliar code, and to pick up new languages/frameworks as needed.
- Proven knowledge of the software development lifecycle, with experience contributing to and leading projects across it: concept creation, new product development, delivery, maintenance and iteration of existing products.
- Proactive in identifying and removing project obstacles or barriers on behalf of the team.
Details
- Location: Bengaluru, India.
- Relocation assistance provided.
Read the full description and apply on the company’s own careers page.