2762 Loker Ave West Carlsbad, CA 92010
The MTS, Senior Software is responsible for designing, developing, troubleshooting and debugging software programs.
May also be responsible for designing, developing, troubleshooting and debugging embedded real time control systems. The developer will be working with senior engineers and will exercise capabilities in real time IO, control systems, network and bus data transfer, and efficient memory management.
Works on problems of moderate to large scope where analysis of situations or data requires a review of identifiable factors.
Exercises judgment within defined procedures and practices to determine appropriate action. Demonstrates leadership in the use of clean code and extreme programming principles.
Essential Job Duties and Responsibilities:
- Determines hardware compatibility and/or influences hardware design.
- Develops and recommends corrective actions.
- May conduct feasibility studies on new and modified designs.
- Writes code, completes programming and performs testing and debugging of applications using current programming language and technologies.
- Completes documentation and procedures.
- Performs engineering work requiring application of standard techniques, procedures, and criteria in carrying out a sequence of related engineering tasks.
- Independently evaluates, selects and applies standard engineering techniques, procedures and criteria, using judgment in making adaptations and modifications.
- Performs work which involves conventional types of plans, investigation, surveys, structures or equipment with moderately complex features for which there are precedents.
- Other duties may be assigned as required.
- Independently performs research regarding technologies and practices to apply to a particular solution.
- Adheres to the agile software development life-cyle prescribed by team leaders.
- Utilize unit testing as a means of ensuring quality. Develops test applications and test plans.
- Creates and disseminates design documentation, UML, Class Diagrams and any other architectural knowledge.
- Interacts with users and product owners to define system requirements, specifications, and acceptance criteria.
Education and Experience Requirements:
- Requires a BS degree in Computer Science, Computer Engineering or Electrical Engineering
- 5-10 years using C/C++ for Real Time Operating Systems (RTOS) or 5-10 years using C++, C#.NET for desktop applications.
Preferred Skills and Abilities:
- Experience with FreeRTOS and Real Time Linux.
- Experience Developing on Xylinx Zynq-based System on Module, and Xylinx SDK.
- Deployed, maintained or upgraded Board Support Packages for embedded systems.
- Experience with LabView.
- Mathematical modeling with Matlab.
- Working knowledge of WPF, MVVM, Entity Framework.
- Daily Test Driven Development habits, use of unit testing.
- History of using eXtreme Programming practices.
- Use of multi-threading and inter-process communication.
- Development of machine automation and process control software.
- Knowledge of Motion Control and PID Loops.