Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What's the best way to become an independent software developer?
68 points by _q1ju on Oct 25, 2023 | hide | past | favorite | 52 comments
I quite like software as a job but I think I'm going to end up working for myself, one way or another. I can work on a team but I prefer working alone; I also like having control over the direction of a project and being able to iterate as fast as I need to. This has led me to software consulting/contracting or just creating a "software studio." I'd love if someone who has done something similar to share their thoughts on this. Thanks!



If you need to get paid you aren’t “working for yourself” or controlling the project. Whomever pays for your work decides most of the parameters. That’s called freelancing or consulting.

You don’t “become” a freelancer or independent developer. That’s not an identity. You find customers who will pay you to deliver solutions to business problems. If you have a good reputation and track record and relationships with your customers they may trust you to make decisions about the project direction, tools and languages, schedule, etc.

Building a freelance practice takes considerable time and effort. I have some articles about that based on my experience (over 15 years freelancing) on my site typicalprogrammer.com.


I am you. Or more accurately I am what you want to be.

I started in a small business as employee #1 (with the founder as #0). We wrote bespoke software for customers. When that well proved unreliable as income we built products and took them to market (much more reliable risk of actually getting a salary this month.)

Over a long career I've had the freedom to elite what I want, release when I want, with any cadence I want and so on.

Of course I also learned what my customers like, what they don't like, and what they like, but I don't like. Inevitably (because I like to eat) my work patterns match what they like.

I font have 1 boss now. I have 1000. With 1000 voices all at the same time. Some are louder. Some are more useful. (The most useful are seldom loud).

Ultimately I do provide enough value for them to graciously pay me. But make no mistake - it was very hard (non programming) work to get here. The key insight was marketing. I have spent probably half my career actively marketing - and for a long time that included a lot of travel. I have visited my potential customers in small groups I cities across the globe. Multiple times. I've run training courses, attended industry conferences, processed orders, and so in.

Independent means doing -all- the jobs, not just programming. If you want to make a living this way (and i do) just be aware that there's still a million things to do. Programming might be the fun part, but you need enough discipline and desire to do the rest as well.


The first half of this advice seems like possibly-unnecessary semantic pedantism.


I think you mean pedantry.

Read it however you like. I intend to give a realistic opinion based on my own experience and that of other freelancers I know. I've read or heard starry-eyed dreams of "just writing code the way I want to do it" as if that would somehow generate an income. Writing whatever code you want in your own way defines a hobbyist. Developing an idea into a product defines an entrepreneur. Coding what someone else wants for money defines a freelancer.

I don't know what the OP imagines or wants. "Independent software developer" can describe any of the definitions I gave above. It can also describe "unemployed grinding out niche open source project." As a freelancer I have considerable independence, compared to employees, but I don't get to set all of the parameters because I have to deliver something my customers will pay for, on a schedule they agree to. The more history and trust I have with my customer the more input I have into the overall process and parameters.


> I think you mean pedantry.

Yes, that is absolutely the correct word. On so many levels.


It may seem that way, but its not.

If you only have 1 boss, he gets 100% of the control over you.

If you have 100 customers, they each get 1% control. But they all pay 1% [1] of your income. So you get to make 100 people happy not just 1. Its a very real issue in this sort of space.

[1] in truth they're not equal. 10% probably make up the bulk of the income. They shout with a quieter voice. When they whisper you jump. The ones who pay the least will also complain the most. About "trivial things". Listening to them improves the product enormously.


> I think I'm going to end up working for myself, one way or another.

It marks the difference between working for a single employer, multiple customers, or yourself.

If someone pays you, you're working for them.

So working for yourself means you don't have to listen to anyone but yourself when delivering.

This is possibly more utopian than what the author wants, and pointing out the difference is not pedantic.


It is 100% garden-variety pedantry. Everyone knows the meaning of "work for myself" and no-one is confused about to whom one has obligations. This entire thread is just "well ackshually whoever pays you is really your boss when you think about it!!"


> Everyone knows the meaning of "work for myself"

Do they? I would disagree that everyone knows what that means. "Work for myself" often just means "nobody can boss me and I can work whenever I want" which is not the reality if someone pays you. Some of the most stressful and least flexible jobs are one-person businesses working for client.


You know, just because something is obvious to you, it’s not obvious to everyone.

You don’t have to respond to everything that is obvious saying that it is.


Dont do a consultancy, thats selling your time for money, and it scales poorly.

Invent a product, tutorial, or SOMETHING that takes advantage of softwares mega-advantage over other industries: It's basically free to copy, and it's basically free to distribute globally. Neither of those magical properties get used if you're a consultant selling time for money (although will be used by your client, you are capuring near zero value of that)

Selling your time is a mugs game, build a product.


I hope you perceive the problem with the advice “invent something.” That’s the hard part.

This advice reminds me of an old Monty Python sketch, a TV show about how to be rich. “First you need to make a lot of money!” Then the “being rich” part falls into place.

Selling skills is not a “mug’s game.” Not every path to earning a good income with some freedom has to scale. I do solo freelancing, make a good living, live and travel wherever I want, choose the projects I work on. Mug? Or should I be selling another crap ebook or tutorial video online?


If you sell it as time for money, that's the deal you'll get . If you sell it as value for money, the deal will be different.


I was in the same boat. Tried starting my own agency. Had a bit of success, but I was spending a huge chunk of my time just chasing money down. Then I stumbled upon a way to have my cake and eat it too: Becoming a Solutions/Sales Engineer.

It's all the upsides of running your own consultancy, without the downsides of chasing money and customers. I have generally flexible hours, tonnes of autonomy, and have a nice balance of getting to talk to people and coding. None of the coding I do is rocket science-level hard for me because I'm working with the same set of APIs every day, but is incredibly helpful for customers. My boss hardly ever tells me what to do, every week we have a 1/1, asks if the customers I'm helping are happy, and I tell him what I'm helping them do the following week.

It really is the best gig on the planet. I wish I would have known about this path sooner.


Thanks for sharing your experience. My career has drifted around a bit between IC and management, but I’ve always been highly technical. At the point (20 years in) I’m wondering what’s next, because up (Principal levels, directorships, etc.) hold little to no interest for me. I’d never really considered SE roles, despite having worked with great SEs for a long time, just because… no reason, just never thought about it. But at this point, the idea of helping a wide range of customers apply a known technology seems more appealing than the pure development work I’ve been associated with all these years.


I have a couple of co-workers who have similar stories as you. 20 years in with some management experience, and they don't care about being the VP of Whatever. Solutions Engineer is a great role for someone who CAN manage but doesn't want to JUST manage, as you spend a lot of time "managing sideways".


How did you get into that role? Was it an internal transfer or did you just apply for a position?


I went from running the engineering team at an online virtual events company, to trying to start my own agency to cold-applying to a WebRTC vendor with online virtual events companies as customers.

The key was having experience in the business vertical for me. They wanted my former company as a customer, so that helped. My former company ended up becoming a customer too, so not burning bridges REALLY paid off :-)

I'd recommend an internal transfer if you can. It does make things a lot easier. My previous companies didn't have a role like this available so I had to go the cold application route.


I am in the same boat. I have 12+ years of experience. I tired to launch a startup and it failed miserably.

I am considering Amazon IQ. If you are into AWS and can get the professional level certificates, you can use Amazon IQ platform to freelance. I have used Amazon IQ to hire before and I had good results. Your really need multiple pro level certificates to compete though.

I have tried Upwork, but it's been a not so good experience. I have my work history on the platform, but it doesn't seem to matter. I've worked at some top tier companies (one of the trillion dollar market cap SF big tech companies). I think Upwork requires building a portfolio tailored to the type of projects you would like to work on.


What kind of rates have you seen in AWS IQ?


I've seen $85-$100. I paid $100/hr for the dev I hired. But they had multiple pro level certificates. I believe AWS takes as 15% fee though. The amount you will get paid is highly dependent on the certificates you have.


I can tell you what worked well for me - find a few other like minded devs/designers and one VERY GOOD biz dev person and you can have a lot of success as a co-op studio. We did this and we were immediately quite profitable from day one. Our model was pretty simple:

* Every full-time person (over 30 hours) is an owner in the company that is awarded an equal amount of company shares EVERY QUARTER.

* 10% of your earnings go to the company (of which you are now part owner)

* 10% of your earnings to the biz dev rainmaker that set up your contract

* Everything is decided democratically

This worked extremely well for us, but if you're at a small size (<6 owners) then you will have a heightened risk of single-point-of-failure because you can probably only afford to pay a single full-time biz dev person.


I recommend looking into Sociocracy consent-based decision making, for a helpful framework for democratic decision-making with less risk of paralysis or committee design


It’s extremely hard to engineer a product, sell a product, support a product, and administer a business all on your own. It really only works if you can escape a few of those hats through luck, unusual cleverness, or the right partner.

The easier road to having a lot of agency in your work is through consulting/contracting as you’ve already started. The more expertise your develop and the more reputation you earn, the more confidence you can bring to your recommendations and the more freedom your clients will give you. Once it starts churning, you make plenty of money and have lots agency and rarely need to look hard for work.

But that takes time. The most valuable advice, besides patience, is to be discerning about what clients you accept and retain. It can be tempting to take any client during a dry spell or to become enamored by a client with cool ideas, but some prospective clients will devour your soul and others will have financial trouble that leaves you with large unpaid invoices and little recourse. You can learn to spot this ahead of time and you want to develop that skill. Too extreme a bad client, or too many bad clients, will burn you out worse than any bad manager at bigcorp. So stay watchful and don’t be afraid to fire bad clients once you see things looking dicey.

Good luck!


It's not exactly what you have in mind, but my friend walked into local small businesses saying "Hey, can I make you a website?". Then he googled "how to make a website" and figured out how to drag and drop with WordPress. Literally no tech experience, just a few business cards, and it went uphill from there.

He gradually moved into SEO and marketing as his customers wanted that. Right now he has about 40 customers that give him consistent work.

To this day, he's still amazed that I can code and write CSS.


I often wonder if SquareSpace, Shopify, etc has eaten the market for small companies wanting to someone to build them a website. I’d be curious to know if your friend could still get that step up now.


Those platforms have accelerated the market creating more opportunities for freelancers to design bespoke websites on their platforms with low/no code.


Charisma is very valuable.


Work a regular high-paying software job, save, invest, reach FI, then do software all day.


keeping your work pipe full take quite a bit of time. alot of jobs dont pan out, and when you think you've got steady work, it can suddenly disappear. also be prepared to deal with clients who really dont understand what they need and are just desperately hoping for someone to make their problems go away, but without empowering them. if they had control of their development, they wouldn't be hiring contractor. you've gotta try to make it work as best you can. because if you can, people will remember, and thats gonna help keep your pipe full later on.

unless you have a very niche skill that they really wouldn't normally hire a full time for. thats really the best ticket here, because those people are alot more respectful of your time, pay better, and are very clear about what they from you.

dont even try to get work on those job boards. i dont have any good suggestions on where to start getting jobs if you dont already have a network.

if you can keep all that going, its entirely possible to work part time, make good money, and have great control over your schedule and life choices. if you cant, then coming out of contractor into salary can be harder than transitioning between salaried jobs.


Right on, am sort of in a similar boat. Have been software contracting for a few years but it's still not truly "independent" dev work.

Probably the best way is to just do more independent software development. Personally think dog-fooding business tools are good to work on - solving your own problems.

One tough part about working independently is not being exposed to others' ideas. Keeping up on industry trends and continuing to learn via whatever means may also be relevant.


I have done this for 30 years now, but with a twist; I get clients for consulting, learn their business and then build software to help them and sell it to them and their competitors. My first products from 30 years ago (in pascal/Delphi) still sell. I am currently consulting for 5 clients and building a new product; keeps me up to date and the work interesting.


Do you have a blog or website?


I have had similar thoughts lately, I currently work in govt in a job that isvery secure but isn't everything it could be. The thing that puts me off it is the unknowns around generative AI over the next few years - the cost of creating software is plummeting and the barriers to entry are dropping, language translation tools are going to enable a lot of high quality international developers (read: India) to better compete for remote work. Of course the flip side is a big increase in demand when there are lower costs, maybe it's the best time to do it.


build something and launch it. charge money for it. publish about it. repeat.

check out @indiehackers and @levelsio, and the book "start small stay small" by rob walling


This is the 'best' way, absolutely, but it's not the easiest and it's tricky if you need a regular income.

But even if you try and it doesn't work out 100%, you still learn a ton.

Rob has a new book out, by the way, "The SaaS Playbook". Haven't read it yet, so not sure how it is, but "Start Small, Stay Small" is one of the best business books I've ever read because he went out on a limb with real, practical advice rather than handwavy BS. That means it's a bit dated now, but probably still worth a quick read.


This is the way. Just dive in and start with something.


> This has led me to software consulting/contracting

For better understanding your context, have you started being a consultant/contractor already?


Worker owned coops are another way to gain agency and independence without having to give up working with peers


I wrote an essay that kinda sorts describes my path into becoming a software consultant!

https://nishantjha.org/essays/squeeze

It’s early days for my writing and so I’d love feedback


I've been consulting for a decade. I never had a network starting out and just started contacting companies I found on job sites/indeed/craigslist.


What were the companies you contacted asking for? Someone to do a project? someone to fill a job position? Someone asking how to do a WP site?


"I can work on a team but I prefer working alone [...]" This to me is a red flag. Unless you're already pretty experienced, and have a large client base (or a small number of clients who keep you busy), it's nearly impossible to take on exclusively projects where you're the only developer. If you have the luxury of turning away clients with jobs that involve working with other developers, great. But most likely you're not in that position, and would be doing your clients a disservice by trying to do something alone that would be better served by working with other developers.

tl;dr Don't try to be a lone wolf. In the long run it hurts you, not to mention your clients. Learn to work with others.


Another option aside from consulting or creating a product is to write software to trade stocks or crypto. Such as algorithmic trading.


Does anyone actually have reliable success with this as a single coder model? Seems like the HFT firms would have already taken all the profit opportunity for this.


How long have you been doing "software as a job"?


I am having some difficulty in parsing out the situation you are trying to achieve.

If you're thinking "software studio" like "art studio" or "PR firm" or maybe a "legal practice" ? That sort of thing doesn't really exist yet (it may but it probably won't for another decade at least) but not to rain on your dreams let me share a bit how I reason to that;

Given the current working environment, there a few kinds of software "situations"[1] and each have their plusses and minuses.

The simplest is "employee" (which I know you're trying to get out of) but there is a reason that companies maintain a stable of employees whose only job it is is to create software. It is an economical way to spread the cost over a variety of software needs, especially for vertically integrated companies.

The next simplest is the software contractor. The client tells you what they need, maybe puts some parameters around it and gives you an unreasonable deadline[2]. The upside is you can pop these off and generally they will pay the rent. If you're specialized in a particular thing they can even pay more than the rent. The freedom to come and go as you please it a plus, that you need to line up the next one before the current one ends, kind of a pain. Evaluations are also often more stringent as the clients are typically paying you more per hour than they pay regular employees so they darn well get their money's worth.

A more complex one is developing a boutique software product and focusing on that. I have a good friend that developed all the software for some industrial control systems and they can just sell it again and again to people who are setting up factories or other control processes. I think the typical way these form is someone is contracting and starts reselling the software they wrote on one job to others. (note you need to include language in your engagement contract to do this!) But there are a lot of industries where they need an "out of the box" solution. One person I know did this for their local church and then resold the same package to half a dozen of the churches in town.

The important thing to understand is that software is worthless. I can be fun to write (I enjoy it tremendously and write software for fun) but to be economical it has to serve a purpose for someone who is generating some sort of economic product. And writing any software product has parts of the software that is boring/lame to write and that part of a project will always feel like a job.

There is however one way to write software for fun without having to deal with deadlines and impatient bosses, and that is to get a job teaching programming somewhere. You can write things and go over it with your students, you can see how they write things and help them get better at it. You do have to deal with "school politics" which is a thing but the software you right doesn't have to "do" anything, just be illustrative.

So if you had hired me as a coach and posed this question, the first thing we'd do is put yourself in your "software studio" and write down what your day to day looks like, who your customers are, and why they are paying you as opposed to hiring some contractor or a full time employee (FTE) to produce the software they need. Then work backwards from there to the present to get a handle on what milestones you might expect between your current situation and that one.

[1] I'm going to leave off the one where you work as an employee of a company that is growing and gives you stock options so that after some number of years you can pay yourself from gains on your investment portfolio and spend time writing what ever code you want. Perhaps surprisingly a lot of people fail at this (they have the means but just making up things to do is not one of the skills)

[2] I'm not sure why but of all the software contracts I've taken on over they years I have yet to have someone say, "Take as long as you need to get it right, that is so much better than getting it fast." :-)


> "art studio" or "PR firm" or maybe a "legal practice" ? That sort of thing doesn't really exist yet.

Dev shops are certainly a thing.


What comes to mind when I hear dev shops is outsourcing company that provides software coding. Is that what you meant? I see the engineers as simply employees at that point.


That’s what design and art studios do as well. Take contracts to provide something. Dealing with external parties like this is quite different to having employees performing the same job.

This is also quite a common way to bootstrap a small gamedev studio.


That's a fair point. I wonder if the OP was thinking they would be managing their studio and potentially other developers who were working there.


Small specialized software product development houses, where there is deep inhouse knowledge of a domain, design and marketing, surely exist.

But these places also like eating, and so will not always be able to work just on projects that fit that mold. Often they need to do unglamorous work such as just being an outsourced entity for a bigger one.

This kind of work rarely gets bragged about on their landing pages.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: