Full-time or part-time: Full-time
Job title: Senior Embedded Software Engineer
Job Location : 23500 Colonial Parkway, Katy, TX 77493
Job Description:
Develop embedded software architecture for measurement while drilling (MWD) applications. Work with the project manager to ensure that software architecture addresses the product development and business goals. Work with hardware and system engineers to specify the implementation platform requirements. Implement firmware code on highly integrated hardware platforms consisting of microcontroller/processors, Field programmable gate arrays (FPGAs), Analog digital converters (ADCs), Digital Analog Converters (DACs) and communication controllers. Develop optimal software architecture for implementing complex data processing algorithms on embedded platforms. Start embedded software on new electrical hardware and develop prototypes. Develop automated test frameworks for functional validation of embedded software. Demonstrate software reliability by implementing "hardware-in-loop" test systems on National Instruments platform using Labview, Simulink, Test Stand and Veristand. Specify alternative hardware connections to improve access to software logic, bypassing hardware interfaces. Identify uncommon situations in system and design tests showing how the software handles those situations. Measure coverage of testing and create plans for improvement. Identify how to combine and display information for different types of users such as field operations, maintenance, and sustaining engineering. Create software using Python, C#, C++, and Matlab that automatically identifies root causes of hardware failures in MWD tools. Lead failure investigations by analyzing the software logs from the failure incidents and develop optimal approach to implement software bug fixes. Perform data analytics to identify unexpected trends on large scale cloud data using python in Dataiku. Create and maintain software design documents. Develop end user documents describing the functional behavior of the embedded software. Implement industry standard best practices for software release and maintain source code with version control systems. Mentor team members to adapt the best practices on embedded software development.
Minimum Education & Experience Requirements:
Must have a Master's Degree, or foreign educational equivalent, in Computer Engineering, Computer Science, or a related Engineering field. Must have 4 years of post-baccalaureate experience as a Firmware Engineer, or a related role. The 4 years of experience must include using C; C++; C#; Python; Matlab; Simulink; Veristand; communications protocols including SPI, I2C, RS232, CAN (Controller Area Network); hardware including FLASH and EEPROM (Erasable Programmable Read-Only Memory); ADCs (Analog to Digital Converters); DACs (Digital to Analog Converters); Git; AzureDevOps; processors ARM Cortex M4; dsPIC33; STM32; AVR; and Arduino.
Must have a Master's Degree, or foreign educational equivalent, in Computer Engineering, Computer Science, or a related Engineering field. Must have 4 years of post-baccalaureate experience as a Firmware Engineer, or a related role. The 4 years of experience must include using C; C++; C#; Python; Matlab; Simulink; Veristand; communications protocols including SPI, I2C, RS232, CAN (Controller Area Network); hardware including FLASH and EEPROM (Erasable Programmable Read-Only Memory); ADCs (Analog to Digital Converters); DACs (Digital to Analog Converters); Git; AzureDevOps; processors ARM Cortex M4; dsPIC33; STM32; AVR; and Arduino.