Web-based IDEs for interviewing

Sep 1, 2021 - Feb 1, 2022

Overview

To address the limitations of screen sharing I developed a web application using Golang, Vue.js, Terraform and Yandex.Cloud to provide a comfortable and convenient coding environments during interviews. It offers a collaborative coding experience by sharing a full-fledged IntelliJ IDEs via Projector interface in browser with full access to terminal.

System Diagram

Autotest System

My Role

  • Developed the entire application from idea to implementation, with the first MVP version ready for testing within a week.

    • Researched existing solutions like Replit, GitHub Codespaces, and Gitpod before designing and developing the web-based IDE provisioning app.

    • Ended up with provisioning isolated VMs in the cloud with JetBrains IntelliJ IDEs and projector-server for browser access.

    • Leveraged Golang, Vue.js, terraform and Yandex.Cloud to build the app from scratch.

    • Implemented a timeout feature to gracefully shut down the VM after the interview duration.

    • Implemented a code upload functionality for later assessment of the candidate's solution.

  •  

  • Outcomes:

    • Interviewers could spin up IDEs in seconds and send job seekers a link for instant access to the IDE web interface. With the ability to access artifacts of an interview later.

    • Allowed for assessment of practical skills, including spinning up Kubernetes clusters or Gitlab instances for SRE engineers.

    • Enabled ability to check QA automation engineers' skills of writing CI pipelines and designing whole automation process.