Software Engineer
EHT Group Ltd.
What You'll Work On
- Device Monitoring Service: Maintain and enhance our C#/.NET-based monitoring service that communicates with industrial Modbus devices (TCP, RTU, ASCII protocols)
- Message Queue Architecture: Design and optimize priority queues, blocking collections, and event-driven message processing systems
- Distributed Systems: Work with WebSocket-based communication, Protocol Buffers, and real-time data synchronization
- Cross-Platform Development: Support both Windows Services and Linux systemd services, with Docker containerization
- CI/CD Pipeline: Maintain and improve CircleCI workflows for automated testing, building, and deployment to AWS (S3, ECR, EKS)
- Hardware Integration: Understand and troubleshoot Modbus protocol communication, device polling strategies, and industrial hardware connectivity
Key Responsibilities
- Design and implement architectural improvements to our message processing pipeline
- Optimize queue management and message prioritization systems
- Debug and resolve issues related to device connectivity, polling intervals, and communication failures
- Write clean, maintainable code following best practices and design patterns
- Develop unit, integration, and end to end tests
- Collaborate with the team to improve system reliability, performance, and scalability
- Review code, provide technical guidance, and mentor other engineers
- Work directly with hardware devices to change settings an monitor settings remotely
Required Qualifications
- 5+ years of professional software development experience
- Exceptional problem-solving skills and ability to debug complex distributed systems
- Strong grasp of fundamental coding concepts: data structures, algorithms, design patterns, and software architecture principles
- Deep understanding of message queuing systems and event-driven architectures
- Experience with priority queues, blocking collections, and concurrent data structures
- Proven ability to make sound architectural decisions and design scalable systems
- Experience with async/await patterns and multi-threaded programming
- Strong debugging skills and systematic approach to troubleshooting
- Experience with distributed systems and real-time data processing
- Familiarity with WebSocket communication and serialization protocols (Protocol Buffers, JSON, etc.)
- Experience with CI/CD pipelines and automated deployment processes
- Strong communication skills and ability to work collaboratively
- Language-agnostic mindset: Ability to quickly learn and adapt to new codebases and technologies
Pay Transparency
Chemelex’s pay scale is based on the expected range of compensation for this job and the employee’s work location. Employee pay within this range will be based on a combination of factors including knowledge, skills, abilities, experience, education, and performance. Where federal, state, or local minimum wage requirements exist, employee pay will comply.
Compensation Range: $90k-$150k
Depending on the position offered, employee may be eligible for other forms of compensation.
