Senior Backend Engineer — .NET / Azure
Company Description
Codem Inc. is a global eCommerce transformation partner that combines deep industry experience with advanced AI-driven technology to build scalable, cost-efficient digital businesses. The team has created and grown multi-billion-dollar eCommerce operations, launched sites in over 50 countries, and supported brands across Health & Beauty, Apparel, Consumer Electronics, and Home Goods. With experts who have worked at leading organizations such as Amazon, HP, McKinsey, KPMG, and Singapore Post, Codem helps clients navigate complex digital and operational challenges. The company specializes in custom applications, sophisticated Shopify solutions, and robust DevOps on Google Cloud and AWS, while cutting costs by leveraging specialized teams in the US, Singapore, and India. Codem operates from offices in San Francisco, Singapore, and Chennai and focuses on flexible, scalable services including capability assessments, dedicated outsourced teams, and turnkey eCommerce platforms.
About the job
DO NOT APPLY IF YOU HAVE LESS THAN 7 Years of experience. Immediate joiners preferred!!!
THIS ROLE NEEDS HANDS ON CODING. THERE WILL BE A CODING TEST DURING INTERVIEW. DO NOT APPLY IF YOU DON'T PREFER HANDS ON TESTS DURING INTERVIEWS.
You'll design, build and operate backend services on Microsoft Azure — event-driven services that process business messages, REST APIs that other teams and systems depend on, and the integrations between them. This is production code in a domain where a lost or mis-routed message is a business incident, not a log line.
What you'll be doing
Building and operating event-driven services on Azure — Functions, Service Bus, Event Grid — and the APIs around them
Designing for change: services that absorb a new message type or a new consumer without a rewrite
Owning what you ship, from the test suite through to Application Insights when something looks wrong in production
What we're looking for
Backend .NET depth — 7+ years with C# and .NET, with depth we'll explore in the interview. You think like both an architect and a coder. Specifically, we look for:
Modern .NET (8+) and dependency injection used as a working tool: service lifetimes and their consequences, the options pattern with configuration binding, typed HttpClient via IHttpClientFactory
Serialization treated as contract work — System.Text.Json naming and casing, how you handle a wire format that another system owns and you can't change
Async/await correctness, and why sync-over-async and fire-and-forget quietly lose exceptions
Design and testing as habits
Separation of concerns in practice: thin triggers and controllers, business logic behind interfaces, transport types kept out of the domain
You run what you write, and you test the failure paths. Unit tests with mocking, plus a clear view of what unit tests can't catch — composition, configuration, startup — and how you cover that gap
Clean code, code reviews and engineering standards matter to you
Security and configuration hygiene — managed identity and Entra ID over connection strings; secrets never in source control.
The broader stack (working proficiency): ASP.NET Core, REST and API-first with OpenAPI; Entity Framework Core; SQL Server, MongoDB or Cosmos DB; CI/CD with automated testing gates; Terraform; Application Insights; agile and DevOps ways of working.
AI-assisted development, with ownership — you use Copilot, Claude, Cursor or similar to move faster, and you can explain and modify every line they produce without them. We encourage AI on the job and we'll talk through your code in person.
Communication — you can walk a reviewer through a design decision, defend it, and change your mind when the evidence says to. Clear English, spoken and written.
How we hire
A live coding exercise in your own IDE, without AI assistance — a message-processing service against a provided template. We build it, run it and put real scenarios through it, including invalid payloads and downstream failures.
A technical interview built around your own submission: you'll walk through your code, explain your error-handling choices, and make changes live.
- A conversation with the client team.