Senior Embedded Software Engineer
What We Do
Gecko Robotics is helping the world’s most important organizations ensure the availability, reliability, and sustainability of critical infrastructure. Gecko's complete and connected solutions combine wall-climbing robots, industry-leading sensors, and an AI-powered data platform to provide customers with a unique window into the current and future health of their physical assets. This enables real-time decision making to increase the efficiency and safety of operations, promote mission readiness, and protect the environment and civilization from the effects of infrastructure failure.
Role at a Glance
Gecko is seeking an experienced Embedded Software/Firmware Engineer with several years of experience building mission critical solutions deployed to real-world environments. In this role you will help guide the software architecture of the embedded systems platform and work closely with electrical engineers to integrate platform components into multiple robots that can inspect a variety of physical assets. You will design, implement, test, and deploy software and firmware for real-time distributed systems. We are also looking to leverage your experience in establishing best practices, design patterns, quality standards, and mentorship as we continue to grow and improve how we design and build robots.
Gecko’s engineers work in a hands-on, fast-paced environment. We’re seeking highly self-motivated individuals who thrive in a small company environment and are passionate about developing great products, solving challenging problems, and seeing the impact of their work.
What You Will Do
- Work with hardware design engineers to implement and test microcontroller firmware for a variety of applications including such as system control and monitoring, peripheral I/O, device drivers, power management, and motion control.
- Take ownership of components and systems and drive them through the full development cycle (design / implementation / integration / maintenance).
- Develop embedded communication protocols to enable real-time data flow throughout the system.
- Develop embedded software and firmware distribution mechanisms to enable rapid scaling of the robot fleet.
- Enable real-time system telemetry from trace data capture through analysis.
- Support build and test infrastructure to validate designs.
- Improve the team’s automated test and simulation capabilities.
- Develop embedded Linux kernel drivers for integration with custom-designed hardware.
- Develop embedded Linux software services for robotics applications.
- Maintain and develop the Linux distribution and embedded software runtime environment.
- Implement a multi-tier compute architecture between microcontrollers and embedded computers.
- Guide the software architecture to grow in a way that is performant, scalable, and maintainable.
- Continue to iterate on and improve team standards for code quality and best practices.
- Collaborate with team members to brainstorm ideas and mentor junior engineers.
- Work cross-functionally with hardware, integration, software, and mechanical engineers hands-on in the lab to test and troubleshoot robots.
- BS in Computer Engineering, Electrical Engineering, Computer Science, or related technical field
- 7+ years of experience in deployment, design, analysis, and debugging of firmware for complex or distributed electronic systems and electromechanical systems
- 3+ years developing and deploying Linux-based embedded software systems
- Proficient in embedded C
- Fluent in software fundamentals including software design and maintainability
- Experience with embedded build toolchains and debuggers
- Ability to read and interpret PCBA schematics to develop and troubleshoot firmware
- Ability to perform ad-hoc data analysis using tools such as Jupyter and Python
- Demonstrated ability to document designs using UML statecharts, sequence diagrams, etc. and ability to drive standards for documentation
- Demonstrated ability to apply design methodologies to enable robust and reliable systems
- Attention to detail shown through continuous improvements and reinforcing best practices within the team, and throughout the organization
- Ability to work well and integrate with electrical engineers
- 10+ years of Embedded Software experience
- 7+ years developing scripts for build support, automation, and software testing in a common language such as Python
- 7+ years deploying inter-process communication (IPC) middleware for embedded software services
- 5+ years designing and instrumenting concurrent embedded systems using stateful components
- Track record of working closely with electrical engineers to troubleshoot system issues by analyzing schematics and testing boards using standard lab equipment
- Experience using software infrastructure tools such as Docker, Git, Make, CMake, and Ninja
- Prior experience deploying Yocto-based systems
- Prior experience deploying FreeRTOS or Zephyr to implement a concurrent real-time system
- Familiarity with C++ or Rust
- Familiarity with STM32 microcontrollers
- Familiarity with ROS2
- Familiarity with the NVIDIA Jetson and Tegra platforms and SDKs
- Familiarity with Jira and Confluence or other project planning and documentation tools
Who We Are
At Gecko, our people are our greatest investment. In addition to competitive compensation packages, we offer company equity, 401(k) matching, gender-neutral parental leave, full medical, dental, and vision insurance, mental health and wellness support, ongoing professional development, family planning assistance, and flexible paid time off.
We believe that we do our best work when we’re together in person, and we’re committed to creating a culture of collaboration, innovation, and partnership. We ask our employees to be in the office 3 to 5 days per week, depending on the location and role. Our in-office benefits vary by location, but include catered lunch or lunch stipends, fully stocked kitchens, frequent employee events, and more.
Gecko is committed to creating a culture of inclusion and belonging, and we are proud to be an equal opportunity employer. We believe it is our collective responsibility to uphold these values and encourage candidates from all backgrounds to join us in our mission to protect today’s infrastructure and give form to tomorrow’s. All qualified applicants will be treated with respect and receive equal consideration for employment without regard to race, color, creed, religion, sex, gender identity, sexual orientation, national origin, disability, uniform service, veteran status, age, or any other protected characteristic per federal, state, or local law. If you are passionate about what you do and want to use your talents to support our critical mission, we’d love to hear from you.