Essential Job Functions • Maintain and enhance embedded software for existing product lines. • Own 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. • Work in an Agile environment using Atlassian toolset
Qualifications
Education: Bachelor's degree in electrical, Electronic, Computer Science or Computer Engineering
Technical Experience &Skills: • 7+ years' experience in embedded software development and writing C and/or assembly code for microcontrollers such as Microchip PIC, Freescale/NXP, ST, Cortex M3/M0 and Atmel. • Mastery of C language programming as it pertains to an embedded environment. • Strong understanding of computer architecture and embedded software development best practices, with significant experience in low level development and programming. • Real time development experience with and without RTOS. • Knowledge of communication interfaces, such as SPI, I2C, I2S, UART, CAN, USB, BLE, Wi-Fi, and Ethernet. • Ability to read schematics to troubleshoot, debug and bring up new hardware using oscilloscopes, logic analyzers, protocol analyzers and in-circuit emulators. • Experience programing peripheral hardware at the register level. • Working knowledge of C++. • Working knowledge of IoT principles and methods • Familiarity with OOP design principles. • Familiarity with various ARM architectures (e.g. Cortex M4, M7, etc.). • Familiarity with security basics (e.g. TrustZone, security certificates, etc.).
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.