Skip to main content

Software Engineer

Technology
Chemelex
Kitchener, Canada$90,000 - $150,000 /year1 months agoUntil 2026-05-15

Job description

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.

¿Te interesa este puesto?