Embedded Software Engineer
Role Overview:
We are seeking an Embedded Engineer with 4 to 6 years of experience in embedded systems development. You will provide technical leadership and architectural vision for embedded software development projects. You will be responsible for designing and developing firmware for modern 32-bit microcontrollers, managing complex USB proxy routing, cryptographic handshakes, and strict communication sandboxing.
While this is primarily a firmware role, any experience with hardware design or PCB layout will be considered a major advantage.
Roles & Responsibilities:
- Architecture & Design: Create software requirements specifications, software architecture documents, and detailed software design documents based on electrical schematics of the embedded hardware platform.
- Firmware Development: Design and debug firmware for embedded processors, microcontrollers, digital signal processors, and other electronic components or circuits using C++ programming languages.
- Hardware-Software Integration: Collaborate with hardware teams to integrate sensors, actuators, and communication modules. Involve in embedded design documentation, coding, unit test and integration testing.
- Low-Level Driver Implementation: Skilled in embedded driver development, including ADC, UART, SPI, I2C to bridge the main microcontroller to secondary secure co-processors, managing complex raw packet extraction and routing.
- Security & Cryptography: Experience in implementation of embedded Secure Boot, ECDSA/SHA-256 hashing, and hardware-level readout protection mechanisms.
- Testing & Validation: Perform unit testing, integration testing, and system-level testing. Use test and measurement apparatus, including oscilloscopes, logic analyzers, communication protocol analyzers, and signal generators, to ensure that firmware functions per design requirements.
- Lifecycle Management: Conduct FW impact analysis to ensure all of existing features are functional with new proposed changes.
Essential Technical Skills:
- Bachelor’s Degree in. Electrical, Electronics or Computer Engineering required.
- Strong proficiency in Embedded C programming and C++ programming for embedded systems.
- Experience with RTOS and bare-metal programming to develop high-performance systems.
- Knowledge of using interfacing communication protocols such as USB, UART, SPI, I2C, Timers, PWM, WDT.
- Familiarity with hardware debugging tools like JTAG, oscilloscopes, and logic analysers.
- Ability to read datasheet, schematics, design simple digital and analog circuits.
- Strong debugging and problem-solving skills with good understanding of system development methodologies, techniques and tools.
- Proficient in version control systems such as GIT.
Desirable Skills (Nice-to-Have):
- Hardware / PCB Layout: Familiarity with Altium Designer or KiCad, understanding of High-Density Interconnect (HDI) design, or the ability to review schematics and PCB layouts. Experience with Board bring-up activities is preferred.
- Rust programming language experience
- Secure Applet Development: Familiarity with Java Card, Java Applets, GlobalPlatform architecture, or APDU command structures.
- Modern Languages & Tooling: Basic knowledge of Python (for host-side test scripting) or experience developing memory-safe embedded firmware using Rust.
- Compliance: Awareness of strict security and functional safety standards (e.g., FIPS 140-3, Common Criteria).
Work Environment & Traits:
- Must be a team player able to work in a fast-paced environment with demonstrated ability to handle multiple competing tasks and demands.
- Self-motivated and able to perform with minimal supervision.
- Strong analytical and problem solving skills with ability to self-learn.
Location:Pune
Why Join Us:
● Health Benefits
● Fitness Benefits
● Hobby Allowance
● Educational Benefits
● Personal Accident Policy
● Term Insurance