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’re our person if:
- 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).
Examples of 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
- 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.