Embedded Software/Firmware Engineer

Our client 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.

The client'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.
About You

Required Skills:
  • 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

Preferred Skills:
  • 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

October 1, 2024
Requirements: 5+ years of experience as a Project Manager, 7-10 years preferred. Bachelor’s degree in mechanical, electrical or civil engineering or Business Administration is preferred but not required. Strong project management skills, including demonstrated ability to manage budget, vendors and schedule. Basic working knowledge of AutoCad, Solidworks, or similar software and ability to decipher engineered drawings Excellent leadership and communication skills with the ability to effectively manage teams and collaborate at all levels. Proficiency in Microsoft Office applications and with Microsoft Projects or other scheduling software. Travel to client sites (potential of up to 20 weeks/year) One direct report employee Responsibilities: Project Management: Lead and manage the overall project, including overseeing schedule, budget and internal and external resources. Contract Management: Understand and meet customer expectations. Know the contract requirements and timely communicate and document any deviations from the contract. Timelines and Budgets: Develop and maintain project schedules and budgets, ensuring milestones are met and expenditures remain within approved limits. Coordinate with Other Departments: Work with Engineering management to schedule resources and meet deadlines. Stay ahead of internal and external construction crews to facilitate efficient installation of equipment. Work closely with accounting to maintain budget. Quality Assurance: Implement quality control measures to ensure all installations meet industry standards and project requirements. Communication: Serve as the primary point of contact for internal and external stakeholders. Address issues and concerns in a timely manner. Risk Management: Identify potential risks and challenges to project success and develop strategies to mitigate them. Documentation: Maintain thorough and accurate records of project activities, including progress reports, change orders and as-built drawings. Team leadership: Motivate and manage the rest of the team, providing guidance and support to ensure the work is completed safely, efficiently and according to schedule. This position reports to the Director of Operations.
October 1, 2024
Basic Qualifications (Required Skills & Experience) Bachelor's degree in Finance, Business, or Accounting or APICS or ISM certification is required or equivalent combination of experience and education Certification for purchasing or supply chain professionals required 8 - 12 years of relevant experience Proven experience in various processes as it relates to assigned commodity, i.e. CNC, injection molding, etc. Has technical knowledge regarding manufacturing processes of an assigned commodity and demonstrates experience with purchasing practices and processes in manufacturing and engineering environments Possesses understanding of commercial and FAR/DFAR Procurement rules, regulations and laws Ability to negotiate terms and pricing for materials and services is critical Proven understanding and intermediate usage of computerized MRP / ERP systems Demonstrates effective problem-solving, mathematical, time management, interpersonal and communication skills Proficient in MS Office Suite (Word, Access, PowerPoint, Excel) Preferred Qualifications (Desired Skills & Experience) Oracle experience strongly preferred APICS or ISM certification preferred Demonstrates ability to read and interpret technical drawings / specifications. Has effective problem-solving, mathematical, time management, interpersonal and communication skills; Demonstrates proficiency using MS Office Suite (Word, Access, PowerPoint, Excel) Having wide-ranging experience, uses professional concepts and company objectives to resolve complex issues in creative and effective ways Highly organized and strong coordination skills to meet deadlines Able to excel in a fast-paced, deadline-driven environment, where small teams share a broad variety of duties Displays strong initiative and drive to accomplish goals and meet company objectives Takes ownership and responsibility for current and past work products Is committed to learning from mistakes and driven to improve and enhance performance of oneself, others, and the company Physical Demands Ability to work in an office environment (Constant) Regularly required to, stand, sit; talk, hear, and use hands and fingers to operate a computer and telephone keyboard
Share by: