
Senior .NET Developer
This position is open to applicants located in Calgary and Edmonton, Alberta, or Fargo, North Dakota.
About Us
Thread is revolutionizing how utilities manage critical infrastructure through our innovative UNITI platform. We help utility companies transform reactive maintenance into proactive asset management, reducing downtime and optimizing operations while supporting sustainability goals.
We're seeking an experienced Senior .NET Developer to join our engineering team building our next-generation utility asset management platform. You'll work on implementing new features and enhancing the UNITI platform that enables utilities to collect, visualize, analyze, and act on asset data from drone-captured imagery and various data sources.
Responsibilities
- Architect solutions that scale to millions of assets and define technical standards and best practices.
- Design, build, and deliver full lifecycle software development from inception to production.
- Design and develop high-performance applications using .NET and Microsoft Aspire.
- Implement modern API solutions with OData or GraphQL capabilities and Clean Architecture patterns.
- Create and optimize database schemas and queries for geospatial and time-series data.
- Work with geospatial data from drone imagery, GPS coordinates, infrastructure asset locations, spatial relationships, and time-series inspection data tracking asset conditions over time.
- Use PostGIS for spatial queries and analysis.
- Implement proper authentication, authorization, and security best practices.
- Deliver quality code with comprehensive automated tests, metrics, and monitoring.
- Evaluate and introduce new technologies and participate in technical strategy discussions.
- Guide and review changes to product features in line with product roadmaps.
- Lead others through example, mentorship, and teaching.
- Participate in hiring activities.
- Use data and user feedback to prioritize and plan feature development.
- Collaborate with cross-functional teams to translate utility asset management requirements into technical solutions.
Requirements
- Bachelor's or Master's degree in Engineering, Computer Sciences, Mathematics, or equivalent senior level experience.
- 5+ years of strong experience in software development using C#/.NET, .NET Core, and related technologies.
- Experience with building SaaS for SMB customers.
- Strong analytical and problem-solving skills with a proactive approach.
- Excellent communication skills and ability to collaborate effectively.
- Experience with Entity Framework Core and PostGIS Server optimization.
- Knowledge of unit testing frameworks (experience with Shouldly/NSubstitute is a plus).
- Familiarity with CI/CD and DevOps practices.
- Understanding of Clean Architecture patterns.
- Experience working in distributed system environments.
Nice to Have
- Experience in utility, energy, or infrastructure sectors.
- Knowledge of computer vision or ML integration.
- Experience with event-driven architectures.
- Contributions to open-source projects.
- Experience with Microsoft technologies.
- Experience with Kafka, RabbitMQ, or similar services.
Benefits
We believe in fair and transparent compensation. For this role, the salary range is $130,000 - $160,000 per year, depending on experience, skills, and qualifications. In addition to a competitive salary, our benefits include:
- Unlimited leave per the terms outlined in our policy (sick and vacation).
- Health, dental, vision, life, short-and long-term disability insurance options.
- 401(k)/RRSP.
- Professional development budget for conferences and training.
- Flexible work arrangements.
- Modern development equipment of your choice.
- Opportunity to work on cutting-edge infrastructure technology.
Our Engineering Culture
- Small, autonomous teams with direct impact.
- Focus on pragmatic solutions over perfect ones.
- Regular tech talks and knowledge sharing.
- Strong emphasis on work-life balance.
Call to Action
Interested in helping utilities prevent failures before they happen? We'd love to hear from you, even if you don't meet every requirement. Send us your resume and a note about what excites you about this role.
Apply for this job
*
indicates a required field