We are seeking an experienced and versatile Software Engineer to join a dynamic technical development team, focusing on the development of high-performance desktop applications for geoscience applications. This role combines advanced software engineering with scientific computing.
Key Responsibilities
- Design, develop, and maintain desktop applications for geoscience data analysis and visualization.
- Implement and optimize numerical algorithms and scientific calibration workflows.
- Work with low-level data from custom sensing hardware, including decoding and processing raw data streams.
- Develop high-performance user interfaces and visualization components using WinUI 3 and DirectX.
- Write clean, maintainable, and testable code in C# / .NET, using modern development tools and methodologies.
- Collaborate with cross-functional teams, including scientists, engineers, and hardware developers.
- Write and maintain automated unit tests using xUnit, and manage version control using Git.
- Support service communication using gRPC for high-performance inter-process communication.
Required Skills and Experience
- Strong programming experience in C# and the .NET ecosystem.
- Proficiency with WinUI 3/DirectX for desktop application and graphics development.
- Experience working with low-level or hardware-generated data.
- Familiarity with unit testing frameworks (xUnit) and modern version control practices (Git).
- Experience with gRPC or similar high-performance communication protocols.
- Strong analytical skills and a keen interest in applying software to scientific and engineering problems.
Desirable
- Experience with real-time or near real-time data processing.
- Knowledge of signal processing or sensor integration.