About the Role
Role: Embedded/Application Software Engineer
The Embedded Application Software Engineer will design, develop, and maintain software for embedded or application-level systems using Go, Rust, or C++. This role involves collaborating with cross-functional teams to define system requirements and implementing efficient software solutions for resource-constrained environments.
Must-Haves
- Primary programming language: Go, Rust, or C++.
- Embedded Linux experience: Demonstrated background in developing for embedded Linux environments.
- Language flexibility note: Candidates with strong C experience should also demonstrate proficiency in C++.
Role Responsibilities
- Design, develop, and maintain embedded or application-level software in Go, Rust, or C++.
- Collaborate with cross-functional teams to define system requirements and architecture.
- Implement robust, scalable, and efficient software solutions for resource-constrained embedded platforms.
- Participate in code reviews, testing, and debugging to ensure high-quality deliverables.
- Contribute to documentation, CI/CD pipelines, and deployment workflows.
- Stay current with industry trends and emerging technologies relevant to embedded systems development.
Qualifications
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field (or equivalent experience).
- Proven experience (2+ years) developing software for embedded or resource-constrained systems.
- Strong proficiency in at least one of the primary languages: Go, Rust, or C++.
- Hands-on experience with embedded Linux development, including toolchains, cross-compilation, and system bring-up.
- Familiarity with version control systems (e.g., Git) and collaborative development practices.
- Ability to write clean, maintainable, and well-documented code.
- Strong problem-solving skills and ability to work independently or in a team environment.
Requirements
Programming Languages
Strong proficiency in Go, Rust, or C++ is required.
Embedded Linux Experience
Demonstrated background in developing for embedded Linux environments.
Version Control Systems
Familiarity with systems like Git is necessary.
Problem-Solving Skills
Strong problem-solving skills are essential for this role.
Nice to Have
C Language Proficiency
Candidates with strong C experience are preferred.
CI/CD Knowledge
Experience with CI/CD pipelines is a plus.