Senior Software Developer
- Toronto, ON, Canada
The expected compensation range for this position is: $100,000 to $120,000.
Applications open in a new tab.
Job details
- Pay
- The expected compensation range for this position is: $100,000 to $120,000.
- Experience
- 5+ years of professional experience with C# and .NET, with hands-on experience in both .NET Framework and modern .NET (8 or later).
- Posting language
- English
- Posted
Original job description
This is a hybrid position, currently requiring a minimum of two days per week onsite at our office located at 2 Queen St. E in Toronto, ON.
The Role
We're looking for an experienced developer to join TripArc as a Senior Software Developer. You'll work on a mature travel platform that thousands of travel professionals rely on every day, and you'll help us modernize it: moving legacy .NET systems onto Azure-hosted microservices while the business keeps running.
You'll own problems end to end. Some days that means untangling a decade-old stored procedure to find out what the business rule actually is. Other days it means designing a new service, or fixing something in production. If that variety sounds energizing, you'll fit in.
We expect our seniors to write excellent code themselves. Our developers use AI tools such as GitHub Copilot where they help, but you are accountable for every line you ship, and that only works if you could have written it yourself. AI is good at plausible code and weak at the undocumented rules buried in legacy systems. The people who catch its mistakes are the people who know the code.
You'll work in two-week sprints with QA, Product, and stakeholders. We expect you to drive your own work: clarify requirements, push back when a timeline doesn't make sense, and help teammates who are stuck. We use JIRA and Confluence heavily, so your tickets and design docs should be clear enough for anyone to pick up where you left off.
What You'll Do
- Design, build, and ship features across our stack, from legacy .NET Web Forms applications to modern .NET microservices running on Kubernetes.
- Write, debug, and optimize C# and T-SQL hands-on, including tracing problems through legacy code you didn't write.
- Lead migration work: breaking monolithic components into loosely coupled services without compromising reliability.
- Write and tune complex SQL queries and stored procedures, and work with MongoDB where document storage fits.
- Build and maintain event-driven integrations with NServiceBus and Azure Service Bus.
- Use AI-assisted tools where they save time, and verify their output against how the system actually behaves.
- Work with Product and QA to scope work, estimate effort, and balance competing priorities within sprint commitments.
- Own your work through its full lifecycle: design, implementation, testing, deployment through Azure Pipelines, and production support.
- Contribute to architectural decisions and help set patterns the wider team can follow.
- Support other developers through code reviews, pairing, and knowledge sharing, including helping junior developers build strong fundamentals and use AI tools without leaning on them blindly.
- Keep documentation and JIRA tickets current so the team can see progress and blockers.
What We're Looking For
Must have
- 5+ years of professional experience with C# and .NET, with hands-on experience in both .NET Framework and modern .NET (8 or later).
- You can write complex C#, T-SQL, and service code from scratch without tool assistance, and explain every line you ship.
- Strong SQL Server skills: complex queries, performance tuning, and working in large, intricate schemas. Understanding of transactions and rollback strategy is essential.
- Experience building and consuming RESTful APIs, and working with Entity Framework or a similar ORM.
- Experience taking part of a legacy system to a production microservice, or a clear grasp of the patterns involved: service boundaries, async messaging, and eventual consistency.
- Familiarity with message-based architectures. NServiceBus or Azure Service Bus experience is preferred.
- Working knowledge of Docker and Kubernetes in a cloud environment.
- Exposure to CI/CD pipelines, ideally Azure Pipelines.
Nice to have
- MongoDB experience is a plus.
- Angular experience is a plus. This role is primarily backend, with occasional front-end work.
- Experience with Azure Data Factory, Semantic Kernel, or integrating LLM-based features is a nice-to-have, not a requirement.
How You Work
- You take initiative. When you see a problem, you investigate it. When requirements are unclear, you ask the right questions or make a reasonable assumption and keep moving.
- You verify, you don't just trust. Whether code came from you, a teammate, or a tool, you test it, and you know where mistakes hide: transactions, data-dependent behavior, concurrency, and implicit business rules in stored procedures.
- You're comfortable using AI coding tools but not dependent on them, and you understand what can't be shared with them: no production data, customer information, or secrets.
- You communicate clearly, whether that means explaining a trade-off to a Product Manager, documenting a design decision, or helping a teammate understand a concept.
- You're comfortable with ambiguity and can make progress without every detail spelled out.
- You balance speed with quality, and you know when "good enough" really is good enough.
- You write documentation you'd want to read, because the next person to pick up your work will thank you.
Our Technology
Our platform runs on Azure, and we are actively modernizing it. You will work with:
- Backend: modern .NET microservices alongside legacy .NET Framework applications, with Entity Framework for data access and internal libraries built on top of the framework.
- Data: SQL Server with complex schemas and heavy use of stored procedures, MongoDB for document storage, and Redis for caching.
- Messaging: NServiceBus and Azure Service Bus.
- Infrastructure: Docker containers on Kubernetes, deployed through Azure Pipelines, with Git for source control.
- Frontend: Angular with Angular Material, plus legacy .NET Web Forms.
- Tools: JIRA and Confluence for tracking and documentation, GitHub Copilot for AI-assisted development, and VS 2022, VS Code, or Rider.
Why This Role
You'll have real influence over how we modernize our platform. This isn't a maintain-the-status-quo position: we're actively re-architecting systems, and you'll help shape those decisions. Our team values pragmatism over dogma. The goal is software that works for our users, not chasing trends.
You'll also work with people who care about craft. We want developers who understand their code deeply, use new tools thoughtfully, and keep their fundamentals sharp.
Who Thrives Here
- People who take ownership of their code, their commitments, and the outcomes.
- Developers who would rather figure something out than wait to be told what to do.
- Those who see legacy code as a puzzle to solve, not a burden to complain about.
- Team players who make everyone around them better.
- People comfortable in a fast-paced environment where priorities sometimes shift.
Our team is made up of people who are smart, low-ego, and accountable for their results. If you want autonomy, interesting technical problems, and the chance to shape how a platform evolves, we would like to hear from you.
Compensation
We provide a competitive compensation package with a strong pay-for-performance rewards approach. Employees have the opportunity to participate in incentive programs and compensation tied to business and individual performance. The expected compensation range for this position is: $100,000 to $120,000.
The actual compensation may vary depending on local market conditions, geography, and relevant job-related factors such as knowledge, skills, qualifications, experience, and education/training.
We are committed to providing employment accommodation in accordance with the Ontario Human Rights Code and the Accessibility for Ontarians with Disabilities Act. If you require accommodation due to a disability at any stage of our hiring process, please advise us when completing your application.
More about this job
Responsibilities
You will design, build, and modernize legacy .NET systems into Azure-hosted microservices while maintaining existing platform reliability. The role involves hands-on coding, complex SQL query optimization, and collaborating with QA and Product teams to deliver features in two-week sprints.
Requirements
Candidates must have 5+ years of professional experience with C# and .NET, including both .NET Framework and modern .NET versions. Strong proficiency in SQL Server, microservice architecture patterns, and cloud-based deployment environments is essential.
Skills
- C#
- .NET
- T-SQL
- SQL Server
- Microservices
- Azure
- Kubernetes
- Docker
- RESTful APIs
- Entity Framework
- NServiceBus
- Azure Service Bus
- MongoDB
- CI/CD
- Azure Pipelines
- Angular
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
Keywords
- C#
- .NET
- T-SQL
- SQL Server
- Azure
- Microservices
- Kubernetes
- Docker
- NServiceBus
- Azure Service Bus
- MongoDB
- Entity Framework
- RESTful APIs
- CI/CD
- Azure Pipelines
- Angular
- Web Forms
- JIRA
- Confluence
- GitHub Copilot
- Software Development
- Legacy Systems
- Cloud Computing
- Event-driven Architecture
- Performance Tuning
- Agile
- Sprints
- Backend Development
- System Architecture
- Deployment