OpsLevel Logo
Product

Visibility

Catalog

Keep an automated record of truth

Integrations

Unify your entire tech stack

AI Engine

Restoring knowledge & generating insight

Standards

Scorecards

Measure and improve software health

Campaigns

Action on cross-cutting initiatives with ease

Checks

Get actionable insights

Developer Autonomy

Service Templates

Spin up new services within guardrails

Self-service Actions

Empower devs to do more on their own

Knowledge Center

Tap into API & Tech Docs in one single place

Featured Resource

March Product Updates
March Product Updates
Read more
Use Cases

Use cases

Improve Standards

Set and rollout best practices for your software

Drive Ownership

Build accountability and clarity into your catalog

Developer Experience

Free up your team to focus on high-impact work

Featured Resource

The Ultimate Guide to Microservices Versioning Best Practices
The Ultimate Guide to Microservices Versioning Best Practices
Read more
Customers
Our customers

We support leading engineering teams to deliver high-quality software, faster.

More customers
Hudl
Hudl goes from Rookie to MVP with OpsLevel
Read more
Hudl
Keller Williams
Keller Williams’ software catalog becomes a vital source of truth
Read more
Keller Williams
Duolingo
How Duolingo automates service creation and maintenance to tackle more impactful infra work
Read more
Duolingo
Resources
Our resources

Explore our library of helpful resources and learn what your team can do with OpsLevel.

All resources

Resource types

Blog

Resources, tips, and the latest in engineering insights

Guide

Practical resources to roll out new programs and features

Demo

Videos of our product and features

Events

Live and on-demand conversations

Interactive Demo

See OpsLevel in action

Pricing

Flexible and designed for your unique needs

Docs
Log In
Book a demo
Log In
Book a demo
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.

Product
Software catalogMaturityIntegrationsSelf-serviceKnowledge CenterBook a meeting
Company
About usCareersContact usCustomersPartnersSecurity
Resources
DocsEventsBlogPricingDemoGuide to Internal Developer PortalsGuide to Production Readiness
Comparisons
OpsLevel vs BackstageOpsLevel vs CortexOpsLevel vs Atlassian CompassOpsLevel vs Port
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
© 2024 J/K Labs Inc. All rights reserved.
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!