OpsLevel Logo
Product
Developer portal
Software catalog
Understand your entire architecture at a glance
Standards
Your guide to safe, reliable software
Developer self-service
Empower developers to move faster, risk-free
Integrations
Connect your most powerful third-party tools
Use Cases
Ownership
Build accountability and clarity into your catalog
Standardization
Set and rollout best practices for your software
Developer Experience
Free up your team to focus on high-impact work
Customers
Resources
All Resources
Our full library of resources
Pricing
Flexible and designed for your unique needs
Podcast
Podcast
Conversations with technical leaders
Blog
Blog
DevOps resources, tips, and best practices
Demo
Demo
Videos of our product and features
Tech talk
Tech talk
Our POV on technical topics
Guide
Guide
Practical resources to roll out new programs and features
DocsLog In
Talk to usTry for free
No items found.
Share this
Table of contents
Links will generate here
Home
Interview Processes

Take Home Programming Problem

Problem Description

In this problem, we’re going to take a small program and deploy it across multiple environments to publicly routable servers.

1. Clone the hello-svc repo    

This is a minimal “Hello World” HTTP service written in Go. It reads an env var named ENV and displays that in its output.  e.g., if ENV=production, then the service outputs

2. At a high level, your job is to set up this program to run on a publicly routable server in a repeatable fashion.    

Requirements

  • The service is running      
  • There should be at least two environments set up (e.g., one with ENV=production and another with ENV=staging).
  • You can use whatever domain name you like for these envs (e.g., env.yourname.com or just ec2-xx-yy-zz-ww.compute-1.amazonaws.com)
  • The service should listen publicly on port 443 (it’s fine to use a self signed cert or provision one from a CA like Let’s Encrypt)
  • The service should redirect port 80 traffic to port 443 with an appropriate HTTP status
  • It’s possible to view and/or query recent access logs for the service

Non-Requirements

  • You don’t need to have multiple instances per environment, but you should be able to explain how you’d add this.      
  • You don’t need to have isolation between environments, but you should be able to explain how you’d add this.

Use whatever software / technology you’re most comfortable to provision infrastructure and deploy the app.  e.g., Chef, Puppet, Ansible, Dockerfile, Terraform, k8s, AWS, DigitalOcean, some random VPS… the choice is yours.

Submission

Please try to spend at most two hours on this problem.  It’s better to have some parts fully complete and working vs. everything partially done, but not working.

When you’re done, please email the following to our technical recruiting team

  1. URLs for the environments you provisioned  
  2. a Git{Hub, Lab} link or a Git bundle with your solution

Evaluation criteria

In the on-site portion, you’ll walk us through your solution.  We’ll be looking at how you structured your code, how maintainable it is, and various tradeoffs you made.  We’ll also ask about how you would extend your code to support new functionality like isolation and redundancy.

OpsLevel Logo
Subscribe
Join our newsletter to stay up to date on features and releases.
By subscribing you agree to with our Privacy Policy and provide consent to receive updates from our company.
SOC 2AICPA SOC
Product
Software CatalogMaturityIntegrationsSelf-serviceRequest a demo
Company
About usCareersContact UsCustomersPartnersSecurity
Resources
Docs
Blog
Demo
© 1999 J/K Labs Inc. All rights reserved.
Cookie Preferences
Terms of Use
Privacy Policy
Responsible Disclosure
By using this website, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Data Processing Agreement for more information.
Okay!