Humbly Confident Senior Android Developer - remote

Posted 3 years ago

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.

YNAB is growing, and so is our product team. We’re a software ecosystem that includes apps for web, Android, iPhone, iPad, and Apple Watch. We have some big plans for our Android app, and 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. You must have at least five years of professional software development experience, and a minimum of four years spent writing Android apps. 

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 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

We appreciate, respect, and trust 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.

Benefits

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.)

Competitive Compensation

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.

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!) 
  • 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 Android Developer

You're a software developer with over five years of professional, full-time experience. You spent at least four of those years working with 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. We are migrating all of our Android code to Kotlin and all new development is in Kotlin. 

We have a home-built shared library written in TypeScript that uses the V8 engine for things common across platforms, such as interfacing with our Rails/Postgres server and much of our business logic. We use SQLite for local storage. 

As an Android developer here, you don’t have to be an expert in TypeScript or SQL, but being curious about how things work on that layer will help. 

Our minSdkVersion is 24, we are moving towards a unidirectional data flow architecture, and we use Coroutines, Flow, ViewBinding, RxJava, Dagger, Robolectric, Bitrise CI, and Github. 

We’re already spiking on integrating Kotlin Multiplatform as well, so this is a great time for you to get in at the start of a big Kotlin push.

You’re our person if:

  • You are an excellent, senior 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 extensive experience with Kotlin and Java.
  • You have played an essential role in building, shipping, and supporting at least one significant Android app. 
  • You have excellent debugging skills. You know how to find problems and how to build apps so that problems are discoverable in the first place.
  • You 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?”
  • You are excited to work across multiple platforms with different technologies.
  • 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.
  • You feel right at home with Git/Github, and can happily talk about the pros and cons of different Git branching models and workflows.
  • You aren’t (necessarily) a security specialist, but you know enough to be protective of customer data and privacy.  
  • You already use and love YNAB. (Not a requirement, but we’ll give you bonus points for this one.)

Diversity

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 below by 11:59PM on April 11th, 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:
      • 1. What criteria do you look for when searching for your next company or position?
      • 2. What are your favorite and least favorite parts of your current job?
      • 3. Tell us about a time when you had to learn something new to excel at your job.
      • 4. 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.)
      • 5. Briefly (no more than a few sentences) describe a proud “debugging”moment you had, where you found and fixed a bug.
      • 6. 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 Kotlin test and include a link to your answer in your cover letter. This shouldn’t take more than 30 minutes or so: https://pl.kotl.in/Q1PY9OvAu
  • 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!