A rapidly-growing company that is leveraging the power of technology to help vehicle owners manage their automobile-related payments better, is looking for an Embedded Engineer. The selected candidate will be collaborating with cross-functional teams to deliver high-quality user-facing products. In order to help consumers manage their vehicle tax, insurance, parking, tolls, and congestion fees, the company is developing a comprehensive payment platform. The company has managed to secure close to £8mn in funding so far. This will be a full-time, long-term role requiring 4+ hours of overlap with the PST time zone.
Job Responsibilities:
- Protect against invalid inputs and errors, and properly manage errors when developing defensive programming
- Help with model-based design, including state machines, timing diagrams, and sequence diagrams (UML/SysML)
- Utilizing linting tools, create software that adheres to industry standards like MISRA, BARR, and CERT
- Take charge of the critical evaluation of a project's needs and trade-offs before choosing a toolchain doing walkthroughs, inspections, and code reviews
- Elicit requirements from stakeholders
- Utilize the knowledge gained through IEC62304 compliance to develop software in accordance with industry best practices (alternative industrial or automotive equivalents)
Job Requirements:
- Bachelor’s/Master’s degree in Engineering, Computer Science (or equivalent experience)
- At least 3+ years of relevant experience as an Embedded engineer
- Demonstrable experience with ThreadX, C, and C++
- Prior experience working with Ultra Low Power Electronics
- In-depth knowledge of Safety Critical Systems
- Sound knowledge of operating principles and tradeoffs including RTOS
- Knowledge of real-time deterministic with a defined maximum response time
- Prior experience designing, integrating peripherals, and writing low-level drivers and APIs
- Experience with documenting designs like Doxygen etc.
- Prior experience optimizing for ultra-low power
- Experience with Object-Oriented design practices including encapsulation, data-hiding, abstraction, and designing great interfaces
- Design and implement automated unit tests and test harnesses (on-target, cross-platform)
- Track key coverage metrics like requirements, statements, branches, Test Report generation, and RVTM
- Knowledge of Runtime control flow verification using embedded tracing tools
- Prior experience using the debugger and stack trace
- Support the development of system-level integration tests
- Knowledge of automated regression testing during the continuous integration process and for each commit
- Experience with Bug tracking and version control like Git (e.g. JIRA)
- Ability to work fluently with other engineering disciplines like Mechanical Engineering, Electronics Engineering, Bio-Engineering, etc.
- Excellent project management of time and resources, while owning timing plans for work
- Good basic knowledge of Digital Electronics, RF Electronics, and mechanical integration tradeoffs
- Excellent English communication skills, both spoken and written