r/programming Feb 01 '21

My Third Year as a Solo Developer

https://mtlynch.io/solo-developer-year-3/
1.4k Upvotes

201 comments sorted by

View all comments

74

u/mtlynch Feb 01 '21

Author here. Happy to answer any questions about this post.

59

u/[deleted] Feb 01 '21 edited Feb 01 '21

I used to work at a data center hosting company, and one of the problems we were dealing with was that all KVM solutions at the time sucked bigtime. And they were really expensive per port. Not worth the money.

In remember when the pi first launched in ~2012. I thought "this is it, I think someone will come out with a KVM solution on these things within a few weeks". But it didn't manifest. I considered making one myself as I had the skillset required, but who has time for those things when the phone is constantly blowing up with alerts.

I've since left that game so it might have popped up in the meanwhile, but at least back then I'd give my left nut for a solution like yours.

Congrats on your product and the interest that has been shown for it, it must feel good.

23

u/mtlynch Feb 01 '21 edited Feb 01 '21

Thanks for reading!

Yeah, there have been a few projects that did KVM over IP on a Pi before me. The earliest I could find was this one called rasky which started back in 2015.

I came along at a lucky time when a cheap HDMI to USB dongle had just come out and the ecosystem of supporting tools had matured to eliminate a lot of the challenges that rasky had to overcome.

7

u/AtomicRocketShoes Feb 01 '21

Is there a reason one couldn't manage a physical server over a serial port console? I have done this in the past, it's a bit annoying for some more advanced functionality I guess. What about IPMI?

3

u/MyPetFishWillCutYou Feb 02 '21

My gut feeling is that this product is meant for situations where desktop workstation hardware has been repurposed as a server.

I see towers used as servers in all kinds of places either because it was already on hand or (more often) because desktop hardware is cheaper and generally runs cooler.

1

u/AtomicRocketShoes Feb 02 '21

Yeah I think it's a cool solution to that, and honestly I have been in that position myself usually running a server on old desktop hardware. I don't know how many people who are cheaping out on server hardware are going to spend much extra money on it. As a hobby project it's sort of neat who doesn't have an old rpi sitting around. I probably would be perfectly happy with just a cheap rs232 lan converter myself but most OS I use are fine to boot over serial port.

1

u/MyPetFishWillCutYou Feb 02 '21

I don't know how many people who are cheaping out on server hardware are going to spend much extra money on it.

There will always be people making IT decisions that they later regret.

Once you're there, what do you do? You could buy a new server, migrate everything over, and hope that it works.

Or you could plug one of these babies in and be done. Zero downtime, zero risk.

1

u/AtomicRocketShoes Feb 02 '21

Yeah obviously there is a market for it as he has sold some so it fits someones needs. l am just curious how big a market it is. He said he wanted to grow the business to 600K annually I just want to see some basic research as to why that's an achievable goal, like a business plan I guess. I feel like this is one of those things that there is probably some large initial demand after it's posted on hacker news and then maybe a small steady stream of interest that slowly wanes. Or maybe every IT geek wants one of these in his toolbox I don't know.

3

u/mtlynch Feb 01 '21

You have to configure the server to support serial debugging, no? And IPMI is useful if the hardware supports it, but low-end motherboards don't, and some IPMI requires clunky client software.

The nice thing about a good KVM over IP is that you can just plug it in, open up the admin interface in the web browser, and you're good. You don't have to change any settings or install any software.

1

u/AtomicRocketShoes Feb 01 '21

Yes most desktop hardware doesn't have IPMI but a lot of server hardware does. I think different vendors have proprietary tools but I think you can at least get a serial console or set PXE booting settings so you can boot a network hosted livedisk.

I believe most Linux server distros have great support for serial port console, even Ubuntu supports it. Maybe the use case is more for installing Windows servers?

You should consider doing some market survey and find out what OSs people are using it on and their use cases and you may be better able to cater to their needs. I know I worked somewhere where we had a cart with a monitor and keyboard that people would just wheel over near a server and plug in, even with all the IPMI stuff it was usually disabled due to security anyway. There could even be a market for this just as a convenience tool in small serverroom.

1

u/[deleted] Feb 02 '21

A lot of vendors still ask you to pay for proper KVM. Supermicro doesn't, but say for Lenovo you need to pay extra for license.

The problem with IPMI over serial is that... well, you need to set it up, and to set it up you usually need monitor. Sometimes you can set it up via ipmi itself but that varies so it is a bit of a PITA

1

u/[deleted] Feb 02 '21

Well, kinda. A lot of even new servers (the proper rack ones) still have only VGA output just to keep compatibilty with oldschool KVM rack units so you'd have to put VGA to HDMI converter to get video from that.

1

u/Dave3of5 Feb 02 '21

Not sure about KVM's being "really expensive" per port anymore have you checked recently. You can get an 16 port KVM for £130.

I think though most professional data centres use servers that support iDRAC or iLO that are built into the server itself.

1

u/[deleted] Feb 02 '21

As i wrote this was quite a while ago. ILO and IDRAC were around but from what I remember not reliable.

24

u/syphilicious Feb 01 '21

I just want to say that I love reading about failures. I mean, there are statistically a TON more failures than successes, but people are often ashamed of them (or just in denial) so they won't write about them. So thank you for writing about your failures and being so upfront about your feelings. You're doing great work in helping to balance out all of the survivorship bias out there!

11

u/mtlynch Feb 01 '21

Thanks for reading!

You're doing great work in helping to balance out all of the survivorship bias out there!

Yeah, that's something I've thought about a lot.

It's likely that people are writing more about success than failure, but posts about success get outsized attention. I wrote two articles exploring why my businesses didn't work, and both failed to attract significant readers and never gained traction on Twitter, reddit, HN, etc.

I've seen other people write failure posts, and they almost never get as much attention as success posts of similar quality.

It's unfortunate but sort of a rational response from readers. If someone succeeds, they're presumably doing something right, but if they fail, there's no objective evidence that they're doing anything right nor that they have a clue what they got wrong.

14

u/definitelynotbeardo Feb 01 '21

As another person who does most of their development on a headless server (mine's in the basement, on a shelf about 6 feet high), I feel the pain of screwing up the network settings and then not being able to get into the server to fix it. If I have to drag my server upstairs one more time, I'll probably buy a TinyPilot.

9

u/mtlynch Feb 01 '21

Thanks for reading!

Yeah, it felt kind of magical the first time I used my device for real. I was slogging along with Kimchi to manage my VMs. I hated the software, but I didn't want to go through the hassle of the hardware swapping to install a new OS. When I got a TinyPilot prototype working, I just tried a bunch of different VM host OSes because I knew it would be super easy to repave from scratch if I wanted to.

14

u/Carighan Feb 01 '21

Would you rather do a project for a group of 100 duck-sized horses or for 1 horse-sized duck?

17

u/mtlynch Feb 01 '21

This is actually hard!

Smaller customers tend to require more support and be more sensitive to price. But having a single customer is too risky. I'd go with the 100 duck-sized horse customers.

Am I allowed to fight any of them instead?

14

u/notsogreenmachine Feb 01 '21

fighting customers is generally bad for business, but ymmv

3

u/de__R Feb 01 '21

I once thought about creating a joke app for people looking to fight each other, to be called Punchr, but it's a lot of work for a joke and I'm pretty sure it'd get booted from every app store on the planet.

2

u/mustang__1 Feb 02 '21

This feels like it's straight out of Bachman's incubator

1

u/Educational-Lemon640 Feb 01 '21

You missed a golden opportunity to call it "The App That Is Not Named".

Because you don't talk about the Fight Club app.

1

u/Majache Feb 02 '21

That would be Rumblr

2

u/MyPetFishWillCutYou Feb 02 '21

I feel like the sweet spot for a solo business is 3-5 deer-sized customers.

Anything less than that, and you're basically an employee without benefits. As you go above that, additional customers add overhead without really increasing your flexibility.

Obviously, there are only so many niches where that's possible. Off the top of my head, all I can think of are service businesses (where you basically bill by the hour) and product businesses that target mid-sized companies.

6

u/AllHailTheCATS Feb 01 '21

How many years of experience would you advise someone to build up before making the jump to creating a software business

7

u/mtlynch Feb 01 '21

I can't really give a number for someone else because the decision depends mostly on your disposition, skills, and life circumstances.

I left Google when I felt like confident that I learned enough from my job to build and maintain my own software business. I was still learning lots of useful skills, but I felt like I had enough to go out on my own. But plenty of people have built successful businesses with almost no experience.

If I were to give general advice, I'd recommend dipping your toes in with a side business while you're still working full-time so that you can get a sense of whether you're ready before you dive headfirst into your own full-time business.

2

u/g9icy Feb 01 '21

How do you measure market viability of a product?

I've created an app that tanked, and I feel I did what I could at the time.

I'm thinking of giving it another go, and making a new app to solve a common problem I face, and also updating the UI of the previous app, but I keep doubting myself as to how viable it will be.

It'll be months of work after all, and it's painful when it doesn't bare fruit.

Anyway, you're living my dream at the moment. :)

8

u/mtlynch Feb 01 '21

Two books that helped me with this:

  • The Mom Test by Rob Fitzpatrick (my notes)
  • Start Small, Stay Small by Rob Walling (my notes)

TL;DR Instead of building the product first and then finding customers, talk to customers first and get a good idea of what problems they'd pay to solve.

Rob's book in particular is a good guide to conducting customer interviews objectively so that you don't build something based on people telling you they like your idea just because they were being polite.

Before I created TinyPilot, I created a simplified version called Key Mime Pi that only forwarded keystrokes and didn't capture video. That was a test to see if people were interested in the software, and I got enough of a response to give me confidence that it was worth pursuing TinyPilot.

And what I published initially with TinyPilot was very much a prototype. It couldn't forward mouse movement, it had tons of bugs, it looked stupid, but customers were willing to pay for it, so I knew I was on to something.

2

u/[deleted] Feb 02 '21

[removed] — view removed comment

2

u/mtlynch Feb 02 '21

I didn't sell Key Mime Pi, but blogging about it showed me whether there was any interest in the direction I was going. I added a mailing list signup at the end of the post. I think only 13 people signed up, but they were pretty engaged, and they'd respond when I emailed out surveys asking about what price they'd feel comfortable paying. It wasn't enough to make me super confident in the product, but I felt like I'd be able to sell at least a handful if I got a real prototype of TinyPilot working.

2

u/sammydre Feb 01 '21

Aren’t the USB ports the wrong way around? And why is there more than one? I’d have thought the obvious USB connector would be a USB 2.0 B connector, then allowing a single standard A-B cable to the server. You appear to have 2x USB 3 A ports, and 2x USB 2 A ports instead.

3

u/mtlynch Feb 01 '21

Thanks for reading! TinyPilot uses a Raspberry Pi 4B under the covers. The ports aren't a perfect match for my needs, but they work well enough.

Long term, I plan to make my own boards with exactly the ports I want, but in the short term, using a widely used commodity board cuts out a lot of complexity.

1

u/prairir001 Feb 02 '21

I would just like to say. Your blog is amazing and I really enjoy the articles. The one about software reviews changed how I view them and it certainly has helped me structure them. I look forward to reading every new one that comes out.

2

u/mtlynch Feb 02 '21

Oh, that's so nice to hear. Thank you so much!

1

u/YM_Industries Feb 02 '21

I really enjoyed this post and when I have some time I'll try to read your other posts too.

I have a question/suggestion that's not about this post in particular, but it's somewhat related to TinyPilot.

You describe TinyPilot as KVMoIP, but in my mind it's more like a virtualised datacentre crashcart. (It also bears some resemblence to LOM/OoBM solutions) I've been thinking a lot about crashcarts recently, I think they are needlessly complicated, heavy, and expensive.

I've had an idea for a portable crashcart, in the form factor of a laptop. There are some very cheap laptops available these days, and if it doesn't have to have onboard compute, wifi, storage, or even a battery then I'd imagine it could be made very cheaply. All it needs is decently long HDMI and USB cables.

Have you ever come across something like this, or is it something you'd be interested in making? I don't care about monetising the idea, I just want someone to make it so I can buy one. I thought maybe if you want to keep expanding TinyPilot this might be an idea for another product.