It's official now. I gave in my notice, and I registered a company. Soon I will be working full time on my side project. I had enough complaining and I decided to put my money where my mouth is.
There's a lot to starting a company. A lot of things about myself I need to change to give myself a chance. And a lot of reasons why I did it.
Let's start with why:
I was not happy with my job.
Make that my career/industry. But, unlike someone working at, let's say, McDonalds, I was working as a software engineer. Not a stepping stone career, a target one. But I've come to feel that what I was doing at work wasn't real programming, and it wasn't just where I happened to work, it was the industry itself.
There were some other things. I've been using Lisp at home for about a year, and I had to go to work to write JavaScript. Using any other language after discovering Lisp is like having Ambrosia on Mount Olympus then going back to England to eat baked beans.
I'd also had it with scrum. Meetings all the fucking time. Sorry, I meant "ceremonies". I've written non-trivial software by not using that ridiculous methodology and the result was much more happiness, and better software. At my previous job, when I started there was less of that because they were basically winging it, but then they decided to get more serious and use a methodology and I observed in real time as things got worse. Scrum is so depressing. The endless hamster wheel where nothing significant gets done. I was also reading about other ways software gets made, e.g Shape Up by 37signals, and saw evidence of a better way.
I rarely got to use my brain at work. It's just gluing together libraries and making CRUD apps. I used to believe that the things I did at home were toy programs and work was the real stuff, but at some point in my mind it switched.
In my view, technical skill has a very high ceiling both in terms of ability and utility. But, according to the software industry, ability or utility maxes out quickly, and further utility comes from management/cheerleading. For all the projects I did at home, the bottleneck behind making them more impressive and useful came down to technical ability, but at work we just made CRUD apps and patted ourselves on the back for "innovation".
Ok so we have an impedence mismatch here. As long as I think the way I do, and the software industry thinks the way they do, I can't progress in my career. It's possible that I'm wrong, and that if I adjust my thinking I can progress, or just accept that I can't progress that far because my temperment is more suited to technical stuff than people stuff. Or maybe I'm wrong about the industry being that way. But I think I'm right, I've certainly thought about it much more deeply than the people peddling the stuff I disagree with. As for whether it's just my job or it's the software industry itself. I think it is the industry.
They hire people from other companies in the software industry, and they go on to spout and do the stuff I disagree with. It's a sentiment I've explicity heard from people in many differrent companies, and they typically have unanimous agreement. I also see it when I look for job listings.
The strategy I used to get the job I'm leaving was to apply to lots and lots of companies and play the numbers game. Most reject, some progress to an interview, most reject, some progress to a job offer.
I tried doing this, but with my newly discovered criteria in mind. And not even all my criteria, just enough to make a material difference. But there were so few jobs that I could find, not enough for the numbers game to work. This problem was made worse by the fact that, for the handful of jobs I could find that met some of my criteria, nothing in my professional work history shows experience with the way I want to work, it's almost all in ways I don't want to work, and for non-entry level stuff people basically ignore anything you do outside of work, even if you invented a time machine and cold fusion.
Why start a company?
I realise that the odds of success when starting a company are really low, and that it's a lot of work. It seems like it should be easier to find a job than make one. But it wasn't. Granted, I didn't give it a huge amount of effort. I did it in a "don't put all your eggs in one basket" kind of way - since I was already working on my side project for my own reasons, and then found that others were interested in it. If I put half my time after work into my side project and the other half into finding a job I wouldn't make enough progress in either. If I wanted to increase my chances of finding the kind of job I wanted I'd need to write open source Clojure for a year, get people to use it, attend and give talks, all after work. It seemed like just as much work as starting a company, only unpaid and indirect.
Even if I get a job more aligned with my criteria, it would only be 40% of my criteria, it would be a lot of work to get it, and it might not happen. Starting a company is also a lot of work, and likely to fail, but if I succeed I can make it meet 90% of my criteria at least, so why not do that.
Someone offered to invest in my project, and people were getting more and more interested in it. It seems realistic that if I work on it full time now, I can make it profitable or raise money until it is, and be much happier in my career. Even if it eventually fails, I can have an easier time getting the kind of job I want after because I can show more relevent experience that employers will actually look at.
So that's why I'm going for this strange approach. I realise that my positions are highly unorthodox, but, assuming I am right about what the software industry is like and how it should be, everything else from there follows.
Starting a company is changing me
I've been programming for 10 years. I've been programming for money for 6 years. And throughout that time, I've also been programming after work/school on my own projects. Some of the ways I've worked are not ideal for starting a company, even if they work after it's more stable.
Emphasis on Speed
Earlier in my career I effectively had infinite time for my side projects. My side projects were there to explore my own curiosity. The assumption was that my career was progressing just by getting my school work done or focusing at work, and anything I did at home was for fun and could be done at my leisure. I could spend an extra month working on something rather than paying. I would do things right, think very deeply, switch to other projects when I got stuck, and make things from scratch. I'm greatful that I started my current project like this, because that created the great core that I can keep working on in a different mode.
See, I'm going to be living off my savings, and however much money I can raise until my product makes enough revenue to sustain itself. You'd think that means I should be even more frugal with money, but actually it's time that's at a huge premium. Right now my largest cost is my mortgage and bills. Every month longer it takes me to work is a huge chunk of my savings. Most costs I could take on are going to be far less than that, so if they come with a corresponding increase in speed they might be worth it. This isn't my usual temperment or preference. I can't spend as long in the hammock as I would like, but in this case I know I need to adjust how I work.
I'm also not a fool. I know about the traps people fall into when they try to move fast only to end up slower. The third party tools that conflict with eachother and slow you down. Spaghetti code. Poor quality. Scrum.
In some cases I've written code from scratch that achieves the same function as things I've done at work using third party tools, except it took me less time to do it from scratch and it was more suitable to what I needed.
I also know the futility of planning. Estimates never work, and if you depend on them you will get burned. If you try to do them all the time, you will just have less time to actually work, and they still won't be accurate.
This is tricky, because I really wish planning could work in this case. I have a finite amount of money, and can't work indefinitely on this. I would like to know at what point certain things will be completed, and how many people will be using it or paying for it. Investors want to know this, and I have some made up projections. I have also seriously thought about this. Roughly how long certain things take to do, and how that can impact revenue, but I don't rely on it. I just try to do the best work I can, and spend as much time doing the work, rather than talking about it.
I'm also not a fan of "hustle culture" in entrepeneurial circle jerks. I don't think people can make a product in a week or whatever, not without lots of smoke and mirrors. Good work takes time. I don't think this is procrastination or perfectionism, it's integrity.
Risk Tolerance
Throughout my life I didn't really take risks. I've generally been quite responsible. I wouldn't do things impulsively. I don't drink, or consume mind altering substances. I don't do things under the influence of emotion. I sleep on things.
I wouldn't say I'm paranoid. Or conservative. But I've generally been "responsible". Most of my irresponsibility is the result of laziness, inaction, procrastination, not worrying enough or doing things. Not actively doing risky things.
I can entertain and believe all sorts of whacky things. In chess I'm a madman. But, in the real world where there are real consequences, my approach has been to not do major risky things that can't easily be undone.
However, there's a risk with avoiding risks. In chess, if your position is worse and you're down material, and you and your opponent play sensible moves and make equal trades, your opponent will slowly beat you. They will turn that extra pawn into a queen and you don't have the resources to complicate. In practise, if your position is slightly worse you have to play crazy chess, where you could lose quickly but you can also win. In the safe approach there's virtually no chance that you win.
I can see that my career is not looking good, and if I continue I will slowly be screwed. I won't get the promotions, and future employers will wonder why. Or I will be promoted, but I'll become a manager and hate my life. There's no way to win by staying in my current job or interviewing for other programming jobs with the software industry like how it is now.
A lot of being responsible is about defensively worrying about expenses, whilst having very little influence over income. Suddenly there's inflation, or medical expenses, or a new tax, and no matter how responsible you are, your expenses outpace increases in income unless you can make significant strides to improve that side of the equation.
Since where I am / am heading to is unacceptable to me, and starting a company gives a chance of heading somewhere I'd like to be, not doing it is the risky thing for me.
But it's not just one risky decision. I have to evaluate my attitude to risk with every decision I make. I don't think I always want to choose the most risky option when given a choice. That's why I'm selling equity rather than getting a loan. At the same time, if I take one risk here, but fail because I chicken out for all my other decisions, well I don't want that to happen. I want to give this risky decision the best chance of succeeding, without completely screwing myself if it doesn't. Going half and half doesn't seem like the way to do it.
I don't think I'll ever be addicted to risk the way Elon Musk is. Although, I must admit there is something exhilerating about it.
Decisiveness
This is related to the last two points. I used to take a while to make decisions. I'd get analysis paralysis. I'd do a lot of research, compare alternatives, then eventually come to a decision I thought was optimal. For most of my life, I didn't have to make that many decisions, and the few decisions I had to make had long term consequences. For example, which school to go to, which subjects to take, which energy provider to use, which third party tool the companies I worked for should use.
A startup is different. It's not an established company. By the time a company has been established, lots of decisions have already been made, there aren't as many left. In contrast, you have to make many more decisions in a startup.
In an established company, you can pretty much carry on with business as usual on auto-pilot and be fine. You can easily calculate how much you'll spend and make next year, and compare the difference when making a decision. With a startup, if you're business as usual it will die. You don't know if it will be around next year.
The cost of coming to a decision is negligable to an established company compared to the relative costs and benefits of the decision. This is not true for a startup. If you're living off savings and your expenses are £2000 a month, one extra week of deliberation is £500. It's unlikely you're comparing costs where the differences are of that magnitude. If you choose randomly and the difference is £50 but you make the decision instantly, you're actually ahead even if the decision is worse.
Once your time stops being free, you evaluate costs very differently. When you factor in the cost of making the decision, you make decisions differently.
So it's been interesting. I've been coming to decisions much faster, and spending a lot less attention and mental energy on each decision, allowing me to make many more decisions. And, in retrospect, the decisions I've made so far have not been that bad. Most of the decisions I've made so far I would make again knowing what I know now. Decision making is a skill that can improve with practise.
Just the work
When setting up a company, there's stuff I have to do that isn't just programming. Although, rather than it being forced on me by someone else and unneccessary, it's actually needed so I'm more OK with that. Not only am I more OK with it, I think that on balance there's less other stuff I have to do than as an employee. I've spent a lot of time coming up with better ways to do things, only to not be allowed to do them. As a founder, I figure out what I think is best, then I do it. As an employee there's a lot of babysitting, schmoozing, begging, only to then get almost nowhere.
The analogy I like to use is that I want to be a good chess player, but the first 15 moves were made by an idiot, and I need to convince a committee for every move I make, and every 5 moves or so they let me make a move, and then being told that to advance I need to learn their birthdays and kids names and make them cookies and maybe they can let me make a move every 3 moves, when I could just have been getting better at chess and winning more games that way if there weren't moronic middlemen.
Selling Out
In one of my essays about why software sucks, I attribute part of the blame to VCs. Basically, my argument was that people make unsustainable software, with lots of users and costs but little revenue. And then they have to make a radical shift which makes the product worse - citing Quora as an example.
I still have this concern. I also don't want a boss with extra steps. But I don't think I can bootstrap.
Two of the most notable Bootstrappers - 37 Signals and Joel Spolsky, did so under very different conditions. They both consulted, back when there was a good market for that. The consulting market literally crashed as Joel Spolsky was setting up Fog Creek and he had to lay off a lot of people, but he was fortunate he was able to make it work.
To make my product succeed, I need to work on it. After work and at weekends isn't enough. But, to work on it I need money. I have savings, but they might not be enough. Raising money for equity seems like the most sure way to make it work.
So I'm kind of selling out. Except I will still have a majority - I'm selling 12% equity for £100,000. And revenue from customers is very much part of the plan. I'd like to figure out a way to buy that equity back and pay the investors a good amount for it, but that's another story. I don't intend to sell more, and I think that is realistically achievable.
Conclusion
It's been interesting so far. And I still haven't really started. This is a very alien thing for me to do, but I am a clever cookie and if idiots can do it then so can I. I know I need to change to make this work, and I've done some of that.
I'll keep paying attention to myself and to how I work, and re-evaluating my ideas, and writing them down. It's gonna be a tumultuous ride for me, but a popcorn worth experience for you hypothetical readers, enjoy!