Firmware Engineer
Description

Position Title: Firmware Engineer

Salary Classification: Exempt

Reports to: Engineering Manager

Supervises: N/A

Summary:

The Firmware Engineer will develop and support our industry-leading traffic products. The successful candidate will help create products that allow the visually impaired to safely experience the world on their own terms.

JOB DUTIES: Include but are not limited to the following:

  • Maintain and enhance embedded software for existing product lines.
  • Participate in the embedded software system design cycle from requirements through launch and beyond.
  • Design, develop, code, test, and debug embedded software.
  • Integrate, verify, and validate new product designs and design changes.
  • Perform design and code reviews.
  • Interface with a cross-functional engineering team.
  • Support the Tech Support team with intimate product knowledge.
  • Contribute to a fun and innovative work environment.
Requirements

MINIMUM EXPERIENCE:

  • Bachelor’s Degree in Computer Science, Electrical, Electronic, or Computer Engineering
  • 5+ years of experience

TECHNICAL SKILLS:

  • Strong understanding of embedded software development best practices.
  • Familiarity with various ARM architectures (e.g. Cortex M4, M7, etc.).
  • Familiarity with security basics (e.g. AES, TRNG, security certificates, etc.).
  • Experience with common interfaces, such as SPI, I2C, I2S, UART, USB, Bluetooth LE, Wi-Fi, and Ethernet.
  • Familiarity with networking concepts and protocols (UDP, TCP, HTTP, REST, CoAP).
  • Ability to read schematics to troubleshoot, debug and bring up new hardware using oscilloscopes, logic analyzers, protocol analyzers and in-circuit emulators.
  • Mastery of C language programming as it pertains to an embedded environment.
  • Familiarity with OOP design principles, especially abstraction and encapsulation.
  • Real time development experience with and without an RTOS.
  • Experience programing peripheral hardware at the register level and developing peripheral driver code.
  • Strong firmware debugging skills.
  • Experience with version control systems like git.
  • Familiarity with Linux.

SOFT SKILLS:

  • Strong interpersonal, analytical, organizational and follow-up skills.
  • Solid problem-solving skills. Highly technical, quickly grasping how things work.
  • Presents technical concepts, ideas, and information in terms that both engineers and non-engineers can understand.
  • Motivated by continuous learning and development.
  • Functions well in a small company/startup environment. (High visibility, accountability, and development velocity)
  • Ability to work independently with minimal supervision, and collaboratively with a cross functional team.
  • Disciplined engineering approach.
  • Differentiates value added activities from waste.
  • Demonstrates systems thinking.