Crossing Hurdles is seeking a Software Engineer II to design, develop, and maintain high-quality Python code for controlling complex hardware systems. The role involves implementing control algorithms, managing control interfaces, and troubleshooting software and system-level issues to ensure reliable lab equipment performance.
Responsibilities:
- Design, develop, and maintain high-quality Python code for controlling complex hardware systems, including wind tunnel fan arrays and associated mechanical components
- Implement and optimize control algorithms for real-time performance and precision, including PWM control for fan motors and actuators
- Develop software to program and generate airflow conditions including laminar, turbulent, gradient, and time-varying flows
- Create and manage control interfaces for secondary systems including robotic HATS movers, lift systems, and multi-channel spatial audio setups
- Integrate data from motion capture systems (e.g., Optitrack) for real-time tracking and system alignment
- Develop and execute automated procedures for the calibration of wind speeds, acoustic sensors, and other critical measurements
- Build and maintain data pipelines for capturing, processing, and analyzing experimental data from sensors
- Troubleshoot and resolve complex software and system-level issues to ensure high availability and reliability of lab equipment
- Produce clear and comprehensive documentation for software architecture, APIs, and operational procedures
Requirements:
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, Mechanical Engineering, Robotics, or a related field
- Professional experience in Python programming with emphasis on hardware control, lab automation, or robotics
- Solid understanding of control systems theory, digital signal processing, and data acquisition principles
- Strong knowledge of fluid mechanics, aerodynamic principles, and acoustic measurement techniques
- Experience working in a laboratory or R&D environment
- Demonstrated ability to debug complex systems involving both hardware and software
- Excellent communication and collaboration skills for working in multidisciplinary teams
- Proficiency in modern Python and object-oriented design
- Experience with scientific computing and data analysis libraries (NumPy, SciPy, Pandas)
- Experience with hardware control interfaces and protocols such as PWM, serial, and Ethernet
- Experience with audio signal processing or multi-channel data acquisition libraries
- Competency with version control systems, particularly Git
- Experience using configuration file formats such as YAML or JSON
- Knowledge of network communication protocols and experience with REST APIs
- Experience with motion control systems for robotics or automation
- Familiarity with spatial audio technologies such as High-Order Ambisonics (HOA)
- Experience integrating motion capture systems into control software
- Experience with aerodynamic measurement techniques such as Particle Image Velocimetry (PIV)
- Familiarity with GUI development frameworks for internal tools
- Experience with cross-platform software development (Windows, macOS, Linux)