Software & Embedded Systems Engineer- TalentZok
OVERVIEW
Are you looking for a new career opportunity with an exciting company?! Then we've got the right team for you! In this role, you're responsible for the duties listed below.
Immediate opening for a Software & Embedded Systems Engineer in San Diego, CA who possesses:
- Bachelor's degree in Computer Science or Electrical/Computer Engineering.
- 3-5 years of experience in firmware development.
- Proficient in software testing.
- Strong organizational and leadership skills.
- Proficiency in C, C++, Python, Assembly, and LabVIEW.
Email resumes to adunlop@talentzok.com or call 858.251.3562.
FULL DESCRIPTION: For the Software & Embedded Systems Engineer position, we are seeking candidates whose primary interest is in (a) writing embedded firmware used for conditioning raw input signals, (b) developing peripheral drivers for multiple hardware bases (primarily in C and Assembly languages, (c) designing/implementing complex mathematical operations in low level code in a highly resource constrained embedded environment, (d) streamlining the development lifecycle using tools and automation techniques (e.g. CI/CD) and (e) collaboratively and transparently defining and executing on software development projects end‐to‐end. The candidate will also be responsible for (i) designing software used to control customized equipment used in company product assembly and system calibration processes and (b) designing software used for validation and testing of the torque sensor product line's hardware and embedded firmware. Qualified candidates will be capable of understanding and generating requirements from test hardware through HMI/GUI system levels, outlining and implementing the required software design/development tasks, and providing software support to other teams for hardware design tasks. This software design and development may include machine control, data acquisition, I/O, communication (such as with electromechanical or electromagnetic actuators), data storage, data processing/analysis, HMI/GUI implementation, and integrations with other software platforms used (e.g. LabVIEW or Python‐based). The Software & Embedded Systems Engineer will collaborate regularly with an interdisciplinary team of electrical and mechanical engineers, software engineers and data scientists and electromechanical technicians, to deliver high quality embedded firmware and desktop software using a streamlined development, deployment, and support process.
The selected candidate will be responsible for:
- Design, Develop and maintain efficient and robust embedded firmware to be used in embedded systems, primarily using C and Assembly.
- These systems will be composed of, but not limited to
- Serial communication peripheral drivers
- On‐board data storage
- Complex mathematical computations while abiding to strict time/data constraints
- Built‐in software modules to recognize and gracefully recover from system faults due to internal/external disturbances
- Design, Develop and maintain software (built primarily in Python and/or LabVIEW) that is used to:
- Test and validate product hardware
- Test and validate product firmware
- Control machines and test setups used to support product assembly
- Control machines and test setups used for product calibration
- Control machines and test setups used for research and development
- Conduct data processing and analysis
- Create supportable and maintainable software: manage software versions in GitLab, document code, including how to use the software, and provide technical support to cross‐functional teams within the Company
- Participate in the entire software development life cycle, from requirements formalization to design to implementation to deployment, leveraging and promoting the usage of the GitLab platform for version control and CI/CD
- Develop, create and maintain:
- A comprehensive test suite
- Software development lifecycle automation artifacts/practices
- Internal software shared/re‐usable components including libraries, software testing tools, scripts to automate development and deployment processes, and coding guidelines
- Interface with in‐house assembly technicians and calibration technicians and engineers, and with customers in the field to continuously identify open issues, help debug and improve systems, and develop solutions to maximize production process uptime and customer satisfaction.
- Design, Develop and maintain software tools used for data processing and analysis with respect to internally generated test and production data, as well as field data generated by customers using our products. This includes data obtained from dyno tests, track tests and races, and aerospace flight tests. These tools are written in LabVIEW and C/C++ or Python.
- Help to develop and maintain internal databases for integrated storage and management of manufacturing data associated with sensor systems
- Support database connectivity and network maintenance
- Design and Develop test software for research and development (R&D) purposes including material testing, electronics and firmware prototyping, and sensor construction prototyping
- Analyze and professionally document laboratory testing results, dyno testing results, and track data pertaining to the systems and/or components described above
- Travel to client sites in Europe, the US, and Japan to provide field support at dyno tests, track tests, and races as may be required
The selected candidate will also possess:
- Proven experience in embedded software development, including being highly proficient in writing and debugging code, especially (in order of priority) C/C++, Python, Assembly, and LabVIEW
- Strong understanding of design constraints, especially those associated with writing embedded firmware and/or software used to control potentially safety‐critical machinery
- Familiarity with digital communication protocols such as CAN, SPI, I2C, USB interfaces, etc.
- Experience with the complete software development life cycle: planning and analysis, requirements, design, development, integration, and testing
- Familiarity with using version control systems associated with software development such as GIT
- Familiarity with relational database interactions and development using SQL
- Excellent written and verbal communication skills
- Ability to work effectively in a multidisciplinary team environment
- Proven ability to manage and/or lead engineering projects
- Experience designing, developing, and documenting software/firmware interfaces
- Understanding of analog and digital circuit design and signals theory
- Strong understanding of foundational mathematical concepts including linear algebra, probability/statistics, and linear regression
- Familiarity with and/or comfort level interfacing with electromechanical sensors and actuators, including motors, valves, electromagnets, switches, thermal actuators, etc.
- Ability to use basic hardware and laboratory equipment, including power supplies, function generators, oscilloscopes, data acquisition systems, etc.
- A minimum of a Bachelor's degree in Computer Science, Electrical/Computer Engineering, or related field is required. A specific concentration in control systems, signal processing, software engineering, or a related area is preferred.
- At least 4 and up to 8 years of prior professional software/firmware engineering experience, at least some of which specifically relevant to firmware/embedded software development, are required for this position.
Salary Range: $100k-$125k/hr
For immediate and confidential consideration, please email your resume to adunlop@talentzok.com or call 858.251.3562. More information can be found at www.talentzok.com