Slopes Diaries #46: An Intentional Dozen

Slopes Diaries is my ongoing journey to turn my indie app into a more sustainable part of my business. First time reading? Catch up on the journey so far.

What is Slopes? Think Nike+, Runkeeper, Strava, MapMyRun, etc for skiers and snowboarders.


Monday was a pretty big day - Slopes is now employing 12 people full-time (not that 12 is a particular number of interest, but we just crossed the 10 people threshold mid-May, so I figured I'd wait until now to write about it 😅). Hard to believe that just 3 years ago I was writing about hiring my second employee and my concerns with too much growth going forward:

It's an easy trap to fall into, to keep chasing growth. You start to feed that cycle innocently enough because you need more people to keep up with work, and then you have to chase bigger and bigger things to keep that growth % up next year to support costs, and then you need more people to keep up, yada yada. Suddenly you look around and realize you have a team of 100 on payroll that you're responsible for.

This caution has been a driving force for me behind every hiring decision I've made: growth begets growth, work will find a way to fill all voids you provide it with increased staff. Growth can be the path of least resistance, and you need to actively and intentionally manage that.

I am still determined not to fall into that trap.

I think around 12 people is that Goldilocks business I've been aiming for (I'm capping head-count at ~15; I'm sure we'll still need at least 1 additional support person and that leaves room for 2 more unknown hires above that). We finally have 1 engineer per platform (web, iOS, Android) full-time. That second employee I wrote about has transitioned to a "Chief of Staff" role (a mix of operations and EA-type-stuff), freeing me up to focus more on product and less on ... payroll and taxes and process.

These two changes take a lot of pressure off of me; now something can move along even when I'm not actively working it. I don't have to bring Project A to a halt to ensure Bug Fix B sees progress. After being the bottle-neck for everything for 12 years, lemmi tell you how freeing that is. I get to spend my time designing and building things I'm best-suited for, focusing on making sure Slopes stays special.


Not only is the lack of "I'm the bottle-neck" pressure nice, but I've finally able to support a ton of the ambitious projects I had in mind for Slopes back in 2013.

And some new ones.

A fun problem our GIS team trying to solve? Trees! Yes, trees. A lot of the data out there for trees is ... lacking, at best. For example, Killington Ski Resort used to have a big square (like 1/3 the size of the resort) removed from the middle of their trees. Outside the bounds of most Colorado ski resort the trees just ... disappear. In places where tree data does exists, it can be pretty low resolution and over-simplified.

This is why Apple Maps did their own thing a few years ago to run satellite photos through ML to detect stuff, like trees & over vegetation, golf cources, baseball fields, even little side-buildings in someone's yard.

We prototyped this project at a smaller scale last season for our first partner resort in Japan (I really need to write about that) and it looks amazing. But a great A vs B example is Breckenridge, Colorado. The left uses the default tree layer that's out there (trees are in green), and the right is output (trees in yellow) of ML analyzing  imagry for tree clusters where the trees are >1 meter in height.

We're gonna have to simplify the polygons a bit on our output, otherwise RIP our hosting bill, but this makes the resort maps look so much better. And outside of resorts, like in the backcountry, it will help a ton for visual wayfinding and planning.

Now the goal for next season is to roll this out as close to world-wide as we can. First step is buying the $8,000 (!!) computer to churn through all this data at a larger scale this week, else we'd probably set fire to Lydia's laptop.

Sorry, I'm done nerding out on mapping. 😅


One other aspect that keeps my hiring in check is our revenue cycle. From April-Nov the revenue flat-lines, meaning we don't have a ton of leading indicators through the spring/summer/fall for how the next season might go. I've gotta make sure what's in the bank account in May will last us until Feb of the following year (when Apple finally pays out for December, our first big month).

Gross Revenue: Sept 2013 - June 2025. I've been neglegent on posting revenue graphs. Sorry!

We keep growing at a consistent 40%+ (overdue revenue update: 2025 so far has made $3.6mil gross, will probably cross $5mil), but I never plan on future growth for any future spending. I always allocate funds, be it for hiring or marketing spend or anything, based on what we earned last season. If last season can't cover it, we don't do it.

Sure, I'd probably be a little bit ahead of where I am today if I was more aggressive with spending the money I have and planning around assumed growth (a fun what-if I play in my head sometimes), but especially now that our payroll is over $1mil USD/yr (!!) there is no way I'm taking the risk of people's livelihood based on just a guess at growth numbers.

(By the way, I recently switched over to Fathom for my revenue predictions / runway estimates to help me manage spending especially during that April - Nov timeframe. Working out pretty well so far and it integrates with Xero (my book-keeping software) to automatically keep things up to date. Much better than my old spreadsheets approach. Give it a look if that sounds useful to you.)


So yeah, fun times. We're a company with an org chart and team directory now 🤮. But we're trying our best to preserve the indie-small-app-small-team culture and not lose what we love about doing this.

'Cause that's the nightmare situation: turning Slopes into something we (I) hate and don't look forward to showing up for.

I'll be honest, had I not hired these engineers and gotten a Chief of Staff, I might have personally been on that trajectory (ok, "I was" is the proper phrasing, but I'm in denial ok!). I've been feeling the weight of having so many customers, a business that's growing to this size, managing a bank account with such seasonality, and so many responsibilities. I've been feeling burnout creeping in.

If you're considering hiring, they always say the first hire is the most intimidating, and it is. But looking back I feel like things really shift after 3-5 people, that's when it starts to feel like a lot.

But I will say, I'm glad I stretched myself thin and hired engineers last (besides the part-time Android engineer who has built that version of Slopes since 2020. Which by the way, he's gone full-time!). It's kept the product relativly lean and made us focus on the infrastructure (customer support, resort data management, GIS, etc) needed to support an app like Slopes. It's made us pick the most impactful features to focus on as we went, vs building everything and the kitchen sink.

But hopefully now, we can really get moving.