Seeking an Embedded Software Engineer is responsible to define, design and document embedded product solutions concerning ignitions, instrumentation and controls relating to the Industrial Gas Engines market.
As part of the team you will strive to meet product requirements through core Firmware, Software, and front end Application development, participating in the development and in the specification of new products, bringing new ideas and solutions for the marketplace. Requirements / Challenges Requires a minimum of 5 years of experience in embedded code development Prior experience having architected and written product intent code from specification to product release
Bachelor's degree from four-year College or University in Computer Science or Electrical Engineering, specializing in embedded firmware design
Special knowledge / skills PC Application Development: Ability to design and develop PC based software for product support using high level languages ( C#.NET, Visual Basic 6, Matlab as examples) as well as common programming data structures and object oriented design Embedded Design: Familiar with design principles related to developing software for systems with limited computing resources and intended to operate in real time environments Preferred knowledge of Modbus, CAN bus, EtherNet/IP. Use of embedded languages such as C/C++, assembly Must have working knowledge of microcontrollers, and typical microcontroller peripherals as well as serial and parallel busses. Background in ST, Atmel, Power PC preferred Working knowledge of timers and counters Ability to read and interpret a data sheet Solid understanding of hardware interface layers Circuit basic for interaction with connected hardware Experience with bootloaders Highly skilled in debugging and use of advanced tools Software Engineering: Familiar with principles of design, development, maintenance, testing, and evaluation of software. Knowledge of test equipment, Oscilloscopes, power supplies, frequency counters, frequency sources, 4-20mA inputs and outputs, PC interfaces (Serial converters, CAN converters) Ethernet switches, etc.) Highly structured and documents code Knowledge of Subversion preferred, must have knowledge of code management systems Understanding of RTOS Mathematical Skills: Ability to apply advanced mathematical concepts such as exponents, logarithms, quadratic equations, and permutations. Ability to apply mathematical operations to such tasks as frequency distribution, determination of test reliability and validity, analysis of variance, correlation techniques, sampling theory and factor analysis. System Application: Knowledge of engines, how they work, and the measurement, ignition, and control systems typically used on engines. Preferred to have a working knowledge of PLC's, both hardware and software, ladder logic. Knowledge of temperature, pressure, vibration sensors and methods . Individual Tasks Develop product architecture, and implement firmware/software development. Use of communications protocols over hardware networks CAN, RS485, ETHERNET Conduct and participate in design reviews. Work with third parties inside and outside the company on custom software development Provide initial field support and knowledge of system level application. Communicate with hardware and software engineers to evaluate interface between hardware and software. Evaluate operational and performance requirements of overall system. Formulate and design software system, using scientific analysis and mathematical models to predict and measure outcome and consequences of design. Execute designs to accepted engineering and quality standards. Deliver and incorporate feedback results into new software and service specifications. Interface with Manufacturing, Sales, Purchasing, Field Service Representatives, and Quality during product development; provide continued support after product release. Control systems experience utilizing PID or more advance control methods. Prepare test requirements and instruction manuals. Aid in hardware or software design as interested/needed. Component selection for proper performance relating to packaging, size, power, temperature, performance. Utilize and promote improved design processes through the use of evolving design tools and methods Analyze software requirements to determine feasibility of design within time and cost constraints. Develops and directs software system testing procedures, programming, and documentation. Consults with customers concerning maintenance of software systems. Personal and Social Skills Excellent verbal and written communication skills with the ability to communicate effectively with personnel at different sites and different levels inside and outside of the company. Creative problem solver and solution developer when presented with conflicting requirements, business demands and technical risks or issues. Ability to multitask, manage multiple priorities under deadlines, make decisions with speed and accuracy based on best available information. Understanding of quality control and documentation control. Attention to details and documentation (clearly organized). Must be proficient in English (conversational/written)
Job Type: Full-time