Senior Backend Engineer – .NET, Docker

Website TestDome

At TestDome, we make it easy for companies to screen job applicants with work-sample tests for multiple skills. We offer assessments for various disciplines, including programming, data science, quality assurance, accounting, marketing, customer support, project management, and more. Some of our customers include Ernst & Young, PayPal, and Turkish Airlines.

We are fully remote with a small and dedicated team based around the world. The team works in an agile style using the Kanban framework, prefers documentation over chat, and aims for async communication. You will be working alongside six full stack developers and a quality assurance engineer. To learn more about the way we work, check our public company manual.

About the job

A big part of TestDome is our LiveCoding infrastructure. It fuels our online programming assessments that are available for multiple languages, like C#, JavaScript, or SQL, and platforms, like ASP.NET Core, Java Spring, or Angular.

LiveCoding infrastructure consists of evaluators – units that are capable of executing programming code on request and testing it against a set of criteria. Evaluators are written in .NET and C# and are hosted in Azure as Linux Docker containers or Windows virtual machines (we plan to migrate from Windows entirely to Linux). These units communicate with each other and with the user-facing application via TCP and, in some cases, HTTP.

In this role you will have the following responsibilities:
Implement new evaluators
Support existing evaluators for various languages and platforms
Maintain existing infrastructure in Azure, mostly Docker and Linux based, written in .NET and C#
Architect and implement new Live Coding features and infrastructural changes
Improve performance, scalability, security, and monitoring of existing infrastructure
You can also expect to work on our online IDE rework that will involve YJS and potentially Language Server Protocol.

Experience with .NET and C#
Experience with Docker
Experience with Linux
Ability to work efficiently with various programming languages and platforms
Experience with network protocols like HTTP, TCP, DNS
Experience in system design and architecture

Nice to have
Familiarity with Azure
Familiarity with CI/CD, in particular Azure Pipelines
Familiarity with message queues (ideally NetMQ)

Hiring Process
We have a structured approach to hiring and successful applications will progress through each step:
First, take this TestDome programming test to assess your skills. It takes about 30 minutes and includes two Docker questions, a Linux question, a C# question, and it will ask you for a link to your online resume file (e.g. Google Drive link, make sure to upload it beforehand), and your expected salary range. Naturally, we dogfood our product. You’ll get a chance to see what we are building to make hiring better.
A technical video interview with an engineer from your future team
A video interview with a manager from your future team
Job offer

What we offer
Salary from $50.000 to $85.000 USD per year
Work from anywhere with flexible working hours
We subsidize the cost of a coworking space
Work-related education costs are covered
Paid public holidays based on where you live
24 days of paid vacation
Paid sick leave
Paid special leave, including parental leave

To apply for this job please visit