Skip to content

Instantly share code, notes, and snippets.

@tweibley

tweibley/post.md Secret

Last active April 18, 2017 02:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tweibley/1fb7114ab6f89382b8fdca8e2c0ef2e1 to your computer and use it in GitHub Desktop.
Save tweibley/1fb7114ab6f89382b8fdca8e2c0ef2e1 to your computer and use it in GitHub Desktop.

We are looking for two new people to join our Operations team and work with us as we move Basecamp to the cloud. You will help us keep our existing infrastructure stable while we move every application the cloud. As well as helping us to keep those 9's of uptime, this is an opportunity to help shape the future of Basecamp, the company. You'll be joining our existing team of Blake, Eron, John, Matthew and Nathan who are already working to make our operations great.

It's obvious our team is pretty heterogenous right now. We want to change that. We want strong, diverse teams built from different backgrounds, experiences and identities at Basecamp. We’re ready for the ongoing work that goes into building an inclusive, supportive place for you to do the best work of your career. Our workplace and our benefits support a sustainable, healthy relationship with your work. The majority of our ops team has been at Basecamp for more than 5 years!

Basecamp works from 32 different cities, spread across 6 countries. You can work from anywhere in the world, but your normal working day should overlap with 3 to 5 pm Pacific time, or 8 to 10 am eastern time.

About you

In broad strokes, Managers of One thrive at Basecamp. We are committed generalists, eager learners, conscientious workers, and curators of what's essential. We're quick to trust. We see things through. We're kind to each other, look up to each other, and support each other. We achieve together. We are colleagues, here to do our best work. We frequently joke that the Ops team is like a big family -- because we care for and treat each other like family members.

We're all quite different people (and we stumble, fall, reach, and achieve just like anyone!) but these are fundamental attitudes we share. What floats your boat? What lights a fire in you? What keeps it burning?

We aren't looking for ideological clones, but we are looking for people who share our basic values and beliefs about how to write good software and run stable infrastructure and applications.

As an experienced Ops person, you should be very familiar with Ruby on Rails, Ruby in general and all the normal frontend components. You've used the Percona Toolkit for years and know that Redis is the most stable part of the stack. If you are like us you find writing new tooling in Go to be a pleasure, but you are also comfortable with good old Bash, Ruby, and Python. (We have a mostly hate relationship with Java.) You enjoy the excitment of putting out the occasional fire and you have a vision for building stable, reliable and performant systems that create less work, not more.

You recognise yourself in these statements:

  • You are an excellent communicator. You know how to clearly express your ideas in writing, or speaking with your colleagues
  • You are comfortable under pressure (or want to learn how to be)
  • You love unwinding tricky problems, finding the causes and fixing them for good
  • You think running applications at scale on AWS and GCP is exciting and want to own making that happen with the latest tools and techniques
  • You take pride in your work with our without accolades from others
  • You care about your coworkers and want to make their lives better
  • You enjoy working across teams to help ship new features and fix bugs
  • You want to conduct complicated work behind the scenes without any interruption to our customers

About the work

Here are some examples of the kind of work you'll be doing. You might not know how to do everything below, but you do know how to start looking and learning. Every single day, you'll get to work across teams to support Basecamp internally and externally:

  • Converting a legacy Rails app from using Solr to Elastic Search
  • Upgrading to Terraform 0.9
  • Migrating 100's of TBs of files from local object storage to the cloud
  • Right sizing autoscaling groups on AWS for an application that was just moved to the cloud
  • Building one-off processes to move existing objects from local storage to cloud storage
  • Debugging broken cron monitoring scripts so we remain at "Nagios 0"
  • Improving the processes around onboarding and offboarding employees and their accounts
  • Upgrading applications to use the latest terraform version
  • Making sure we continue to have a 99.9% delivery rate for the tens of millions of emails sent from our infrastructure monthly
  • Working on automated backup and restore processes via chat-ops for databases moving to Aurora
  • Containerizing a Rails 3 application and it's dependencies for local development with Docker Compose

You'll be working hand-in-hand with a team that is happy to answer questions and share their collective wisdom at each step of the way. You'll make processes simpler, make deployments faster, and in general help Basecamp maintain our calm company culture.

You’ll help us support customers directly. Everyone at Basecamp participates in Everyone On Support every few months, and you’ll help with escalated technical issues.

We’re also staunch supporters of the open source community. Not only through Rails, but plenty of smaller projects as well. We want to give back and share our tools, and you'll get help to do that too.

How we work

We schedule two week iterations for each application we move to the cloud. Sometimes that takes 5 iterations and sometimes it takes 10 before an application is shipped. We do cool down iterations so we can catch our breath and pay down any debt we've built up. We have a shared on call responsibility which is about 1 week (5 week days, and 2 weekend days) a month. (The responsibility means you'll be online within 5 minutes of receiving an alert.) We constantly work on making the on call responsibility as calm as we can. We try to finish what we start vs leaving it for someone else to clean up. When there is a code red event (like a site outage), we all pitch in to help until we are sailing on calmer seas again.

Benefits & Compensation

Our pay is in the top 5%—or better!—of the industry for the matched role and experience, based in Chicago. No matter where you live. With two years under your belt, you'll take part in our profit-growth sharing program too.

Our benefits at Basecamp are all about helping you lead a healthy life away from work. While we have a lovely office in Chicago, it’s not where you’ll find foosball tables constantly spinning, paid lunches, or any of the other trappings that companies use to lure employees into staying ever longer at work.

Work can wait. Our benefits include 4-day Summer Weeks, a yearly paid vacation, a one-month sabbatical every three years, and allowances for CSA, fitness, massage, and continuing education. We have top-shelf health insurance and a retirement plan with a generous match. See the full list.

How to apply

We'd like you to use 1000 words or less to tell us about who you are, and why you’d be a great addition to our Ops team. We're looking for someone who is capable and eager to learn fast. It's our expectation that you'll do your best work here, and we'll help you grow professionally as you do so. Many of us that already work at Basecamp had doubts about if we were good enough when we applied. If you feel the same way, don't let that discourage you from applying. Your cover letter is your chance to shine, so take it!

Two writing samples

Please write up a mock outage event report about why Basecamp 3 chat broke for an hour. (You can assume we use Mysql, Redis, Resque and other common building blocks for Basecamp 3 chat.) Your audience is everyone working at Basecamp. Feel free to annotate your work and let us know why you wrote the report the way you did. What's important in the information you are sharing?

Pitch an idea about using something new to the rest of the Ops team. (Examples of past pitch topics: using Buildkite, Chef Guard, or Amazon Aurora. New methods of encrypting shared secrets. Using ssh certificate verification instead of keys.) You might want to consider the following questions: What makes this a good idea? What would we learn by tackling this? What resources would you need? What are the possible pitfalls? How will we measure success?

What happens after you apply

We'll take a look at your cover letter and your writing samples. If we like what we see, we'll be in touch to arrange a chat. We won't be looking for you to invert a binary tree on a whiteboard, but we'll want to talk about how you make technical decisions. We're hoping you'll be ready to start with us around April 2nd 2017.

Go for it!

We're accepting applications until May 5th, 2017.

As mentioned in the introduction, we’re eager to assemble a more diverse team. In fact, we’re not afraid of putting extra weight on candidates from underrepresented groups at Basecamp.

We can't wait to hear from you!

(And again, imposters: We are too. Take heart. Step up.)

@rocketslide
Copy link

This feels kind of hard to understand:
Basecamp works from 32 different cities, spread across 6 countries. You can work from anywhere in the world, but your normal working day should overlap with 3 to 5 pm Pacific time, or 8 to 10 am eastern time.

Maybe something like:
Basecamp works from 32 different cities, spread across 6 countries. You can work from anywhere in the world, so long as your working day overlaps the beginning or end of the day in the U.S. That means 8 - 10am Eastern time or 3-5pm Pacific time.

@rocketslide
Copy link

You take pride in your work with our without accolades from others

with or without

@rocketslide
Copy link

We have top-shelf health insurance and a retirement plan with a generous match. See the full list.

Let's link to this nice page instead: https://basecamp.com/about/jobs

@rocketslide
Copy link

Due date: May 1

@rocketslide
Copy link

"It's obvious our team is pretty heterogenous right now."
homogeneous?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment