Embedded Systems Programmer

Agnikul Cosmos 

📍 Chennai, India 🇮🇳

full-time
mid-level
Posted —

Key Skills

CC++LinuxUARTEthernet

Industry

AerospaceDefense

Job Description

ABOUT

Agnikul Cosmos is a company incubated at IIT Madras and we build rockets that can take satellites up to 500 kg to Lower Earth Orbit (LEO). In May 2024, we successfully completed our maiden launch from our own launchpad (India's first private launchpad). The launch has proven all the new technologies developed by Agnikul and also earned recognition from Honourable Prime Minister of India.

If you enjoy writing software that directly interacts with hardware, debugging systems at the register level, analyzing packets on Ethernet networks, and building reliable embedded platforms from the ground up, we'd like to talk to you.

We are looking for engineers who are passionate about low-level programming and embedded systems. This role involves developing firmware and software for embedded platforms, integrating hardware and software components, and building robust communication systems used in mission-critical applications.

RESPONSIBILITIES

  • Develop embedded software for microprocessor-based systems using C, C++, and Python.
  • Design and implement software in both bare-metal and Linux-based embedded environments.
  • Develop applications and services using POSIX-compliant Linux APIs.
  • Implement and maintain communication interfaces using UART, RS-232, RS-422, SPI, and Ethernet.
  • Develop and troubleshoot Ethernet-based communication using UDP, TCP/IP, and TSN protocols.
  • Implement and support time synchronization mechanisms using PTP and NTP.
  • Develop, customize, and maintain Device Drivers and Board Support Packages (BSPs).
  • Work with hardware peripherals including DMA, Timers, and GPIOs.
  • Perform hardware-software integration activities to ensure reliable system functionality.
  • Execute and support integration testing of embedded hardware and software systems.
  • Collaborate with cross-functional teams to identify and resolve software and system-level issues.
  • Contribute to software validation activities and support verification of integrated systems.


  • Requirements
    • Strong experience in Embedded C and C++.
    • Solid understanding of microprocessors and bare-metal programming.
    • Hands-on experience with Linux and familiarity with POSIX APIs.
    • Experience working with: UART, RS-232, RS-422, SPI, Ethernet
    • Strong understanding of networking protocols: TCP/IP UDP TSN (Time Sensitive Networking)
    • Understanding of time synchronisation protocols: PTP, NTP
    • Experience developing or debugging: Device Drivers, BSPs (Board Support Packages)
    • Strong understanding of DMA, Timers, GPIOs
    • Experience with hardware-software integration and debugging.