Humbly Confident Senior Android Developer - remote

You Need A Budget (YNAB)
Posted 4 years ago
GitHub Jobs

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, and you’ll see what we mean. We love building something that has a huge positive impact on people’s lives.

YNAB is growing, and so is our product team. Our software ecosystem includes personal budgeting apps for web, iOS, and Android. We have some big plans for our Android app, and that’s where you might come in.

Requirements (these are real, actual requirements):

  • You must have at least five years of professional software development experience.
  • At least 4 of those years were spent writing Android apps.

But first, you need to know if you’ll even like working with us. Let’s talk about life at YNAB and then we’ll go into detail about who we’re looking for.

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 one overarching requirement when it comes to joining our team: our Core Value Manifesto has to really click with you. If you’re nodding emphatically while reading it, you’ll probably fit right in, in which case, we can’t wait to hear from you!

Who you’d be working with:

Our developer team is about 20 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, big egos, and raised voices here. We save our competitive spirit for YNAB’s 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 get to 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, but there are plenty of skilled designers out there. More importantly, they are welcoming of feedback and suggestions during the design/development process, and are technically savvy enough to continuously improve our development workflow. For example, check out this post that Emily wrote describing how we handle semantic colors across all of our apps.

How You’ll Work at YNAB

We work really hard to make working at YNAB an amazing experience (we’ve even been named one of Fortune’s Best Small Companies 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 fully remote team, so you can live and work just about wherever you want, as long as it’s somewhere between the Pacific Time Zone (UTC-8) and the Central European Time Zone (UTC+1). Just make sure you have a reliable internet connection.

No Crazy Hours

We have only worked more than 40 hours per week in extremely rare circumstances. 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 #office_wall Slack channel.

The YNAB Retreat

We get everyone 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 play together, and reinforce the bonds we’ve made as a team and company. Every year, we leave refreshed, motivated, and excited for the year ahead together.

Up Your Game

We’re serious about helping you improve your craft. We budget for it (hey-o!). Think conferences, online courses and subscriptions, dedicated time away to learn something new… it’s really up to you and your manager. But we love to see our people growing in their craft.

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 spread all over the world: Switzerland, Scotland, Mexico, Brazil, Argentina, Germany, Canada, and all over the United States.)

Benefits

For our US employees, we offer 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, we’ve got you covered!)

We also have a Traditional and Roth 401k option. 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 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.)

Other Tidbits

  • 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!)
  • We give personalized birthday and holiday gifts. (And where possible, these help with the aforementioned bucket list items.)
  • 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. 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 I want to talk about you. You will play a big, big part in helping YNAB users gain control of their money. You will change lives.

Now, back to you, our new Senior Android Developer...

You're a software developer with over 5 years of professional experience, with most of those being spent working on Android. You know how to write easy-to-maintain software while still keeping an eye on the roadmap.

You'll help us write and maintain features in our Android app. We believe in the power of native user interfaces on each platform, and are incredibly excited about Jetpack Compose, but we’re also the sort of folks who get excited about elegantly sharing business logic across all our platforms. To that end, we have a home-built shared library based on Typescript and SQLite that uses the V8 engine. You don't have to be an expert on TypeScript or SQL, but being curious about how things work on that layer definitely helps.

We’re already spiking on integrating Kotlin Multiplatform as well, and have some exciting proof-of-concept code committed to all of our platforms, so this is also a great time to get in at the start of a big Kotlin push.

Some technologies we use on Android:

  • minSdkVersion 23
  • Kotlin for all new code
  • Moving towards a unidirectional data flow architecture
  • ViewBinding
  • Integrating with V8 JS engine
  • RxJava, Dagger, Robolectric
  • Bitrise CI
  • Github
  • SQLite (and thus SQL)
  • Typescript

You’re the one we’re looking for if you:

  • Write code that is easy for other developers and your future self to understand and use.
  • Have extensive experience with Kotlin and Java.
  • Have shipped or helped ship at least one significant app for Android.
  • Have excellent debugging skills. You know how to find problems, and how to architect apps so that problems are unlikely, but discoverable if they do happen.
  • Are self-motivated and thrive with directions like:
  • "This part of the program is too slow. Can you find out why?"
  • "This component needs to be re-architected to allow for new feature X. How do you think we should do it?"
  • “Our code needs to call into a Javascript library, but that Javascript library is crashing because it can’t find the setTimeout function. Can you investigate?”
  • Are excited to work across multiple platforms with different technologies.
  • Have an understanding of algorithms and data structures that goes 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.
  • Are a senior developer who can point to strong experience where you’ve exemplified the bullet points above.
  • Feel right at home with Git/Github, and can happily talk about the pros and cons of different Git branching models and workflows.
  • “Bonus points” awarded if you already use and love YNAB. :)

YNAB is an equal opportunity employer. We believe a 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 here (https://ynab.recruiterbox.com/jobs/fk0qvv6) by 11:59PM on June 7th, 2020. Firm. It’s a real deadline.
  • Attach a pdf of your cover letter. In your cover letter: I- ntroduce yourself and explain why this position is of interest to you, and why you would be a great fit. Please limit this section of the cover letter to no more than 1.5 pages.
  • On a separate page of your cover letter, answer the following questions (with each response being about a paragraph in length):
  • What attracted you to this position? (This is not about what attracted you to the software.)
  • 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.)
  • Which programming languages do you know the best, and how many years of experience do you have using each?
  • Briefly (no more than a few sentences) describe a proud “debugging” moment you had, where you found and fixed a bug.
  • Complete this short Kotlin test (https://pl.kotl.in/Q1PY9OvAu) and include a link to your answer in your cover letter. It shouldn’t take more than 30 minutes or so.
  • 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.

    Please send all attachments as PDFs.

    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!