Software Engineer

GO FOTON CORPORATIONSomerset, NJ
Onsite

About The Position

A highly skilled Embedded Software Engineer to develop and maintain software for embedded systems. The role involves working across Linux-based applications, hardware interfacing, firmware collaboration, and PC-side tools to support device configuration, monitoring, diagnostics and basic management of them.

Requirements

  • Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, or Computer Science
  • 3+ years of experience in embedded systems development
  • Strong programming skills in C/C++
  • Experience with Embedded Linux systems and tools
  • Knowledge of communication protocols (UART, SPI, I2C, CAN, Ethernet)
  • Experience with version control systems (Git)
  • Strong problem-solving and debugging abilities
  • Strong focus on reliability, safety, and manufacturability in product design.
  • Strong verbal and written communication skills
  • Ability to collaborate across hardware, firmware, and software teams
  • Capable of documenting designs and presenting technical information

Nice To Haves

  • Experience with Yocto or Buildroot
  • Familiarity with Linux kernel and driver development
  • Experience with GUI frameworks (Qt, .NET, or Python-based GUIs)
  • Experience with web-based technology (webserver, Database, Web GUI).
  • Experience with debugging tools (oscilloscope, logic analyzer)
  • Understanding of networking protocols (TCP/IP, sockets, SNMP)
  • Familiarity with fiber optics network
  • Knowledge of firmware and RTOS concepts

Responsibilities

  • Develop and maintain industrial-grade embedded Linux applications (C/C++, Python)
  • Customize Linux distributions (Yocto)
  • Develop and debug device drivers and kernel modules
  • Interface with hardware peripherals (UART, SPI, I2C, USB, Ethernet)
  • Collaborate with firmware engineers and understand MCU interactions
  • Develop interfaces to external applications through ex. SNMP etc.
  • Develop PC applications/tools for configuration, visualization, and firmware updates
  • Support full product lifecycle from concept to production
  • Develop desktop tools for device configuration, firmware updates, and diagnostics using technologies such as: C++ / Qt, Python (PyQt, Tkinter)
  • These tools interact with embedded devices via USB, serial, or network interfaces.
  • Develop basic desktop applications and/or API for managing the equipment.
  • Work closely with hardware and firmware teams to understand schematics and data sheets, validate system behavior and signal integrity, debug issues across hardware/software boundaries, interface with microcontrollers and SoCs, perform system-level debugging using tools like GDB, JTAG, logic analyzers.
  • Optimize performance for CPU, memory, and I/O.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service