Position: Intermediate/ Senior .Net Developer
Type: Permanent
Location: Markham, ON
JOB DESCRIPTION:
- Take our software to the next level. Develop our next gen .NET desktop product, and implement powerful data acquisition and analysis infrastructure, as well as delightful UI with powerful customer-facing features
- Translate requirements into code. Work closely with product owner, UX designer, biologists and product managers to understand nuanced user needs, implement features, seek feedback, and iterate
- Switch comfortably between front end and back end development work. Over time you should expect to become familiar with the entire code base
- Collaborate with a team of software developers, testers and product owner using Scrum methodology
- Understand, design and implement complex algorithms that control hardware instrumentation and/or process large data sets
- Contribute to the architecture and design of our applications
- Take ownership of a part of the product and oversee its maintainability and technical quality
- Progressively modernize our .NET code base and introduce features at a pace appropriate to technical and marketing needs
- Identify, analyze and resolve software issues and recommend enhancements or fixes
- Produce architecture documents, feature requirements and design documents
Qualifications:
- 4+ years of .NET and C# software development experience, preferably in medical devices, scientific instrumentation, image processing, or other types of mission-critical, complex systems
- 4+ years of Agile Scrum experience, either a developer, scrum master, or dev lead
- Bachelor’s / Master’s degree in Computer Science, Computer Engineering or a related field
- Strong development skills in C#, .NET framework (3.5 – 4.7) and C++ for desktop applications
- Strong knowledge of WPF, MVVM, XAML, WinForms, MEF, XML, LINQ, UI data binding, typed datasets, SQL Server, TSQL, and SSRS
- Practical experience applying different architectural patterns and styles (e.g., N-Tier or Plugin architecture)
- Strong background in asynchronous programming patterns and event driven applications
- Experience with Agile Scrum methodology, unit testing (e.g. NUnit), code repositories (e.g., Git, VSTFS), coding standards, code reviews, team tools (e.g., JIRA, Slack), and software testing
- Excellent interpersonal and communication skills
- Excellent practical judgement; when facing hard problems, you should know when to amp up efforts and when to suggest easier alternatives
- Genuine interest in the mission of helping scientists make their next breakthrough in medical research, paving way to improvements in the way critical diseases are diagnosed and treated
Must haves:
- Minimum 4 years C#, C++ and Net experience integrating with instruments and process data using in an in-depth way to filter our data (scientific data). This role is not just coding, and someone that has experience learning a complex domain and can show that they can learn this.
- Good Multi-thread experience
- Asynchronous design
- Good knowledge of engineering software principles
- Very good communication skills as they will be interacting with Electrical/ mechanical engineers, scientists, biologists, Product Managers.
Nice-To-Haves:
- Post-secondary education background in Biology, Chemistry or Physics
- Experience working with mass spectrometry, flow cytometry, microscopy or similar scientific products
- Working knowledge of digital imaging and digital signal processing
- Experience with hardware integration and hardware communication protocols (e.g., USB, TCP/IP, RS232)
- Experience with WIX installer projects
- Experience working within a medical device environment (e.g., ISO 13485, IEC 62304)