Job Description:
Basic Function
The Development Engineer is responsible for the design, development and support of products and systems for the Brooks Instrument New Product Development team. The successful candidate must be self-directed, highly motivated, and organized with strong analytical thinking and problem-solving skills.
Essential Duties and Responsibilities
Apply knowledge of computer architecture, real-time operating systems, and programming languages to develop and implement new real-time embedded firmware for flow measurement and control products to support business requirements.
Collaborate with multidisciplinary teams to define and refine firmware, system, and algorithmic requirements.
Analyze fluid dynamic systems and use both theoretical and empirical methods to develop and optimize flow measurement and control algorithms.
Utilize measured and calculated system data to diagnose performance issues and guide system improvements.
Use MATLAB/Simulink to model, simulate, and validate algorithms and system behavior.
Support system integration activities, including debugging and performance validation of hardware/software interactions.
Review and analyze circuit schematics and layouts to support hardware/software co-design and propose circuit optimizations to facilitate firmware development.
Develop and execute test plans and automated test systems to validate firmware and system-level performance.
Knowledge, Skills and Abilities
Advanced C, C++ and assembly language programming in an embedded environment
Real-time OS application and device driver development in an embedded environment
Matlab/Simulink programming and data analysis
Python, C#, Visual Basic, .NET programming languages
Advanced knowledge of database management systems and Structure-Query Language (SQL)
Analog and digital circuit design
Schematic capture and PCB design and layout with Altium
Automation system design and development using Visual Studio and LabView
Control system design and optimization
Digital filter design and optimization
Knowledge of digital networks DeviceNet, EtherCAT
Excellent written and verbal communication skills.
Ability to take on multiple concurrent assignments under minimal supervision.
Self-starter with initiative and drive to develop high quality code within the time and budget constraints of the project.
Strong interpersonal skills, desire to learn, and an effective team player in a global environment.
Ability to follow all safety procedures.
Education and Experience
BS Computer Science, Computer Engineering, Electrical Engineering, or closely related Engineering degree required, MS degree preferred.
5-10 years of industry experience developing complex embedded software systems programming in C and/or C++ required, other programming languages a plus.
Experience with ARM microcontrollers and real-time operating systems required.
Experience with System Engineering and modeling a plus (MatLab/Simulink/Embedded Coder).
Experience with mass flow control systems and/or other control systems highly desirable