Ask HN: I love programming but hate the industry. Can anyone relate?
I've been in all kinds of jobs, from start-ups to massive corporate companies. I'm forever building my own side projects as I love it, as well as love the idea of making my own living but as you all know, side hustles don't make money over night.
I'm currently in a great job. By great job I mean, the money is really good, there's room to grow and the opportunities are endless... Yet I can't bare it. I can't bare the devs that go out of their way to work weekends without being asked, I can't bare the endless meetings, constant micromanagement, bringing the stress home to my family.
I don't know where or who to turn to. Can anyone relate?
[+] [-] Apreche|3 years ago|reply
When it comes time to negotiate, negotiate HARD. And not just for money, but especially time. Ask for so much that you think they will laugh or be scared away. If they say no, you lose nothing. Eventually the right opportunity will appear. I didn't think anyone would say yes to a 4-day work week, but I kept asking. Eventually someone said yes.
The one worry I am having these days is how long this strategy will remain viable. As SaaS and low/no code solutions proliferate, it makes little sense for non-tech companies to build when they can buy. This is especially true as engineer compensation continues to rise. Engineers who congregate at SaaS companies can build better products than a handful out on their own who are building a solution for just one company. Increasingly, the only engineers that non-tech companies need are people to manage their data, people to glue the SaaS APIs together, and maybe some frontend people to put a custom interface on it.
[+] [-] The_Colonel|3 years ago|reply
I personally had the worst experience at such jobs. Small/medium sized non-tech companies don't value technology and don't understand its importance. If it works, you're invisible and just a cost center, if it doesn't you're to blame.
For work/life balance I've found big tech corps the best (not FAANG). I haven't worked on Saturday/Sunday in the last 10 years. I've seen people negotiate reduced hours/days successfully.
[+] [-] DonnyV|3 years ago|reply
[+] [-] ChicagoBoy11|3 years ago|reply
[+] [-] xxEightyxx|3 years ago|reply
I've worked at a broad spectrum of different sized firms with various titles ranging from analyst to engineer and have found no consistency between size of firm and work/life balance.
Ironically I've had a better work/life balance working for larger firms, but ultimately it comes down to your manager and how they manage the department.
One example - worked for a large investment bank building software and systems from scratch. Worked 6-7 days a week for up to 14 hours a day at times, but I honestly loved the work and was under no obligation to work that much. My boss and I had a great friendship outside of work and he would call my personal phone to remind me to stop working and do something else.
Any requested time-off was always approved by him, he would give me three weeks off for the month of December in addition to the PTO I had already taken during the course of the year.
Contrast this to a smaller (albeit one of the largest in their industry) company where we grinded every day 50-60 hours per week, PTO was a hard limit of 3 weeks per year and you were not permitted to take more than a week of PTO at a time and had to check-in every 5 days by e-mail. It was the worst job I've had in engineering. That said, there were brilliant folks working there but most left within a year. I sort of hope the company implodes but they're running away with success atm thanks in large part to the high quality engineers they hire (kudos to their hiring squad).
[+] [-] tiku|3 years ago|reply
[+] [-] saiya-jin|3 years ago|reply
I presume you didn't see much industry yet. In reality, every existing company that is around for 10+ years have already tons of legacy apps or apps nearing that threshold, a lot of times tightly integrated in the rest of ecosystem. That isn't going away for some shiny new SAAS overnight, nor over year.
I've been hearing similar predictions since at least 2010 and they are just not true for much of the business.
Our bank (and in bank, IT is always just a cost center) has tons of external SAAS systems. Yet our internal systems grow, their integration grows and we are actually hiring more people to handle all this.
[+] [-] fm2606|3 years ago|reply
>> The one worry I am having these days is how long this strategy will remain viable.
I just started reading "Ask Your Developer" by Jeff Lawson, CEO and co-founder of Twilio. He advocates that ALL companies should be building their own software, but only software that differentiates them from their competitors. They wouldn't build the next Twilio, NetSuite, Oracle, Salesforce, etc but software that enhances their brand, customer engagement, etc.
[+] [-] Archelaos|3 years ago|reply
From my own experience, I can recommend the following approach for someone with a database background: Look for successful small companies. They typically have some homemade information management solutions that do not scale, such as using Excel where a database would be the right thing, etc. Then tell the management how much better such a database system would be: how much time they could save, how much more consistant and reliable their data might become, how many interesting key figures they could extract from it, etc.
When you are hired, you are usually the only person responsible for the new database project. This gives you all kinds of organisational freedom and limits meetings to occasional consultations with the management.
> I didn't think anyone would say yes to a 4-day work week
Do not set a fixed time per day or week, but instead agree on an annual time budget that is slightly less than what you might want to work. Do not agree on fixed project deadlines, but instead create a detailed to-do list with priorities. Work above average at the beginning of the year until March. After that, you should mention from time to time: "I am already x weeks over the planned time budget". You will then usually not be pushed to work more and can take days or weeks off at will to get back in line with the planned time budget. In December, no one will usually complain if you charge the company more when you are still ahead of the planned time budget. And if they do, just take a longer Christmas holiday.
[+] [-] oifjsidjf|3 years ago|reply
He hates regular jobs. He wants to work on his inspiring projects, but doesn't know well how to monetize/market them.
[+] [-] BirAdam|3 years ago|reply
[+] [-] g9yuayon|3 years ago|reply
I do the first part: finding smaller to medium company. Smaller companies have better visibility, more work than people can finish so everyone gets to work on big whales. There's in general a better comradeship too. Revenue per employee in good smaller companies are usually larger than that in big companies, so people don't have to fight for resources as much.
I'm not sure about "non-tech" companies, though. IT in non-tech companies are usually cost center, so there's usually insufficient investment in tech workers in those companies. Some line of work can be hard to find in non-tech companies: distributed systems, large-scale database systems, high traffic systems that require deep optimizations on throughput, latency, and etc.
[+] [-] samat|3 years ago|reply
It is possible, just keep looking! :)
[+] [-] pmarreck|3 years ago|reply
[+] [-] mrzool|3 years ago|reply
[+] [-] badpun|3 years ago|reply
Also, there are definitely better and worse companies. I'm currently in the best job of my life (well paying, fully remote, very little meetings, no micromanagement, using interesting and cutting edge technology), but it took me 15 years to get there. The catch is that such companies don't have to hire that often (because people don't tend to leave them), so most openings at the market in any given moment are from shit companies where average tenure is 18-24 months and half of the staff has low-grade depression. The job market is essentially a market for lemons, unfortunately.
[+] [-] canucklady|3 years ago|reply
I agree about the second half, though. My current job is just a terrible meat grinder, hiring and churning like crazy, and they just keep pouring gas on the fire by trying to grow headcount without retaining people they already have. Everyone is sick of interviewing and the solution is to hire more people so the new people can start interviewing and take some pressure off the old people.
[+] [-] TrackerFF|3 years ago|reply
I can only assume that it is because of stronger labor laws, more relaxed work/life balance, etc.
Some of my American (contractor) colleagues would work like dogs for 6 days a week, often from early in the morning to late in the night - depending on the status of the project. It was the first time I observed actual burnout in people, and how visibly it changes people and their personalities.
In any case - most of them, especially those over 40, would often discuss their big plans: Only work 5-10 more years, then retire, and live life.
If 50-60 hour weeks, all year round, is any good indicator of American SWE life - I can understand why devs. are daydreaming about retirement.
[+] [-] magicalhippo|3 years ago|reply
I'm in a similar position (not remote though) and yeah... my boss told me during my first year that the guy who was hired before me said he'd only stay 2-3 years, and that was 6 years ago. It's almost 10 years later and we're both here, along with the rest.
We're a small company though, so like you say, we've just hired a few programmers since I started.
[+] [-] brodouevencode|3 years ago|reply
Part of what I realized in that 12 years was that I by the time I was ready to bail I was so frustrated and hated life so much that anything _but_ this current position looked good, which opened the door to taking something that was equally as horrible. I've long advocated in starting at the bottom and working your way up, but there is a limit as to how much abuse a person can take. If the climate goes south you have to bail. The long term consequences of not are higher than the immediate annoying ones (relocating, etc.).
[+] [-] giancarlostoro|3 years ago|reply
We also see devs just flat out going into new fields altogether.
[+] [-] po1nt|3 years ago|reply
[+] [-] jxramos|3 years ago|reply
Somehow I just visualized the job market as analogous to the romantic dating pool for people past say 35. That complaint about all the good ones being taken, and those who get back into the scene have baggage by that point and several failures along the way. I've never conceived of the job market like that, puts a whole new spin on it when I conceptualize it as such.
[+] [-] galdosdi|3 years ago|reply
> The job market is essentially a market for lemons, unfortunately.
[+] [-] mvgcf|3 years ago|reply
[+] [-] garagemc2|3 years ago|reply
[+] [-] etergri|3 years ago|reply
[deleted]
[+] [-] ornornor|3 years ago|reply
My personal hypothesis is that we’re increasingly being treated like assembly line workers. We’re not paid to think but to implement the poorly thought out hare brained schemes from the higher ups who have no clue about programming. This externalizes all the cost of poor quality software onto the developers (unmaintainable code, constant outages…) while reaping the short term benefits for themselves (promotions, raises).
[+] [-] JKCalhoun|3 years ago|reply
Throughout my career, as tech became big(ger) business, I watched as management, marketing, and design, took away our keys. Scrum, as an example, and all that followed seemed to be a way for upper management to rein in engineering, give management "numbers" that they could show their bosses, etc.
[+] [-] ThrowawayR2|3 years ago|reply
Developers don't like hearing this but the vast majority of us _are_ effectively assembly line workers. We do little to no actual engineering, instead we plumb together pre-packaged framework, libraries, and software. We are treated as fungible because that sort of worker is intrinsically fungible; skill is involved in software development but not enough to elevate it from being a trade to being a profession. A symptom of this is the not infrequent HN posts complaining that "Nobody actually uses CS education in the real world"; assembly line workers don't need a degree to do their job either.
[+] [-] innocentoldguy|3 years ago|reply
I started programming for Intel in the early 90s and loved being free from the menial labor, doing creative work, and being treated like an important, respected, and integral part of the company.
Fast forward 30 years, and programming feels like the same grunty ditch-work I was doing as a teen for the reasons you mentioned. I hate it.
[+] [-] AlwaysRock|3 years ago|reply
What is wrong with that?
[+] [-] TheRealDunkirk|3 years ago|reply
[+] [-] xnorswap|3 years ago|reply
Programming is one small aspect of software development. It's an absolutely essential part, and it's the part you probably enjoy the most.
But despite being an essential core part, it's also a part which only occupies maybe 20% of your time.
Some software developers declare that to be a problem, and fight tooth and nail to change their company culture with the idea that if they were just left to program for most of their time they'd be better software developers.
That's actually the wrong conclusion, and a very self-limiting approach.
You aren't employed to just program. You're employed to develop software, and that other 80% is actually where you can make a huge difference to your company and add value over your fellow software developers.
If you start taking pride in the state updates, the endless meetings and approach that part of your work with the same pride you would approach coding then you may find some of the stress disappears as instead of always fighting the system you flourish within it.
For example you might look down upon a programmer who seemingly never takes pride in writing good code, just copy-pasting from stackoverflow with the minimum of understanding, just hacking away until something compiles.
If that's the energy you bring to these "endless meetings" then you risk that being how the rest of the business sees you from outside the software department.
Unpaid overtime and working weekends isn't really a thing in my culture, so I can't relate there. That legitimately sounds frustrating, but be sure to set your own boundaries and stick to them.
One approach to dealing with what you see as problematic behaviour from colleagues is instead of getting frustrated with them, consider what effect it has on you. If you're not actually badly affected by their overworking then try to relax and recognise they have a problem, but that it's their problem, not yours.
[+] [-] rlawson|3 years ago|reply
I've been a coder, manager, director, CTO and one thing I have learned the hard way is "You are responsible for your own happiness".
Yes this industry is full of fakes and scoundrels and clueless biz people but don't let them steal the joy you have in creating software
[+] [-] nvarsj|3 years ago|reply
I’m going through it again now, and honestly am pretty miserable. It has a large negative impact on the rest of my life and my mental health. When I was younger it was manageable, but the fact you have to do this even mid or late career every few years is insane to me.
Wish I had gone into literally any other career now, despite it being my passion early on in life.
[+] [-] cletus|3 years ago|reply
Programming is a tool. Computers are tools. You're not getting paid to program. You're getting paid to solve some problem for your employer by programming.
So I can related. I think we all can. But all that other stuff that you hate doing is really what you're getting paid for. Some jobs will have a lot of it. Ohters will have less. But you'll never get away from it except for possibly the most junior jobs where you're literally given tasks to complete by other engineers.
For me, I enjoy understanding and improving systems. YMMV.
Perhaps you'd enjoy something lower-level more? Fixing Linux kernel bugs is by its nature going to be more technical than, say, developing an ad revenue and reporting system. But even more technical projects will get large enough that you have to deal with other people.
[+] [-] mabbo|3 years ago|reply
Neither. He loved computers, loved programming, but when he took the classes and imagined the jobs, he found it revolting. So he switched majors, and software became his hobby instead.
He seemed very happy with the decision.
[+] [-] stutsmansoft|3 years ago|reply
I've been developing professionally for almost 30 years. I still love making software and I'm good at it.
When I started in this industry, being able to do it at all was the barrier to entry. The processes were light; "here's what we need it to do, go figure it out." Responsibility (and impact) were both high.
Somewhere along the line that changed. Teams blew up to be dozens of people. Process fads weighed things down with tons of meetings, silly ceremonies and other things that actively slow down productive developers.
Add to the mix the hell that is tech interviewing now. If you're interviewing for anyone that will pay well, you're going to be subjected to "leetcode" style puzzles under pressure and stress scrutiny. If that's not how you best think and solve problems, tough!
So yeah...I can absolutely relate. I still love building software and I hate the industry.
The only escape is entrepreneurship or possibly consulting, both of which I am actively looking to do.
[+] [-] diamondap|3 years ago|reply
We often worked overtime so we could write the code we were assigned to write. We couldn't do that during office hours because office hours were for meetings, answering email, and fixing bugs in the crappy code we pushed out last week. Because last week's code was counted as "done," fixing it didn't count as "progress." We weren't getting anywhere unless we produced something new, and that only happened after hours.
A few years ago, I started working at a university in the US, where things move much more slowly. I started having the time to properly architect software, to rewrite chunks of code when necessary, and to write much more thorough tests so I'd have fewer surprises when we got to production. The saner pace and the ability to be thorough made the work enjoyable again.
The academic world in general tends to move more slowly and cautiously than the start-up world, and that academic mindset creeps into even the non-academic parts of the university. The go-slow-and-be-right attitude is good for designing and building complex systems.
That said, universities are a mixed bag. Get into the wrong department, and you might find yourself maintaining crappy software that no for-profit enterprise would ever run. You might find yourself in even more meetings, with more politics, about things that matter even less.
But if you manage to find a decent project with a decent manager, the university can give you back your work-life balance, along with some of your sanity. You'll even find a little extra energy to put into your side projects, because the job hasn't wrung you dry.
[+] [-] wruza|3 years ago|reply
Sometimes I want to say fuck it all and program enterprise systems in gambas or love2d, cause that seems to be much more adequate choice of a platform.
[+] [-] belval|3 years ago|reply
Have you considered just changing jobs? Not all places work weekend/have tons of meetings/micromanage. Maybe take time to assess what you like and dislike about your job and try to find a less stressful environment that fits your expectations.
This is especially easy if you have some experience in the industry. As for:
> bringing the stress home to my family.
You can work on yourself to help with this. As my girlfriend puts it "at the end of the day it's just a bunch of computers, no-one is dying". You can still have a sense of ownership while understanding that everything is not actually urgent or important.
[+] [-] oifjsidjf|3 years ago|reply
In the last 10 days I made more progress than 10 years combined before.
Why? Because I realized that the problem is inside of my mind. What is causing me to not finish/doubt my own projects?
There are many reasons, each unique to each persons's mind.
One must brutaly focus in on the specific reasons and resolve them.
The solution that is working for me: sit in front of PC, close my eyes, focus on the problem.
I am NOT talking about regular meditation. You have people who mediate hours for their entire life and get nowhere.
What DOES work is to bring and hold the problem in your mind and just let it "hover" there. Eventualy you will start getting random thoughts/ideas which will show you details about this thing and your reactions to it that you have never seen before.
Note that this can take anywhere from 5 to 30 minutes. But very often I get many insights in a single 30 minutes session, many more than just one. But it's a bit random.
Basicaly it has to be active meditation.
I hold the problem in my mind and after 5, 15, 30...minuts solutions start popping in.
Listening to Jiddu Krishnamurti is what "pushed me over the edge" to realize that sitting down alone in a quite room and examine your mind is the only way forward.
Your problems will be specific to you.
In short, you need to figure out what is preventing you from monetizing and finishing your side projects.
This thing that is preventing you is in your mind.
You are uncertain. Uncertanty creates a "choice" in your mind.
You will then pick A over B, but because the uncertanty will still be there you will forever cycle between A and B, never commiting to each.
Address the source of the uncertanty. When you do that, the choice will dissapear and never bother you again.
The problem with this advice is that I cannot give you specific advice since you will have to figure out what is causing resistance in your mind against monetizing/commiting to your side projects.
[+] [-] wnolens|3 years ago|reply
I survive by trying to get the highest pay possible, giving just over the minimum so as not to appear lazy, and playing musical (job) chairs until I find a company with good/bad tradeoffs that don't irk me.
If it didn't pay "retire-early" money, I would be doing something else.
[+] [-] scrapheap|3 years ago|reply
Now that I'm a more senior developer I try to go out of my way to make these good examples. Not just in how I code and how I review their code, but in how handle my work life balance.
I always make sure I take my holiday throughout the year, so they realize that taking two weeks off is fine.
While I start work early in the morning, I always finish early as well. Showing them that they don't need to work crazy hours, and also giving some of those with less confidence implied permission to leave for the day.
While I'm not their line manager, and so can't stop others from trying to micromanage them, I have certainly interrupted people trying to do so and picked apart their attempts (micromanagers very rarely understand the full repercussions of what they're telling someone to do).
[+] [-] SamWhited|3 years ago|reply
[+] [-] darepublic|3 years ago|reply
I have no answer. Maybe my situation isn't even the same as OPs, since I tend to overwork myself, get disillusioned by feeling that others are not pulling their weight, and then I get burnt out and it sounds like OP is in a situation where they are surrounded by jerks like me. But I can relate to the struggle of work stress, and trying to prevent it from spilling over into personal life.
[+] [-] scrozart|3 years ago|reply
I work at a science institution that sits between NASA and the .edu sphere of influence. While we also have our own frustrations, it's generally wonderful and I'm a cog in a machine that is enriching the human experience. Are we a little behind on all the spiffy trends? Yep, but we're also not under constant pressure to adopt/adapt to spiffy trends. Do we make a little less than market? Yep, but it's still plenty and the benefits, including retirement and vacation, are amazing.
Of course startups are going to grind you down - you're tasked with rapidly deploying and optimizing someone's business baby and they're on the hook for copious, tenuous funding. Check out USAJobs or similar and find something with a human pace and good benefits.
[+] [-] rockbruno|3 years ago|reply
[+] [-] 29athrowaway|3 years ago|reply
If you care about your craft, spend time learning and cultivating your skills and want to do the right thing, once you try to put things into practice you'll find a bunch of people along the way that hate programming and don't care about quality.
You will also find people that will try hard to game the system to inflate their productivity metrics at the expense of ruining long term collective productivity by incurring massive tech debt. They make the coding experience draining.
You'll know who they are when you try to talk with them about technology and they'll start avoiding you and cluster around people that talk about sports, cars, travel, wine or some other thing that has nothing to do with tech.
If all those people suddenly decided to go do something else the industry would be so much better.