Our control, connect and compute solutions enable the Internet of Things to operate safely, easily and more autonomously at the edge of the network core. While you may not see our products, you are interacting with them all day, every day. We make your experience smarter and better-connected. Join Team Lattice and help us continue to drive innovation that creates a smarter, better-connected world. Together, we enable what’s next.
Job Description
We are looking for an experienced embedded software engineer to design and develop reference applications for microcontrollers. You will work across the software stack, from drivers and RTOS integration to applications. You will work closely with hardware, and applications teams.
Experience Range: 7 to 10+ years of hands-on experience in developing, optimizing C/C++, Python applications for microcontrollers such as ARM or RISC-V.
Key Responsibilities
Bring up and debug software on new hardware, FPGA prototypes and silicon.
Develop build systems, automated tests and continuous integration flows.
Review code and designs, and mentor junior engineers.
Write technical documentation and support customers and field application engineers.
Design, implement and maintain embedded software in Python, C/C++ for microcontrollers such as Arm Cortex-M and Cortex-A or RISC-V processors.
Port and configure real-time operating systems such as Zephyr, Tock or FreeRTOS, including board support and device drivers.
Develop reference designs and sample applications that show product capabilities to customers.
Required Skills and Qualifications
Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science or a related field.
7–10 years of embedded software development experience.
Strong programming skills in Python, C/C++ for resource-constrained systems.
Solid understanding of RTOS concepts: scheduling, interrupts, synchronisation and memory management. Hands-on experience with Zephyr, Tock or a similar RTOS.
Good knowledge of RISC-V and/or ARM architecture: exception handling, MPU/MMU, caches and boot process.
Hands-on debugging with JTAG/SWD probes, GDB.
Familiarity with Git, CMake and CI tools.
Additional Information
This position requires a successful background and reference checks and satisfactory proof of your right to work in: India Lattice recognizes that employees are its greatest asset and the driving force behind success in a highly competitive, global industry. Lattice continually strives to provide a comprehensive compensation and benefits program to attract, retain, motivate, reward and celebrate the highest caliber employees in the industry.
Lattice is an international, service-driven developer of innovative low cost, low power programmable design solutions. Our global workforce, some 1,000 strong, shares a total commitment to customer success and an unbending will to win. For more information about how our FPGA, CPLD and programmable power management devices help our customers unlock their innovation, visit www.latticesemi.com. You can also follow us via Twitter, Facebook, or RSS. At Lattice, we value the diversity of individuals, ideas, perspectives, insights and values, and what they bring to the workplace. Applications are welcome from all qualified candidates.