Description:
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
Up to 10% travel possible
Requirements:
Experience:
Degree in Degree in Electrical, Electronic, Computer Science or Computer Engineering
5+ years of experience
Technical Skills:
Strong understanding of computer architecture and embedded software development best practices, with significant experience in low level development and programming.
Familiarity with various ARM architectures (e.
g.
Cortex M4, M7, etc.
).
Familiarity with security basics (e.
g.
TrustZone, security certificates, etc.
).
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.
Mastery of C language programming as it pertains to an embedded environment.
Working knowledge of C++.
Familiarity with OOP design principles.
Real time development experience with and without an RTOS.
Experience programing peripheral hardware at the register level.
3+ 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.
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.