View all jobs
Senior Software DeveloperWoodbridge, Ontario
- Provide skills and be responsible for design and development of Data Acquisition Subsystem of Chromatography Data System Software.
- Map requirements to specs that lead to design and architecting a software solution(s).
- Design modules according to established layered architecture.
- Understand boundaries, interfaces and roles and responsibilities for major subsystems and modules of the application.
- Be able to quickly ramp up knowledge about analytical chromatography instrumentation and workflows (LC, MS, GC).
- Provide skills dealing with distributed client/server architectures, be familiar with different types of inter-process communication mechanisms.
- Work closely with solution architects and other developers on solution design.
- Documenting and communicating design/architecture.
- Be a team player and put team objectives above personal ambitions.
- Ensure that software design conforms to the documented architecture.
- Identifying and mitigating technical risks.
- Work on low-level device control protocols through variety of transports TCP/IP, RS232 etc.
- Work on low-level device control protocols through 3rd party vendor APIs.
- Be part of distributed Agile team. Develop automated tests as a part of software deliverables.
- Be able to quickly and efficiently switch if required between different application layers: UI, core logic, devices, data persistence etc.
- A Bachelor’s Degree Computer Science, Software Engineering, Electrical Engineering, or equivalent.
- Hands-on experience with developing, deploying and maintenance of complex windows desktop applications and instrument work experience is required.
- Experience in developing applications using SDLC process and agile / SCRUM methodology.
- Desktop application development experience.
- Experience developing software in a similar domain with laboratory devices/instruments is a big plus.
- Nice to have: Issue tracking tools (Jira), experience with CI/CD tools (team city, Jenkins, etc.).
- Savvy with tools and technologies (including but not limited to .NET, .NET Core; C#; WPF MVVM; C++; JSON, Networking, XML, GRPC.
- Nice to have: Automation test tools (NUnit, MS test, Fit, SpecFlow)
- Ability to work with distributed cross-functional teams - excellent group interaction and negotiating skills.
- Customer focus, value driven – passionate about working to develop applications to address customer needs.
- Demonstrated organizational skills with the ability to handle multiple tasks with different priorities.
- Excellent verbal and written communication skills.