Software Engineer II
Role details
Job location
Tech stack
Job description
Midé also develops and maintains several open-source Python libraries that support our enDAQ devices, including: ebmlite for EBML encoding/decoding, idelib for interacting with .IDE data files, endaq for advanced data processing and visualization (including pseudo-velocity shock response spectra), and endaq-device for configuring and communicating with enDAQ hardware. We look forward to continuing to contribute to the open-source community., We are seeking a Software Engineer II to join our expanding electrical and software engineering group. The primary focus of this position is supporting wireless control for our high-rate IoT sensor platform. These sensors collect detailed recordings-including acceleration, rotation, temperature, pressure, humidity, and more-and transmit data to a local gateway responsible for device coordination, data processing, and cloud communication via Azure services.
Key responsibilities can include real-time data processing for event detection, summarizing or displaying multi-sensor data streams, controlling devices via USB or MQTT, and supporting manufacturing with calibration and production software. Depending on experience and interest, this role may grow to include cloud architecture, advanced data analysis, or desktop software development.
Candidates should feel comfortable working within a small, multidisciplinary team and be able to translate user needs into clear software requirements.
Applicants may be asked to provide code samples or GitHub/Bitbucket links. A brief coding exercise may also be requested. This role is full-time and primarily on-site; while Midé offers part-time remote flexibility, this position requires regular presence in our active engineering workspace. Local applicants are preferred.
Requirements
Candidates must:
-
Hold a bachelor's degree or equivalent relevant experience.
-
Have 2-6 years of hands-on experience, including familiarity with the Amazon Web Services ecosystem and experience with Python.
-
Be a U.S. person (citizen, permanent resident, or green card holder) or be able to obtain the necessary Export Authorization.
-
Demonstrate strong understanding of object-oriented programming principles.
-
Be fluent in at least one object-oriented programming language (Python preferred; Java, C++, C#, Swift, etc. also accepted).
-
Have experience building large, maintainable Python applications.
HOW TO IMPRESS
The following areas are important for upcoming projects. Experience is beneficial but not strictly required:
-
Working with Azure cloud tools such as IoT Edge, Event Hub, Functions, and related databases.
-
Networking and small-scale server design, especially MQTT.
-
Object-oriented design techniques for managing complex sensor configurations.
-
Efficient handling of large datasets and real-time processing in Python, particularly using NumPy.
-
Integration testing techniques for large Python codebases, especially using PyTest.
-
Signal processing, including Fourier transforms, PSD, filtering, and resampling.
-
UI design and data visualization.
PREFERRED SKILLS
These areas represent potential long-term growth opportunities. Experience in at least some of the following is desirable:
-
Debugging Python code within an IDE environment.
-
Experience with Python packages such as NumPy, SciPy, Plotly, Pandas, or wxPython.
-
Knowledge of statistical analysis methods, including multi-discriminant analysis.
-
Experience applying AI techniques to data processing workflows. Equal Opportunity Employer - minorities/females/veterans/individuals with disabilities/sexual orientation/gender identity.