Espressif Systems: https://www.espressif.com/
Type: Full-time, direct hire
Location: Remote
Who we are:
Espressif Systems is a public, multinational, fabless semiconductor company established in 2008, with offices in China, the Czech Republic (Brno), India, Singapore, and Brazil.
We have a passionate team of engineers and scientists from all over the world who are committed to creating secure, reliable, and energy-efficient solutions.
Links to the team work
About the Role:
We are looking for developers with a solid understanding of RISC architectures and embedded software development. You should be familiar with how embedded applications are built, linked, loaded, debugged, and executed on modern microcontrollers.
The ideal candidate has an interest in low-level software development and enjoys working on compilers, debuggers, linkers, profilers, and related development tools. You will contribute to projects such as GCC, Binutils, GDB, and other toolchain components used by thousands of developers worldwide.
Essential Duties:
- Maintain and enhance backend code in GCC, Binutils, and GDB for Xtensa and other supported architectures.
- Submit developed patches to upstream open-source projects and participate in community reviews.
- Maintain production toolchains, including backporting fixes, managing releases, and compatibility testing.
- Investigate and resolve compiler, linker, debugger, and runtime issues reported by users.
- Develop and improve automated testing and validation frameworks for toolchain components.
- Analyze generated code for correctness, performance, code size, and power efficiency.
- Collaborate with SDK, framework, silicon, and applications teams to improve developer experience across the Espressif ecosystem.
- Provide technical support and guidance to toolchain users.
- Evaluate and adopt modern development tools and workflows to improve engineering productivity and software quality.
Required Qualifications:
- Strong understanding of how embedded software is executed, including startup initialization, memory layout, stack usage, and dynamic memory management.
- Understanding of the embedded software build process and the roles of the compiler, assembler, linker, loader, and debugger.
- Experience building software using Autotools and CMake.
- Experience with CI/CD systems and shell scripting.
- Experience working with C and C++ in Linux development environments.
- Ability to analyze and debug low-level software issues.
- Strong problem-solving skills and attention to detail.
- Good written and verbal communication skills in English.
Preferred Qualifications:
- Familiarity with at least one RISC architecture such as RISC-V, Xtensa, or ARM.
- Understanding of ELF, DWARF, ABI concepts, calling conventions, and linker scripts.
- Experience with compiler internals, debuggers, profilers, or development tools.
- Experience contributing to open-source projects and participating in upstream communities.
- Experience with Python scripting for automation, testing, or tooling development.
- Familiarity with static analysis, automated testing, and code quality tools.
- Understanding of embedded security concepts and memory safety.
- Experience with GitHub Actions, GitLab CI, Jenkins, or similar CI/CD platforms.
- Exposure to LLVM/Clang architecture and internals.
- Familiarity with AI-assisted development tools and workflows that improve productivity while maintaining high standards of code quality and correctness.
For any questions, please feel free to send me a message. I will make the time to reply.
Espressif prohibits discrimination based on race, color, religion, gender, national origin, age, disability, veteran status, marital status, pregnancy, gender expression or identity, sexual orientation, or any other legally protected status.