Senior Backend Engineer - .NET, Docker - remote

Testdome
Posted 2 years ago
We Work Remotely
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.

Requirements
  • 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