Back End Engineer
Posted Apr 11
Headquarters: New York, NY
Get things done. Sleep soundly. Reach millions.
Have you experienced these symptoms?
- Do you feel stuck in your current position with no advancement and no learning opportunities?
- Are the managers out of touch or, worse, incompetent?
- Do you find it difficult to get things done?
- Is the code you have to work on low-quality with outdated dependencies?
- Did it used to be awesome, but now all the good people have left?
- Do your coworkers spend more time selecting snacks than selecting variable names?
You are not alone.
That list of complaints didn't just appear from nowhere. Those are the most common complaints of mid- to senior-level programmers. The fact of the matter is that those are common problems for a reason — they are really hard to solve. (Even harder than reversing a binary tree on a blackboard with chalk.)
They are also problems Apartment Therapy Media doesn't have.
Reports from a private #slack channel
Here’s what people who actually work on this team have to say about working here:
"smart, action-oriented people; everyone always willing to jump in to help; flat team culture"
"working from home is obviously great"
"I feel like our priorities stay pretty solid once they’re defined and on the roadmap; I’ve definitely worked places where they shift so much nobody ever knows what’s going on - definitely a bad thing about other places"
"diverse team is really cool too - everyone comes from a very interesting background"
"coming into this team I was used to using what was easy. seems like the whole team here jumps on board with what makes the most and best sense."
"we’ve also hired people who have a 'bias for action.' Like get your hands dirty from day 1 and shine."
Imagine for a moment, it’s easy if you try...
You wake up in the morning.
Your commute is 45 seconds.
You wear what you like.
You pick up a coffee on the way and it's just the way you like it (from your own kitchen).
You settle into your desk that has awesome natural light (or is a lightless cave, whichever you prefer).
You hop on #slack and say what you're going to get done (meaning today), your coworkers .
Your code written yesterday has been reviewed . You merge into master and the code is automagically tested and pushed to production. Review some of the code your coworkers wrote, asking questions and making suggestions.
You move on to Asana. Mark the task related to the code you just pushed as "Done" and pick up the next task with your name on it. You get started coding on this next task with no surprises.
You might find yourself bouncing ideas off your coworkers about the best way to modularize a piece of functionality you're working on and the benefits of including vs. delegating.
If it's a Monday or Friday there might be a meeting on Google Hangouts or Zoom (the meetings on Fridays often include the discussion of and consumption of adult beverages).
You stop working about 8 hours after you started, go on with your life, and sleep soundly while the application keeps humming and serving 10s of millions of uniques a month.
Sound too good to be true?
Let's run down the numbers. In the last 12 months, one person has left the team (for a really awesome job at a company you’ve heard of). Zero people have been terminated from the team. The current team has 3 Front End Engineers (Maine, South Carolina, Missouri) and 3 Back End Engineers (California, Utah, New Mexico), 2 Designers (New York and Missouri), and 2 Product Managers (Pennsylvania and Wyoming).
And if you do run into a problem that the team can't solve, email the CEO, call the CFO, or DM the whole editorial staff on #slack. I can guarantee they would all love to hear from anybody on the team.
Punch above your weight class.
How do you serve those 10s of millions of uniques a month with only 6 full-time engineers? Very carefully. No heros. Doing what you know to be best (not easiest).
Then push what you know. Ask questions. Try things. Own everything.
Do you want to win shouting arguments? Or do you want to have great coworkers, a stable application, and go home on time?
Even if you aren't a great fit and you don't apply, I want to personally assure you that these things are possible … and we're profitable to boot.
This is a growth opening, meaning a new position that didn't exist before. We expect the person to grow as a professional while in the position.
Our new hires set up their dev environments and ship the first day (sometimes the next morning).
Our primary codebases are Rails 4.2, testing is going on to upgrade to Rails 5, with 77% test coverage. We have a constellation of smaller standalone services with various test coverages and a couple of additional languages (Go and Clojure). We’ve recently acquired a few additional code bases, and the first order of business for this position will be bringing these code bases “into the fold."
If you’ve gotten this far, you might have noticed there’s been no mention of the level of experience we are looking for. This position could go a few different ways: We have a realistic budget for this position when compared against the national average provided by payscale.com (especially given the location independence). We’ve decided not to limit ourselves to a particular level of applicant (junior, senior, et al) until we actually see applicants. Therefore, if you think our culture sounds like a good fit for you, apply regardless of your current level.
This position reports to the Lead Backend Engineer. That said, we have a very flat organizational structure. Our shared organizational goals are defined in OKRs and you will need to take some ownership over how things get done and work with other people inside and outside our team on specific projects. The Lead’s job is mostly to get blockers out of your way and help you improve professionally.
A small amount of travel is required. We get together in NYC twice a year and go to a conference once a year.
The usual host of benefits
We offer several different medical insurance plans to each of our employees so that they can elect the best fit for them and their families. The company will pay for 50% of the single election of each plan. If you are located in a state that does not accept our main coverage then we are able to offer insurance through a provider who is commonly used in that state. This benefit is eligible to all employees on their 31st day of employment.
We currently offer a combined Dental/Vision plan that employees are eligible to purchase on the 1st of the month after 30 days of employment. This plan is through United Healthcare.
The company provides Life Insurance for all employees 1x their annual salary up to $50,000. Employees are able to purchase additional Life Insurance if they would like.
401k/Profit Sharing Plan:
After 1 year of service all employees are eligible to sign up for the company 401k plan through Vanguard. At the end of the year the company will decide if they'd like to do a Profit Share (based on company's performance that year) and if we decide to do the Profit Share then we put 3% of the employee's total compensation into their 401k once they are eligible for the plan.
Paid Time Off:
Employees start with 17 paid days off per year in addition to company holidays.
We also have some fun corporate wellness initiatives.
A few more words on logistics
Our Stack and Process : https://github.com/apartmenttherapy/meta
We are doing blind hiring for this position up until the final round where the applicant meets the whole team on zoom. If you’re selected for the technical interview you will be provided with anonymized github and slack access to work on a small project in the same manner we work every day.