I've been in the industry for over 30 years (yikes!) and I can assure you that job satisfaction is transient at best.
Start by understanding both what you want to do and what you really don't want to do and understand that over time, both of these will probably change.
In most organizations, in order to make the most impact, you have to be at Management level. I think this is causing you some conflict, because you want to be impactful, but yet don't want a CTO-type position. As an Individual Contributor, even as a tech lead, people "above" you really just want you to keep your head down and keep cranking out product. Like it or not, titles have meaning. If you want to make changes, your position in the company needs to be one where they expect change to come from, or you need to get really good at pushing your ideas to others and you have to know those people well.
It's going to be difficult to be an upper-level tech employee at a smaller company and not manage people. The separation between technology lead and manager/supervisor tends to only happen at larger companies that can afford that specialization.
It may sound trite, but the reality is that you have to understand just what kind of job you want and then devote your energy towards finding that job.
This is one of the best responses I've seen. Titles do matter - at least depending on what your goals are. If you want to have broad impact (say leave a legacy or have influence etc) you need a high up title or have your name be synonymous with a project/product used by the group whose respect yoj want to command. And lot the time those above you will have you cranking out things for them. I don't mean this in an evil way. I mean that they have okrs to take care off and you will just be a resource to them.
Thanks for the answer. That is definitely why I have such dilemma, because I know that I don't want to be in the management. Hence why I'm leaning more towards freelancing or creating my own business for now (easier said than done however).
I have been programming for well over 40 years (I am early 50s) and have been writing software for money for 35 of those years (first company during high school, thanks to my chemistry teacher and my uncle, who were friends). Made a bunch of millions during the the early 2000s and kept building software, which I have always loved, since then. AI (well, LLMs) caught me off guard as it did with many people but now I happily use it and create things even faster and better because of it. I guess, like some here on HN, I did not have rich parents: I was lucky enough to grow up in the netherlands, where, at least then, university was free and people generallh were never poor so there were computers around end 70s and begin 80s. My parents taught me to not become a worker drone even though they had to be. I never had a job, only companies. That keeps it going for me and I cannot see it stop. We create things, we have fun, we sell, we start again. Until I die. I cannot imagine a better life.
I'm nowhere near as senior as you (12 years). But I've reflected on this a lot recently. I love the technology and feeling like I'm building things, but staying hands on will always limit your scope. Taking the management path improves your scope but the work is - well - just less fun than programming.
My answer right now is to try and build more things myself. Small apps, CLIs, retro games. Not libraries or much OSS stuff so much as actual "products" that give me creative control and concrete outputs. It's hard to make the time though.
Outside of my career I'm also trying to cultivate other works, like my YouTube channel and my writing. Creating a video that 250k people enjoy is at least as meaningful to me as crushing my OKRs
We are all mortal beings: there will inevitably be more things to do than time to do it, and it's easier to ruminate on options than commit to something that feels "suboptimal".
To give an example of that. I spent a lot of time wondering if I should have gone into academia / literary criticism rather than tech, because of a vague sense that because I was very good at something, that's where I should put my efforts. Is that sound reasoning though? I probably achieved more "value" for society working as a programmer, than writing about Chaucer.
So to summarise it may be a choice of making peace with the lower scope / autonomy of hands on work, and finding that satisfaction outside work. If that suggestion makes your soul revolt, though, it may be you have to compromise and take the managerial path
Thank you. That is mostly what I have been leaning toward recently, and why I'm interested in freelancing. I want more time for my own projects, and freelancing seems to be the only way that I can find a better balance between money and free time.
If you've not already done so, peruse the Staff Engineer¹ website and maybe get the book associated with that² or another one that I like³
It's not clear to me if you have a role with that kind of title, so if not, see if that path appeals to you.
Speaking for myself, I find that the type of colleagues I have are the most important factor in how much I enjoy my work and how much I can get done (impact). It can be tricky keeping space for hands-on work in a staff rôle though.
It seems clear to me that you need to be leading now, not being a cog with no influence.
I also resisted "being a manager, for a long time. It's like it was a dirty word and I thought it would be turning my back on what I was good at and enjoyed. But the truth is, you are no longer enjoying what you previously did and have not grown for 5 to 10 years.
Being a leader is not being a line manager. Managing some people may be part of being a leader, but it's not the main focus. I manage about 3 people and mostly I just delegate stuff to them. It's not that hard and isn't what I spend most time on.
What I really enjoy is that I get to set direction, come up with the strategy and use my years of experience to build things the right way.
So I would advise trying to get into a leadership role and give it a try. It has to be something where you can really set direction. You do not want to be a middle manager just doing people management, and there are plenty of roles like that. Worst case - you get a break from what's driving you mad right now and some fresh perspective. Best case is you actually find some new passion.
Thanks for the insights. But I've already been at this kind of position in the past (tech-lead role involving managing the devs). I hated the management part and even had to recover from a burn-out of a huge and messy project.
Also I care too deeply about the quality of the software being developed and am very much perfectionist, which usually translates into lots of frustration for both me and the team.
> Also I care too deeply about the quality of the software being developed and am very much perfectionist, which usually translates into lots of frustration for both me and the team.
This is at odds with business needs, very usually. So it doesn't surprise me that you feel people don't listen. Very few business are making money trying to pursue perfect software or quality software - if any.
Like security, trying to be perfectionist won't move any business need/project forward as we all have the real world to deal with, constraints on time / budget / scope are part of decision making
Honestly, I'd say you need to try working with more distance from the devs and work at a higher, more strategic level.
Instead of worrying about how a particular bit of software is built, you should be creating better ways of building. Enhancing processes, making the technology better, improving how dev work is delivered, rather than the minutia of a single development project.
Being a perfectionist tech lead directly managing the devs on a project sounds exhausting for yourself and the team.
Focusing on software engineering IME isn't that great, there's only so many variations of frameworks/programming languages that can keep me interested.
I'm usually more interested in solving business problems, then I work on industries or companies that are doing interesting things. I've worked in the hardware industry, cloud start ups, visual effects, and now AI.
I feel very satisfied pushing those industries forward with technology, basically the technology being a means to an end.
I usually join the company as some senior dev (more recently already joined as snr mgr) and end up in leadership roles - which seems to be at odds w. what you want.
When you are senior you know that reality is messy. Things break, networks fail, people push bugs and we are supposed to know how to get on with the chaos and keep pushing forward since solving the business problem is more important than anything else. I'd argue that you take a similar view to people management, its also a part of engineering just not the one you like. But its important if it helps solve the business problem. The other view would be managing folks is part of your career, so do your job.
Also I question that you've never seen anything new in the past 5-10 years (not being rude here, I understand that someone with 20years experience has seen plenty already but definitely not everything). For example, how much do you know about deep learning ? Are you on track with the latest trends in our inudstry ? Can you make a list of best practices to follow when building AI systems ? Maybe try looking into new areas for growth. It will be uncomfortable but worth it I think.
Please dont go into gaming. Dont do it to yourself and your family.
I've already kind-of tried some management, in the sense that some of my previous tech-lead positions actually involved managing the team as well. But that's really not something I enjoy or want to do.
> Also I question that you've never seen anything new in the past 5-10 years (not being rude here, I understand that someone with 20years experience has seen plenty already but definitely not everything).
That comment was meant to be in the context of web dev, I'm not pretending to know everything about all areas.
> For example, how much do you know about deep learning ? Are you on track with the latest trends in our inudstry ? Can you make a list of best practices to follow when building AI systems ? Maybe try looking into new areas for growth. It will be uncomfortable but worth it I think.
I have studied deep learning and neural networks, and found-out that it's not something I'm interested to work with. I am more interested into moving down the stack. Maybe systems programming, but also video games, because it involves low level concerns, optimization problems and a huge creative/artistic part. But yeah, I know that working in video games might involve lots of other sacrifices I'm not willing to make.
Experienced dev here who took a machine learning class and found it interesting. Could I get a position in it now? Would anyone hire a grey-haired ML junior? So far my experience says no, but may be bad luck so far.
“It depends”: what’s your prior experience, what kind of roles interest you, how big is the gap between what you have + a little ML knowledge/side projects?
I’d argue there’s a big need for people with solid fundamental CS, sysadmin, infra skills who can bridge the gap into ML practitioner/researcher understanding. Applications or inference generally are probably easiest to break into, especially if you already have service knowledge. If you want to work on distributed training or kernel/model optimization, you probably need to prove your chops there.
Neoclouds, startups in the AI space, maybe hw vendors are probably good places to look.
> I'm often the most senior, more than even the managers and CTOs, but have less power or influence and am just another cog in the machine.
I've been in this position for quite a while, but happily working at a company with a culture that encourages input from even the cogs in the machine, so I've been able to exert (limited) influence on things.
As time went by, I started getting more and more frustrated about the lack of influence I could have on formulating plans and direction, and the number of mistakes I was seeing, as you mentioned as well, and decided to, reluctantly, accept a formal leadership role, so I've now been a small team lead for a few years.
What has helped in that transition was the enormous amount of coaching and training my employer gives to new managers. I would've failed in this new role without it, and more seriously I would've failed the people/teams I manage.
Since becoming a manager, I've learned that my 20+ experience as a software engineer is quite valuable and useful for the people I manage. It's different kind of rewarding compared to software engineering work, but rewarding nevertheless. It wasn't as bad as I thought it would be.
I don't know if that's helpful for you, but if you do end up considering taking up a managerial leadership role, make sure your employer doesn't just throw you into it and ask you to learn on the job without any support. It's an absolute must.
I started in development because I had websites I made and ran but didn't profit and had expenses.
There I learnt to be a sysadmin and went to MSP support.
As a sysadmin I relied on networks more and more and became a netadmin and that evolved to network engineer then architect.
I worked in startups and kept evolving until I looked down on those "professionals" that stayed dependent specialist. The back and forth to just identify an issue was all lazy waste to me.
Now I'm studying electrical engineering because there's lots of opportunity to scale tech but not enough supply of trade professionals that support the fundamentals.
I also wanted a role that didn't require several specialist to concur simple decisions of my daily job.
Tech is full of specialist that lack a general understanding of the principles they interact with. I needed to avoid being dependent on their approval for any matter
I definitely feel that about inefficiencies. I'm also frustrated at the general lack of care for quality, so I might want to find a niche where it matters and where mistakes have consequences.
I have 13 years of experience and a Senior title, but I'm not sure if that means much. Really I have just worked on web-related problems for the last 10 years (first 2 were LinuxRT USB drivers, which I think more and more fondly of these days) and have hit the same crossroads as OP. The main difference for me I'd say is that I'm actually very serious about moving into management; being an IC these days feels like I am on a never-ending treadmill of boring work. Add AI to the mix and I have never been less motivated than I am now to continue writing code.
So I guess the answer to the question of how I evolved is that I evolved rapidly until my ceiling, which was probably ~6-8 years into my career. I haven't learned much since, nor have I had to. Only now do I feel a stronger urge to look where the puck is going and skate towards it, so to speak.
* Find a company where you can work less, and do the things you love in your spare time. You could even make money out of it. Or team up and start a company.
* Share your knowledge in whatever way is rewarding to you; videos, books, blogs.
* Give those 'alien ideas' like management another chance. Maybe it beats doing the same things you have been doing? Find a mentor.
I'm currently a technical architect (individual contributor role, IC) at a large multinational financial firm in Switzerland. Previously CTO/CIO/Founder/CEO in multiple companies in multiple industries (enterprises and startups), most of them in Russia. My overall experience in tech (IT/Telecom/SW Eng) is more than 35 years.
Before I joined my current company, I have never been an IC and never stayed for more than four years with the same employer. I'm five and a half years already with my current employer and would really appreciate to continue with them further despite obviously like the OP says "my knowledge is not really valued and useful" there.
The thing is, using my accumulated versatile tech experience and good understanding of how any large enterprise works, and working in IC position, I can really bent my workload/agenda in a way that work becomes more or less fun! Not counting the Teams meetings, an unavoidable evil. :) But even them, I turn them into fun activity too, by generating nice useful minutes using transcripts "anchored" either in code or in Confluence pages (with a tool-enabled LLM). Being an individual contributor is important for this, otherwise if you even a level higher, in example, a line manager, you can't really bent your agenda much because you must care for other people and invest your time in helping them to achieve common goals.
Ex-CTO here. A CTO doesn't have to be a people manager. It certainly makes it easier to staff pet projects if you have direct reports (rather than having to convince a VP Engineering to give you resources). But just know that many CTOs (especially co-founder CTOs) focus on technical vision & strategy, being the engineering representative in the C-Suite and vice versa, overseeing architecture and innovation, and perhaps even write code. As the CTO you should be able to decide how many meetings you need to be in, and for that matter you could set policies that eliminate pointless meetings across the board.
In work life as in the rest of life there is a mid-career crisis thing where you plateau and realize this is likely the best you will ever do. Crazy things can happen or you may float until there's a downturn and/or layoff but likely at some point the same old same old may appear to be a friendly shore you would not mind landing back on to finish your career. A side hustle can be a good way to do something you feel passionate about.
> I see the mistakes being made and know what it will cost (because I've been there and done that many times), I do my best to explain that and recommend alternatives, but more often than not it still happens anyway.
I'm mid-40s (I can't believe it) and I made a slightly different move a few years ago into more senior leadership, where I get more say in how things are done. This is precisely for this reason: I felt the larger problems to solve were in how to protect the team both from unnecessary external influences and from (potentially) overly-loud but not sensible people suggesting architectures that would be a lot of time and not a lot of value. I then moved to another company and retained a similar level of seniority.
I have different challenges now in having more influence (one sees the problems elsewhere that would be fixed if one were in charge of that as well, but one can become blind to issues within one's purview) but I quite like it overall.
The alternative probably is freelancing. Find a niche and occupy it, without charging the earth, and you'll probably do well emotionally and in providing for your family.
I’m mid 40s and took the other route. I was self-taught and decide long ago that I never wanted to manage other people. So instead now I run a small solo audio company. Never have to deal with anyone but my own customers. I consider it a craft not a startup.
It isn’t for everyone but whatever LLMs end up being for us all, in this position they seem more likely to be an asset than a liability. If they are good enough to replace me then they can be my army.
I think it is going to be difficult for you to get advice outside of the herbal "find a job you like, live a full life"
I am working for 30+ years, a combination of academia, then tech until today, where I have a very senior position in a company you know.
The world changed drasically over these 30 years and my path to an arguably successful career is absolutely not what I am suggesting to my children.
My generation built the Internet from a state of nothingness. This meant that whatever clever you were doing was new and recounting, and was bringing money. You had z limited set of technologies so you could be a master in many of them, and good in the rest.
Today this is not possible, you need to specialize, and often early.
I know that this not help, what I am probably trying to say it's that there are immutable truths (having fun, having friends and/or family, having hobbies, ...), then there is luck and maybe a statistical relevance in some jobs more than others.
The problem is that tech fashions and job market change rapidly every few years. And it takes a long time to specialize in an area. If you’re lucky and happen to be in the right place at the right time, sure, specialization works for you. Otherwise, there can be no job for you as a specialist. If you start early, who knows what the job market will look like a few years from now, let alone a couple of decades.
It’s a bad environment. It might be time for a universal income.
I am not sure either if this is the right advice, this is just my view over a convoluted 30+ years career. I have two children who are in the middle of their studies now and I had the same concerns suggesting a path.
I will try to expand a bit.
There are manual jobs that are very interesting and work well until 40-50 years old.
An example is physiotherapy, where you can concentrate on more dynamic activities when you are young, and move to softer ones later. With the demographics in Western Europe, you are good.
Another one is electrician: it is constantly evolving, with major shifts such as home automation and it is reasonably physical (the added value is that you do not keep a static position for the whole day).
Importantly, none of the above is at risk with AI or shifts in the market. You always need people to help you physically and you always need electricity. On top of that these jobs are regulated so you can't be short-cut.
One of my kids is going this way and it is great.
The other one is in Finance, in the best and most competitive school in the world. I see his future as bleak, something I would not have even thought 30 years ago.
He will live in slavery for 5-10 years, doing insane hours and without a social life at the moment when it counts the most. He will make heaps of money, without real opportunities to spend it. And he realizes that.
As I said, 30 years ago it was unthinkable, at least in my country. A diploma from that elite school was the real way to everything. Your year mates where the future ministers, president, head of national or international institutions. And the weird few who would go for NGOs.
All this means that any advice a 50yo will give is heavily impregnated with their past and that past (which was their future when they were young) is fundamentally different from the future of current youngsters. We do not live in an era of fundamental changes as we did in the 90s.
I'm about 12 years in myself and can provide some thoughts on this, though I'm not 20+ years senior.
My first few roles were in startups, where I got to be very hands on, learn a bunch, and mostly focus on the craft of software development and systems. I similarly felt I had a lack of higher-level understanding of business, management, product, etc.
I then went to Amazon for 7 years and this is where I felt I developed a stronger sense of the "business" side of things: politics, understanding what your customers really need, influence, delivering massive things across multiples teams and years of effort.
> I do my best to explain that and recommend alternatives, but more often than not it still happens anyway.
This is difficult to overcome, particularly on a short timescale. I felt this early in my time at Amazon at times, where I felt "right" but couldn't get others to see things my way.
The path there for me was first developing relationships with my peers generally, then establishing trust for my judgement. This came in the form of chasing ambulances, jumping into technical and non-technical problems unrelated to my direct team (eg: incidents), mentoring others. These activities are generally trust-building, and non-controversial/political. This also build some social capital, such that when I would speak up in a meeting or point out some flaw/gap (with data), people would listen more.
I've found it incredibly hard to influence without first establishing solid credibility, and vice-versa, if someone is new to an org, I will certainly listen, but I also don't yet know them/their background/or why I should outright accept their opinion as the truth.
Conversely, I have also seen people more senior than myself struggle with this concept. They show up in an org and repeatedly tout their resume, and expect acceptance "Yeah at X we did things this way", "I built x, y, and z". This has not worked well for them in my opinion.
The most influential engineers I've worked with had strong trust based on their actions and history of delivering, helping others, providing opinions backed in data, and being level headed. If they spoke about a problem it was something to listen to, not just a weekly complaint about something else.
Lastly, make sure whatever it is you work on truly matters to the business, and understand how it ties back to the business and your customers. It can be fun (or necessary at times) to be off in the weeds on something that is technically interesting, but really unimportant to the bottom line and ultimately to advancing your career.
What you say makes total sense. But for some personal reasons the social part of the job has always been my weak side and I'm just not interested in playing that game.
I've had fairly positive successes in the past when being a contractor. I feel like it's easier for me to have legitimacy and influence over the project that I'm doing this way.
> Lastly, make sure whatever it is you work on truly matters to the business, and understand how it ties back to the business and your customers. It can be fun (or necessary at times) to be off in the weeds on something that is technically interesting, but really unimportant to the bottom line and ultimately to advancing your career.
That's something I have also learnt from experience, and I am more often than not the one pushing for boring tech against the last fancy trends. But I have difficulties with the fact that focusing on the business means most of the time being the fastest possible, to the point that businesses would rather save 2 hours of implementation time now, even if it costs weeks of technical debt down the road.
I can try to expand on this a bit, and respond to your thoughts.
> What you say makes total sense. But for some personal reasons the social part of the job has always been my weak side and I'm just not interested in playing that game.
I don't mean to imply playing politics or empire building. I've probably capped my career in some ways by not playing into that either. However, in roles I've had, I've built up good capital by being very helpful, jumping into incidents, etc. There are ways to build that social muscle without it being negative or selfish.
> That's something I have also learnt from experience, and I am more often than not the one pushing for boring tech against the last fancy trends.
I think this is valuable, and it has worked for me as well. Though the eternal struggle of taking on debt for speed is fundamental. By building up some of the social capital and trust, I think it makes navigating these discussions easier and being able to negotiate in time for projects to do things right. That's the only way I've found this piece to be successful.
gamedev looks glamurous from outside but it's prone to burnout. you'll probably spend most of your time developing for unity/godot/unreal or fixing bugs and crashes. not very enriching. specially now with AI.
if you want more joy in your craft, look for a boring job and seek joy in personal projects
I started programming on Zilog z80 when I was 11 years old, at school in NZ. I'm now 55, and I've been a programmer for all that time. I've worked as contractor, consultant, tech and architecture lead, people manager, independent limited company in the UK, published author. I started a charity. There's more, but you get the idea, I've seen many sides of this programming malarkey.
Like you, at times, I reached a plateau of motivation, and more than once I questioned the meaning of the job I was doing, unsatisfied and listless.
I think if you are at all introspective, reflective, that it's inevitable you go through patches like this.
You've now got plenty of advice from many with experience, I won't add to that pile. Instead, just briefly, a word on my current situation and outlook.
Working for someone else is only rarely going to be broadly fulfilling. Working for yourself can be worse.
So I developed my hobby interests, most involving programming, because I still love it. I still get excited exploring possible solutions to hard problems. It's fulfilling in a way that working for megaCorp can never be. It's the difference between straining to meet a work deadline and straining to win a game. Similar, but different.
In other words, contentment, for me, comes from within.
Realistically that is the balance I am hoping to eventually reach through freelancing (more money the freedom to work on things I like and try micro businesses)
I was 50 years from a COBOL programmer to a web programmer with stints at other related stuff between. I never felt that programming was anything but a means to an end, the finished product was all that counted, so I was happy for a while in product management and marketing roles.
My times in pure management were short lived, I resigned from them, but I did thrive as a team leader. I finally ended up being a jobbing developer up to retirement which suited me well.
The field has become absurdly and unrecognizably shitty (for me) so I retired at my earliest opportunity. If I was any younger I don't know how I could keep going with how the job is expected to be practiced now and how the net effect the field is having on society has gone so deeply underwater.
I still like to code for personal projects, but while I was happy to work for others for 25 years, I don't see myself compatible with it anymore.
When I got 35 years of experience, I started to act independently. "I'm not heavily loaded right now. Out of all the things I could do, which one is most important?" Then I'd work on that.
If you don't feel you're at that level yet, the fact that you're bored indicates that you're ready to work on bigger things. Tell your boss that. "I'm really bored doing the same old thing. Do you have anything more challenging I could work on?" If the answer is no, then you're dead-ended at that company, or at least on that team. Look around. There are places that will let you (and expect you to) do more.
To answer your question .. Lets make it "Satisfying daily job till your last breath".
I have a few more years of experience than you. My response to this was to scale back to hometown and spend more quality time with family. (Aging parents and generation handover)
This required some basic inner engineering. (the points are random and not chronologically arranged )
1. I worked on things which did not require any permission from anyone. There were a lot of pending IT projects for myself which were done half assed. Finally i had time to finish them to my satisfaction.
2. Joined Govt job as a contractor and worked in different department to enable their e-Governance initiatives. I expected it to be long term but soon (4 years) got bored.
(IgnoreThis: ADHAAR id , Toll Roads, Social Justice for women and kids , Department of Economics and Statistics, State Planning commission. This coincided with the external factors of Narendra Modi becoming the PM in 2014-till date. Whatever I have worked on is still working and it is some solace but the rot has happened and its not trustworthy anymore since data massaging for beautiful reports is one of painful realities of Govt Work )
3. Convinced wife to let me take a 6 month break from job and See the action on ground of all these govt projects. Did that and decided to join startups.
4. Did a lot of pro-bono work in different domains.From WildLife Tiger Reserves to App building for Real estate to working for NGOs and travelling to remote Tier 3 cities and villages and giving seminars on technology and the upcoming changes. ( this was in 2018-19 pre covid).
5. By now yr2020+ tech was changing so furiously, it was hard to keep up. Number of services in AWS just made no sense... Kept working with startups who were NOT using the latest and greatest. They just wanted something to keep them floating on the web.
6. Enabled other revenue sources (no relation to IT)
7. Since then I have connected to the tech ecosystem in a way that suites me. Solidified my credentials as a teacher by giving some govt exams (UGC NET and MPSET as called in this part of world). I love teaching and people have validated it over time. (Engaged in-person 4000 People crowd for 4-5hrs). When you try something new u get to know your superpowers. ( Failures teach you more, do keep a log of new things you try. We stop trying after we get few years into a job)
8. Made a lot of friends elder as well as junior with whom I want to spend rest of my life. I love to work with them and its wonderful. I prefer to meet my colleagues and classmates in person.(At least once in few months).
9. I had to let go of the urge to earn as much as I was earning. Getting used to this is pretty difficult choice. I found that saving 1 equates to earning 6 ... so reduced my expenses and this leverage helped a lot.
10. Supported wife to get back on her career. This required a lot of managing as well. (Learning to cook was trial through fire. Today I feel everyone should know how to cook their favorite recipes. It is sheer joy to cook/bake for your friends and family)
To summarise, It was a mid-life retirement to find about the world. We stay in our little pond and think this is the whole world. When we explore we end up finding our own "self". What I like and what I do not. What pisses me off and how to manage that without doing a lot of damage to relations and quality of life and that prepares you to do "Satisfying daily job till your last breath".
PS1: Surprisingly it is easier than ever to do WFH.You need to find the work that you can do better than anyone else using AI as a tool. AI is not a worker .. AI is a tool just like a Mixer/Grinder/Juicer. This is the future of work as I found it to be.
PS2: Being a house husband has a lot of social stigma. Remember to keep your spouse happy as this causes emotional roller coaster which is not good for kids.
PS3: Experiment with your daily routine. Find your circadian rythm.Keep it for life.
Yes I did feel the same, and it boiled down to accepting I had to try something new that I thought I didn’t want or be happy with what I already had . You have several options I guess.
- it’s very likely you haven’t mastered all layers of the stack - you maybe have mastered the parts you’ve come across though. Would you include Linux kernel development, program proofs, HPC , math-oriented software, compilers, firmwares, fpgas, database internals ( I mean, writing a full database engine ), big iron infrastructure , actual research etc in the list of things you’ve mastered? That’s what I did for many years ( not necessarily these topics ) - keep exploring , the field is massive. In my experience, the more you look around the more you realize that you haven’t seen it all, and even less mastered it.
- now, in my case, after doing just that ( trying new technical things) I realized I was getting increasingly interested in the overall technical strategy and interplay with people more so than the purely technical side of things. I had vowed I would never get into the higher spheres … but I am now essentially a principal engineer ( or whatever you call that but basically I lead some technical stuff ) for a very large org. This is not management , and I really like it. I keep learning about people and business, about how changing something big is hard and human , and balancing technical problems with human ones . It’s fascinating, and above all grounded in technical knowledge so I don’t feel like I’ve thrown away a significant chunk of my career.
In particular, if you feel that you’re not being listened to but would like to, maybe you’d be interested in that kind of job. If you’re saying you’re not always succeeding at persuading people , it probably also means there’s growth for you here, and satisfaction down the line.
- actually get into management , which like most topics is actually interesting once you get into it. It’s just different. I thought I didn’t like it - I actually do and that was a colossal surprise to me.
Whether it’s technical leadership or management, these skills can be learned, and they make the bits that you don’t like much more palatable, and the bits that are ok very enjoyable. I was lucky enough to meet very good people who taught me properly. I think this is very important. I can cook at home, but if I get proper training my food will be better and I will enjoy the process a lot more ( try chopping vegetables with no training - you’re slow as hell and it ruins everything)
- do something unrelated ( cooking etc ). To be honest, at some point I did my job but the more fulfilling exploration part of my life was at home and revolved around food. I did consider changing career completely but decided it was too risky.
To a large extent, there is limited value to your extensive knowledge if you remain at the bottom because it will always have limited impact. You seem to want the power and influence ( for good reasons !), but don’t seem to want to learn the skills that are required . ( at least management, you seem interested in technical leadership). I guess you have to choose. It’s very hard, but liberating.
You mentioned family - I also made sure I was in a good place at home when I switched. I found it hard but support from my wife helped tremendously.
Thanks for the insights. I have been in technical leadership positions in the past, but disliked the management part. I think that the other dilemma is that I don't like big companies, as I've only had negative experiences and I get frustrated because even the most tiny thing can take forever to be done.
> it’s very likely you haven’t mastered all layers of the stack - you maybe have mastered the parts you’ve come across though.
I was meaning that in the context of web dev. There are certainly other areas I don't know much yet.
> Would you include Linux kernel development, program proofs, HPC , math-oriented software, compilers, firmwares, fpgas, database internals ( I mean, writing a full database engine ), big iron infrastructure , actual research etc in the list of things you’ve mastered?
Definitely not (except partially a database engine), but I'd definitely like to move down the stack. I like systems programming, low level stuff and optimization problems, so that's maybe the main area that I should explore (and also one of the reasons I like game dev). Translating that into an actual job might be harder thought.
The last thing you want to do is game dev. They overwork you and underpay you. You pay the “passion tax”.
There is a huge difference between “staff augmentation” where you are just another more disposable cog in the wheel and strategic consulting where they hire you for your specialized experience and you are in the room with people who contribute budgets. Staff augmentation is a shit show.
I have most of the prerequisites at this point to do alright at independent consulting - skillset, network, credentials, customer facing experience, a little sales experience, etc and I wouldn’t touch it with a 10 foot pole. I like having benefits, a steady paycheck, and the backing of an entire organization.
As a husband and a dad, do you really want the hustle, inconsistency and lack of benefits of freelancing? What special skillset do you have that would make companies want to hire you?
As far as my history - currently 51.
- 1986 - started coding as a hobby in the sixth grade in AppleSoft Basic and assembly
- 1996 - 2002 - first job out of college and changed jobs once in 1999 doing C but twiddling across multiple architectures
- 2002 - 2008 - career stagnated and became an “expert beginner” at my second job
- 2008 - 2016 - changed jobs three times and became a competent enterprise developer. Regardless of title, I was pulling well defined tickets off the board. I was a “mid level developer”. I stuck mostly in the .Net ecosystem.
- 2016 - led my first major initiative at my sixth job as the first technical hire by a then new CTO and led the integration of various acquisitions as the PE firm was trying to do the whole rollup small businesses and IPO. I belated discovered AWS. My first job with what I would consider “senior level responsibility” and dealing with strategy
- 2018 - I was the second technical hire of a then new CTO of a startup. Two non technical brothers founded the company and used an external consulting company. They found PMF and wanted to bring development in house and be “cloud native”. I became the de facto cloud architect + development and got all of my practical experience with AWS.
2020 - hired at AWS Professional Services - their consulting arm (full time) and pivoted to specializing in “cloud native development” consulting half strategy/half hands on in a mid level (L5) role.
2024 - staff consultant working at a third party cloud consulting firm (full time). Some pre-sales support, some doing everything myself from leading the project and doing the work (small projects), to leading larger projects and a little managing style consulting.
I've been in the industry for over 30 years (yikes!) and I can assure you that job satisfaction is transient at best.
Start by understanding both what you want to do and what you really don't want to do and understand that over time, both of these will probably change.
In most organizations, in order to make the most impact, you have to be at Management level. I think this is causing you some conflict, because you want to be impactful, but yet don't want a CTO-type position. As an Individual Contributor, even as a tech lead, people "above" you really just want you to keep your head down and keep cranking out product. Like it or not, titles have meaning. If you want to make changes, your position in the company needs to be one where they expect change to come from, or you need to get really good at pushing your ideas to others and you have to know those people well.
It's going to be difficult to be an upper-level tech employee at a smaller company and not manage people. The separation between technology lead and manager/supervisor tends to only happen at larger companies that can afford that specialization.
It may sound trite, but the reality is that you have to understand just what kind of job you want and then devote your energy towards finding that job.
This is one of the best responses I've seen. Titles do matter - at least depending on what your goals are. If you want to have broad impact (say leave a legacy or have influence etc) you need a high up title or have your name be synonymous with a project/product used by the group whose respect yoj want to command. And lot the time those above you will have you cranking out things for them. I don't mean this in an evil way. I mean that they have okrs to take care off and you will just be a resource to them.
Thanks for the answer. That is definitely why I have such dilemma, because I know that I don't want to be in the management. Hence why I'm leaning more towards freelancing or creating my own business for now (easier said than done however).
I have been programming for well over 40 years (I am early 50s) and have been writing software for money for 35 of those years (first company during high school, thanks to my chemistry teacher and my uncle, who were friends). Made a bunch of millions during the the early 2000s and kept building software, which I have always loved, since then. AI (well, LLMs) caught me off guard as it did with many people but now I happily use it and create things even faster and better because of it. I guess, like some here on HN, I did not have rich parents: I was lucky enough to grow up in the netherlands, where, at least then, university was free and people generallh were never poor so there were computers around end 70s and begin 80s. My parents taught me to not become a worker drone even though they had to be. I never had a job, only companies. That keeps it going for me and I cannot see it stop. We create things, we have fun, we sell, we start again. Until I die. I cannot imagine a better life.
I envy you for being in this position. I'm definitely interested in entrepreneurship, but it's not so easy to get started.
I'm nowhere near as senior as you (12 years). But I've reflected on this a lot recently. I love the technology and feeling like I'm building things, but staying hands on will always limit your scope. Taking the management path improves your scope but the work is - well - just less fun than programming.
My answer right now is to try and build more things myself. Small apps, CLIs, retro games. Not libraries or much OSS stuff so much as actual "products" that give me creative control and concrete outputs. It's hard to make the time though.
Outside of my career I'm also trying to cultivate other works, like my YouTube channel and my writing. Creating a video that 250k people enjoy is at least as meaningful to me as crushing my OKRs
We are all mortal beings: there will inevitably be more things to do than time to do it, and it's easier to ruminate on options than commit to something that feels "suboptimal".
To give an example of that. I spent a lot of time wondering if I should have gone into academia / literary criticism rather than tech, because of a vague sense that because I was very good at something, that's where I should put my efforts. Is that sound reasoning though? I probably achieved more "value" for society working as a programmer, than writing about Chaucer.
So to summarise it may be a choice of making peace with the lower scope / autonomy of hands on work, and finding that satisfaction outside work. If that suggestion makes your soul revolt, though, it may be you have to compromise and take the managerial path
Thank you. That is mostly what I have been leaning toward recently, and why I'm interested in freelancing. I want more time for my own projects, and freelancing seems to be the only way that I can find a better balance between money and free time.
If you've not already done so, peruse the Staff Engineer¹ website and maybe get the book associated with that² or another one that I like³
It's not clear to me if you have a role with that kind of title, so if not, see if that path appeals to you.
Speaking for myself, I find that the type of colleagues I have are the most important factor in how much I enjoy my work and how much I can get done (impact). It can be tricky keeping space for hands-on work in a staff rôle though.
¹ https://staffeng.com/
² https://staffeng.com/book/
³ https://www.oreilly.com/library/view/the-staff-engineers/978...
It seems clear to me that you need to be leading now, not being a cog with no influence.
I also resisted "being a manager, for a long time. It's like it was a dirty word and I thought it would be turning my back on what I was good at and enjoyed. But the truth is, you are no longer enjoying what you previously did and have not grown for 5 to 10 years.
Being a leader is not being a line manager. Managing some people may be part of being a leader, but it's not the main focus. I manage about 3 people and mostly I just delegate stuff to them. It's not that hard and isn't what I spend most time on.
What I really enjoy is that I get to set direction, come up with the strategy and use my years of experience to build things the right way.
So I would advise trying to get into a leadership role and give it a try. It has to be something where you can really set direction. You do not want to be a middle manager just doing people management, and there are plenty of roles like that. Worst case - you get a break from what's driving you mad right now and some fresh perspective. Best case is you actually find some new passion.
Thanks for the insights. But I've already been at this kind of position in the past (tech-lead role involving managing the devs). I hated the management part and even had to recover from a burn-out of a huge and messy project.
Also I care too deeply about the quality of the software being developed and am very much perfectionist, which usually translates into lots of frustration for both me and the team.
> Also I care too deeply about the quality of the software being developed and am very much perfectionist, which usually translates into lots of frustration for both me and the team.
This is at odds with business needs, very usually. So it doesn't surprise me that you feel people don't listen. Very few business are making money trying to pursue perfect software or quality software - if any.
Like security, trying to be perfectionist won't move any business need/project forward as we all have the real world to deal with, constraints on time / budget / scope are part of decision making
Honestly, I'd say you need to try working with more distance from the devs and work at a higher, more strategic level.
Instead of worrying about how a particular bit of software is built, you should be creating better ways of building. Enhancing processes, making the technology better, improving how dev work is delivered, rather than the minutia of a single development project.
Being a perfectionist tech lead directly managing the devs on a project sounds exhausting for yourself and the team.
Focusing on software engineering IME isn't that great, there's only so many variations of frameworks/programming languages that can keep me interested.
I'm usually more interested in solving business problems, then I work on industries or companies that are doing interesting things. I've worked in the hardware industry, cloud start ups, visual effects, and now AI.
I feel very satisfied pushing those industries forward with technology, basically the technology being a means to an end.
I usually join the company as some senior dev (more recently already joined as snr mgr) and end up in leadership roles - which seems to be at odds w. what you want.
Me: ~10 years so not as senior but senior still.
When you are senior you know that reality is messy. Things break, networks fail, people push bugs and we are supposed to know how to get on with the chaos and keep pushing forward since solving the business problem is more important than anything else. I'd argue that you take a similar view to people management, its also a part of engineering just not the one you like. But its important if it helps solve the business problem. The other view would be managing folks is part of your career, so do your job.
Also I question that you've never seen anything new in the past 5-10 years (not being rude here, I understand that someone with 20years experience has seen plenty already but definitely not everything). For example, how much do you know about deep learning ? Are you on track with the latest trends in our inudstry ? Can you make a list of best practices to follow when building AI systems ? Maybe try looking into new areas for growth. It will be uncomfortable but worth it I think.
Please dont go into gaming. Dont do it to yourself and your family.
I've already kind-of tried some management, in the sense that some of my previous tech-lead positions actually involved managing the team as well. But that's really not something I enjoy or want to do.
> Also I question that you've never seen anything new in the past 5-10 years (not being rude here, I understand that someone with 20years experience has seen plenty already but definitely not everything).
That comment was meant to be in the context of web dev, I'm not pretending to know everything about all areas.
> For example, how much do you know about deep learning ? Are you on track with the latest trends in our inudstry ? Can you make a list of best practices to follow when building AI systems ? Maybe try looking into new areas for growth. It will be uncomfortable but worth it I think.
I have studied deep learning and neural networks, and found-out that it's not something I'm interested to work with. I am more interested into moving down the stack. Maybe systems programming, but also video games, because it involves low level concerns, optimization problems and a huge creative/artistic part. But yeah, I know that working in video games might involve lots of other sacrifices I'm not willing to make.
Experienced dev here who took a machine learning class and found it interesting. Could I get a position in it now? Would anyone hire a grey-haired ML junior? So far my experience says no, but may be bad luck so far.
“It depends”: what’s your prior experience, what kind of roles interest you, how big is the gap between what you have + a little ML knowledge/side projects?
I’d argue there’s a big need for people with solid fundamental CS, sysadmin, infra skills who can bridge the gap into ML practitioner/researcher understanding. Applications or inference generally are probably easiest to break into, especially if you already have service knowledge. If you want to work on distributed training or kernel/model optimization, you probably need to prove your chops there.
Neoclouds, startups in the AI space, maybe hw vendors are probably good places to look.
https://news.ycombinator.com/item?id=45801184
Not mentioned but I've also watched almost all of the 3b1br videos. ;-)
> I'm often the most senior, more than even the managers and CTOs, but have less power or influence and am just another cog in the machine.
I've been in this position for quite a while, but happily working at a company with a culture that encourages input from even the cogs in the machine, so I've been able to exert (limited) influence on things.
As time went by, I started getting more and more frustrated about the lack of influence I could have on formulating plans and direction, and the number of mistakes I was seeing, as you mentioned as well, and decided to, reluctantly, accept a formal leadership role, so I've now been a small team lead for a few years.
What has helped in that transition was the enormous amount of coaching and training my employer gives to new managers. I would've failed in this new role without it, and more seriously I would've failed the people/teams I manage.
Since becoming a manager, I've learned that my 20+ experience as a software engineer is quite valuable and useful for the people I manage. It's different kind of rewarding compared to software engineering work, but rewarding nevertheless. It wasn't as bad as I thought it would be.
I don't know if that's helpful for you, but if you do end up considering taking up a managerial leadership role, make sure your employer doesn't just throw you into it and ask you to learn on the job without any support. It's an absolute must.
This is very very very good advice, the same thing happened to me. Most importantly, I wouldn’t have enjoyed the job without coaching !
I started in development because I had websites I made and ran but didn't profit and had expenses.
There I learnt to be a sysadmin and went to MSP support.
As a sysadmin I relied on networks more and more and became a netadmin and that evolved to network engineer then architect.
I worked in startups and kept evolving until I looked down on those "professionals" that stayed dependent specialist. The back and forth to just identify an issue was all lazy waste to me.
Now I'm studying electrical engineering because there's lots of opportunity to scale tech but not enough supply of trade professionals that support the fundamentals.
I also wanted a role that didn't require several specialist to concur simple decisions of my daily job.
Tech is full of specialist that lack a general understanding of the principles they interact with. I needed to avoid being dependent on their approval for any matter
I definitely feel that about inefficiencies. I'm also frustrated at the general lack of care for quality, so I might want to find a niche where it matters and where mistakes have consequences.
I have 13 years of experience and a Senior title, but I'm not sure if that means much. Really I have just worked on web-related problems for the last 10 years (first 2 were LinuxRT USB drivers, which I think more and more fondly of these days) and have hit the same crossroads as OP. The main difference for me I'd say is that I'm actually very serious about moving into management; being an IC these days feels like I am on a never-ending treadmill of boring work. Add AI to the mix and I have never been less motivated than I am now to continue writing code.
So I guess the answer to the question of how I evolved is that I evolved rapidly until my ceiling, which was probably ~6-8 years into my career. I haven't learned much since, nor have I had to. Only now do I feel a stronger urge to look where the puck is going and skate towards it, so to speak.
* Find a company where you can work less, and do the things you love in your spare time. You could even make money out of it. Or team up and start a company.
* Share your knowledge in whatever way is rewarding to you; videos, books, blogs.
* Give those 'alien ideas' like management another chance. Maybe it beats doing the same things you have been doing? Find a mentor.
I'm currently a technical architect (individual contributor role, IC) at a large multinational financial firm in Switzerland. Previously CTO/CIO/Founder/CEO in multiple companies in multiple industries (enterprises and startups), most of them in Russia. My overall experience in tech (IT/Telecom/SW Eng) is more than 35 years.
Before I joined my current company, I have never been an IC and never stayed for more than four years with the same employer. I'm five and a half years already with my current employer and would really appreciate to continue with them further despite obviously like the OP says "my knowledge is not really valued and useful" there.
The thing is, using my accumulated versatile tech experience and good understanding of how any large enterprise works, and working in IC position, I can really bent my workload/agenda in a way that work becomes more or less fun! Not counting the Teams meetings, an unavoidable evil. :) But even them, I turn them into fun activity too, by generating nice useful minutes using transcripts "anchored" either in code or in Confluence pages (with a tool-enabled LLM). Being an individual contributor is important for this, otherwise if you even a level higher, in example, a line manager, you can't really bent your agenda much because you must care for other people and invest your time in helping them to achieve common goals.
That were my 50c. :)
Ex-CTO here. A CTO doesn't have to be a people manager. It certainly makes it easier to staff pet projects if you have direct reports (rather than having to convince a VP Engineering to give you resources). But just know that many CTOs (especially co-founder CTOs) focus on technical vision & strategy, being the engineering representative in the C-Suite and vice versa, overseeing architecture and innovation, and perhaps even write code. As the CTO you should be able to decide how many meetings you need to be in, and for that matter you could set policies that eliminate pointless meetings across the board.
In work life as in the rest of life there is a mid-career crisis thing where you plateau and realize this is likely the best you will ever do. Crazy things can happen or you may float until there's a downturn and/or layoff but likely at some point the same old same old may appear to be a friendly shore you would not mind landing back on to finish your career. A side hustle can be a good way to do something you feel passionate about.
> I see the mistakes being made and know what it will cost (because I've been there and done that many times), I do my best to explain that and recommend alternatives, but more often than not it still happens anyway.
I'm mid-40s (I can't believe it) and I made a slightly different move a few years ago into more senior leadership, where I get more say in how things are done. This is precisely for this reason: I felt the larger problems to solve were in how to protect the team both from unnecessary external influences and from (potentially) overly-loud but not sensible people suggesting architectures that would be a lot of time and not a lot of value. I then moved to another company and retained a similar level of seniority.
I have different challenges now in having more influence (one sees the problems elsewhere that would be fixed if one were in charge of that as well, but one can become blind to issues within one's purview) but I quite like it overall.
The alternative probably is freelancing. Find a niche and occupy it, without charging the earth, and you'll probably do well emotionally and in providing for your family.
I’m mid 40s and took the other route. I was self-taught and decide long ago that I never wanted to manage other people. So instead now I run a small solo audio company. Never have to deal with anyone but my own customers. I consider it a craft not a startup.
It isn’t for everyone but whatever LLMs end up being for us all, in this position they seem more likely to be an asset than a liability. If they are good enough to replace me then they can be my army.
Mid 40s consultant here and just decided not to extend my contract as tech lead with current customer for another year.
Looking into meandering for a bit and regaining passion. Hopefully something small but sellable sprouts from that.
Looking forward to making my own decisions based on gut and not being stuck in the swamp of big company indecision.
Got any idea what sort of tech you’ll mess around with?
I think it is going to be difficult for you to get advice outside of the herbal "find a job you like, live a full life"
I am working for 30+ years, a combination of academia, then tech until today, where I have a very senior position in a company you know.
The world changed drasically over these 30 years and my path to an arguably successful career is absolutely not what I am suggesting to my children.
My generation built the Internet from a state of nothingness. This meant that whatever clever you were doing was new and recounting, and was bringing money. You had z limited set of technologies so you could be a master in many of them, and good in the rest.
Today this is not possible, you need to specialize, and often early.
I know that this not help, what I am probably trying to say it's that there are immutable truths (having fun, having friends and/or family, having hobbies, ...), then there is luck and maybe a statistical relevance in some jobs more than others.
I’m not sure if this is good advice.
The problem is that tech fashions and job market change rapidly every few years. And it takes a long time to specialize in an area. If you’re lucky and happen to be in the right place at the right time, sure, specialization works for you. Otherwise, there can be no job for you as a specialist. If you start early, who knows what the job market will look like a few years from now, let alone a couple of decades.
It’s a bad environment. It might be time for a universal income.
I am not sure either if this is the right advice, this is just my view over a convoluted 30+ years career. I have two children who are in the middle of their studies now and I had the same concerns suggesting a path.
I will try to expand a bit.
There are manual jobs that are very interesting and work well until 40-50 years old.
An example is physiotherapy, where you can concentrate on more dynamic activities when you are young, and move to softer ones later. With the demographics in Western Europe, you are good.
Another one is electrician: it is constantly evolving, with major shifts such as home automation and it is reasonably physical (the added value is that you do not keep a static position for the whole day).
Importantly, none of the above is at risk with AI or shifts in the market. You always need people to help you physically and you always need electricity. On top of that these jobs are regulated so you can't be short-cut.
One of my kids is going this way and it is great.
The other one is in Finance, in the best and most competitive school in the world. I see his future as bleak, something I would not have even thought 30 years ago.
He will live in slavery for 5-10 years, doing insane hours and without a social life at the moment when it counts the most. He will make heaps of money, without real opportunities to spend it. And he realizes that.
As I said, 30 years ago it was unthinkable, at least in my country. A diploma from that elite school was the real way to everything. Your year mates where the future ministers, president, head of national or international institutions. And the weird few who would go for NGOs.
All this means that any advice a 50yo will give is heavily impregnated with their past and that past (which was their future when they were young) is fundamentally different from the future of current youngsters. We do not live in an era of fundamental changes as we did in the 90s.
I'm about 12 years in myself and can provide some thoughts on this, though I'm not 20+ years senior.
My first few roles were in startups, where I got to be very hands on, learn a bunch, and mostly focus on the craft of software development and systems. I similarly felt I had a lack of higher-level understanding of business, management, product, etc.
I then went to Amazon for 7 years and this is where I felt I developed a stronger sense of the "business" side of things: politics, understanding what your customers really need, influence, delivering massive things across multiples teams and years of effort.
> I do my best to explain that and recommend alternatives, but more often than not it still happens anyway.
This is difficult to overcome, particularly on a short timescale. I felt this early in my time at Amazon at times, where I felt "right" but couldn't get others to see things my way.
The path there for me was first developing relationships with my peers generally, then establishing trust for my judgement. This came in the form of chasing ambulances, jumping into technical and non-technical problems unrelated to my direct team (eg: incidents), mentoring others. These activities are generally trust-building, and non-controversial/political. This also build some social capital, such that when I would speak up in a meeting or point out some flaw/gap (with data), people would listen more.
I've found it incredibly hard to influence without first establishing solid credibility, and vice-versa, if someone is new to an org, I will certainly listen, but I also don't yet know them/their background/or why I should outright accept their opinion as the truth.
Conversely, I have also seen people more senior than myself struggle with this concept. They show up in an org and repeatedly tout their resume, and expect acceptance "Yeah at X we did things this way", "I built x, y, and z". This has not worked well for them in my opinion.
The most influential engineers I've worked with had strong trust based on their actions and history of delivering, helping others, providing opinions backed in data, and being level headed. If they spoke about a problem it was something to listen to, not just a weekly complaint about something else.
Lastly, make sure whatever it is you work on truly matters to the business, and understand how it ties back to the business and your customers. It can be fun (or necessary at times) to be off in the weeds on something that is technically interesting, but really unimportant to the bottom line and ultimately to advancing your career.
What you say makes total sense. But for some personal reasons the social part of the job has always been my weak side and I'm just not interested in playing that game.
I've had fairly positive successes in the past when being a contractor. I feel like it's easier for me to have legitimacy and influence over the project that I'm doing this way.
> Lastly, make sure whatever it is you work on truly matters to the business, and understand how it ties back to the business and your customers. It can be fun (or necessary at times) to be off in the weeds on something that is technically interesting, but really unimportant to the bottom line and ultimately to advancing your career.
That's something I have also learnt from experience, and I am more often than not the one pushing for boring tech against the last fancy trends. But I have difficulties with the fact that focusing on the business means most of the time being the fastest possible, to the point that businesses would rather save 2 hours of implementation time now, even if it costs weeks of technical debt down the road.
I can try to expand on this a bit, and respond to your thoughts.
> What you say makes total sense. But for some personal reasons the social part of the job has always been my weak side and I'm just not interested in playing that game.
I don't mean to imply playing politics or empire building. I've probably capped my career in some ways by not playing into that either. However, in roles I've had, I've built up good capital by being very helpful, jumping into incidents, etc. There are ways to build that social muscle without it being negative or selfish.
> That's something I have also learnt from experience, and I am more often than not the one pushing for boring tech against the last fancy trends.
I think this is valuable, and it has worked for me as well. Though the eternal struggle of taking on debt for speed is fundamental. By building up some of the social capital and trust, I think it makes navigating these discussions easier and being able to negotiate in time for projects to do things right. That's the only way I've found this piece to be successful.
gamedev looks glamurous from outside but it's prone to burnout. you'll probably spend most of your time developing for unity/godot/unreal or fixing bugs and crashes. not very enriching. specially now with AI.
if you want more joy in your craft, look for a boring job and seek joy in personal projects
my 2 cents
I started programming on Zilog z80 when I was 11 years old, at school in NZ. I'm now 55, and I've been a programmer for all that time. I've worked as contractor, consultant, tech and architecture lead, people manager, independent limited company in the UK, published author. I started a charity. There's more, but you get the idea, I've seen many sides of this programming malarkey.
Like you, at times, I reached a plateau of motivation, and more than once I questioned the meaning of the job I was doing, unsatisfied and listless.
I think if you are at all introspective, reflective, that it's inevitable you go through patches like this.
You've now got plenty of advice from many with experience, I won't add to that pile. Instead, just briefly, a word on my current situation and outlook.
Working for someone else is only rarely going to be broadly fulfilling. Working for yourself can be worse.
So I developed my hobby interests, most involving programming, because I still love it. I still get excited exploring possible solutions to hard problems. It's fulfilling in a way that working for megaCorp can never be. It's the difference between straining to meet a work deadline and straining to win a game. Similar, but different.
In other words, contentment, for me, comes from within.
Realistically that is the balance I am hoping to eventually reach through freelancing (more money the freedom to work on things I like and try micro businesses)
I was 50 years from a COBOL programmer to a web programmer with stints at other related stuff between. I never felt that programming was anything but a means to an end, the finished product was all that counted, so I was happy for a while in product management and marketing roles.
My times in pure management were short lived, I resigned from them, but I did thrive as a team leader. I finally ended up being a jobbing developer up to retirement which suited me well.
> have pretty-much mastered all areas and layers of the stack (infra and cloud, databases, backend, network, front-end and even a bit of mobile...)
Congratulations!! You could try consultancy, training others, writing books/ blogs.
The field has become absurdly and unrecognizably shitty (for me) so I retired at my earliest opportunity. If I was any younger I don't know how I could keep going with how the job is expected to be practiced now and how the net effect the field is having on society has gone so deeply underwater.
I still like to code for personal projects, but while I was happy to work for others for 25 years, I don't see myself compatible with it anymore.
When I got 35 years of experience, I started to act independently. "I'm not heavily loaded right now. Out of all the things I could do, which one is most important?" Then I'd work on that.
If you don't feel you're at that level yet, the fact that you're bored indicates that you're ready to work on bigger things. Tell your boss that. "I'm really bored doing the same old thing. Do you have anything more challenging I could work on?" If the answer is no, then you're dead-ended at that company, or at least on that team. Look around. There are places that will let you (and expect you to) do more.
" Satisfying daily job "
To answer your question .. Lets make it "Satisfying daily job till your last breath".
I have a few more years of experience than you. My response to this was to scale back to hometown and spend more quality time with family. (Aging parents and generation handover)
This required some basic inner engineering. (the points are random and not chronologically arranged )
1. I worked on things which did not require any permission from anyone. There were a lot of pending IT projects for myself which were done half assed. Finally i had time to finish them to my satisfaction.
2. Joined Govt job as a contractor and worked in different department to enable their e-Governance initiatives. I expected it to be long term but soon (4 years) got bored.
(IgnoreThis: ADHAAR id , Toll Roads, Social Justice for women and kids , Department of Economics and Statistics, State Planning commission. This coincided with the external factors of Narendra Modi becoming the PM in 2014-till date. Whatever I have worked on is still working and it is some solace but the rot has happened and its not trustworthy anymore since data massaging for beautiful reports is one of painful realities of Govt Work )
3. Convinced wife to let me take a 6 month break from job and See the action on ground of all these govt projects. Did that and decided to join startups.
4. Did a lot of pro-bono work in different domains.From WildLife Tiger Reserves to App building for Real estate to working for NGOs and travelling to remote Tier 3 cities and villages and giving seminars on technology and the upcoming changes. ( this was in 2018-19 pre covid).
5. By now yr2020+ tech was changing so furiously, it was hard to keep up. Number of services in AWS just made no sense... Kept working with startups who were NOT using the latest and greatest. They just wanted something to keep them floating on the web.
6. Enabled other revenue sources (no relation to IT)
7. Since then I have connected to the tech ecosystem in a way that suites me. Solidified my credentials as a teacher by giving some govt exams (UGC NET and MPSET as called in this part of world). I love teaching and people have validated it over time. (Engaged in-person 4000 People crowd for 4-5hrs). When you try something new u get to know your superpowers. ( Failures teach you more, do keep a log of new things you try. We stop trying after we get few years into a job)
8. Made a lot of friends elder as well as junior with whom I want to spend rest of my life. I love to work with them and its wonderful. I prefer to meet my colleagues and classmates in person.(At least once in few months).
9. I had to let go of the urge to earn as much as I was earning. Getting used to this is pretty difficult choice. I found that saving 1 equates to earning 6 ... so reduced my expenses and this leverage helped a lot.
10. Supported wife to get back on her career. This required a lot of managing as well. (Learning to cook was trial through fire. Today I feel everyone should know how to cook their favorite recipes. It is sheer joy to cook/bake for your friends and family)
To summarise, It was a mid-life retirement to find about the world. We stay in our little pond and think this is the whole world. When we explore we end up finding our own "self". What I like and what I do not. What pisses me off and how to manage that without doing a lot of damage to relations and quality of life and that prepares you to do "Satisfying daily job till your last breath".
PS1: Surprisingly it is easier than ever to do WFH.You need to find the work that you can do better than anyone else using AI as a tool. AI is not a worker .. AI is a tool just like a Mixer/Grinder/Juicer. This is the future of work as I found it to be.
PS2: Being a house husband has a lot of social stigma. Remember to keep your spouse happy as this causes emotional roller coaster which is not good for kids.
PS3: Experiment with your daily routine. Find your circadian rythm.Keep it for life.
Yes I did feel the same, and it boiled down to accepting I had to try something new that I thought I didn’t want or be happy with what I already had . You have several options I guess.
- it’s very likely you haven’t mastered all layers of the stack - you maybe have mastered the parts you’ve come across though. Would you include Linux kernel development, program proofs, HPC , math-oriented software, compilers, firmwares, fpgas, database internals ( I mean, writing a full database engine ), big iron infrastructure , actual research etc in the list of things you’ve mastered? That’s what I did for many years ( not necessarily these topics ) - keep exploring , the field is massive. In my experience, the more you look around the more you realize that you haven’t seen it all, and even less mastered it.
- now, in my case, after doing just that ( trying new technical things) I realized I was getting increasingly interested in the overall technical strategy and interplay with people more so than the purely technical side of things. I had vowed I would never get into the higher spheres … but I am now essentially a principal engineer ( or whatever you call that but basically I lead some technical stuff ) for a very large org. This is not management , and I really like it. I keep learning about people and business, about how changing something big is hard and human , and balancing technical problems with human ones . It’s fascinating, and above all grounded in technical knowledge so I don’t feel like I’ve thrown away a significant chunk of my career.
In particular, if you feel that you’re not being listened to but would like to, maybe you’d be interested in that kind of job. If you’re saying you’re not always succeeding at persuading people , it probably also means there’s growth for you here, and satisfaction down the line.
- actually get into management , which like most topics is actually interesting once you get into it. It’s just different. I thought I didn’t like it - I actually do and that was a colossal surprise to me.
Whether it’s technical leadership or management, these skills can be learned, and they make the bits that you don’t like much more palatable, and the bits that are ok very enjoyable. I was lucky enough to meet very good people who taught me properly. I think this is very important. I can cook at home, but if I get proper training my food will be better and I will enjoy the process a lot more ( try chopping vegetables with no training - you’re slow as hell and it ruins everything)
- do something unrelated ( cooking etc ). To be honest, at some point I did my job but the more fulfilling exploration part of my life was at home and revolved around food. I did consider changing career completely but decided it was too risky.
To a large extent, there is limited value to your extensive knowledge if you remain at the bottom because it will always have limited impact. You seem to want the power and influence ( for good reasons !), but don’t seem to want to learn the skills that are required . ( at least management, you seem interested in technical leadership). I guess you have to choose. It’s very hard, but liberating.
You mentioned family - I also made sure I was in a good place at home when I switched. I found it hard but support from my wife helped tremendously.
Best of luck !
Thanks for the insights. I have been in technical leadership positions in the past, but disliked the management part. I think that the other dilemma is that I don't like big companies, as I've only had negative experiences and I get frustrated because even the most tiny thing can take forever to be done.
> it’s very likely you haven’t mastered all layers of the stack - you maybe have mastered the parts you’ve come across though.
I was meaning that in the context of web dev. There are certainly other areas I don't know much yet.
> Would you include Linux kernel development, program proofs, HPC , math-oriented software, compilers, firmwares, fpgas, database internals ( I mean, writing a full database engine ), big iron infrastructure , actual research etc in the list of things you’ve mastered?
Definitely not (except partially a database engine), but I'd definitely like to move down the stack. I like systems programming, low level stuff and optimization problems, so that's maybe the main area that I should explore (and also one of the reasons I like game dev). Translating that into an actual job might be harder thought.
The last thing you want to do is game dev. They overwork you and underpay you. You pay the “passion tax”.
There is a huge difference between “staff augmentation” where you are just another more disposable cog in the wheel and strategic consulting where they hire you for your specialized experience and you are in the room with people who contribute budgets. Staff augmentation is a shit show.
I have most of the prerequisites at this point to do alright at independent consulting - skillset, network, credentials, customer facing experience, a little sales experience, etc and I wouldn’t touch it with a 10 foot pole. I like having benefits, a steady paycheck, and the backing of an entire organization.
As a husband and a dad, do you really want the hustle, inconsistency and lack of benefits of freelancing? What special skillset do you have that would make companies want to hire you?
As far as my history - currently 51.
- 1986 - started coding as a hobby in the sixth grade in AppleSoft Basic and assembly
- 1996 - 2002 - first job out of college and changed jobs once in 1999 doing C but twiddling across multiple architectures
- 2002 - 2008 - career stagnated and became an “expert beginner” at my second job
- 2008 - 2016 - changed jobs three times and became a competent enterprise developer. Regardless of title, I was pulling well defined tickets off the board. I was a “mid level developer”. I stuck mostly in the .Net ecosystem.
- 2016 - led my first major initiative at my sixth job as the first technical hire by a then new CTO and led the integration of various acquisitions as the PE firm was trying to do the whole rollup small businesses and IPO. I belated discovered AWS. My first job with what I would consider “senior level responsibility” and dealing with strategy
- 2018 - I was the second technical hire of a then new CTO of a startup. Two non technical brothers founded the company and used an external consulting company. They found PMF and wanted to bring development in house and be “cloud native”. I became the de facto cloud architect + development and got all of my practical experience with AWS.
2020 - hired at AWS Professional Services - their consulting arm (full time) and pivoted to specializing in “cloud native development” consulting half strategy/half hands on in a mid level (L5) role.
2024 - staff consultant working at a third party cloud consulting firm (full time). Some pre-sales support, some doing everything myself from leading the project and doing the work (small projects), to leading larger projects and a little managing style consulting.