Senior Software Engineer
Role details
Job location
Tech stack
Job description
- Hardware Control & Integration: Develop low-level firmware and high-level software to interface with custom optical hardware
- Data Acquisition & Processing: Design software architectures capable of handling high-speed data streams from optical detectors, ensuring seamless data stream and real-time processing.
- Algorithm Implementation: Translate complex optical physics and mathematics into efficient code, including optical parameter matrix manipulation (such as Stokes parameters), close-loop control based on measurement result etc.
- Application Development: Maintain and expand our user-facing data display software/GUI, creating intuitive interfaces that allow engineers to visualize data on a virtual oscilloscope or Poincare sphere.
- Automated Test Environments (ATE): Expose APIs and write SDKs so our instruments can be seamlessly integrated into our customers' larger manufacturing and test pipelines.
- Cross-Functional Collaboration: Work closely with optical, electrical, and systems engineers to define instrument capabilities, troubleshoot prototypes, and bring new photonic test equipment to market.
Requirements
We are seeking a talented Software Engineer with at least 5 years of experience to join the software development team for photonics instrumentation. You will bridge the gap between complex optical hardware and user-facing data, writing the code that controls precision optical devices , manages high-speed data acquisition, and visualizes complex optical impairments in real time.
If you are passionate about hardware-software integration and want to build the logic that drives state-of-the-art optical test equipment, we want you on our team., Building highly precise polarization instruments requires a specific blend of hardware intuition and software architecture. To be successful in this role, you will need:
- Experience: 5+ years of professional software engineering experience, specifically in environments where software interacts directly with physical hardware or scientific instrumentation.
- Core Languages: Proficiency in C/C++ (for low-level hardware control, embedded systems, and high-performance data processing) and Python (for scripting, automation, and data analysis).
- Hardware Interfacing: Deep understanding of communication protocols and hardware interfaces (e.g., SPI, I2C, UART, TCP/IP, USB, GPIB). You should be comfortable reading a hardware datasheet and writing the driver logic.
- Real-Time Processing: Experience with multithreading, memory management, and optimizing code for speed to ensure microsecond-level switching and data logging without latency.
- Mathematical & Analytical Proficiency: The software must calculate and map dynamic optical states. You should have a solid grasp of linear algebra and matrix math (crucial for Jones and Mueller matrices).
- Problem Solving: Exceptional ability to debug complex, multi-disciplinary systems where a software bug might actually be an electrical noise issue or an optical alignment problem., * Domain knowledge in optics, photonics, or telecommunications (specifically concepts like optics IL, RL PDL, and polarization states).
- Experience designing and building Graphical User Interfaces (GUIs) for scientific or test measurement equipment.
- Experienced in Linux driver/App development
- Familiarity with lab equipment (oscilloscopes, spectrum analyzers, logic analyzers) for debugging software-hardware interactions.
- Instrument/equipment control language such as LabVIEW.
Benefits & conditions
130000.00 To 170000.00 (USD) Annually, * Salary will be commensurate with experience, and the level of the role may vary. We are ideally looking for a Senior Software Engineer.