Description:
A Firmware Engineer will design, modify, and evaluate embedded software, and/or programmable logic and/or electronic apparatus, components, or circuitry for use in electronic equipment and devices. You will perform engineering work in basic and applied research, development, and/or design of new products and/or sustaining of existing products. Future possibilities may include electrical design and FPGA work if there is talent and interest.
RESPONSIBILITIES:
- Participates in all phases of the Firmware development life cycle, including requirements analysis, design, implementation, integration, and test of all products.
- Responsible for research, design, and development of computer software systems, in conjunction with hardware product development.
- Applies computer science, engineering, and mathematical analysis concepts and principles in the development of software for the target application.
- Demonstrates and applies comprehensive knowledge of power electronics and controls design to the successful completion of complex projects
- Works closely with cross functional members of the engineering organization to develop and evaluate interfaces between hardware and software, and operational performance requirements and design of the overall system.
- Develop software test procedures, software programs, and related documentation.
- Contributes to determining, estimating, and validating the cost and scope of software efforts to ensure software performed meets program cost, schedule, and technical constraints.
- Develop C++ Applications on embedded Systems including FPGAs and SOCs.
- Implement assigned projects and project tasks to provide software engineering solutions including software design, documentation, verification and validation, used in evaluating, testing and processing high fidelity data acquisition systems.
- Implement advanced software development techniques in compliance with technical reference architecture
- Participate in on-going code reviews to improve software stability and maintainability of an aging code base
- Perform technical review, design analysis, development and selection of hardware and mission critical computer software.
WORK ENVIRONMENT:
- Location: Wilmington, MA; Some domestic and international travel may be required
- Environment: Standard office environment, possible interaction through a production factory environment; uses electronic equipment and can work with high voltage
QUALIFICATIONS:
- Demonstrates a sense of urgency and unmatched responsiveness to all work requests and customer deadlines.
- Demonstrates a consistent, dependable work effort and accepts accountability for one’s actions
- Completes assigned tasks within specified time limits.
- Helps promote a cohesive and cooperative work group.
- Understands safety regulations, takes proper care of equipment, and acts in a safe manner.
- Strong communication skills, ability to present ideas in a clear and persuasive manner, both orally and in writing
- Capability to respond quickly, decisively, and professionally to changing requirements
- Excellent judgment and initiative, including the ability to effectively balance multiple priorities
- Good analytical and problem-solving tools
- Good interpersonal skills. Capable of team building (external & internal) to drive cross-functional collaboration
- Strong priority setting skills, desire to meet project, tasks, and/or assignment deadlines
- Can work with minimal supervision, with ability to multi-task in a dynamic environment
EXPERIENCE:
Essential
- Proven working minimum 6 years of valid experience in embedded firmware/software engineering
- Background in Power Electronics and/or Power Conversion disciplines
- Experience in hands-on development and troubleshooting on embedded targets
- Solid programming experience in C or C++
- Proven experience in digital control of feedback systems
- Proven experience in embedded systems design with preemptive, multitasking real-time algorithms and operating systems
- Familiarity with software configuration management tools, defect tracking tools, unit code testing and peer review
- Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems
- Adequate knowledge of reading schematics and data sheets for components