Location: San Diego, CA (Onsite)
Department: Software Engineering
Reports To: Software Engineering Manager
Gamma Scientific is seeking an experienced and versatile Senior Software Engineer to design, develop, and deploy software solutions for advanced optical measurement, imaging, scientific instrumentation, and automated test systems. This is an onsite, hands-on engineering role requiring strong software development skills, system-level problem solving, and experience integrating software with hardware and laboratory equipment. The ideal candidate will be comfortable working across the full software development lifecycle, contributing to technical architecture, mentoring engineers, and solving complex hardware-software integration challenges in a small, fast-growing company.
-
Architect, design, develop, test, debug, and maintain software applications using C#, C++, Python, and other appropriate programming languages.
-
Develop and maintain desktop applications and user-friendly graphical user interfaces.
-
Design and implement software interfaces for scientific instruments, cameras, sensors, motion-control systems, and other hardware devices.
-
Develop and maintain hardware communication interfaces and protocols including Serial, TCP/IP, UDP, Modbus, CAN bus, EtherNet/IP, and related technologies.
-
Troubleshoot complex software, hardware, and system-level integration issues.
-
Develop and implement image processing and measurement algorithms, including dark noise subtraction, flat-field correction, filtering, edge detection, and related techniques.
-
Work with camera hardware and image acquisition systems, including CCD and CMOS sensors.
-
Participate in software architecture, design reviews, code reviews, and technical planning.
-
Provide technical leadership on software projects and mentor other software engineers.
-
Contribute to legacy software maintenance, modernization, and migration efforts.
-
Collaborate with cross-functional engineering teams to define requirements, develop solutions, and meet project schedules.
-
Create technical documentation, product documentation, user manuals, procedures, and software specifications.
-
Support customer installations, software deployments, system integration, training, and field troubleshooting as required.
-
Travel up to approximately 10% for customer installations, system integration, training, and support activities.
-
Perform other duties as necessary.
-
Bachelor’s degree or higher in Computer Science, Computer Engineering, Electrical Engineering, or a related engineering or technical discipline.
-
8–10+ years of professional software development experience.
-
Strong knowledge of software engineering principles, object-oriented design, software architecture, and full software development lifecycle practices.
-
Expertise in C# and strong proficiency in C++ and Python.
-
Experience with the .NET Framework/.NET and Visual Studio.
-
Strong experience developing and debugging multithreaded software and complex desktop applications.
-
Experience with hardware-software integration and communication with external devices.
-
Experience with software-hardware communication protocols such as Serial, TCP/IP, UDP, and Modbus.
-
Experience working with substantial legacy codebases while maintaining clean, readable, and maintainable code.
-
Strong analytical, mathematical, and problem-solving skills.
-
Excellent written and verbal communication skills.
-
Ability to work independently with minimal supervision and provide technical leadership when needed.
-
Ability and willingness to work onsite at our San Diego facility.
-
Educational or practical background in Physics, Optics, Photonics, or related scientific disciplines.
-
Knowledge of spectroradiometry, photometry, colorimetry, or light metrology.
-
Experience with scientific instrumentation, light measurement equipment, electronic laboratory equipment, or commercial display equipment.
-
Experience with image processing, computer vision, camera SDKs, CCD/CMOS sensors, or automated image acquisition.
-
Knowledge of firmware development or embedded programming; experience programming or debugging firmware is a plus.
-
Experience with motor communications, motion control, controls, and automation systems.
-
Experience with automation protocols such as CAN bus, EtherNet/IP, or related industrial communication protocols.
-
Experience with Windows Presentation Foundation (WPF) or similar desktop UI frameworks.
-
Experience with Linux and cross-platform software development.
-
Experience with version control systems such as Git or Mercurial.
-
Experience leading software projects, mentoring engineers, or serving as a technical lead.