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

27 points by sergiotapia ↗ HN
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.

55 comments

[ 6.1 ms ] story [ 114 ms ] thread
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.

Basically nothing. I suppose I love having a paycheck (less than the US dev median) and benefits.
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.

It’s true in my experience too that most workplaces are really inefficiently managed. At the beginning of each new job I tend to give benefit of the doubt for processes and decisions that appear nonsensical, but eventually I usually find out that a lot of the apparent nonsense was indeed nonsense. The hardest part of a new job is sometimes just figuring out which parts of the job is nonsense, and understand how the nonsense came to be. But then just because you understand the nonsense doesn’t mean you have the power to fix it! I have become more ok with it over time.
I love the "ah-ha moments" where the complexity of a problem I thought was insurmountable fades away
Or those clever hacks, where it's a neat trick because you realize that some of those things you thought were fixed are actually under your control and messing around with them you discover something that was hard or impossible, pretty straight-forward actually.
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.

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.

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.

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.
I type stuff and then things happen. It's really no more complicated than that but it's still fun to me.
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 :).
> 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

How do you find coworkers like these? Haha.

dont join faang.
I'm not in faang :(
To add to my other comment, I'd suggest, go get a job at a university , either research support or even their central IT, with some link to open source projects. You'll meet cool people that way. I did. Including some cool Polish people actually ;)
I'd be inclined to agree with this!
Oh they are to be found if you look around. ;). Probably more common in less driven or corporate environments - so public sector e:g universities/ government, "unfashionable" but still interesting fields such as telecomms. I'd echo the sibling comment that perhaps FAANG is not the place, that's where people go to make the most bucks but possibly at the expense of having any fun at work. Having anything to do with a large open source project can enable you to meet cool people, and have shared creativity which is awesome. Good luck with finding more of such people :)
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.
I can't imagine not programming... what, am I going to do things manually like a cave man?
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).

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.

Yeah, the best times are when your creation/program does something that you didn't expect in a good way. Oh shit, I didn't know it could do that too! Like when an initial design keeps being built upon and on and on, and it doesn't seem to need much reformulation in its conceptualization, only specific updates (partitioning/caching) to keep its performance scalable.
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

What was excruciating about working in e-commerce?
Deadlines, lack of resources due to slim margins, marketing drives every decision, huge spikes of traffic/load around holidays where you usually want to spend time with family.

Some companies can do it right, but most don’t.

Perfect e-commerce business would be for a product that isn’t tied to holiday sales, has huge margins, and can scale predictably from pre-sale all the way to shipping/delivery.

To add to what the previous commenter has stated which is absolutely on point, it is (might be a personal thing) work that is absolutely devoid of any real meaning or purpose.
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?

adding one more to it, I can make stuff that can be potentially consumed by millions. up until turn of the century you'd need resources of a king or a industrialist to be able to touch that many people.
I can ride my bike with no handlebars...

...sorry, couldn't resist.

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.
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.

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.

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

one things I know is that there is inverse correlation between code I love to write and code that solves real business problems.
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.
> don't learn anything new, no matter how much I try to explore new concepts

I'm sure there's more that you're not being exposed to. Distributed systems, functional programming, or Structure and Interpretation of Computer Programs (SICP). Go, Rust, Pony, Clean are all interesting languages that do things differently. Elixir/Phoenix framework since you have Ruby background is also a neat twist. You can learn new things if you hang around the same neighbourhood (unless that's HN).

The problem with the word "new" is that it depends on which abstraction layer you look at. for example, all programming languages are turing machines under the hood so you could say that learning a new programming language doesn't bring any novelty to you because it feels like the same end result. also lisp did most of the cool things and now we are just reinventing the wheel with other languages
I feels like I never stopped playing with LEGO. And I will continue to do so.
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.
Less is more :)
I think only last week I learned that my superpower is being able to solve problems that others find hard with surprisingly simple/compact solutions. I didn't realize how I was able to do this until I connected it to my motto: "What the simplest thing that could possibly work?" That sounds kinda dumb and short-sighted but really it's a corollary to "As simple as possible but not simpler."--if it were simpler than possible it wouldn't work.

After practicing this my entire career, I learned to instinctively find the smallest possible solutions. What this means is that as the problems get larger, I'm dealing with a much smaller solution space than others trying to solve the problem in a larger solution space. The other trick is not to limit the dimensions of your solution space, everything is fair game and 'in play'.