Summary The senior embedded Software Engineer will be an integral part of our Electro Optical Infrared System (EOIS) Software Development Team. Responsible for leading technical activities and completion of these activities on time and budget. Develop embedded software and PC tools including operating systems, networks, utilities, and Internet-related tools. Determine hardware compatibility. Complete documentation and procedures for installation and maintenance. Interact with users to define system requirements and/or necessary modifications. Ability to lead a technical project independently.
Responsibilities
Involved with the design, development, analysis, testing and debugging of computer software applications and/or systems. May include Image and Signal Processing, Real-time, Firmware, Nuclear/Hi-Rel, FAA Certified, Database Design, Operating Systems, Operator/Machine Interface, or others. Develop software tools including operating systems, compilers, routers, networks, utilities, databases, and Internet-related tools. Determine hardware compatibility. Complete documentation and procedures for installation and maintenance. Interact with users to define system requirements and/or necessary modifications.
Responsible for leading group of engineers on a technical activity and completion of activity on time and budget
Design, develop, analyze, document and support testing of products, systems or subsystems
May use computer-aided engineering or other design/analysis software in the performance of assignments. Review customer specifications and requirements, and under direction, develop designs to best support them, including cost as a key design variable
Provide budget, cost and schedule input for design assignments
Specify and evaluate supplier components, subsystems and services
Drive the program design to cost and design for manufacture requirements
Develop prototypes to retire key development risks
Communicate clearly (written and oral) with other company personnel and the customer as required
Participate in preparation of proposals
Provide technical knowledge and assistance to other engineers and support personnel
Lead and direct the work of others as assigned
Lead less-experienced engineers
Qualifications
Bachelor’s Degree in Computer Engineering, Computer Science, or related engineering technical field with a minimum of 5 years of experience.
3+ years of real time embedded SW experience
Demonstrate experience with Real Time Operating Systems (RTOS), Linux and have experience in bare-metal implementation for embedded system
Experience with embedded device drivers (TCP/IP, UART, I2C, PCIe, etc.) preferably on Linux
Solid understanding of multi-threading/multi-processing; concepts and implementations
Strong development experience in C or C++ (3+ years)
Proficient with Microsoft Office, including MS PowerPoint, MS Word and MS Excel
Motivated, self-starter individual
Desired
Experience in initial hardware start-up and troubleshooting techniques
Familiarity with oscilloscopes and logic analyzers
Strong analytical and communication skills
Capable of integrating hardware and software and developing test plans and procedures
Lead and direct the work of others as assigned
Experience with modern software development processes, including software configuration management tools, defect tracking tools, peer review, and agile development life cycles.