The Embedded Software Engineer for printer development will be responsible for architecture, design, development and testing of embedded software and firmware that controls motors, pumps, heaters, imagers, interlocks, etc. for printing three dimensional objects. This role will initially focus on Figure 4 print engine firmware in San Diego.
Responsible for various aspects of real-time software control of motors, heaters and sensors in an embedded development environment.
Initial focus will be on Figure 4 print engine firmware with emphasis on delivering a reusable asset.
Work with hardware and mechanical development teams to define embedded software functional requirements.
Responsible for the design, development, implementation and maintenance of computer software for systems supporting Product Development.
Develop real-time control software to coordinate all 3D printer project sub-systems.
Develop new device drivers as required by electronic and mechanical designs.
Support the development of software requirements and software project plans, including schedule dependencies, deliverables and target dates. - Write technical specifications for product designs.
Responsible for integration and validation of product designs with other project team members.
Supports software QA/test methodologies.
Education and Training:
BS in Computer Engineering, Computer Science or Electrical Engineering required.
MS in Computer Science, Computer Engineering or Electrical Engineer preferred.
Minimum of 8-10 years of experience in embedded systems programming
Experience with printing and scanning technologies preferred
Knowledge, Skills & Abilities:
Firmware development in C/C(++).
Real time embedded software development.
Embedded systems design with preemptive, multitasking real-time operating systems.
Knowledge of C, C++, JAVA, Object Oriented Design, GUI Development, UNIX, MS Windows, Networking Protocols (i.e., Novell, TCP/IP) and print languages (i.e., Postscript and PCL).
Ability to demonstrate proficiency using modern software development processes, including software configuration management tools, defect tracking tools, and peer review.
Ability to demonstrate excellent verbal and written documentation skills with experience developing and presenting to other engineering team members.
Ability to demonstrate proficiency with Microsoft Office and core business-use tools.
Print process and knowledge of imaging a plus.
Modern software development processes, including software configuration management tools, defect tracking tools, and peer review practices.
Requirements development and interface design.
System architecture development from concept to production - Low cost designs.
Design leverage across multiple platforms.
Some knowledge of Laboratory instrumentation (oscilloscopes, logic analyzers, spectrum analyzers, waveform generators, etc.).
Software interfacing and system level debugging skills.