Firmware Engineer

Avegant Corp.
Belmont, United States of America
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate

Job location

Belmont, United States of America

Tech stack

Java
JavaScript
Microsoft Windows
iOS
ARM
Booting (BIOS)
C Sharp (Programming Language)
Codecs
Datasheets
Software Debugging
Linux
Firmware
Make (Software)
Joint Test Action (IEEE Standards)
Python
Real-Time Operating Systems
Universal Asynchronous Receiver/Transmitter
GIT
Bare Metal
U-Boot

Job description

Avegant is seeking a Firmware Engineer to contribute to their cutting-edge near eye display technology. The position requires a highly-motivated individual with 3-5 years' experience in an R&D engineering or production environment. The role will be centered around writing, integrating and debugging low-level, self-contained firmware for controlling all aspects of our head-mounted displays with a strong focus on audio/visual and camera elements. You will work closely with our mechanical and electrical engineering teams, and be part of a highly-collaborative environment. This position will be located in Belmont, CA and requires that you be onsite and not remote for this role. This position will report to the Lead Firmware Engineer. This is a great opportunity to be a part of a revolutionary consumer product and consumer software from implementation of design through initial prototyping and beyond. You should be self-motivated, flexible, and get a kick out of creatively solving difficult problems -- sometimes on your own, but often as part of a fast-moving team. Responsibilities:

  • Develop and maintain production quality firmware for head mounted displays
  • Write Makefiles, and implement secure, failsafe Bootloaders and low-level drivers
  • Collaborate with Hardware and Software teams for making and revising design choices
  • Bring up, debug and validate prototype hardware in a lab environment

Requirements

  • BSEE, BSCS or equivalent preferred

  • 3-5 years of production software/firmware development experience

  • Worked on at least one consumer product with 32-bit ARM Cortex MCUs

  • Proficiency in "bare metal", RTOS and Linux-based C/C++ development

  • Experience in serial protocols and drivers (e.g. I2C, SPI, USB, UART, etc.)

  • Must have used JTAG or SEGGER for in-circuit debugging

  • Be comfortable using git and GNU toolchain

  • Ability to use hardware debug tools: protocol analyzers, oscilloscopes, logic analyzers, DMMs, etc.

  • Ability to analyze Datasheets and read schematics Extra Credit For:

  • Previous experience working on low-power audio/video or camera consumer electronics products

  • Writing USB Drivers for Windows

  • Previous experience with analog and digital sensors (accelerometer, gyro, IR, cap touch, microphones, etc.)

  • Mobile device development on iOS and/or Android

  • Familiarity with PC/host programming and scripting (e.g., Python, Java, C#, JavaScript, etc.)

  • Previous experience with audio/video implementations (e.g., codecs, I2S, YCbCr, EDID)

  • Experience with methods of cryptography, secure boot loaders, AES, HDCP, etc.

Apply for this position