My Third Year as a Solo Developer
mtlynch.io
mtlynch.io
I feel like this is a common thing - kinda like the old adage you'd hear at school that goes something like "if you have a question about something, chances are at least a couple of other people in class have the same question".
I wonder how many startups that are "think of it as an uber-for-...." are there because of actual genuine & real needs that people have, or just that people think will make them rich.
A decade-plus ago I was in the same situation as the author - a problem that I had and no obvious simple solution that I could find. I ended up admitting that the thing I was looking for didn't exist, so I made it (website in this case so very small risk/outlay). It made a boat load of income from ad revenue back when CPMs were better (still exists these days but revenue is way way down on what it was - perhaps less than <5% - and my regular work salary these days totally eclipses even what it was at its peak anyway).
There must be so many of these sorts of stories on HN - someone scratching their own itch, only to find out that others have the same.
Like I doubt anyone has ever had their own itch for “garbage truck fleet management software “, but I’m sure there is money in it. Or I suppose people have parents / family in the garbage truck industry, so you can “scratch a relatives itch”.
Personally my SaaS has nothing to do with myself nor anyone I know, but it’s an opportunity of weak software I found. I assume this is also a path people go down...
I count myself extremely lucky to have found an 'ideas guy' (and people person, and bookkeeper, money raiser, etc etc...) who came out of the world of the 90s and 2000's where he'd fly around the world implementing copies of high touch software.
From day 1 his vision was clear, we had an in-house subject matter expert, and the customers were there when our SaaS was ready.
The experience or knowledge of a problem seems like an extremely important aspect of starting a business, but it's often talked about as being "generated" or thought up.
The more I've worked on my own idea, the more I've realized that I needed to better understand the problem space and refine my vision.
After a couple weeks of her manually designing pickup routes for the "fleet" I hacked together a demo using TIGER data and OR-tools that planned routes (with autogen'd tick-sheets) and calculated a rudimentary cost-per-mile. While it wasn't saving game-changing amounts of time over her initial route optimizations, removing the manual overhead of generating routes on a daily basis was a big win.
I would say it became a "fleet management" project (if you can call 2 cars, a trailer, and the occasional rental to pick up the slack a fleet) after one of the drivers suddenly heard a "grinding" sound while on route 5 miles from the nearest gas station. Based on the description I guessed that the transmission was dying and had them check the fluid. It didn't register on the dip stick so she dispatched another vehicle to tow back the trailer while the other one limped to the shop. The offending vehicle was one of the fraudulent VW TDI's that just had to get to the dealer's lot for the trade-in value (our goal had been to _barely_ get there under it's own power and it seemed we went a bit too far :) ). "Too far" was using it to tow ~1200# of compost 4 days a week for 6 months with what we determined to be one oil change at the beginning of that period. This experience led to adding a step to the route planning calendar events for maintenance checks for the vehicles in the "fleet" based on their current and expected mileage.
There were a bunch of things that I (in my night-time, engineering resource capacity) wanted to add to the system (tracking with GPS built into car, RFID readers in car and on bucket/totes to remove driver's manual annotations, CANbus diagnostic readout to identify early issues) but before any of those got off the ground she sold the company (hooray!) when we found out she was pregnant with twins and she realized she was way more interested in the physical composting work than the cost-center minimization of the drivers and the fleet anyway.
I'm aware of things like pgRouting but wondering if there is some basic FOSS software that does some rudimentary route assignment with multiple vehicles involved instead of leaving it up to the end user to batch destinations or vehicles before feeding them as batches into the routing engine. You can kind of get there yourself doing some basic clustering stuff, but again pretty manual. If I was doing it today at the same (small) scale my approach would probably be to create some drivetime polygons with my constraints around central areas and use to batch my stops before feeding them into pgRouting, but there's probably some way more intelligent way of doing it.
HN has been a huge part of my experience bootstrapping my business. I've learned a great deal from articles and discussions here, and I've received tremendous support and advice when I share updates about my projects. I hope you enjoy this summary of my third year.
I've enjoyed reading all of them, and found it inspirational that you kept going despite the somewhat-underwhelming outcome in the first couple of years.
I find this kind of perseverance admirable. I'm truly glad things panned out the way they did, and wish you the best of luck going forward! I'll surely keep up to date with your blog posts :)
I'm glad you enjoyed the post!
In 2019 and 2020, it dropped to only $50/month because my income was low enough that I qualified for state-subsidized insurance.
I felt a little weird about essentially drawing on welfare when I'm choosing to earn less than my maximum, but I also feel like there'd be an arrogance in rejecting it like I'm somehow too good for welfare. In the end, I decided I met the requirements of a government benefit I want, so there's no reason to turn it down.
Oh, that's true. People are more excited about stocks recently.
No, that hadn't occurred to me. At this point, TinyPilot is working well, so I'm planning to stay focused on that. It's hard for me to imagine that an hour of my time on Portfolio Rebalancer (or any other unproven product) will have anywhere near the ROI as an hour I spend on TinyPilot.
However, I am still quite unsure how to actually get the ball rolling. My current game plan is to just brainstorm for a week or so and then start building the best idea I came up with during that week, then give myself a release deadline of one month for an MVP and see if I can raise some interest.
But after reading the paragraph about ideas[1] I am not sure anymore if this is a smart approach or not... What do you think, what's the best thing to do to get to that initial spark?
[1]: https://mtlynch.io/solo-developer-year-2/#pursuing-the-right...
(sry, non-native speaker)
>However, I am still quite unsure how to actually get the ball rolling. My current game plan is to just brainstorm for a week or so and then start building the best idea I came up with during that week, then give myself a release deadline of one month for an MVP and see if I can raise some interest.
That mostly sounds sensible to me.
I recommend thinking more about the "raise some interest" part. There's a common trap that indie founders frequently fall into (myself included) where you build an MVP but don't think about marketing it until you've already built it. And then you realize there's no plan for finding customers.
Once you build the MVP, how will you find customers? Can you skip to that part without even building the MVP?
One of the ideas I liked in the Jason Cohen video[0] I linked in the article how he built WP Engine. He wanted to build a product for WordPress consultants, so he just emailed consultants and offered to pay them their hourly rate if they'd jump on a call with him and answer questions about their pain points. He didn't have any demo to show them, but people took his calls because he was showing that he valued their time (most accepted the calls and declined the money).
So, I think building an MVP is great, but it's even better if you can talk to customers before you build anything and find out what problems you can solve for them. A great book for this is The Mom Test by Rob Fitzpatrick, for which I've published my notes.[1]
It's not that I've never heard this before, but my excitement just gets in the way and wants to start building immediately :P So it's good to hear this again, I really need to take this to heart... Thanks!
(FYI @mtlynch was an early reviewer to help me make it better)
This is good advice for young developers. Start saving for the day when you can start your own company. Be thrifty, invest regularly. Try to negotiate a better salary. You have more motivation to do that when you know you have the goal of becoming independent. Your employer is using you to build their business, make it a goal to use them to start yours.
Given that it’s over 100%, that’s almost surely a markup calculation, not a margin calculation.
Margin is (unit profit/unit revenue). Markup is (unit profit/unit cost).
A $25 COGS widget sold for $100 is a 75% margin product ($75 / $100 revenue) and a 300% markup product ($75 / $25 COGS).
^ This is me right now. I've struggled to explain to people why I'm interested in entrepreneurship for its own sake (and not because, e.g., I'm passionate about a particular problem). This quote really encapsulates the draw of it for me.
Thanks Michael, just came across your blog recently. Great stuff.
I'm glad that section resonated with you! I spent several hours writing and rewriting that section, trying to articulate what exactly I found so alluring about becoming a founder.
Last year, I considered building software for sheet metal shops,[0] and people warned me that I'd get bored building software for a market I'm not passionate about. But I never felt like that would be true because whatever the business, the part that's fun to me is getting to play with all the little knobs and levers of and seeing whether my choices yielded good results.
[0] https://mtlynch.io/retrospectives/2019/12/#interviewing-mach...
I am the exact same way, and yet I struggle to articulate this. People say to me "why would you be excited to own a carwash?" (example biz, I own none right now) and my answer is basically what you said -- its this kind of huge, real world, testing environment/challenge. How can we increase efficiency here? How would modifying the soap mixture affect the cleanliness of the cars? So many inputs and outputs to experiment with, I can't think of anything more interesting....
A company I worked for had a supplier who cut metal. The owner was hardcore about making money. They wouldn't start cutting until he was devoting 95% of the sheet metal to product, and if the machines stopped cutting for more than 1 minute, an andon light would start flashing. Needless to say, he ran a very tight ship!
For both of us, we left good-paying jobs in order to persue something that we felt strongly about, hoping to make some sort of dent in the word. Success to your future endeavors!
But I came here to congratulate Michael, not to discuss my own work. Happy to take this conversation to an email thread.
Just some questions/thoughts about your revenue/expenses breakdown: sales is sales of course, but what does materials mean? Is it the cost-of-materials-for-what-you-sold, or cost-of-everything-you-bought (including both sold items and inventory you're still holding?)
The reason is that it's usually more common to only count the former (cost of materials for what you sold) when tracking profit/loss. Materials you used for inventory that are not yet sold are counted as assets on your balance sheet, since the expectation is that you'll be able to turn that into cash at some point.
The other practical reason (besides the potential benefit of seeing "profit" in your revenue/expenses breakdown) is that you can better see:
1. If you need to raise prices (and I'm sure patio11 would say "yes")
2. How to handle your inventory, especially if there is a shelf-life. Eg: doing a sale to clear things quickly, or when you need to invest in more materials to build more inventory. You'll start tracking "turn", how quickly you sell out an existing batch, and can better plan for purchasing more to keep a healthy level that is in that Goldilocks-zone of enough-to-fulfill-orders-quickly, but less than holding too much that ties up cash.
Congrats again and looking forward to the next update.
>what does materials mean? Is it the cost-of-materials-for-what-you-sold, or cost-of-everything-you-bought (including both sold items and inventory you're still holding?)
It's the latter, cost-of-everything-I-bought.
>The reason is that it's usually more common to only count the former (cost of materials for what you sold) when tracking profit/loss. Materials you used for inventory that are not yet sold are counted as assets on your balance sheet, since the expectation is that you'll be able to turn that into cash at some point.
Thanks, this is helpful feedback! This is my first time managing an inventory, so I still have a lot to learn about bookkeeping for it.
I should mention that the numbers so far are preliminary based on my own bookkeeping, so I'll talk to my accountant about how to better map the transactions to my balance sheet and income statement.
>You'll start tracking "turn", how quickly you sell out an existing batch, and can better plan for purchasing more to keep a healthy level that is in that Goldilocks-zone of enough-to-fulfill-orders-quickly, but less than holding too much that ties up cash.
That's interesting. I'm curious to see how much this will affect the inventory I keep on hand.
Right now, each product consists of several components that have different properties, so when I choose how much to stock each item, it's a function of:
* How many orders could conceivably happen during a sudden surge of interest?
* How long does it take to restock this item? (some items take 2 months to be manufactured overseas, others ship overnight)
* How much space does this item take up in my house? (easy to store 5000 ribbon cables, not so easy to store that many Raspberry Pis)
* How much does this item cost? (easier to err on the side of caution for cheap items)
* How confident am I that I'm going to keep using this component?
Definitely good to get professional help so you can focus on the business. That being said, don't let them overcomplicate it. The thing about business, especially one that involves inventory, is that you're always looking at both accounting profit/loss, and cashflow.
Cashflow is the more important one, especially if you'd like to hit your 600k revenue goals as mentioned elsewhere. You can run an accounting loss almost forever as long as your cashflow is positive. This is how Amazon did it - they paid their suppliers (cash going out) less frequently than money coming in.
Interesting about the different component aspects - to get to 600k, I think you will certainly need to build some standardisation into your inventory, in terms of how many finished units you're holding, and establish a buying cadence.
One other element that can help plan is what you end up doing for the sales effort. If the sales is consistent (ie, you're blogging and that pulls in a relatively-consistent amount of traffic/sales), then you know your inventory level to plan for, and can just add a buffer. Same with ads/etc, there are ways to make the sales generation more mechanical, which helps with your inventory planning, which is the main driver of your profit.
I can share a few books via email if you're keen.
The struggle I've had so far is that I feel like I'm in a weird in-between space between super simple and super complicated. When I look for inventory software, some solutions are for the basic case of people selling t-shirts or sneakers with no concept of subcomponents. And then when I look for software that supports bills of materials or "kitting" it's ultra-complicated and assumes I have multiple warehouses and do everything through purchase orders.
It sounds like you already have figured out a lot about dealing with inventory, but if you haven't already, you might be interested in reading up on operations management, or watching some youtube videos/lectures about it (e.g. Q,R inventory model vs Newsvendor model).
what a great goal this is. looking forward to see you update this next year!
working at Google requires time. it's a full-time job and requires expending focus and energy. and outside of PTO and managing your workload a bit, you pretty much are bound to it week-over-week.
there's something to be said for reclaiming 40+ hrs/week of time back for yourself
>I’d love to see an opportunity cost side note in here.
I'd estimate that if I stayed at Google or transferred to another FAANG-type company, my annual comp would be ~$500k at this point.
But it's also important to note that I'm optimizing for life satisfaction rather than wealth. I'd take $80k/yr working for myself over $800k/yr working for someone else because I love working for myself and can support my basic needs with my existing passive income.
Realistically, there's some price where I'd take a job working for a big corporation, but it would have to be extremely high ($2M+) or an unusually good learning opportunity for me to be willing to give up my current lifestyle.
What is such high _compensation_ for?
It's possible to interpret it as compensation for the other things that you could have been doing instead; which in your case, you are: so congratulations :)
“A man is a success if he gets up in the morning and gets to bed at night, and in between he does what he wants to do.” ― Bob Dylan
I wrote about my take on being a 'lifestyle programmer' here: https://successfulsoftware.net/2013/11/06/lifestyle-programm...
True story, Word of Honor: Joseph Heller, an important and funny writer now dead, and I were at a party given by a billionaire on Shelter Island. I said, “Joe, how does it make you feel to know that our host only yesterday may have made more money than your novel ‘Catch-22’ has earned in its entire history?” And Joe said, “I’ve got something he can never have.” And I said, “What on earth could that be, Joe?” And Joe said, “The knowledge that I’ve got enough.” Not bad! Rest in peace!” — Kurt Vonnegut
As much as I hope the author is happy and safe and that his ventures succeed I’m a bit dumbfounded by what seems like irresponsibility and a lack of maturity.
I guess if you don’t need the money for rent, have access to great healthcare, don’t plan on financially supporting a family etc, this is a lifestyle choice.
In terms of potentially influencing other people to make similar choices that are not as “risk free” the author should add an opportunity cost to his calculations.
For almost everyone else the opportunity cost isn't choosing between enormous wealth and entrepreneurship, it is choosing between a mediocre salary and a life under your own control.
Do you have any plans to productionize TinyPilot (pay someone to manufacture the entire device rather than selling kits)? I'm definitely in your target market, but I'd rather have something more streamlined looking that didn't require upfront assembly. I have seen folks that have had success reaching out to suppliers on Alibaba to get custom hardware built like this.
>Do you have any plans to productionize TinyPilot (pay someone to manufacture the entire device rather than selling kits)?
Yeah, that's one of my goals for the year. The manufacturing and fulfillment process is currently just out of my house and too fragile.
It's tough to outsource right now because we're continuing to find new ways to improve our processes and the components. The advantage of doing it all from my house is that I'm the last stop before the product reaches the customer. I can be nimble and manage changes quickly rather than risk things falling through the cracks trying to communicate to someone else small changes in the process.
What will likely happen next is me hiring an extra person to come to my house and take on some of the work. Hopefully vaccine rollout goes smoothly because I don't want to do this until it's safe for both me and the employee.
>I'm definitely in your target market, but I'd rather have something more streamlined looking that didn't require upfront assembly.
I currently sell two flavors. One's a kit, and the other's plug 'n play (TinyPilot Voyager).
I'm trying to figure out if going solo would be right for me, and I worry that I'd not successfully overcome the activation cost without others already relying on me executing something.
>Do you deal with motivation as an issue at all, and if so how?
This does happen to me, but fortunately not too much. A big part of it is that because I'm choosing my projects, I'm able to pick things that I'm naturally excited about working on. The other is that I've found a virtuous cycle of:
1. I build something new or add a feature
2. I write a blog post explaining what I learned
3. People read about what I learned and check out the thing I built
So, it's a way to frequently attract users, even if it's a brand new thing, and then having people test it out is motivating.
There are two times I recall struggling with motivation this past year:
While working on Is It Keto, it always felt like so much work and time before I could see if an idea was viable. Even just putting up a landing page for a new product and linking to it from the main site, I'd have to wait at least a week to get reasonable data on conversion rates. So, I found it hard to stay motivated when I didn't feel like I had a process that was working and didn't have confidence investing effort anywhere would yield results.
The other was toward the end of the year working on TinyPilot. I promised a premium version of TinyPilot by the end of the year, and I was trying to figure out how to design license activation for it. But that's really boring because it meant several weeks of work on something that's not useful to users. I kept putting it off because I was never excited to work on it. Finally, I realized I could basically just go by the honor system and ask users to install on one device per purchase, and that cut out a lot of boring work and let me work on improving the product again.
So my general experience is that when I'm feeling unmotivated, something is wrong and I have to make a change that makes me feel more naturally motivated to do the work.
When I quit my job, I moved to the Bogleheads three-fund portfolio.[0] I've been getting good returns, but like you said, it's been an unusual few years in the financial markets, so my portfolio hasn't been tested under challenging conditions.
Is there a way to add a software layer to your hardware idea to bring in recurring revenue?
>Is there a way to add a software layer to your hardware idea to bring in recurring revenue?
Yeah, I've thought about that a lot.
The most obvious way to do it would be to add cloud access, so customers pay me $5/device/month or something, and they can access their device over the Internet through a web gateway I manage. But then that gets me into the territory of "it's A Big Deal if this goes down," so I'm not sure.
I also sell a premium version of the software with some extra features. Customers get it free when they buy a device. They keep the software forever, but after 1 year, they can pay some amount every month to continue receiving updates. I'm still kind of iffy on my strategy here, though. The first renewals aren't up until January 2022, so I might do something different by then.
Here's the fear that's driving my thinking: (1) the moment word gets out you have a hotcake on hand, others will clone, particularly in China and (2) unsteady revenue for you, as a business.
So I guess blog post working at intended.
――――――
The IPMI is not documented, as far as I can tell. There's no mention of IPMI functionality in the SuperMicro X10DAL-i spec sheet or manual.[0] I actually didn't believe it was really there until I saw Serve the Home show screenshots of it in their review.[1]
[0] https://www.supermicro.com/en/products/motherboard/X10DAL-i
[1] https://www.servethehome.com/supermicro-x10drli-review-small...
Interesting that it came from a specific (but clearly very useful) physical product too, instead of a software based solution.
Yeah, that surprised me as well. I think of myself primarily as a software developer, so for the first few months, I kept thinking, "How do I get out of the physical part of this business and just sell the software?" But as time went on, I felt like it gave me an advantage because my willingness to sell hardware gives me an advantage over developers who don't want to deal with it.
[0] https://twitter.com/proquokid/status/1347713280953999361?s=2... [1] https://riffpod.io
Good luck with Tiny pilot and keep us up to date :)
>I'm wondering what happens when things change part way through the cycle.
Good question!
The goals are flexible. The goals work for me, not the other way around. If I realize partway through the year that circumstances have changed or I set a bad goal, then I do something else.
This happened to a small degree this year. I knew that making a course would prevent me from achieving my goal of 10 blog posts, but I felt like it was okay to deliberately miss that goal in favor of something I thought made more sense.
But generally, I try to set goals that are high enough in abstraction that they don't require adjustment when circumstances change.
Did you consider doing a KickStarter (or similar) for TinyPilot?
I did at the beginning. I was considering ditching the Raspberry Pi and building my own custom board using the Raspberry Pi Compute Module. I expected that to be $20-40k, so I thought it might be a good match for Kickstarter.
But the more I went, the more I felt like it was better to keep making progress incrementally. I'm not sure if it's just because I'm a software guy primarily or hardware is inherently slower and harder, but changing tiny details about the manufacturing process is always really hard. There are so many people involved, and I almost always fail to anticipate some consequence of the change. The Pi is my most significant component, so changing it would be a huge jump.
I focused instead on things that let me keep the core Raspberry Pi system and OS and then change things on top of that like the video capture chip and creating a custom 3D-printed case.
>Been following along as your posts have hit the front page ever since I read your epitaphs entry.
For a second, I got scared that you somehow know the date of my death, but then I remembered that it's something I filled out before leaving Google. At least I hope that's what we're talking about. : )
Say this to a Chinese or European guy. You're very privileged lol
People starting a business after working a few years for a FAANGish company are like people with rich parents. They begin their startup journey with much more than the rest of us.
--edit--
Sorry, guess I'm just jealous of people who start with parents/insurance money, FAANG mentoring/compensation, or such.
I think his situation is different. He didn't ask for VC money. He didn't have tons of "business" experience. He didn't invented GMail like Paul Buchheit. He didn't have "networking" advantages built and ready to serve him post-Google.
I don't know him other than from his blog but I can relate because he started from zero (aside from his software development skill) after quitting his job. He shared his journey: trying to figure things out as he goes along.
I mean... he worked for Google, "cool job, bro!". But have you ever worked for a BigCo before? The moment you're out, there's no safety net. All the infrastructure (software, hardware, HR, knowledge base, etc) is taken away from you.
> FAANG mentoring
What FAANG mentoring are we talking about? He reads available books out there just like the rest of us man...
So you learn in a few years what could take you a decade on your own.
You clearly put FAANG on a higher pedestal than they should be...
There's this thing called "politics" that exist almost everywhere.
The mentoring that they get pertains to their job (e.g.: "Company-X" Python Code best practice, "Company-Y" Deployment checklists).
They don't get mentored how to run your own startup, find product/market fit, etc. FAANG companies are "huge". They hire specialists: "developer" not "developer, marketing, biz-dev, QA, ops, rolled under one hat".
I say often because of course a tiny fraction of wealthy people are successful after spending an inherited fortune, but more often than not success seems to be genuinely earned through hard work and trial and error.
The 'rich parents' argument seems like the same cop-out as "it takes money to make money" rubbish that people still spout today. After all, it's never been easier to build a business from nothing (starting a YouTube/Insta/TikTok channel or a free blog). People just need to put their already-owned smartphone or laptop to good use.
I don't believe that money isn't a major reason that people are successful.
You're right that I'm in an extremely lucky position, and I likely would not have experienced the success I've had so far without several unfair advantages I hold. Google taught me a lot that would be hard to learn elsewhere, and I also have enough savings that I can try and fail many times without it mattering, and very few people have that luxury.
I try to be cognizant of that in my writing and avoid making it sound like what I'm doing is easy or accessible to the average person. That said, I can only write about the experiences I've had, advantages or not. As much as possible, I try to share what I did and learned and not tell anyone else what they should do.
You lost much money, but you could afford it, because you saved when you worked at Google.
That's usually the point I think "oh, one of those again".
I mean, there is much to learn from you burning money that I don't have, but it always feels a bit disillusoning to me.
So again, sorry for calling that out.
That being said, it doesn't mean: 1) you should stop reading just because he worked at FAANG. 2) you can't take risks because you didn't work at FAANG.
The risk/opportunity cost is the same if not more: if he makes $300k from a product, it's less than he would have made at his previous job at Google perhaps.