Design Engineer, Embedded Software
Job Description
Design, develop and test embedded software/firmware for scientific instrumentation systems in a multi-disciplined, concurrent development team setting. Participate in product requirement definition and architecture development; follow formal design methods and code inspections for quality assurance.
Professional Qualifications
Education
- Bachelor of Science in Computer Science, Computer Engineering, or an engineering discipline with a heavy emphasis on computer science is required.
Experience
- Embedded: Five years design experience with embedded processors, utilizing data acquisition techniques in a real time, multitasking/threaded environment.
- Must be proficient in at least one of the following languages: C, C++, Python or Java.
- Familiar with and understanding of digital hardware, ARM based processors, memory management, GPIO, SPI, I2C, UART and other common hardware interfaces.
- Familiar with and understanding of BSP/board support package, bootloaders, RTOS, embedded Linux drivers and kernel.
- Demonstrated ability to translate abstract logical concepts and ideas into software/firmware architecture implementations.
- Familiar with compilers, debuggers, source control (GIT), and bug tracking for code development.
General
- Solid understanding of software engineering fundamentals and mathematics.
- Self-starter and motivated. Enjoy challenges. Proven drive to achieve goals.
- High insight, curiosity and problem-solving ability. High attention to detail.
- Good interpersonal and networking skills.
- Team player. Enjoys and works well with other people in a team environment.
- Effective oral and written communication skills in English.
- Dependable, positive attitude and good attendance.
- High ethics, integrity, honesty, patience.
Position Responsibilities
Specific:
- Design, develop, implement, test, debug, and document embedded software/firmware solutions for instrumentation applications.
- Engage as a member of a multi-disciplined, multi-department design and development team.
- Participate in product requirement definition through interactions with customers, scientists, and marketing personnel to understand and define features and functions.
- Understand the hardware/software interfaces as they apply to the overall architecture.
- Implement the software/firmware architecture using formal design methods and code inspections for quality assurance.
- Integrate and test software/firmware to ensure that the design meets product requirements.
- Document software, algorithms, and specifications
- Maintain released software; troubleshoot and resolve defects.
General:
- Gain a solid understanding of the scientific application/use-case being addressed with the product.
- Assist with product development schedules.
- Light Work-Exerting up to 20 pounds of force occasionally, and/or up to 10 pounds of force frequently, and/or a negligible amount of force constantly.
- Other job-related duties as assigned.
Date Posted
12/30/2022
Views
8
Positive
Subjectivity Score: 0.9