HACKER Q&A
📣 mastrsushi

Is it realistic to make a good living as a sole software developer


I have a B.S. in Computer Science. Having worked two years, I've absolutely found i hate working under people in an office environment. I've hopped across three companies, I'm growing miserable and finding I dont enjoy this whole CRUD MVC business logic type of work. I'm tired of fixing leaking pipes in mediocre code bases by people who aren't passionate about what they do. I also find app development to be plain uninspiring and am constantly biting my tongue.

I want to develop a JS interpreter, a simple game engine, or even an app of my own interests. Can these sort of projects lead to more distinguished roles? Or do I just have to work my way up for the next 20 years under bland government contractors and health insurance companies?

This is not what I wanted in life. Do most people lie when asked if they like their job? People keep telling me to do what I live because bigger salaries aren't as important. That just doesn't seem realistic.


  👤 forgotmypw Accepted Answer ✓
My advice to you, as someone with 20+ years in the industry:

Look at each job as a college course or internship you also happen to get paid for. Try to learn something new at your job every day. If you go several weeks without learning anything new, start looking for another job. Even if you're only a few months into your current one, doesn't matter. The job market is great, and you can spin it in a positive way. I've been asked about it in interviews, and my answer is that I work hard to make a positive impact every day I work somewhere, and to ensure that even if I work somewhere just one day, they are glad to have hired me.

While you're doing this, start looking for a problem that you want to solve. This is typically born out of your own pain point, or someone close to you. Start working on it, and looking for a way to solve it in a way that is beneficial to you. Typically, this means providing support for your software in return for something else, either money or barter.

Do not allow yourself to invest emotionally into your money work, because, as you have seen above, it is disappointing. Remember the college course strategy above, and don't allow yourself to be upset by work bullshit.

While you're doing all this, minimize your lifestyle expenses and save your money. This will provide you with runway when you're ready to lift off your startup, while at the same time extending the length of runway each dollar provides.

Good luck! Based on how you described yourself, I believe without a doubt you have what it takes to achieve happiness in this field.

BTW, I noticed your other post about textfile-driven development, and I am working on just such a project. I use SQLite for an accessible index, but I insist on human-readable text for both config and data for the base. You can learn more about it via my profile.


👤 rubycon22
It seems like what most people in your position do is try to get as rich as possible doing a job they may dislike/hate until they can retire and then start doing whatever they love. Often, they may not reach whatever they feel is the appropriate amount of money to retire and they keep wasting time doing what they hate and end up falling out of their passions. Now imagine how it is for people who don't have the ability or credentials to get a six figure and beyond job to build up their wealth and retire. You could read this and think about how privileged you are that you have the opportunity to do something like that. Or, you could go the opposite route and take a big risk toward doing what you really want to do and hoping for the best. There is a middle ground somewhere there as well. I'm not qualified to give any concrete or actionable advice beyond this. I really wish there was a better way. Not just for people like you, but for everyone who doesn't wish to waste their life working.

👤 aspyct
Hello, fellow dev! I found myself in the same position after roughly two years or career.

Fast forward about 8 years, and I'm now happily freelancing, working with an awesome team and yet very much working alone on my code.

A few things:

1. team matters. Humanly speaking, I mean. Everyone takes shortcuts, or sees "best practices" differently. Find a team that is willing to build a great product together, accept a few tradeoffs, and you'll be a lot happier at work.

2. Find things you like working on, but that everyone else hates. You'll love doing it, and the team will happily leave that to you.

3. Don't get emotionally involved. A job is a job, it's only a part of your life. Work on side projects if you'd like (outside office hours and on your hardware), or take on another hobby. Who knows where it'll lead. Some niche you enjoy, maybe?

Do I like my job? Well, yeah I do, very much so. Truth be told, it's the only thing I can do for so. much. time. But yes, with 40h of the same thing each week, you're bound to look on the other side of the fence sometimes.

I don't think it makes sense to go full alone, but find a great team and take the responsibility for something you love but everyone else hates. Bingo!

Oh, and a last thought in edit: old software is awesome. Think about it, it's still here because it stood the test of time. No small feat!


👤 lmarcos
> I'm growing miserable and finding I dont enjoy this whole CRUD MVC business logic type of work. I'm tired of fixing leaking pipes in mediocre code bases by people who aren't passionate about what they do. I also find app development to be plain uninspiring and am constantly biting my tongue.

That's called software engineering (programming + time + money + people + constraints)

> I want to develop a JS interpreter, a simple game engine, or even an app of my own interests.

That's called programming (plain programming).

Obviously, programming is more fun that software engineering (in general). The classic story is: boy receives his first computer, discovers BASIC programming and fells in love with it. That's what he wants to do for the rest of his life. Then boy becomes adult and needs money. So adult does software engineering (instead of programming) for a living.

Software engineering could be as you have described (very meaningless), but it can be the other way around. Like in many other aspects in life: Keep searching. This means: search for a better job/company, start your own company, get into better projects, learn how to like more software engineering, do freelancing, etc.


👤 nickthemagicman
One solution I think to this is to find a government job or something easy and then do all your work for the week in a few days, then work on your own stuff.

Another is to have super low living expenses and take a year off every few years to work on your own stuff.

I got into software thinking I would be able to build cool stuff too but alot of the work is maintaining CRUD apps with a constantly expiring skill set. I sometimes regret this career and wish I would have gone into another field but trapped here for now with golden handcuffs.


👤 ps1983
I had a similar realisation when I started my IT career. I handled it by keeping my work and ambition separate. But not distinctly apart. Started my career in 2007, I was assigned to a Java maintenance project, while I had interest in databases and data warehousing which was lucrative during that period. So I tried to gain knowledge in that space during my personal time. During a meet the topic came for discussion that's when I volunteered to do a proof of concept.

It worked for me. Idea is to achieve the thing that you want to do, without losing what you already have. Career is a journey and not a destination, and never make money the driving light.

It may sound philosophical but this worked for me. Hopefully it will work for you as well.


👤 arbol
I suggest you work on these projects in your spare time if they are your passion. Release them on GitHub and see what happens. If other people find them useful then you will probably have created a job for yourself via consulting or similar.

As with anything in life, you can have too much of something and it sounds like this is paid employment in your case. Try to negotiate down the number of days you work for less money. This will give you more time for your projects.

Simply earning enough to not work should not be your goal. It is much more fulfilling being involved in collaborative projects that you have some interest in.


👤 jokethrowaway
There are definitely learning opportunities in many jobs.

Sometimes it's a new technology, sometimes it's about leadership / selling or learning to navigate team dynamics. Your base pay is there, learning is an additional benefit. If you're not happy, change job.

I try to be very stoic when dealing with other people's code: you can't control how things could have done in the past, so don't make your happiness depend on the quality of a codebase.

Freelancing is going to be almost as boring as normal work: sure, sometimes you'll be able to select a cool project, but most of the times it will be the usual boring stuff you do in the office.

Plus you have to chase invoices, sell yourself, market yourself.

Building your own product is not much different than freelancing (lots of boring tech) but you're breaking the relationship between your time and money.

I think it's entirely feasible to make a living with a small tech product - and it will allow to invest your time in more interesting and ambitious projects.

I suggest you to: - Collect small business ideas you can easily automate - Look at YCombinator startup school talks, ignore the part about doing a business that will make billionz but keep all the other tips on how to make money - Learn something about selling / marketing - Look at levels.io presentation Bootstrapping side projects - Save enough money to be comfortable with assuming some risk - Try to build something that you like and that solves a problem - Indiehackers / Producthunt are good places to chat with like minded people


👤 ThrowawayR2
Well ...

- Mediocrity is normal, by definition. Half of software development teams are below average (or the median if you want to be technically correct).

- 95% of software jobs are web, CRUD, or mobile/desktop apps being developed in a team environment in an office.

That being said, doing technically interesting stuff is possible but it requires you to seek out the tiny percentage of jobs that meet that requirement. Being a solo software developer is possible, but you're now your own business guy, marketer, product manager, etc. Both paths are a hard road and not as easy money as following the mainstream. The question for you is, how bad do you want it?


👤 Bakary
A solution to this is to do work whose end result is actually meaningful to other people. Let's say helping to fix some societal issue like pollution, lack of access, etc. You have an in-demand skill that can serve many different purposes beyond superfluous tertiary sector projects. It may not be the case that the actual work is much different, but feeling like your work actually has a point completely changes your relationship to it.

I see a lot of people here who talk about their depression despite making enough to afford so many comforts and retire early. To me the reason is fairly clear: deep down they are consciously or unconsciously aware that their life's work is either of no consequence beyond enriching a few people and sometimes actively harmful to the world. Of course, many personality types would not care at all about this factor but I believe not everyone can ignore this need.


👤 mikesabbagh
Dont put your eggs in one basket. Dont spend 100% of your time in a startup if your idea was not tested yet. Dont be employed without side projects. You will be happier when u have more balance.

A job gives you some TODOs that u dont like, but it also give you more than enough cash. A startup makes you dream, but it will empty your pockets and may destroy your relantionship with loved ones


👤 seanwilson
> Is it realistic to make a good living as a sole software developer

Look up guides on how to go freelance. You can target the projects you want and the technologies you want. Lots of people do this but you hear about it less regularly on HN.


👤 bartvk
Have you looked at other challenges in Computer Science? Think embedded software, or maybe FPGA work? Maybe a position as a scientific programmer, or software that's very close to custom electronics?

👤 dusted
Or become the rebel, start pushing back and have fun, do your own things if you deem them in the interest of the company.

You'll either get fired quickly, or recognized as a valuable asset.


👤 cblconfederate
It was 10+ years ago. Nowadays everything is gatekeeped and it's become too hard

👤 noemit
join a startup really early stage. to have fun and build cool shit u gotta roll a hard 6.