The bittersweet end of a year of independence

Saturday, September 2, 2017

Just over a year ago, I left the startup I was working for and started my own business. My intention was to do freelance work ("consulting", to all my clients) until I was able to launch my first product, and then shift into being a product company. My ambitions and confidence were very high. In this last year, I have accomplished a great deal and have a lot of pride in the work I did, as well as what I have learned. Nothing took the path I expected it to, but I wouldn't change that at all. With that in mind, sadly, I am winding down my consulting work and taking on a new full-time job. I'll explain why at the end, but first I want to share some a little bit about what I have experienced in the last year and why it was valuable.

Why I left my job

It's valid to ask why I would even bother starting a business. It is a much harder path than getting another full-time job, with more stress, and with more risk. There are, however, some simple and clear reasons why I left my job. There were three primary reasons I left: I wanted to work on things with more autonomy; I wanted to control my work environment more; and I wanted to make more money.

Autonomy: one thing that is important to me is owning the ideas/products I'm working on and developing them holistically, with a stake in the results. At the end of the day, I am more motivated if I am working on something very important to me, and it leads to greater results. I also thought that if I were working on my own I would develop better skills since I would need them and could not lean on anyone else for that; this was later proven correct, since working on my own projects led me to learn front-end development with an urgency I could not have previously imagined.

Environment: my previous company had an open office, with lots of exposed concrete, metal, and wood. Needless to say, it was a very loud environment. I've learned that I am simply not productive in that environment. Among other issues, I have misophonia (it is at its worst when I am tired or stressed), a peanut allergy, depression, and anxiety. These all made open offices very difficult for me to work in, and controlling my own environment and working remote has led me to being far happier and far more productive than when I worked in a physical office. Everyone is different; for me, controlling my environment has made a world of difference in ways I could not imagine.

Money: It was no secret at my last company that we were underpaid. My manager told me as much. This wasn't enough to make me want to leave on my own, but combined with a desire for more autonomy and for a work environment that worked better for me, it definitely increased my motivation to leave.

At the time I left, my reasons for leaving were not quite as clear to me. I had some reasons and I had the story I told as I left. It was not a lie: I did want to leave to work on my own products. It just took this last year for me to fully realize why I wanted to leave to work on my own products. At the end of the day, that office environment was not a good fit for me, and in the absence of a good fit, a lot of other small issues become big issues.

So with that, I left with grand ideas of a few products I could make, and had a few clients lined up to keep the money rolling in until my products were launched.

How I spent the last year

When I left my job, I gave myself a plan. I would spend about half of my week working for clients, and I would spend the other half of my week learning new skills and working on my products. None of my product ideas worked out, because I did not have the skills to do front-end development when I started trying to make some web-app products. I did learn a lot, and actually worked on some very cool client projects.

For one major property management software company, I rewrote their ETL pipeline using some big data tools and techniques so that it could scale and could run two orders of magnitude faster. This client's work was boring in some ways, but I'm indebted to my friend who introduced me to the team (I owe you a coffee, if you're reading this) because landing this client gave me the ability to quit my job.

I also worked with the world's biggest bureaucracy to modernize some of their old data systems and make it so that some really important data is more accessible, thereby enabling the internal teams to save real lives. This project was awesome in many ways, because it's rare to work on a project that has such a clear line to lives saved. It was also frustrating in some ways, which hopefully I'll be able to write another post about.

Along the way I had some various small clients, who I consulted for on data engineering related topics, built small web-apps, etc. These were nothing to write home about, but they did give me a lot of insight into business and the value my code can add (or the lack thereof).

In April, I also co-founded DACA Time, developed the prototype, and built up a small team of volunteers to help me with some of the development tasks. This would not have been possible if I had been traditionally employed, since I was spending 20+ hours a week on this at some points.

Flexibility saved my life and my career

I started my business so that I could have the flexibility to develop products while still paying my bills, but flexibility turned out being valuable to me for many more reasons than just that, in ways I could not have predicted.

First and foremost, I believe that having flexibility saved my life and my career. In February, I was diagnosed with depression and anxiety. It was bad at that point: I had attempted to harm myself; I was only functional for 20-24 hours per week (I could work, then I would shut down); I had no interest in doing anything and was considering quitting tech entirely; and I spent probably half my time curled up and crying. Let me repeat that: my friends and clients had no idea that anything was wrong, but I was barely holding it together during work and was seriously considering doing permanent damage to myself or quitting my line of work entirely.

I believe that if I had had a normal job, I would have not been able to hold it together even that long. That may or may not have been better for me, but I do know that having flexibility made it a lot easier for me to get to a doctor to seek treatment, and it made it a lot easier to take time off for mental health.

This flexibility is also what led to me attending GiveBackHack and co-founding DACA Time, which both showed me how much I can do as a software engineer, and reinvigorated my passion for software engineering, product design, and making a damn difference in the world.

Consulting taught me a lot

During the course of the last year, I expected to learn a lot, and I did - but not the things I expected to learn. I expected to dive deep into machine learning, AI, and data engineering, and become a world-class expert in my narrow niche. It turns out, running a business actually doesn't teach you advanced mathematics, but does teach you some other practical things - who knew? ¯\_(ツ)_/¯

Being a consultant let me see how businesses worked on the business-end of things, rather than just the development side. I learned more about how my work directly impacts revenue, which is a lesson I will carry close to my heart through the rest of my work.

I was also better able to determine my market value. When you're on your own, every client you get is a chance to re-negotiate your pay, so you can try over and over and eventually have a really good idea of your market value. I still don't know what my consulting rates should have been, but my clients were way too happy with the price they paid for those rates to have been close to what the market would bear.

The importance of networking and communication was also made really clear, since all my clients (literally every single one) came from my network. Focusing on communicating complex technical details to non-technical clients or less-technical folks became very very important, and made me realize how much value can be added just through clear communication; or how much value can be lost when the details are not communicated clearly. If no one knows who you are, what you can do, or what you did for them, then you cannot deliver them any value.

Go forth and start a business

If you are at all on the fence about starting your own business, you should do it. You will learn a lot about yourself, about the business world, and possibly about software development, and you will come away from it a much stronger contributor than if you just remained a normal software developer. You're better off taking the plunge and finding out that you don't like it, with some great stories to tell, rather than wondering if you could have or should have done it.

If you are considering this and want to talk about how to get started, reach out to me and we can set up a coffee or a chat sometime.

Why I'm winding down my business

Self-employment has treated me really well, and I am in a much better position than I was a year ago in terms of happiness, fulfillment, and mental health. So why am I leaving self-employment behind to take a full-time job again?

Well, there are a few reasons:

  • My wife and I are both self-employed. This creates are few challenges. Good insurance is super expensive, and my mental health treatment this winter/spring made me painfully aware of how expensive ultrasounds are. Additionally, banks are unfortunately not very fond of lending money to two self-employed people, especially since I do not have a long history of it.

  • I really really miss being part of a real team. When you're a consultant, you just have a very different relationship with everyone on a team than if you are a member of that team, and it's very isolating. When combined with being 100% remote and having less human contact, this can be challenging. I want to be part of a team again so we can rally together to do great things, so we can lean on each other, so we can be friends instead of being clients/consultants.

  • Consulting just isn't making me happy. My skill is as an individual contributor, not at running a business or being a manager. Running my own business required me to manage a lot of aspects of the software development process that I'm not good at, and it required me to manage a lot about my business that was very inefficient for me. (Next time around, and I promise there will be a next time, my wife is going to help with the business side of things, and I will outsource as much of the rest of these tasks as I can.)

So on that note, I'm really happy and sad at the same time to say that I'm going to stop working as a consultant and will be moving back into a full-time job. Some of my friends know what company I'm joining, but it isn't public until after I've officially started (if you're curious, watch my LinkedIn profile). This is really bittersweet for me. There are so many advantages and good things about being with a company, but it comes with a certain loss of freedom and autonomy as well (and a loss of time to put towards DACA Time). I'm really confident that the team I'm joining is a great one, composed of great people, so I will be able to retain a lot of the flexibility which I have thrived with (otherwise, I wouldn't do this), but it remains a bittersweet end to a year of independence.


If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.

Want to become a better programmer? Join the Recurse Center!