Get Started

Senior Software Engineer for Embedded Systems

We are looking for a self-motivated and talented embedded engineer to join our core embedded software team.

Working at Gram Power will give you an opportunity to work for a young, rapidly growing company, with a diverse workplace building a wide technology stack. We value innovation and provide autonomy to experiment at work.

Job Location: Jaipur

Experience desired: 4+ years

Education background: B.Tech (Electronics and Communication Engineering)

Job Responsibilities:

As an embedded engineer, you will be writing cutting edge embedded firmware for Gram Power's products that are digitizing India's electricity grid and making energy more accessible and intelligent. At Gram Power, we have our own embedded operating system built in C++ and we work with a range of microcontroller devices. You will be building products on these platforms:

Design & Development
  • Design and develop firmware for Gram Power's embedded products
  • Ensure that the embedded software stacks are designed and implemented to be reusable across various projects at Gram Power
  • Collaborate with the Embedded Hardware Engineering team to develop highly optimized software
  • Ensure that all firmware is heavily version controlled and documented
Testing and Documentation
  • Implement unit tests and integration tests for all firmware developed
  • Document all firmware which meets Gram Power's documentation standard
  • Work on automated testing and production tools to bring the designs to production
Qualification and Experience
  • Familiarity with various architectures of Microcontrollers (especially MSP430 and NXP)
  • Expertise in C, C++
  • Familiar with at least one high level language, specially for scripting (preferably Python)
  • Strong experience of working in the Linux/Unix environment
  • Digital Electronics fundamentals
  • Software version controlling (git)
  • Comfort in using debugging tools such as GDB & JTAG
  • Familiarity with various communication protocols (SPI, I2C, UART, CAN etc)
  • General familiarity with data structures and algorithms.
  • Mathematical modeling of software programs (using Finite State Machines)
  • Good analytical skills
  • Team Spirit: Ability to work as a team player and coordinate with other departments