About the Role
We are looking for a motivated and talented Software Engineer to join our development team. This role is ideal for an individual with 3+ years of professional experience who is passionate about building robust systems that bridge software and physical devices. You will play a key role in designing, implementing, and maintaining the software that enables communication and data exchange with various hardware devices, primarily utilizing the .NET ecosystem (C#).
Key Responsibilities
- Develop and maintain applications and services in C# using the .NET ecosystem.
- Design and implement services that utilize communication protocols (e.g., Serial, TCP/IP) to interface with external hardware devices and sensors.
- Write clean, efficient, and well-documented code following established best practices and coding standards.
- Collaborate with hardware and product teams to define device APIs and integration requirements.
- Troubleshoot and debug complex issues that arise in device communication, concurrency, and data handling.
- Participate in code reviews to ensure code quality, performance, and adherence to architectural guidelines.
- Develop unit and integration tests to ensure the reliability and stability of the communication layers.
Required Qualifications
- 3+ years of professional experience in software development.
- Proven proficiency with a High-Level programming language (e.g. C#, Java).
- Solid understanding of object-oriented programming (OOP) principles and design patterns.
- Experience with one or more common device communication protocols (e.g., TCP/IP, Serial Port (RS-232/485), MQTT, HTTP/REST).
- Familiarity with concurrency and multi-threading concepts relevant to handling real-time device data.
- Bachelor's degree in Computer Science, Engineering, or a related technical field (or equivalent practical experience).
Nice-to-Have Skills
- Familiarity with cloud platforms (Azure, AWS)
- Understanding of industrial protocols (e.g., Modbus, CAN bus)