Embedded Software Engineer I
CesiumAstro
About the Role
CesiumAstro is seeking an Embedded Software Engineer I with a strong background in embedded Linux development and the Yocto build system. This role involves contributing to the full software development lifecycle, from concept through production, and working closely with hardware, systems, and FPGA engineers.
Key Responsibilities
- Develop and port embedded Linux applications, device drivers, and libraries.
- Configure, customize, and integrate the Linux kernel and embedded bootloaders (e.g., U-Boot).
- Maintain and evolve the Yocto-based Linux build system within a CI/CD pipeline.
- Package and deploy software images for diverse embedded hardware platforms.
- Create tailored Linux distributions for specific embedded applications.
- Collaborate across disciplines (firmware, hardware, systems) to ensure seamless system integration and performance.
- Participate in design reviews and contribute to customer-facing technical documentation and proposals.
Requirements & Tech Stack
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Computer Engineering, or related field.
- 0-2 years of professional experience in embedded software development.
- Proficiency in C or C++ for embedded systems.
- Experience developing and debugging software on embedded hardware (e.g., power systems, motors, sensors).
- Understanding of multi-threaded programming and resource-constrained environments.
- Familiarity with version control, issue tracking, and peer review workflows.
- Strong verbal and written communication skills.
- Preferred practical experience with Embedded Linux and the Yocto Project.
- Preferred experience with Xilinx SoCs or other microcontroller-based systems.
- Preferred proficiency with bootloaders, kernel development, and system bring-up.
- Preferred familiarity with CI/CD tools and practices in embedded environments.
- Ability to manage multiple priorities and work independently in a fast-paced environment.