Embedded Systems Software Engineer – Job Order 2871

Location: Philadelphia
Compensation: DOE
US citizens and Permanent Residents only

My client is involved with robotics in the realm of aerial autonomy. Their robots are an intricate integration of hardware and software, requiring a great deal of discipline at the boundary to ensure safe and stable operation. As an embedded systems engineer, your role would encompass:

Customized firmware for sensors and companion computation boards
Customized extensions and configurations for Linux on embedded targets
Selection and integration of sensing, computation, and networking hardware
Design and execution of component testing and calibration procedures
Firmware update and deployment processes
In addition, there will be opportunities to support research and development, field testing, work with customers and investors, as well as mentor members of the team.

Essential Qualifications
At least a B.S. in Computer Science, Computer and Electrical Engineering, a related field, or at least 3 years experience in a relevant industry. Candidates with substantial qualifications may be considered for senior positions.
An excellent understanding of how to write and test software that is correct, modular, efficient, and easy to understand
At least 3 years of experience in C or C++, and how to apply these languages to embedded targets
US citizenship or permanent residency
Great to Have
Familiarity with relevant sensors, such as cameras, IMUs, LiDARs, and GPS
Familiarity with ARM microprocessors, embedded GPUs, or FPGAs
Experience with standard development practices, including version control, testing, code checking, and code review
Experience with robotic systems and familiarity with concepts in robotics

Interview Process
My client generally probes candidates applying for any software-related position (including robotics engineer) in the following ways:

Phone screen: Ask about design decisions on cool projects on their resume. Basic data structures and algorithms (think lists and sorting), tradeoffs between them, brief descriptions of operation, complexity analysis, and factors affecting their real-world performance. Probe familiarity with operating systems concepts (memory protection and hierarchy, processes, networking).

Onsite: 2 managers are responsible for the algorithms screening during onsite interviews. They don’t ask to do “whiteboard coding” because they think its unfair- but they do ask the candidate to sketch out diagrams and pseudocode and explain how those relate to their solution for problem. Your questions can be solved naively using brute-force approaches, but they will always ask candidates to perform complexity analysis and find better solutions. “Best” solutions often employ advanced data structures and algorithmic techniques like dynamic programming.

Submit resume