Lead Software Engineer

Masson Appointments Ltd
Crawley, United Kingdom
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
£ 85K

Job location

Crawley, United Kingdom

Tech stack

ASP.NET
.NET
API
Amazon Web Services (AWS)
Azure
C Sharp (Programming Language)
Cloud Computing
Software Quality
Code Review
Databases
Continuous Integration
Data Infrastructure
Data Sharing
Data Warehousing
Relational Databases
Dependency Injection
DevOps
Entity Framework
Python
Key Management
PostgreSQL
Enterprise Messaging Systems
Microsoft Dynamics
Microsoft SQL Server
MySQL
Nunit
OAuth
Azure
Software Engineering
SQL Databases
SQL Server Integration Services
Data Streaming
Systems Integration
Cloud Platform System
Backend
Information Technology
Api Design
Software Coding
REST
Domain Driven Design
Serverless Computing
Docker
Key Vault
Web Api

Job description

We are looking for a highly capable Senior C# / .NET Engineer to work directly with the company's Founders on high-impact client projects across multiple industries.

In this hands-on, individual contributor role, you will design scalable architectures, build clean APIs and cloud infrastructure, and take complete ownership of production systems. As a senior technical voice, you will also elevate engineering standards and mentor growing team members.

You will be joining a growing business, building technology that makes operational businesses more effective. Current work spans workforce management in aviation and engineering maintenance in transport. These are fascinating and complex domains where software meets physical operations. The primary platform is on Microsoft Azure, but working across a range of enterprise technologies depending on client needs.

Responsibilities:

· Mentor and coach other developers: set the bar for code quality and engineering practice, help them grow into harder problems, and take the technical lead where it makes sense

· Own technical direction and architecture across client projects: domain modelling, service boundaries, data flow design

· Design, build, and maintain REST APIs and backend services in C# on .NET (this is still a hands-on role)

· Build integrations with external systems: HR platforms, asset management tools, data warehouses, messaging systems

· Write and optimise SQL queries, design database schemas, and maintain data integrity

· Establish and uphold engineering standards: code review, testing, CI/CD, conventions

· Work with Azure services day-to-day: Functions, App Service, Service Bus, Blob Storage, Key Vault

· Contribute to hiring, onboarding, and the technical growth of the team

Requirements

· Language: C# on .NET (primary, and what you'll write every day)

· Frameworks: ASP.NET Core (Web API), Azure Functions (isolated worker)

· Database: SQL Server, accessed via Entity Framework Core and/or Dapper (you'll write queries, design schemas, and optimise performance)

· Cloud: Microsoft Azure (Functions, App Service, Service Bus, Blob Storage, Key Vault, AKS)

· Data platform: Microsoft Dataverse (you'll integrate with it, not build on it)

· Auth: Entra ID (Azure AD), OAuth 2.0

· DevOps: Azure DevOps (CI/CD pipelines), Docker, Azure Container Registry

You don't need experience with everything here. Strong C# and SQL are the foundation. The Azure-specific skills can be learned on the job.

Requirements:

You Must Have

· 7+ years professional software development experience, primarily in C#/.NET, including time leading, mentoring, or coaching other engineers

· People leadership: you've coached, mentored, or line-managed developers, and you get satisfaction from making the people around you better, as well as from writing good code yourself

· Software design maturity: you think in terms of domain models, clean architecture, and separation of concerns. We build with strongly typed C#, dependency injection, repository patterns, and domain-driven design. You build scalable, maintainable systems, and you set that standard for the team

· API development: you've designed and built REST APIs with ASP.NET Core, understand HTTP, status codes, authentication patterns

· SQL: comfortable writing queries, designing tables, understanding execution plans. You've worked with a relational database (SQL Server, PostgreSQL, MySQL) as a core part of your job

· Cloud experience: you've deployed and maintained services in production on a cloud platform (Azure, AWS, or GCP). You understand how things like storage, messaging, and secrets management work

· Testing discipline: you write tests for your code (xUnit, NUnit, or similar), care about reliability, and instil the same habits in the team

· Judgement and ownership: you can take a problem, set the approach, build it, and ship it, and you know where to invest effort and where not to

Nice to Have:

· Experience with Microsoft Azure specifically (Functions, App Service, Service Bus)

· Async C# (async/await, Task-based patterns)

· Hands-on experience with Entity Framework Core and/or Dapper

· Docker and container deployment

· Experience with Dataverse, Dynamics 365, or Power Platform

· Experience building integrations with third-party APIs and file-based data exchanges

· Familiarity with infrastructure-as-code

· Experience establishing engineering practice in a small or growing team

· Exposure to Python (some of our existing services are written in it)

· A computer science, engineering, or mathematics degree: the grounding in fundamentals it gives tends to show in how people approach hard problems, Builders. You want to write code that solves real problems. You get satisfaction from seeing something you built running in production and used., * .NET

  • Azure Active Directory
  • Backend Development
  • C Development
  • Coaching & Development
  • Coding Skills
  • REST APIs
  • SQL Server Integration Services
  • Testing and Deployment

About the company

Multipliers. You make the people around you better. You review thoughtfully, explain your reasoning, and help others take on work they couldn't before. Pragmatism. You know when to engineer something properly and when a simpler approach will do. You don't over-engineer. Curiosity. When something breaks, you keep going until you understand the cause. When you encounter a new system or API, you read the docs and experiment. You're comfortable working in systems you don't yet know. Ownership. Your code, your responsibility. When something breaks in production, you want to be the one who can put it right.

Apply for this position