HACKER Q&A
📣 sergiotapia

Software devs with 10 years experience, what do you still love about it?


There's always threads about burnout and woes about writing software.

I'm curious: what are the things you still love about it after all these years?

Let's show the youngsters what to look forward to.


  👤 nickd2001 Accepted Answer ✓
Having done over 25 yrs , the creativity of it, finding elegant solutions to problems, satisfaction of taming a spaghetti code mess and cleaning it up , learning arcane uber-geeky ways of doing things and amusing others with these tricks, intellectual satisfaction / keeping the brain in shape, having colleagues with good senses of humour and lively minds, (particularly the delightfully twisted silly jokes/banter people come up with after spending hours on weird abstract problems that are incomprehensible to most people) overall relatively low stress (compared to other jobs that pay the same) way to keep a family fed :).

👤 smackeyacky
35 years of coding. Edit actually its 40 this year whew.

Making things nobody ever saw before (current role). Inventing a new kind of service nobody saw before that allows farmers to do things that were impossible.

Taking a boring, time consuming part of somebodies day and making it disappear so they can do more interesting things.

Occasionally hiding something fun in code that makes somebody smile.

Mastery over things. Knowing how to hook up devices and make them work together.

Not every day is great, but being able to create software is like being an actual wizard, especially if you are lucky enough to work where software and hardware hit the physical world.


👤 justinlloyd
I shipped my first commercial project at age 11, in May of 1978. 44 years later, writing code every day, I'm still trucking, and I don't think I have ever worked a day in my life. There have been days where it has been tough, there have been days where they've tried to micromanage me, there have been days when I was bored, and there have been days where the pay wasn't so great, and if those times lasted more than an acceptable amount, I went and found something else to do for someone else. I get paid money to play. What I have studiously avoided is getting pigeon holed or type cast into a singularly defining role that prevents me from exploring.

I will note I've burned out once or twice for a few weeks, until I woke up and realized I was in a horribly toxic environment. And then I simply moved on and found some other exciting project to work on.


👤 ericb
I can make stuff that has never existed before.

I can make stuff that changes businesses.

I can make stuff that changes lives.

I do this with my mind, with no raw materials.

My ideas and time are the only limits.

How could someone with creative fire not love this?


👤 sergiotapia
14 years experience here.

- I still love the feeling of finality when you mark a Github PR as ready for review. It's like you let out a breath you've been holding in for a day or more. The fruit of all that thinking all that pondering, now in tangible form. Ready to make someones life better. (I think this is why I don't see myself working at an enterprise - I enjoy having high impact in products)

- I love guiding younger engineers around trade-offs to solutions. I tell them my recommendation and then I go through my reasoning and because I have 14 years I have first-hand accounts about what went wrong and why. It feels good. I remember in my early days having a senior show me the ropes was very interesting and very fun.


👤 Mo3
Good question. I have 10 years of professional experience under my belt now. 10 years before that, from the age of 10 I was spending 100% of my free time playing with and learning programming languages.

I think an important piece to this puzzle lies in not getting attached to one specific field of application.

Worked for about 3 years in a regular run-of-the-mill agency / website shop. Not very interesting, but good experience and skills gained.

Worked for about 2-3 years in ecommerce. EXCRUCIATING. Left with little to no appreciation left for the craft, fell into a crisis of meaning. Allowed myself to be unemployed for a while and found appreciation again.

Worked for about 1-2 years freelance. Very cool projects, but I couldnt take the constant stress of dealing with clients and managing moneyflow. Stopped.

Now I've been building a venture with a business partner of mine for about one year, which has somehow completely evolved and changed into effectively managing the technical side of a quantitative analysis firm that runs a NYSE-listed Hedgefond. INCREDIBLE. Every day feels like christmas, noone to answer to, 100% decision force on anything, and not even involved with the regular operations, just dreaming up cool new algorithms and ideas for our internal system all day. But this, too, I might leave some day.

I truly believe that a programmer is not a static definition especially given the insane influx of data and new concepts we process every day, and that the only way to truly find ourselves in it is to not get attached to anything.

The zen programmer, so to speak. Code is not limited to anything. Become the code, not the job description


👤 SeriousM
I have 20 yrs now in mainly c# but also js,ts,sql,ruby,etc,etc,..... I really love the way how programming fits into my head and how I can remember quite every code I wrote though the years. What I hate is that I don't learn anything new, no matter how much I try to explore new concepts. Everything is a remix... But hey, now I have much more time to learn cyber security and piano :) Btw, I looooove the HN community spirit and diversity.

👤 eunoia
My enthusiasm for corporate work may have dulled a bit over the years but I still really love to program.

Digging into new challenges, learning and creating still tick the boxes. I’ve found I increasingly need to partition work and “hobby” CS though.

Currently working through 3D graphics in the “hobby” category and having a blast.


👤 uberman
I love the "ah-ha moments" where the complexity of a problem I thought was insurmountable fades away

👤 karmakaze
Been writing for many decades, from BASIC+machine/assembly language, C, COBOL, Pascal, C++, and more modern languages. The field of software development is still maturing and it's exciting to see it progress. The thing I like the most is seeing old great things become mainstream. Like union types in TypeScript and structural typing (in Go too), or F# type inference on .Net, or Clojure, or Racket, or Sorbet in Ruby, Wasm. Advances in tooling or ecosystems, git. Basically all the cool stuff here on HN that's up and coming.

Finding good ways to use all/any of those languages, frameworks, libraries to effectively and creatively solve problems is always an interesting challenge. Getting good at recognizing concepts early, finding the perfect names for everything, and knowing when not to create abstractions are all very rewarding things. Distributed systems. Continuously learning ways of structuring/writing to make it difficult to do the wrong things. It really doesn't end, I love the continuous learning/dopamine hits.

Learning to develop software well, is like learning to play Go (the board game) the skill ceiling seems so very high--and even if you think you might be getting close, there's new tech and hardware enabling-capabilities that extend that farther. You end up learning that there's more that you didn't know there was to learn.


👤 jsiaajdsdaa
Money, stability, esteem, and I just really like coding.

However I dont like how most workplaces are still really inefficiently managed and full of politics and bad decisions.


👤 flashfabrixx
It starts with the simple ability to convert a blank page into something interactive, useful and helpful for somebody else.

And it continues with the possibility to apply knowledge and experience. Most important to see things from a higher level, realizing and thinking in systems and applying these methodical thinking on a daily basis - and passing the knowledge on to somebody else.


👤 999900000999
Been in it for about 9 years excluding some early non salary work.

I just love the freedom, even before COVID. You could ask an employer to let you work remote for a couple of weeks.I did this a few times.

I really like being alone, and just not being bothered. I put it this way at a bar yesterday, I don't need to socialize at work. I'm socializing right now.

Plus this is one of the only fields where you can still teach yourself everything you need to know in order to make an insane amount of money. You don't need a bunch of expensive tools.

At the same time, you should invest a minimal amount of money in yourself. I saw a post on Reddit once where someone ranted that their employer wouldn't let them work at home as they didn't have a personal computer. How are you typing things up like your resume ?

If you invest a relatively small amount of money in yourself, you going to have an amazing life. But if you sit around complaining and whining all day about how unfair the world is, your life is just going to be bad


👤 jka
The excitement between successful compilation and running a program -- only to find out that it emits a stream of nonsense to the console instead of the answer you expect: but that's no problem, ctrl-c and back to the code.

The satisfaction of opening a perfectly-tuned merge request with a minimal diff and glowing momentarily to yourself as tests all begin to pass (before realizing that there's an embarrassing typo in the title text).

The feel-good factor from optimizing runtime and energy usage for your most prized simulation library (despite the fact that it's only used by yourself and perhaps one other egg avatar who starred your repository).

The endless mental battle against an onslaught of awful, awful code and technology decisions from employers and the Internet, yet paired with evident continued emergence of more reliable, higher quality and more freely available and equitable tools over time. And being able to participate in all that in a small way.


👤 karmakaze
Automating stuff or finding creative ways to solve voluminous problems. E.g. contract to port many lines of Java to C++: parse the program with ANTLR, spit out the C++ code with some simple errors corrected manually. How to deal with no GC? return reference values copied up one stack-frame at a time, or pass down mutable structures. Another one was switching from Swift to Java (or the reverse I forget) but it had a huge test suite that also needed porting. Write a grammar, parse, translate the ASTs, unparse. Do it for the program and tests. Fixup all the compiler errors. Sure the parser, AST transforms and unparser could maybe only handle 40% of the language, but Pareto principle applies.

👤 eatonphil
I'm hitting 10 years now and 10 years feels like nothing. I can't believe I used to look up to people with 10 years of experience because now I can see how many and how large are the gaps in knowledge I still have!

But I think the work stuff gets easier and it also becomes easier to explore random fun topics like retro devices and internals of compilers, databases, browsers, etc. Not that you couldn't do those explorations with fewer years of experience (you can) but it just takes me a bit less time to dig into things now.

I guess I've gotten much better at slogging through documentation and reading existing code (that I didn't write).


👤 WheelsAtLarge
I've worked as a developer for over 20 yrs. I recently stopped since I found myself not caring about someone else's vision of their projects or fixing a never ending list of bugs. But, I love being able to define my own project and doing all I can to make it a success.

Basically, I've burned out my ability to deal with the politics of software development but I still love creating a project from nothing. I suspect there are many burnouts like me. Had I known this in the pass I would have directed my career differently.

I'm in the process of switching my career since I have to pay the bills but I will continue to program as a hobby.


👤 ThalesX
I have around a decade of experience.

- I love solving problems. It's like solving puzzles as your day job; it's great!

- I love getting exposed to various domains, when building software for it. There's also the added benefit that I usually have domain experts getting paid to explain stuff to me.

- I love building stuff that other people use. There's something very good for the soul when you see something you contributed to solving real world issues.

- I love the fact that I was involved in building systems that save lives.

- I don't really see myself doing anything else and being happy.

- Don't even get me started on building games / engines, basically being able to be your own mini-god.


👤 m3047
I've always been attracted and antagonized by the recurring theme of irrationality just below the surface of all of this. I've never thought of myself as a "coder" but as someone who engineers how people think about problems. I just end up coding because I guess I love sideshows and amateur burlesque. My father was a shrink. He was fond of (among other books) _Zen and the Art of Motorcycle Mechanics_. Are you seeing how this is going? I took out a display ad in the back of (print) _Computer World_ which said "VAX Hacker for Hire", in 1984.

👤 bootloop
I feels like I never stopped playing with LEGO. And I will continue to do so.

👤 jamisonbryant
- Finding a framework or language that you truly love, and then getting to work in that platform as your day job, is pure excellence.

- Discovering new tools and adding them to your tool chain, but also understanding how to use them effortlessly because you have so much experience.

- Being able to build just about anything in a ridiculously quick amount of time (all things considered) because you've done so much already.

- Rather egotistically, being better than everybody else at something is pretty satisfying (at least to me).

These are the things that I find satisfying.


👤 ramoz
I love delivering. Seeing a vision realized. Love that in combination with hard to solve problems (whether its tech, organizational, strategic). I only get hands on keyboard when any of the teams I support need help, or when we're approaching a complicated domain. Recently that has been a parallel architecture for high-throughput/load & fast latency of AI/ML model inferences.

(10y in, weird position to explain between engineering, business strategy, and management)


👤 wdfx
this is actually quite hard to define for me.

it's something about having the creative freedom to decide on the solution to a problem, and then also the satisfaction of building it out into something which works, works well and then benefits others.

along that path of [requirements -> design -> implement -> test -> release] there are numerous rewarding moments but when the whole thing comes together, there's another meta-reward of knowing that there now exists something where there was not before, and that I created that thing. Quite often, entirely.

Another level of this, is satisfaction in colleagues taking components/services/entire systems I've constructed and adapting, extending, changing them to do more than I thought possible. Also, seeing colleagues start their own components/services/systems in the pattern/design of something I did, and making a success of it.

After a while, it's like seeing an entire ecosystem spring up around seeds I created.

However, to translate that into what it really is - the team I work with manages to build an actually useful product that real people use and enjoy using. I find that highly rewarding.


👤 CodeGlitch
Software development is basically an exercise in problem solving... Which can give you a good sense of achievement. Being paid well without having to go down the management route is a bonus. Being in high demand, and job flexibility, and as others have said it's no big deal if you want to just quit and join another team... No one in software development is irreplaceable.

👤 minusthebrandon
For me, I notice that I get most engrossed in the code when there's a problem and I need to figure out how to solve it.

👤 SenHeng
I type stuff and then things happen. It's really no more complicated than that but it's still fun to me.

👤 errantmind
I love writing software that directly solves business challenges and can be tied back to real dollars.

I love approaching software development from the perspective of an artist.

I love the feeling of gaining expertise and how that translates to me being able to handle just about any type of software project.

I love directly profiting from my projects.


👤 JoeMayoBot
Always learning something new. Software is continuously evolving and there's always a next version of some technology, a new algorithm that I haven't seen or used, or a new practice that improves productivity. It's more of a journey than a destination and I love the ride.

👤 softwarebeware
I'm at 18 years and I still love solving the daily mysteries about why a system is behaving a certain way or how to optimize something so that it is more efficient. The whole diagnostic / debugging / problem-solving process is something I'll never grow tired of.

👤 djohnston
The same thing I liked when I started: hacking on random things and making ideas into tangible entities. And that's basically the only part I like which, as you get more senior, can become less and less prevalent.

My advice to avoid burnout is to keep hacking on your own weird ideas.


👤 vivekv
Intellectual satisfaction and regular doses of dopamine high :-). 30 years and hoping for 30 more.

Edit: Added age :-)


👤 giantg2
Basically nothing. I suppose I love having a paycheck (less than the US dev median) and benefits.

👤 mdo123
I can't imagine not programming... what, am I going to do things manually like a cave man?

👤 danr4
one things I know is that there is inverse correlation between code I love to write and code that solves real business problems.

👤 mikewarot
40 years here. I am amazed at how much raw computing power we have available at our fingertips. I bought some Raspberry Pi Pico boards, just for fun, a few months ago. These devices far outperform the VAX 11-780 that was a monster of a machine (at least to us students) back at Rose-Hulman. These devices were $4 each!

When I first got a modem, it was 1200 bits/second. Now I routinely shove data through the air at 100,000 times that speed, to save the hassle of using an ethernet cable.

My first big boy computer had a special hi-resolution card that did 640x480 in 6 color mode. I reprogrammed the CRT controller to give me an extra line at the bottom, which I put the date, time, capslock status, etc. into.

Now I have a 32" monitor with 1920x1080 pixels, and I could get more, except I really can't see more detail than that! At 60 frames per second, with no interlace, and 24 bit RGB color. At the display is only a few pounds, and thin!

Hard drives... I remember riding along with a friend to install a 10 Megabyte Corvus hard drive, I recall wondering how in the heck it would ever get filled. Back in those days, before I got a modem, each and every byte came from a keystroke someone, somewhere typed. Now I have microSD cards with 3200 times that room, that cost $3, retail!

The hardware is amazing. So is the software! Turbo Pascal was $49 back in the day, which came with an excellent manual. You needed that manual, as that was your only guide to the language. Now we have Lazarus, an open source Pascal on the internet, with full access to source code, and a wide variety of components for almost every need.

The same is true for a wide swath of languages, and operating systems. You can write a program in any of about 10 languages, and there will be support for it across Windows, Linux, MacOs and other platforms.

GIT - oh man, git is amazing. I used to have to store source code in .ZIP files, and put those on sequentially numbered floppy disks as my only method of version control. Now you can put things in a folder, run GIT against it, and PUSH it to github, or any other number of repositories in just a click or two.

Open source is amazing.

It's all amazing. You can build anything you want, most of the time things are so fast you don't even have to try to optimize them. I wrote a program to figure out gear combinations that would fit a given real number ratio, in Lazarus. I was done coding in about 30 minutes or so. The first time I ran it, it was done almost instantly. It had run through millions of combinations.

How can you not be excited to have these types of tools? You can solve problems for people across the world. If they find it useful, they can extend and improve it in ways you didn't anticipate. Those changes might be very useful in turn.

I'm especially looking forward to the roll out of capability based security in the next decade. It will bring back the fun of the old days, as you'll be able to just run ANYTHING against your picked set of files, resources, etc... and know it can't damage/change anything outside that selection.

Freeing up computers again from the threat of infiltration will be an amazing lifting of a weight we've been under for far too long. I hope I'm around to see it happen.

The future is awesome.

PS: Oh, and multi-core... that $4 Raspberry Pi Pico has 2 cores... everything has multiple cores... you can run more than one critical task at a time, and not get bogged down!


👤 gizmore
Less is more :)