About Us and Why We’re Hiring
We build “You Need a Budget” the best budgeting software around. (But people in the know call us YNAB, which is pronounced “why-nab”). For more than a decade, people have been buying YNAB and then telling their friends what a difference it has made in their lives. Google us, or read some of our reviews on the app store, and you’ll see what we mean. We love building something that has a huge positive impact on people’s lives.
We’re profitable, bootstrapped, and growing. YNAB started in 2004 and we haven’t taken any outside funding—we’re in it for the long haul.
We have some big plans for our entire app ecosystem, including our web app and API. All of those plans will necessitate changes on our back-end that runs on Rails/Postgres and our front-end Ember app that’s written in TypeScript. That’s where you come in! We have one overarching requirement when it comes to joining our team: our original Cultural Manifesto has to really click with you. If you’re nodding emphatically while reading it, you’ll probably fit right in!
Of course, we have some other hard requirements too, like 5 years of “full stack” professional web application development experience, which for us means you know the server-side really well, and have some client-side experience to go along with it.
But first, let’s talk about life at YNAB and then we’ll go into detail about what we’re looking for.
Who you’d be working with:
Our developer team is 15 people strong, and we frequently work in cross-functional teams, so you'll get to work with awesome people in all different roles in the company.
Regardless of their varied interests, all of our developers have one thing in common: They are a joy to work with. You won’t find heated arguments and raised voices here. We save our competitive spirit for YNAB’s external competitors (or the occasional spirited board game session), but internally we build up our teammates and celebrate their successes. We all love to program and solve problems in clever ways, and we regularly take time to geek out and show each other something cool we built or found to make our lives easier.
And of course, as a developer, you’ll work closely with our designers, who are amazing. They have the awards (including at least one actual Emmy) to prove they’re good at designing stuff. More importantly, they are welcoming of feedback and suggestions during the development process, and will be happy to tweak an interaction if you tell them that it will save you significant development effort.
How You’ll Work at YNAB
We work really hard to make working at YNAB an amazing experience (we’ve even been named Fortune’s #2 Best Small Company to Work For) and have a team full of truly exceptional people—the kind you’ll be excited to work with. Here’s how we operate:
Live Where You Want
We’re a distributed team, so you can live and work wherever you want. Proximity doesn’t influence productivity. Just make sure you have a reliable internet connection.
No Crazy Hours
We rarely work more than 40 hours per week. There have been a few occasions where things got a little crazy and people had to log some extra hours. But then they took some extra time off, so it all balances out. We work hard and smart but we’re in this for the long haul, no need to go crazy on the hours.
Take Vacation (Seriously)
We want you to take vacation. In fact, we have a minimum vacation policy of three weeks per year. Five weeks feels about right (plus two extra weeks for Holiday break). It’s important to get out and do something. We’ll look forward to seeing pictures of your vacation in our internal chat room, creatively named #office_wall.
The YNAB Retreat
We get the teams together once a year to catch up on spreadsheets and powerpoints in a Best Western conference room. Just kidding. So far, we’ve done Costa Rica, a gigantic cabin in the mountains, a beach house in the Outer Banks, a ranch in Montana, and took over a hotel on Laguna Beach. We do really fun things at these retreats, but the highlight is inevitably just being with each together and having a blast.
Up Your Game
We’re serious about helping you improve your craft. We budget for it (hey-o!). Think conferences, Lynda/Skillshare subscriptions, books, and dedicated time away from work to learn something new....We love to see our people grow.
If You’re International...
You’ll be set up as a contractor. Employee or contractor, it’s all the same to us. You’re part of the team. As for time zones, we’re flexible as long as a decent chunk of your time overlaps with North American time zones.
If You’re Stateside…
You’ll be a W2 employee with fantastic health, dental, and vision insurance, where we cover 100% of the premium for you and your family. (No need to check your vision, you read that right, 100%. Although if you did need to check your vision, no big deal, we’ve got you covered!)
We also have Traditional and Roth 401k options. YNAB contributes three percent whether you choose to throw any money in there or not. It vests immediately. (Are you a personal finance junkie like Jesse? He set up YNAB’s 401k to have the lowest fee structure possible, where all plan costs are paid by YNAB, not your retirement nest egg. The investment funds available are fantastic, passively-managed, ultra low-cost index funds. You’re not a personal finance junkie? Then trust us, it’s great.)
Once you start, we DEMAND (in a friendly, ALL CAPS IS YELLING way) that you fill out your “Bucket List” spreadsheet with 50 items. (That’s harder than it sounds!)
The bucket list helps in deciding what we should give you for your birthday and Christmas: No gift cards here. We tried that. Super boring.
We have a bonus plan based on profitability. You’ll be in on that from day one. YNAB wins, you win. That kind of thing.
We’re all adults. There’s no need to punch a clock, or ask for permission to take off early one afternoon to go see the doctor (health insurance premium 100% covered!). We look at what you’re accomplishing, not how long you sit (have you tried standing?) in front of a computer.
We want you firing on all cylinders so we’ll set you up with a shiny new computer and replace it every three years.
Did I mention we make a huge, positive difference in people’s lives? We have a Slack channel where we share success stories from our customers daily. It’s amazing. Don’t underestimate this one!
If this sounds like your ideal environment, read on because now we want to talk about you. You will play a big part in helping YNAB delight users and give them control of their money. You will change lives.
Now, back to you, our new Full Stack Developer
You’re a Full Stack developer with at least 5 years of experience shipping, monitoring, and maintaining SaaS apps at scale (not just websites). You’re an expert in at least one modern server-side framework (Rails, ASP.NET, Express, Django, etc).
You’re not necessarily the “Ops” person where you work, but you certainly understand the infrastructure well enough to aid in architecting and maintaining scalable solutions. We host on Heroku, so experience there is a bonus, but experience with AWS or other popular IAAS/PAAS is just fine.
Some client-side experience is required as well, meaning you know enough HTML/CSS/some-client-side-framework to get stuff on the screen matching a designer’s spec. We work in small, cross-functional teams where you will likely find yourself responsible for implementation on both the back-end (Rails and Postgres), as well as the front-end (using Ember or Vue and written in TypeScript).
You’ll help vet and improve our server-side layer, implement new features, integrate with third party API’s, and shepherd our application. We might have conversations that start like this:
“How can we be certain that our application is going to scale as we grow? How did the other apps you worked on handle similar load conditions?”
“We want to expose these parts of the API to 3rd party developers. Will that API need to differ from our internal API, and if so, how?”
We want to make it possible for users to sort their transactions in a new way, and we are thinking of using drag-and-drop to make that possible. What changes on our client and server will be necessary to accomplish this?
“We need to integrate a new data aggregation partner to connect bank accounts and import transactions. How do we set it up so that we can reuse most of that work if we bring on another partner later?”
You’re our person if you:
Are an excellent developer that can adapt to new languages quickly.
Write code that is easy for other programmers and your future self to understand and use.
Have plenty of war stories to tell about the last time you launched a big SaaS application, or weathered a massive spike in load, or recovered from an outage.
Know your way around SQL and relational databases. If the database layer turns out to be the culprit behind an issue, it’s not a black box to you. (Experience with Postgres is a bonus.)
Have an understanding of algorithms and data structures beyond arrays and “for loops”. That doesn’t mean you have to be a computer science PhD or even that you have to know “Big O” notation, but you should know when to use a Dictionary/Map, and why finding an element in a sorted array is faster than finding an element in an unsorted array.
Have excellent debugging skills. You know how to find problems, and how to architect apps so that problems are discoverable in the first place.
Already use and love YNAB. (Not a requirement - we’ll give you “bonus points” for this one).
Some things you might be working on at YNAB:
Integrating with 3rd party APIs like Aggregation Providers, Payment Gateways, and Analytics Services.
Profiling our most common API calls using tools like pganalyze or Sumo Logic and acting on the information to reduce response times.
Helping improve our public and private APIs to make them easier for external and internal developers to use.
Working with our external database and security consultants to make sure we haven’t missed anything.
Installing monitoring tools like Rollbar to help us detect client-side and server-side issues.
Writing automated tests for new features or improving our existing test suites.
Submitting and reviewing PRs in GitHub, collaborating in Basecamp, and jumping on a Slack call to get an extra pair of eyes on a gnarly bug.
YNAB is an equal opportunity employer. We believe diversity of backgrounds, beliefs, and experiences to be critical to our success and are passionate about creating a welcoming, supportive, and collaborative environment for all employees. All are encouraged to apply as we continue to grow a smart, hard-working, and diverse team who love working together to build something that matters.
How to Apply
Apply below (here) by 11:59PM Pacific Time, on June 30th, 2019. Firm. It’s a real deadline.
First, you don’t need a resume! Many of our job applicants don’t have one because many weren’t even looking to change jobs! An informal list of your work and education history are all we’re looking for anyway, and you are welcome to include that in your cover letter. Speaking of which:
You DO need a cover letter. Attach a pdf of your cover letter. In your cover letter:
Introduce yourself and explain why this position is of interest to you, and why you would be a great fit for the position. (It’s okay to brag and not be humble for this part!).
Please tell us about apps or anything you’ve built that makes you look good, and describe your role in those projects. (Include links if applicable)
Include the phrase “I am not a bot, spammer, recruiter, or agency.” somewhere in your cover letter.
Includes answers to the following questions:
What are your two strongest programming languages? How much experience do you have with them?
Briefly (no more than a few sentences) describe a proud “debugging” moment you had, where you found and fixed a bug.
If you were interviewing a prospective candidate for this position, what would be a good interview question to ask to find out if a candidate really knew their stuff?
Complete this short coding test (https://www.interviewzen.com/apply/sffVTb) and include a link to your results in your cover letter. It shouldn’t take more than 30 minutes or so.
We look forward to hearing from you!
P.S. If you’re not interested in or available for this position, but know someone who is, we would really appreciate it if you passed this along!