You Need A Budget (YNAB)
About Us and Why We’re Hiring
We build “You Need a Budget,” the best budgeting software and education resources around. (Those 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 have big plans for our entire app ecosystem, including our web app and API. All of those plans necessitate changes on our back-end that runs on Rails/Postgres and our front-end Ember app written in TypeScript. That’s where you come in!
We have one overarching requirement when it comes to joining our team: our Cultural Manifesto has to really click with you. If you’re nodding emphatically while reading this, you’ll probably fit right in!
Of course, we have some firm* requirements too, like five years of full-stack professional web application development experience. For us this means you either know the server-side really well and have some client-side experience, or you’re an absolute expert on front-end development and have some server-side know-how.
*Well, firm-ish. If you know you’re a great fit for this role but fall short of the five-year requirement, include a specific pitch with your application on why we should consider you anyway! How you pitch us is up to you, just make sure it’s short and creative.
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 about 25 people strong, and we frequently operate in cross-functional teams, so you’ll get to work with awesome people from 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 lively board game session), but internally we build up our teammates and celebrate their successes. We all love to program and solve problems in creative 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 amazing designers. They have the awards (including at least one actual Emmy®) to prove they’re good at designing stuff. More importantly, they welcome feedback and suggestions during the development process and are happy to tweak an interaction if you tell them it will save you significant development effort.
How You’ll Work at YNAB
We strive hard to make working at YNAB a unique and fantastic experience (we’ve even been named Fortune’s #1 Best Small Company to Work For). We have a team full of truly exceptional people—the kind you’ll be excited to work with. Here’s how we operate:
Responsibility and Empowerment
YNAB appreciates, respects, and trusts the expertise and judgment of our developers. We empower them to do what they think is right.
We also work collaboratively. We continuously seek the right amount of structure and unity necessary to maximize productivity. Where it makes sense, we designate someone to make a call.
Even though our developers are right a lot, it's okay to make mistakes here. Exploration and calculated risks are vital to velocity and growth. We freely admit when we're wrong. If something doesn't go as expected, we learn, bounce back, and make corrections.
You won't be alone; others will be there to help, review, reassure, and back you up. We own our processes and collective outcomes as a team.
Live Where You Want
We’re a distributed team, so you can live and work wherever you want, as long as it’s somewhere between the Pacific Time Zone (UTC-8) and the Central European Time Zone (UTC+1). Proximity doesn’t influence productivity. Just make sure you have a reliable internet connection.
No Crazy Hours
We want everyone to have a full life outside of YNAB. We seldom work more than 40 hours per week. There have been rare occasions where things got a little crazy, and people logged some extra hours. But then they took additional time off to balance it all out. We work hard and smart, but we’re in this for the long haul; there’s 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 plenty of downtime and get out and do something. We’ll look forward to seeing pictures of your adventures in our #office_wall Slack channel.
The YNAB Retreat
When the pandemic isn’t keeping us from traveling, 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 most recently, Laguna Beach. We do really fun things at these retreats, but the highlight is inevitably just being 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.
International is Absolutely Okay
If you are Stateside, we’ll set you up as a W2 employee. If you’re international, you’ll be set up as a contractor. We are already spread across the world: Switzerland, Scotland, Mexico, Brazil, Argentina, Germany, Canada, and all over the United States.
We offer excellent health, dental, and vision insurance for our US employees, 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, we’ve got you covered!)
We also have a Traditional and Roth 401k option. YNAB matches your contributions, up to six percent of your paycheck. Matches vest immediately. (Are you a personal finance junkie like our founder 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 PF junkie? Trust us, it’s awesome.)
We use a leading compensation data provider to set competitive and well-defined pay ranges for all of our positions. Your pay is the same no matter where you live, and our goal is to pay at or above the market rate in the United States. We consider raises every year and have a bonus plan based on profitability, which you’re in on from day one. YNAB wins, you win. That kind of thing.
- 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 really helps in deciding what we should give you for your birthday and the holidays.
- 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. We look at what you accomplish, 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 top-of-the-line computer and phone and will replace them regularly.
- Did we mention we make a huge, positive difference in people’s lives?
If this sounds like your ideal environment, read on because now we want to talk about you. You will play a big part in building something easy and joyful to use that helps millions of people discover budgeting as an essential financial and life-planning tool. You will change lives.
You, Our New Senior Full Stack Developer
You’re a Full Stack developer with at least five years of experience building, 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).
Some client-side experience is required as a minimum, 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).
If your focus has been more on front-end development, then you're among the best of the best with a client-side framework such as Ember and also have some server-side depth.
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.
You’ll do things like help vet and improve our server-side layer, implement new features, integrate with third-party APIs, 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 are an excellent developer that can adapt to new languages quickly.
- You write code that is easy for other programmers and your future self to understand and use.
- You 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.
- You 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.)
- You 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.
- While perhaps not a security specialist, you are aware of how websites and services can be exploited, are security conscious while you code, and protective of customer data and privacy.
- You have excellent debugging skills. You know how to find problems and how to architect apps so that problems are discoverable in the first place.
- You already use and love YNAB. (Not a requirement, but we’ll give you bonus points for this one.)
- 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
- Updating behavior or adding a new UI component to our web app
- 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 a diversity of backgrounds, beliefs, abilities, and experiences is critical to our success. We 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, experienced, and diverse team that loves working together to build something that matters.
How to Apply
Apply by 11:59PM on April 25th, 2021. Firm. It’s a real deadline.
Write a cover letter and attach it as a PDF. In your cover letter:
Introduce yourself, tell us why this position is of interest to you, and why you would be a great fit. This portion of the cover letter should be less than a page and a half.
On a separate page of your cover letter, please answer the following questions. Each response should be about a paragraph in length:
- What criteria do you look for when searching for your next company or position?
- What are your favorite and least favorite parts of your current job?
- Tell us about a time when you had to learn something new to excel at your job.
- 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.)
- 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 developer 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 in your language of choice and include a link to your results in your cover letter. This shouldn’t take more than 30 minutes or so: https://www.interviewzen.com/apply/PVNGB2
If you have a prepared resume, attach it in PDF form. If you don’t have a resume because you aren’t even sure you’re looking to change jobs, that’s fine! In that case, please just include an informal list of your work and education history or a link to your LinkedIn profile.
Please send all attachments as PDFs.
P.S. If this position isn’t right for you at this time, but you know someone else who might be interested, we’d really appreciate it if you passed this along!