Key Responsibilities
  • Develop and maintain embedded software for Linux-based hardware platforms.
  • Work with C/C++, Linux, and embedded systems.
  • Understand hardware-software interaction and basic device drivers.
  • Interface with peripherals and debug serial communication protocols: SPI, UART, I2C, GPIO.
  • Work with Makefiles, GCC, and cross-compilation toolchains.
  • Debug software issues using logs, debugging tools, and systematic troubleshooting.
  • Perform unit testing, integration testing, and issue verification.
  • Analyze problems and perform basic root-cause analysis.
  • Work with Git for source code management.
  • Follow coding standards, documentation, and development processes.
  • Collaborate with senior engineers and QA teams to complete assigned tasks.
Required Skills
  • Strong C programming (pointers, structures, memory, bit manipulation).
  • Operating system concepts (processes, threads, IPC, scheduling, interrupts).
  • Linux fundamentals: shell commands, shell scripting, file system.
  • Embedded systems basics.
  • Peripheral protocol basics: I2C, SPI, UART, GPIO.
  • Makefiles, GCC, and cross-compilation basics.
  • Git basics.
  • Good English communication skills, both written and verbal.
  • Ability to work effectively in a team.
Good to Have
  • Linux device driver development.
  • Boot flow of ARM architecture.
  • Projects on Raspberry Pi / BeagleBone / SoC platforms.
  • Computer architecture / ARM basics.
What We're Looking For
  • Strong technical fundamentals.
  • Willingness to learn and work on embedded Linux technologies.
  • Good analytical and problem-solving abilities.
  • Enthusiasm for developing real-world embedded products.

Required Skills

SW: Programming Language: C++ SW: Programming Language: C SW: Microprocessor and SOC