Remote Golang Dev at CodePen
Job link here
Hello, friend! We’re looking for a strong systems engineer to help push CodePen’s back-end towards excellence. The applicant must be talented, dedicated and have a strong background in Golang, building distributed systems, and a willingness to champion our switch from Ruby for our non-web services.
Knowledge of each language with a concentration in Go would be ideal. The candidate must be willing to work remotely (or on-site in Bend, Oregon) with a small team. Is that you?
CodePen offers a lot in terms of the team, product, flexibility, relaxed work environment, benefits, and interesting technical problems to solve.
We’re a small team with a big love for our community. The 7 of us that all support and push each other forward. We’re proud of the work we do, and we’re close-knit and happy. Politics are non-existent, and our team is diverse in experience and background.
We support 2m CodePen users who’ve created over 20m Pens. Our users are creative, excited and supportive. No trolls here.
Relaxed Work Environment
While we take our role seriously, we’re not building banking software, so the pressure is pretty low. Our investors are proud that we’ve reached profitability, and we’re not pushed to raise another round, so 40-45 hours a week are the norm. As parents, we accommodate and understand family situations and are flexible to allow you to work in a way that supports your life. In other words, 60 hour weeks are not happening.
We all work remotely and live in our favorite cities. Our team is in Australia, Oregon, Illinois, Florida, Seattle and Virginia. We build the organization around a “remote-first” culture and have worked this way for the last 5 years. We recently built a sweet office in Bend, Oregon if you’d like to work in a mountain town with great snowboarding! But, with only two of us here, this is not a power center or central office. Your location is your choice.
We have great insurance, unlimited vacation, and a gym benefit so you stay healthy. We’re in this for the experience of working on our own terms. As a member of the early team, you’ll get a significant amount of equity.
Interesting Tech Problems
This is where you, the systems programmer, would truly shine. We have tons of ideas for where you’d fit in.
We’re working on a new concept that’d require piping info into a number of systems, including MySQL, Elasticache, graph DBs, Redis, Firestore, and others. Keeping them in sync using tools like AWS Kinesis or other pipelines will be the norm. Maybe you’ll guide us towards benthos over Kinesis, or you have your own experience to add. Either way, the job will require your special skills!
APIS, SERVICES, AND DISTRIBUTED SYSTEMS
As a monolith, the responsibilities of CodePen are very blended throughout the app. We hope that with the introduction of a new systems engineer, we can begin to decouple the front end of CodePen from the Rails stack and create clear responsibilities delineated by clean APIs. We’ll communicate in swagger, GraphQL, and friends rather than REST and HTTP. You’ll lead the charge!
We want a person who’s dealt with distributed systems and the pain points contained therein. While a monolith, there are portions of CodePen that are made up of distinct services. While we’ve done our best to make these ergonomic, we’ve got a lot of work to do. We’d like advice on logging, monitoring, tracing based on best practices, not just what we read about on Hacker News. Is AWS x-ray better than dumping data to Papertrail app? Probably. Can Prometheus help us identify slow calls? Let’s hear your opinion.
THE PROJECT EDITOR
The Project Editor is another area we’d love to vastly improve. Right now the editor fakes a file system in the browser, and on the back-end each user gets a Docker container which mounts an Amazon EFS volume inside of it. We write to EFS and run Gulp/webpack over the files to produce static output, which we serve via Nginx on different hosts also mounting EFS.
We’ve solved some performance bottlenecks with EFS but we still have a way to go and we’d love to blue-sky another way to handle the processing. Your job would be to investigate stateless ways to handle preprocessors to supplant our stateful gulp-based system. Whether that’s using tools like Ziet, or running our own docker containers, we’ll turn over every stone.
SUPPORT OF OUR CURRENT STACK
While we wish we could offer a full-time Golang position, there’s still a ton of Ruby in this stack. You’d need to be comfortable performing surgery on the CodePen code base. That means dealing with Rails and all of its darkness and light. There will always be some portion of CodePen running Rails to service the front-end requests, handle authentication, etc. However, the faster we port non-web responsibilities to Go, the less of this we’ll have to do.
We’re chock-full of great rails/react developers. We’d like to make it clear that while web development is a skill we’d expect you to be familiar with, this is more of a traditional back-end role. Don’t apply unless you know your way around designing services, API’s, networking, AWS, etc. Oh, and Golang. So much Golang.
Summary / Applications
We’re looking for someone who’s smart, fun, and capable to join our team. You’d have tons of autonomy and huge levers to pull. If you’re interested, please reach email us email@example.com