Avegant
Firmware Engineer
Avegant, Belmont, California, United States, 94002
About Avegant: Avegant is a well-funded, venture-backed technology company developing the next-generation of light field displays. We are pioneering innovative hardware and software solutions that will forever change how we learn, play, work and interact with each other. Weve won multiple awards, our team is best in class, and were just getting started. Avegant is about the journey of innovation, and we want to take you with us. If you think you have what it takes to be part of our incredible team, then come join us and be part of a company that is making mixed reality possible. Overview: 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.