Position: Intermediate/Senior .Net Developer
Type: 12-months contract, could renew/extend
- Minimum 4 years C# and Net experience integrating with instruments and process data using in an in-depth way to filter our data. 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.
- You’ve built complex software before. Perhaps you spent the past few years building safety-critical medical device software. Or you built tech infrastructure for banks to ensure correctness and timeliness of financial transactions. Or you wrote CAD software, image processing apps, or operating systems. Whatever it was, it’s not your first time working with nuanced, complex systems.
- You love clean code and robust design. You’ve written enough code to appreciate simple, elegant solutions over unnecessarily complex acrobatics. You know that technical design is evolutionary and unpredictable, and yet some upfront planning is well worth the effort. You’re convinced that good code is readable, maintainable and testable.
- You love working across the .NET stack. You’ve worked in most parts of .NET and utilized tools its community, so you’re ready to dig in wherever needed: WPF, XAML, LINQ, MEF, SQL Server, build tools, etc.
- You love learning about users. You enjoy learning about user needs and exploring how you can utilize your dev skills to improve and expedite their work. We deliver cutting-edge scientific software that enables scientists to make their next breakthrough in cancer research, immunology and single-cell biology. Due to the depth and breadth of the domain, it’ll take time to fully understand your users, but that doesn’t stop you from trying.
- You enjoy helping others learn from your experience. You love assisting other team members in learning from your experience and are always looking to learning new things yourself.
- You understand that perfect is the enemy of the good. You understand that over-engineering is a slippery slope. You can ship code and software that work simply with just enough functionality, while being open to iterating as needed to get towards better solutions.
- 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
- 7+ years of .NET and C# software development experience, preferably in medical devices, scientific instrumentation, image processing, or other types of mission-critical, complex systems
- 5+ 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
- 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)