I thoroughly enjoyed it in my 20s. I was fascinated by code and prolific. Now I struggle to just motivate myself to get through a workday.
I don't know why, precisely. Maybe I'm just bored with it. Maybe I just hate the direction it's all gone. Gone are the days of just a shell and vim. Now it's all yaml, dockerfiles, scrum meetings, ERDs ,et cetera. It kinda feels like too many weasels got their hands in the pot.
I don't know what's next, if anything. I can probably ride it out another 15 or 20 years and retire. But I hope I find some calling that pays maybe 60% as well. Guess time will tell.
> Gone are the days of just a shell and vim. Now it's all yaml, dockerfiles, scrum meetings, ERDs ,et cetera. It kinda feels like too many weasels got their hands in the pot.
Oh no, I'm in my twenties and already begin to feel like that. I still like working on code and business problems, but there seems to be too much unnecessary stuff around it.
I like it when things are lean and agile: Build the Monolith, rsync/git deploy to server, restart with Systemd.
Now it's all Scrum + Microservices in Docker and everything takes ages.
similar situation here. for me after a decade of professional coding the benefits - mental stimulation of discovering and learning something new, start to get outweighed by the negatives - fatigue from repetitive work and hamster wheel economics
I'd actually like some repetitive work, at least so i can be an expert in a stack. It's always some new system, team, or new tech with no training/background/etc every 2 years, but with the same stupid business issues.
> Gone are the days of just a shell and vim. Now it's all yaml, dockerfiles, scrum meetings, ERDs ,et cetera.
I miss shell too. I have setup a new challenge for myself, transition to shell + vim (neovim?) for all my dev work. The goal is to eventually use iPad + Blink shell and work off a VPS for personal projects. And stay in iTerm on work laptop.
Probably use Docker to make VPS reproducible or may just use a shell script to download and configure various softwares.
VSCode has spoiled me, control + click to browse to any class is just so hard to give up. But I am excited about going back to how I started with programming. This project has brought a lot of joy to my everyday work too.
Full stack, been doing this a few decades now. Not really. Every new front end feature just feels like such a chore. You tire quickly of building new CRUD endpoints and pages pretty quickly. You need to write so many mind numbing tests with dynamically typed languages. I really dread writing test after test. I do enjoy hunting down bugs. Performance optimisation can be fun too. But sometimes the bugs are ones that I introduced, so anyone who has worked in this business long enough knows it weighs on you a bit to be the cause of a problem. I tried to get into strongly typed functional programming a bit, but realised after a couple of years doing Haskell that it just swaps one set of problems for another. I've always liked games, currently trying to do a late career change into gaming. I think I just need to believe in the underlying product, then I can put up with the pain. Pay is dreadful though. Getting a new job now is quite time consuming, you need to solve riddles online while someone watches. I think the market is going to become quite illiquid, maybe salaries will go up?
> I tried to get into strongly typed functional programming a bit, but realised after a couple of years doing Haskell that it just swaps one set of problems for another.
Would love to know what problems you encountered that are intrinsic to Haskell.
Laziness principally. In my opinion, laziness is as difficult as managing pointers in C++. Laziness makes memory usage of your program difficult to reason about as it becomes large.
> Every new front end feature just feels like such a chore. You tire quickly of building new CRUD endpoints and pages pretty quickly.
I was at this point with my last job (and the job before that... and the job before that...) and finally found a "cool hip" startup where we're doing something fun and exciting that's more "app-like" and less CRUD. Worth a shot trying to find somewhere different that could still use your skills!
> But sometimes the bugs are ones that I introduced, so anyone who has worked in this business long enough knows it weighs on you a bit to be the cause of a problem.
Classic joke that I heard is that the average tenure at a tech company is 16 months, because that's how long it takes for the code you wrote on your first day to come back and bite you in the ass :)
I try and take every bug that I introduce as a learning opportunity. I'd like to say I introduce less bugs now than I did a decade ago, but that's definitely not the case.
> I tried to get into strongly typed functional programming a bit, but realised after a couple of years doing Haskell that it just swaps one set of problems for another.
I agree with this... they are niche and have their place, but I don't particularly enjoy writing in them.
> I've always liked games, currently trying to do a late career change into gaming. I think I just need to believe in the underlying product, then I can put up with the pain. Pay is dreadful though.
Not only the pay, but the hours are often horrible and you have to deal with the worst people on Earth... gamers. I don't think it's possible to release a game these days without facing heavy criticism no matter what you do. Maybe if you're just a small cog in a big machine, you'd be insulated from it, but then you don't have any autonomy.
> Getting a new job now is quite time consuming, you need to solve riddles online while someone watches.
Tech hiring is broken. No matter how bad a job I'm at gets, the dread of having to do interviews usually keeps me at it for a year or so more than I normally would have stayed.
> I think the market is going to become quite illiquid, maybe salaries will go up?
You think this even with the massive layoffs going around at all the big tech companies? I'm thankful to still have a cushy, high-paying job right now and I'm saving every penny I can. I have a feeling that the next few years are going to be really rough for everybody.
My current situation is ok. FE dev making a relatively very modest salary remotely. Very little overhead and lots of agency compared to previous gigs. But, idk if I'd say I like it, but I've accepted that's not the point. It has its ups and downs, I work well with my colleagues for the most part, often times that's enough.
I got it by sheer luck after a stupid relentless gauntlet of interviews and happening to find one that worked out for no particular reason.
The spark is definitely gone for JavaScript or frontend related anything. I still enjoy learning new things that make a substantial difference in productivity or performance, but I've learned through numerous burnouts that it's just tech and things basically don't matter as much as you'd like to think.
I'm upper-20's and been at it professionally for about 10 years if you count college co-ops; longer if you count craigslist websites to get myself a gaming computer as a teen.
My first co-op was gotten through my University's internal job board, and my first "real job" after graduating came from a part-time internship I took one semester.
I still love the actual development part of my job -- being pointed at a problem, mapping out a solution, and then actually getting into flow to solve it (and I'm damn good at it too).
It's all the other stuff that has started to wear on me (currently a tech lead at a small startup). The planning, the estimates, the never ending negotiations for trying to get more in without adjusting timelines. The recruiting, the dealing with unmotivated reports... and did I mention estimates / planning?
Going to stick it out a little longer, but at this point I think I was meant to stay at the senior engineer level at a laid back company.
I worked as a petroleum engineer running reservoir simulations. While not a "developer" per se, I had to run FORTRAN binaries on a Linux cluster, know shell scripting, run servers, git for code tracking, writing reports in LaTeX, Linux desktop and dependency hell, list goes on. I did this in industry and research (corporate projects, Department of Energy) both as a consultant and full time employee for 9 years counting Internships.
How I got my job: I was an average student in college and can't interview. I've actually never gotten a job I've applied for, but I digress.
I emailed everyone in my home state for a job because I thought I wanted to live there when I was through with school. I lived in a small oil producing state, not a Texas. Long story short, I ended up emailing the lobbyist for the local coal council asking if he knew anyone in the o&g industry in my state and that I was a young college kid looking for an internship. He hooked me up with a local company and I got an internship, and ended up doing simulation and chemical research that universities love. Went back to college and networked with some professors and research groups there and got on a Department of Energy grant. Built skills / reputation and then went off solo consulting.
All this is to say while I enjoyed "the process" of messing around with computers, figuring things out, and going to engineering school, I don't enjoy it anymore. I hate the office life and looking at a screen all day, and politics and meetings. It's just not for me. I found out I really like turning wrenches and seeing physical things being built. I like "blue collar" work more.
I think I put up with it for as long as I did because I was chasing money. I wanted to save money, but it was also a measuring stick for "let's see how much I can charge and justify my ability."
It's alright. After doing it for more than a decade, I can't think of doing anything else. Although, the spark is gone and now it's more of a chore sometimes.
Reason to keep going is the good pay. Earlier it was all good, but now it feels like doing CRUD in one way or another. Not to mention, the work hours are always atrocious. The thing I hate most about is the middle management or leadership who always over promise things and have quite a myopic view of technical aspects of software.
Another thing is the constant bombardment of new tech that one has to keep up with. It's as if there's no downtime and you can't just switch off and get back to your daily life after putting in your regular hours.
Sure, it pays well and I work about 4 hours a day and make myself available to others if needed the other 4. Fully remote.
Frontend work for a midcap household name. I have a lot of autonomy and am insulated from all the BS that happens at the mid-manager level. My 1 on 1s with my manager usually becomes more of a therapy session for him.
After years of freelancing and nightmarish interviews in the Bay Area, it took a simple conversation with a cool Aussie guy to get the contract. Once on the team everyone saw I could produce so was asked to come on full time. Moved out of CA to AZ. Been almost 3 years now.
Nope. Absolutely hate it and I've been doing it for a decade and a half. I love messing around with computers and technology but getting myself in the mindset to be writing code for my job feels like pulling teeth. I'd rather be looking at music stuff, home improvement stuff, beer/brewing, etc.
No. I never wanted to get promoted past senior "engineer", I really enjoyed that level. But a few years back I was looking to move on from my then-current role. I got an offer from a startup at the senior level. The money wouldn't work but they really wanted me so they offered me a promotion to staff and more money. I accepted but have hated it ever since. I'm now actively looking to get back to a senior position but $ECONOMY.
What aspects don't you like, or which do you miss?
I ask because I'm currently working as staff+ and still enjoying what I do. (The '+' part is advising on other teams/groups discussions and proposals.) I spend much more time discussing and advising on designs before implementation or reviews of both designs and implementations. This seems to be a better use of my time than writing as much as I can myself but then still have much designed and written poorly that amounts to piles of 'tech debt' (though not intentionally borrowed) of varying kinds. Also keeping large parts of the current system and future directions in mind when doing all the design/reviews makes things fit better now and down the road when it will need to change to accommodate new requirements. If there's a conceptualization that keeps boundaries between domains cleanly separated there isn't as much friction figuring out how to make more things fit.
I completely agree that moving too far up leads to being hands-off too much and could easily lose touch with what matters now and not what was previously known.
I was close to getting a staff engineer promotion at my last job after doing a stint as an engineering manager and then switching back to an individual contributor. I declined the promotion and ended up switching jobs and staying at the senior level.
I loved writing proposals, planning them, leading the team on them, and putting larger pieces of the puzzle together. But I couldn't stand having to get in endless arguments with upper management, designers, and other staff level engineers about how to do something. Everybody had an opinion, including me, and there were never any good answers. I chalk a lot of the negativity up to the culture of the company- it wasn't fun and tensions were often very high.
Glad to be back at the senior level, but I do miss having more say over the broader direction that the platform that I'm working on is headed.
I completely understand this. Even when people are not intentionally being difficult there can be difficulties in exchanging views and getting to a point of agreement. I probably went through up to a year of such discussions (when starting at each company), sometimes arguments, not to the point of raised voices but certainly talking past one another. I don't know exactly how to avoid this but it has gotten much better for me lately. I think it's from a few factors: word seems to have gotten around that I know stuff, I'm much more patient taking a talk and learn approach, and I myself am more open to the possibility that I might be off base. The last feedback I received was wondering why it was taking so long to have a technical point resolved. In this particular case there was a lot of the discussion captured in PR comments and Slack threads where in the end it was clear that I was addressing long term conceptual/design concerns vs short term ease of implementation.
The parts that I'm having difficulty with now is that since I produce much less tangible output and if I do my job well, it's avoided a lot of unnecessary work, it's hard to point at exactly what it is I did when it's mostly improving others' output. I've never been one to spend much time/effort on self promotion, but I'll have to start writing up some of my high level understandings and ideas and share them around. As long as there's value to other devs/managers reading it, I'm up for that.
Maybe working at a large company helps. For instance the only time I have to be much concerned about front-end is with API design. And I don't often even speak to upper management as there are many levels so it tends to be more project focused. Maybe it's good to check yourself and carve out boundaries to be concerned about. I myself skip most meta-discussions about process etc, or long term company direction, and focus on doing good back-end designs and implementations.
Yes, absolutely. This is way more fun than anything else I could imagine doing for money. Certainly not for this much money.
I only ever do contracts. Short ones preferably, so that I can have as much time off as I need to recharge. My current one is a part time, 2-3 day week gig with a startup that's building a popular product. It's mostly young kids, so they choose stupid but fun tech to build their thing on, which means there's always lots of fun cutting edge technology to play with. I treat it more as a hobby than a job, so I'm happy if they decide they don't need anything built for half a year
My main income comes from a couple feature complete SaaS products (that are also fun to work on) with enough paying customers to keep the bills paid, built on a sensible, boring, stack so that they don't need my day-to-day attention so that I can spend my days on more important things like bouldering, travel, and family stuff.
But yeah, I couldn't imagine being in this position with any other sort of profession.
The passion is still there but it's fading away. My plan now is to keep in tech but switch business to something more creative like video game dev or animation engineer or something.
The reason I want to switch is because things are "too healthy" right now, I start work at 9/10 finish at 18/19 (lunch hour doesn't count as work here) and then I just leave without a care in the world. I care enough for the business to do my work right, but that's about it.
I want to switch to something that makes me want to stay at work late with the rest of the team. Yeah I know, crazy, but right now it's just so boring that I want to completely switch it around.
Although I'm probably gonna get a pay cut if I switch, the creative industry probably doesn't pay as much as ecommerce. But we'll see.
I used to work as a developer, but found it unrewarding and stressful. Now I work in software vulnerability research, and I genuinely enjoy every day of it.
I've always been more of an explorer than a creator, so picking apart systems to understand their internal workings, and making a living off this, is pretty much my dream job.
I still do some development, like writing tooling, and proof of concept code to demonstrate vulnerabilities, so having that skill in my back pocket really helps there too.
Getting hired was fairly straightforward, I contacted a recruiter who is very well-regarded in this niche. He sorted me out for my last few jobs. Interviews have ranged from basically a chat about previous experience, to being sat down with an assembly code listing and asked to point out any vulnerabilities present in the code.
100%. Love it. I work at a bank so it's pretty awesome & rewarding work: barely any hype, tried and trued technologies that have been battle-tested to hell-and-back, and great work/life balance. If they allowed me to WFH permanently, I would never quit.
That's cool. When I envision banks, I see stuffy suits and offices, getting stuck waiting months to work on something because of beaurocracy, etc. Maybe I'm listening too much to stereotypes.
Can you give any examples of tech stack decisions? Like rejected x in favor of y? (Within reason, I get that you can't divulge company info)
Yes. I work as a developer 20 years already, programmed everything from frontend, backend to microcontrollers and some scripting. I still like it. I could do other things, but nothing would pay as much and they would probably not be that fun when done as a day job.
How I got hired - a developer friend needed some help in his job, I've modified some sql queries, he recommended me (a student then) and they hired me.
I wish there was a job board for average companies looking for average devs. Every company these days want top talent for bottom dollar. But the daily tasks are usually medium level at best. Better adjusting the talent expectations would lead to better talent retention in my view.
The current 'system' expects Michelangelos to do basic carpentry jobs.
I know! I recently went for a job where when I got to the system architecture rounds they were asking about sharding and setting up a server/db for global level massive scale. I only know what I've done, which is set up EC2/ECS instances that handle small to medium, not massive amounts of load. I don't know this stuff because I've never done it, yet I was expected to come up with a Michelangelo solution.
Software engineer in SF Bay Area for a popular medium size co, mainly front-end recently, Javascript all day.
Recruiter hit me up, interviewed, hired.
It can be very stressful to the brain, sometimes work late in to the night, need to constantly study up on new tech, sharpen skills. It's all worth it. Wouldn't want to work in any other industry except Victoria's Secret model photographer.
I'm a B+ engineer and admire the hell out of brilliant minds who seemingly know all the things naturally. I'm not a great student, takes me a while to learn things, but that's life. I always need more knowledge!
I had a dream gone nightmare when I was between jobs. Recruiter person told me "Ok we'll give you everything you asked for, except... you won't be an engineer." Ahhh!
It massages parts of my brain that are nearly untouched in daily life.
Kernel engineer. Yeah, I enjoy it. I like operating systems, data structures, security considerations, low level code... so that's a good fit.
It shifted my hobby projects to get even "lower" level though, which now has a lot of signal processing and electrical engineering, both in the analog (with some RF) and digital (including FPGAs) domain. I am determined to absolutely not let my job creep towards that direction, I want it to stay separate. Fortunately, I'm nowhere near experienced enough for anyone to consider that jump anyway.
By now a relatively long time ago, I was privately talking to a former employee of the company I'm now working at about hobby stuff. He said I seem to enjoy the relevant things, so asked for a CV and referred me. I didn't know where he was working at the time, so this was entirely organic, and got me an internship at first.
How’d you meet the former employee? I’m trying to break out of enterprise .NET into low level stuff.
I can’t say kernel engineering is exactly what I want to do, but given I only have a bachelor, it sounds like something I can immerse myself in without the existential dread of enterprise software.
I met him through a common low-level interest. As said, I didn't even know, nor actually care, what he was working. Our correspondence was purely a hobby project thing, until he asked whether I would be interested in a topic-adjacent internship.
If you're dreading enterprise software, kernel engineering is (usually at least) definitely pretty far from that. I would say you have to have a knack for it, since among other things you'll be dealing with problems that, for "higher level" engineering, are usually already solved on some lower layers, and also because debugging is often an exercise in creativity and knowing (and learning, ad-hoc) a meticulous amount of details. Being passionate about that certainly helps. But absolutely try it out for yourself, maybe it's your cup of tea and you just didn't know it yet.
Everyone can do kernel development. Linux and the BSDs guarantee that. To get a kernel engineering job, once you've gathered some experience, you could become an embedded engineer, or e.g. a driver engineer... Modern kernels are vast, there is always opportunity to branch into new areas.
If the question is how to learn kernel development, I would say it probably involves reading some books about modern OSes in general as a primer, reading specs (e.g. the reference manual of the CPU; just like other references you fortunately don't have to read all of it to get started), and reading lots of kernel code (that will be true throughout your entire career). The aforementioned OS kernels also contain documentation that really helps getting into specific areas.
You can most likely find some good lists. I started long enough ago that I have a hard time recommending any specific resources. It was during a time where there were entirely "unmodern" OSs around, such as MS-DOS or OSs on home computers, so my learning involved some transitioning between OS paradigms, mostly going from simpler to more complex. That would not really apply today.
It's also hard to make general recommendations in the first place, because parts of the kernel range from high level, where the jump from userspace programming is not that far, to potentially rather arcane, such as low level memory management or context switching code.
From a glance at your comment history, it's very likely that there's some part of the kernel where you can just jump in, and expand as necessary.
I started out literally just reading stuff in the source tree/man(9) (which was informative!) but then my employer gave me a copy of this book, and I found it to be a super-helpful aid in understanding the general organization and motivation of the kernel: what kinds of tasks and problems each component needs to address, how components interact with each other, and the basic building blocks by which these things get done. I found that having a higher-level understanding of the what/why of each bit, covering algorithm/data structure details but probably not the exact code implementation, made grasping the actual kernel code a lot easier.
Oh, also: dtrace is a very fun and interactive way of getting a live peek into FreeBSD kernel structures without doing a whole bunch of scary recompilation. You can e.g. start digging around in `curthread->td_proc` on a process you control and you'll discover a whole lot about how the kernel manages processes.
Work for hire always means that you do something you rather won't, and they pay you so that you kept doing that. Work has negative utility.
But a software developer job is the least worst kind of this. Among several areas I tried, engineering is the best. Compared to EE / embedded engineering work, a job of a backend software engineer is pretty pampered. It can be hard sometimes, but it's neither soul-crushing, not nerve-wracking, nor a constant race against the clock, and the pay is pretty good.
If I were rich enough to not need to work for money, I'd do much of the stuff I'm currently doing, only in somehow different areas. I think the only thing better than this is when you're directly paid do do you hobby, but it's rare in any area.
I don't even have my first dev job yet and I hate it. But we don't work jobs because we enjoy them, we work them because we like to eat, stay warm in winter, and dry when it rains.
I used to enjoy it. We make a platform and toolings for game devs and publishers. Back then when it was small everyone is thoughtful toward everyone else.
Then there's the hypergrowth phase. It's good for the money. But the culture downgrades for both the communication, the engineering, the product. People complain a lot but don't slightly ever make a plan to fix things.
I'm approaching 40th year on this planet, working professionally in software development for 15 years, another 10 years during my education, loved it during my uni time (non-CS faculty), loved it during my high school time. It always gave me a sense of exploration combined with feeling that I can build things I want. I still enjoy doing it :)
Yes!
I do financial risk modelling for a UK household name. I was hired 12y ago, after applying to an advert, to work with a (niche) language I'd not seen before.
I enjoy solving the problems, learning new things, doing things the 'right' way, helping colleagues. Pay is good but not spectacular and not my main motivator.
Meh. There's an occasional interesting thing, but 90% of it you could do on autopilot. It does solve problems, it works reasonably, it's not too bad technically, but it's just not that interesting. I liked my SRE stint much more, but I just can't fit oncall into my life.
When I get to actually dev, totally. I work at an insurance company, I ended up here after I got hired by contract house (from a referral from a friend, who was hired by that contract house because they picked up grads), and they posted me here ~11 years ago, then I went permanent.
I thoroughly enjoyed it in my 20s. I was fascinated by code and prolific. Now I struggle to just motivate myself to get through a workday.
I don't know why, precisely. Maybe I'm just bored with it. Maybe I just hate the direction it's all gone. Gone are the days of just a shell and vim. Now it's all yaml, dockerfiles, scrum meetings, ERDs ,et cetera. It kinda feels like too many weasels got their hands in the pot.
I don't know what's next, if anything. I can probably ride it out another 15 or 20 years and retire. But I hope I find some calling that pays maybe 60% as well. Guess time will tell.