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.
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.
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!
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.
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.
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.
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.
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
- 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?
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.
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
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.
You'll either get fired quickly, or recognized as a valuable asset.