All through this I have always enjoyed coding which is why I chose to study CS at college and then have been working as a dev post college. But of recently it has started to feel more monotonous and boring.
Last year I started my own company and then got acqui-hired into a startup. I realised that talking to customers and solutioning is more fun than wiriting code. How many of you have felt or feel the same way and what are you doing about it?
Unlike the top comment, I don't think this has to be a sign of burning out (although it can be) - humans are complex beings. The world changes, and we change as well. What was enjoyable to you 15 years ago may not be as enjoyable now, and what you enjoy now might not be what you will do for the rest of your life. At the same time, if you find that you miss coding, you can always return to it later.
If life pulls you towards a more customer-facing role and you discover that you like it, that's a best case scenario to me! Go for it.
I've been coding since childhood and I'm 38 now - and I have had periods where I did other things and enjoyed that as much if not more than coding. Rediscovering a passion is a great experience in itself, worth having at least once.
This is a point far more general than coding. As we grow, some of our tastes change, and that's fine. "I will always feel this way about X" deserves to be labelled as some sort of common logical fallacy if it isn't already.
12 years ago I moved away from a pure coding job because it lacked other things I was seeking. Nowadays (as a 38yo academic researcher) I don't get enough of it so I code a bit outside of work to keep me motivated, but I'm seriously considering moving back to a coding job despite many other upsides to what I currently do. Having done some networking in that job market I don't see that being a problem, should I choose to go that way.
Maybe if you stop altogether you'll end up missing it like I do, maybe you won't - doesn't matter - go with what you want to do. Like Spolsky says there are great rewards out there for developers who fully understand software but can work effectively with people who don't.
I am scared I will be asked a lot about why I am switching back into coding and why I left it in the first place? I am scared of coming across as indecisive
"I was given an opportunity to lead a product I was very excited about, and I took it. It was a great experience, and I learned a lot, but ultimately now I'm glad to be moving back into a developer role."
If you can truthfully say that, you're conveying not indecision, but rather showing the flow of your career path. That is something that is expected to take a few twists like this, and that's even a sign that you're someone with flexibility and a variety of skills, as opposed to being inflexible and unwilling to do things that are "outside the box".
If you switch roles and after a couple of years switch back again - no problem!
If you start to have a history of every six months to a year switching roles or moving companies, that can start to look bad, yes. But even that isn't a disaster that can't be overcome.
I wouldn't worry about it.
One thing I realized very late was I needed some kind of hobby outside writing code and spending time in front of a laptop. Go find a hobby: Travel solo, read books, learn to play some sort of musical instrument, learn to cook. Anything helps.
If you like talking to customers, find a developer evangelist job somewhere. You'll get to talk to customers and developers. Else, think about moving to a product management role. Start reading books about product management. You can also fast track your learning by taking some kind of formal education in product management.
You will also be able to set yourself challenges in the kitchen that are not unlike some "itches scratched" by programming. i.e.
- How can I make this dish in a simpler way and still have it taste great?
- What delicious thing can I make using only the ingredients I happen to have laying around?
- What is the most delicious thing i can make with the fewest ingredients?
=)
INGREDIENTS onion, whole tomato, whole jalapeno
GOAL: make salsa
prepped_onion = chop(onion)
prepped_tomato = roast(whole_tomato)
prepped_jalapeno = roast(whole_jalapeno)
salsa = blend(prepped_onion, prepped_tomato, prepped_jalapeno)PM:
- Inspired: How To Create Products Customers Love
- The Lean Product Playbook: How to Innovate with Minimum Viable Products and Rapid Customer Feedback
- Escaping the Build Trap: How Effective Product Management Creates Real Value
- What Customers Want: Using Outcome-Driven Innovation to Create Breakthrough Products and Service
- Strategize: Product Strategy and Product Roadmap Practices for the Digital Age
Marketing: - Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers
- Brand Identity Breakthrough: How to Craft Your Company's Unique Story to Make Your Products Irresistible
UX - Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability
- The Design of Everyday Things: Revised and Expanded Edition
Organization / Business - Originals: How Non-conformists Change the World
- Only the Paranoid Survive: How to Exploit the Crisis Points That Challenge Every Company
- Lovability: How to Build a Business That People Love and Be Happy Doing It
- The Thank You Economy
Personal - Presentation Zen: Simple Ideas on Presentation Design and Delivery
- TED Talks: The Official TED Guide to Public Speaking
- Deep Work: Rules for Focused Success in a Distracted World
- How To Win Friends and Influence People
- Never Split the Difference: Negotiating As If Your Life Depended On It
- Thinking in Systems: A Primer
- Thinking, Fast and Slow
Also, blogs: - Rich Mironov's Product Bytes
- Aha! Blog
- Inside Intercom
- Mind the Product
- PMHQ blog
- Silicon Valley Product Group
- The Accidental Product Manager
- The Product Bistro
- The Product Guy
- The Secret Product Manager Handbook
Edit: FormattingI've changed jobs recently and this made me so much happier; still programming full-time but working in a new domain, new language, new but positive people renewed my joy in building stuff.
I could always code as a hobby I guess.
Even automating your house so that heating comes on before you arrive has a purpose. Or writing a script to clean up your photos. Or any number of little coding tasks. You do them and you find them enjoyable because they have purpose.
Sometimes with work, you lose that. Often it's because coding isn't seen as anything but a chore that needs to be done towards the business goal. A necessary annoyance, where the real purpose is something that doesn't require coding. And that really kills the enjoyment for a lot of devs.
I had a period where I felt like you. I was working in a dying business, other people weren't supporting it, and it just felt like a death spiral. The only thing to be done was to change track and do something else.
I began feeling that way at my previous job and left about 2 months ago. Now I am in my new job at a startup going through hypergrowth and I feel like development and solutioning is so intertwined and we go back to the drawing board so often and the dynamics of so fluid that I get to feel a more obvious sense of purpose.
Here's an excerpt:
Sadly, the above scenario is more truth than fiction – for computer enthusiasts. There is a particularly cruel discrepancy between what a creative child imagines the trade of a programmer to be like and what it actually is. When you are a teenager, alone with a (programmable) computer, the universe is alive with infinite possibilities. You are a god. Master of all you survey. Then you go to school, major in “Computer Science,” graduate – and off to the salt mines with you, where you will stitch silk purses out of sow’s ears in some braindead language, building on the braindead systems created by your predecessors, for the rest of your working life. There will be little room for serious, deep creativity. You will be constrained by the will of your master (whether the proverbial “pointy-haired boss,” or lemming-hordes of fickle startup customers) and by the limitations of the many poorly-designed systems you will use once you no longer have an unconstrained choice of task and medium. To my knowledge, no child grows up “playing doctor” and still believes as a teenager (or even as a college student) that an actual medical practice resembles that activity. Likewise, no one has a fully functional toy legal system to play with as a child, and as a result goes into law. On the other hand, “adult” programming, seen from afar, is enough like child-programming to set the computer-enthusiast child up for just this kind of exceptionally cruel bait-and-switch.
For me, changes were the key. Burnout melts away. But you can burn out in any role. If you have the skills to do tech work, try to keep them alive. Coming back to hands on tech work is incredibly refreshing. So is leaving it behind for awhile when you've reached the burn-out point.
I did this to get back to being hands on, and as a gateway job, and enjoyed it, but am also now starting to tire of that again.
I can see myself going through a similar cycle that you did. The only thing I find difficult is explaining it to recruiters when applying to jobs - they always ask, “why would you bounce around in such a way”!
It looks like perhaps you were able to avoid that problem by starting your own businesses and then getting acquihired, writing your book, and other pursuits which moved you back to a “traditional job”?
By the way, I love “junior programmer by 75”. I feel the same way, and not entirely that it’s a bad thing. Just reality, there is so much to know and learn.
... asking for a friend.
I haven't so much fallen out of love with coding, but fallen out of love of shiney new things. The last truly "new" thing I jumped on was C#. At the time C# was first released, I was also playing around with Smalltalk, and that actually destroyed me. I couldn't understand why people were excited about all these features in C# as they weren't new.
I became seriously disinterested in new tech, web 2,0, full stack bullshit.
Now I work in Delphi, and I actually love it. All the other guys in my team hate Delphi and would rather be working in whatever is the latest and greatest.
The problem with that is that everything just gets reinvented, and stuff that was old is new again, and the cycle repeats.
That's why I have fallen out of love - I've become a bitter old coder who just uses (and does) whatever requires the most minimal amount of work
meanwhile i accept that the languages i use daily like javascript aren't special because of their features but because of their position in the programming ecosystem. knowing smalltalk and common lisp also helps me appreciate the few rare cases where a language is showing a feature that is uncommon in most other languages. javascripts prototype based objects for example.
My experience taught me that we sometimes tend to be obsessed with code aesthetics, way beyond a healthy reverence that any code deserves. I have learnt to forgive myself of the past coding mistakes and now I try to journal them. I hope you get the strength to forgive those other developers.
I've also had projects that I absolutely hated. I didn't believe in what the customer was doing, it was the same 'ol thing, etc. Bland. Cookie cutter. Boring. You get a few of those in a row and you question everything. Luckily, as I progressed in my career, I can pretty much pick and choose what I do and can turn down projects without even giving it a second thought, but I had to get to that point.
You're relatively young still. That's not to be demeaning. We go through stages of life. You don't just stop growing and keep the same interests. Maybe you just weren't exposed to a more social role before like you're in now, so you didn't even know you'd enjoy it. There's nothing wrong with changing direction, as long as it's a positive move for you. Only you can know that. It gets harder to change anything about yourself the older you get, so if you're gonna make a change, I wouldn't wait too long.
Worst of all, once you've gotten a thing to whatever you consider to be a good state, you're faced with a choice. Moving to a new project/domain might help to regain that feeling of wonder ... until you realize it has problems too and you'll be back to digging ditches in a new field. It also means leaving behind some of your accumulated expertise, which affects both comfort and career prospects. So many people decide to stick with what they're doing even though they're no longer passionate about it, and that's draining in its own way.
I don't think there's any one solution. Some people are quite happy endlessly polishing the same apple. Some people are happy flitting about. Some people are in between, working primarily in one area but taking periodic excursions into others. The key, I think, is to recognize which is true for you and consciously strategize about if/when to change projects to maximize your own happiness.
One of the key points was that in engineering not everyone enjoys the same thing.
Some people like to begin new things, getting from nowhere to somewhere, to something that's functional enough. The excitement of going where no man has been before.
Others seem to enjoy taking something that's functional but not enough fully-fledged to a fully working product. Iterating on it, improving it. And the comforting knowledge that whatever you are attempting definitely is possible, doable.
And apparently, there even are a few who seem to enjoy the seemingly endless grind of the finishing touches. These elusive "last 10%"
People who truly enjoy going through all three, taking a product, a team, a company, not from 0 to 1 or 1 to 90 but from 0 to 100, do appear to be quite rare.
Hobby coders can escape into the unrestricted world of building stuff without limits to satisfy their imagination and curiosity. They can also change hobbies and increase or decrease the amount of time they want to spend on coding to stay in the sweet zone.
Paid coders can only carve out little, temporary nooks of freedom within the requirements and demands that come from somewhere that is external. In the best case they can dictate how things shall be built but the "what" part generally comes as given: from the boss, from the CTO, from the company strategy, from the customers if you're an entrepreneur coder.
If it takes 15 years to get bored with coding I can think of a number of professions where it would only take 1.5 months to get bored. Boredom doesn't equal all is lost. It's just a sign to work on something else for a while.
I've recovered the excitement of coding several times, sometimes through hobby coding and something through talking my way into some interesting work project. But your interest needs to spend some time elsewhere before you can find it again in coding.
Try testing, interfacing customers, managing, or change jobs. If you can, try a job that's not in IT to get some perspective. This should be considered an ongoing process anyway as you will be constantly rethinking your place in life anyway. The process might lead away from coding or getting back stronger than ever, but the goal is to find something that makes you tick again. How all that realises itself in practical work life is mostly secondary.
In that context, I wonder if they too “wear out” or if they find a way/reason to enjoy it constantly, such as their concept of “ikigai” [1].
So true. As someone that likes to watch Twitch, it is not uncommon to see streamers abandoning a game they have streamed for years, even if it means taking a huge hit in terms of viewership.
Even playing a game can be work, if done for work.
Personally I originally thought coding as something wonderfull akin to music or poetry. Ok, that got me hooked and started. Now as I've matured a bit I see coding (i.e. the typing part where you manually define the syntax tree with some specific language) mostly as ... typing. What nowadays gives me the kicks is the thing that I create by coding and the concepts I can study.
I get no joy in coding, unless I am building something that delivers value. The value can be end user value, personal learning or just a glint of beauty.
But, no, I would say I enjoy just "coding" anymore. To me it feels like asking from a literary author do they enjoy typing. It's a part of process of creating value, but only a part of the process.
When I code in my spare time I don't think I spent the time coding. I think I spent it investigating an algorithm, or delivering a fun software, or solving a math puzzle.
It started with me just getting my job done, but not really finding a lot of joy in it anymore and I'm sure the quality of what I did went down as well.
A bit later, I stopped doing side-projects and didn't want to read anything related to it anymore for some time. It was around that time that I realised it's not my job, but the problem was me burning out (I just ended a stressful period in my personal life as well due to a family member passing away).
My solution was to just 'allow' myself to _not_ do anything at home for some time and look for other things to keep myself busy. At first, if I wasn't doing something for side-projects I'd feel guilty, which was an unhealthy attitude.
I started reading fiction (instead of non-fiction all the time) and bought a console for gaming - something I hadn't owned for a decade. Just so I wouldn't be in front of my computer after work, I also took a holiday for a few weeks.
Eventually I started to miss my side-projects, though it actually took a few months before I'd really get into them again. Now I'm only really just getting out of it to be honest, but I'm did rediscover the fun of coding. I'm reading about it again, but alternate between fiction and non-fiction after each book, and I'm having fun programming both at home and at work [most days ;)]
So maybe, as other posters said, you are suffering from (the beginning of) a burn-out. It sucks, but it's not forever.
But I don't feel that thrill any more. I know I can build things; I've done so many times before. And frankly, figuring out how to fit new functionality into messy legacy systems isn't much fun. Occasionally, when I manage something very clever, I feel a glimmer of the old thrill of creation, but that's a rare thing.
These days, I'd prefer to do higher-level design and leadership work.
1) I never loved coding (even though I thought so). I loved the process of finding solutions for problems, and solve them. But coding was not the deciding factor in this. The research, investigate what should be done, speaking with customers etc. _This_ I loved. But I did not love coding. All those problems, debugging of code that does not work etc. I'll compare it to an architect drawing the buildings, making sure that they live up to the requirements ("solutioning"). But the architect is not building the building (coding).
2) What I loved about coding in those 10-15 years I was a hobby-programmer before CS, I was working on small, fun projects. They were quick to get working, and then I was quickly moving to the next thing. And I think that is a problem when working as a professional. You get sucked into large projects that (seemingly) never ends. And that's not the spirit you had in the beginning.
Have you tried going to hackathons? I can really recommend it! Having a weekend where you hack with other hackers and do some coding is a really nice way of working, and can get you the spirit back!
I still code, I still keep up, but I get to do that because it's fun and interesting, not because if I don't do it then I can't eat or have a roof over my head. There's a huge happiness difference in wanting to do it and needing to do it.
If like simplifying difficult concepts and explaining them to people you might want to look at a Sales Engineer role. There's a really great YC graduated bootcamp called Flockjay (https://flockjay.com/ and also read through https://news.ycombinator.com/item?id=18727360 from a few weeks ago). I've been lucky enough to be accepted for the inaugural batch of students. The whole process with them and the first classes have been so much better than I expected. DM me if you've got any questions.
1. I quit my full time job (I was working at a FAANG), took a 2 month break in order to travel, work out etc, then I started working on my own projects. I was coding from 7am to 1am from Monday to Sunday, 6 months in a row. This doesn't include coding only, I also worked on UX, marketing, legal, anything involved in building a product from scratch. I enjoyed every minute of it and learned so much...
2. This got me into Product Management. I started focusing on product management only and started bootstrapping the whole thing to iterate on more ideas. It ended up not working so well so I started applying for PM roles. I got some opportunities here and there but they weren't as good as I wanted. Being a Tech lead having to start at the bottom of the PM chain. It felt like I was over qualified for an entry level role and would not get qualified for a Senior PM role because of a lack of "PM" experience.
3. So I went back to coding for a large company as a lead.
4. Quickly transitioned into Management and moved away from coding again.
There you have it. Coding became a second nature but I can't be as productive as I used to be in the past. So why would I try to compete against young and fresh people? I found out I was more valuable in designing systems, optimizing existing infrastructures, asking questions young engineers don't really think about because of a lack of experience. The act of coding per-se isn't for me anymore. That's it. There are many ways to move away from coding without losing all your valuable years of experience.
But this can happen with anything. I've been playing piano for 27 years, went to college to become a concert pianist. I was quite good. Had a bad professor, realized how very far I was from my dream. How far everyone was. I loved the crap out of piano. And I graduated with my degree. But I don't have that nagging desire to be a concert pianist. I think piano is great. Discovered being successful at coding was 100x easier than being successful at piano. And a much more promising future. And I am really good at it. And you don't have to spend hours alone by yourself. You get to talk to and help other people. And your building things that directly help others.
I've shifted my perception of myself from being an engineer/programmer to seeing myself as a product person that happens to use code to express my goals.
I still obviously expect and demand a high standard of code quality from myself, but I'd much rather do one thing every day to improve the life of a customer than wrap myself up in the more esoteric solutions to coding issues. I don't constantly chase new libraries and frameworks and build tools and I don't spend time discussing semantics while pair programming. I value pragmatism above all.
I feel like coding is now 40% ish of my overall skillset and am much better off for it, which seems to bear out in terms of opportunities that have opened up since I've made this change.
You've just described virtually all my colleagues at my last $ENTERPRISE_JOB. In enterprise jobs, hell is other people - at least it is if you just want to get the job done.
- switching from back-end to front-end coding or vice versa?
- switching from plumbing/glueing libraries to applied algorithms research?
- switching from basic administrative software to numerical/scientific computing?
- trying out a new field like machine learning?
- try embedded programming or robotics?
- switch languages, and try something completely different like Haskell?
I find I'm losing the absolute need to code, but I can't think of anything else that could have offered me the variety, depth and engagement (not to mention a reasonable salary) that coding has over the last 50 years.
I think it's natural to reach a plateau with whatever interests you, where you understand enough that the original challenge is gone, and/or you meet a new challenge that you can't overcome. Change something up, come at it from a different angle and you will probably regain your enthusiasm.
And can I just say, you are the first person I have ever heard say that 'talking to customers' is in any way 'fun'... :)
Maybe you're just into something different. That's ok.
But maybe you're like me: For my case, it turned out that I was just bored of doing what I'd been doing. I changed my direction and left full-stack development. I started studying machine learning (and lots of other stuff because of it), bought some in-depth books about programming and started reading them. I finally understood the importance of Lisps (yes, the weird syntax has a really good purpose) and started learning Clojure. I'm constantly trying to improve my -functional- programming skills. It feels ok now, I feel like I've found a new path to follow, and see the room for improvement.
I recently picked up a side project that I've fallen in love with, and can't wait to get off work to start working on my passion project.
One difference I've noticed is that I'm not learning new things with my side project (something I'm traditionally excited about); I'm using what I already know to build something great.
In this project "coding" isn't the end, it's the means to the end I really want- and therefore it's not even about the coding, it's about the project.
Went on to do some business/psychology studies, trying for years to find a way out of coding that would pay the bills (since that's all anyone would pay me to do). Eventually I started loathing the coding work. I did it, every day, but I loathed it. I had to occupy a lot of my after-hours time with reading and watching interesting videos completely unrelated to software development - especially focusing on psychology and philosophy.
Then, towards my early 30s, in a matter of weeks I had this sudden change of heart. No particular reason that I can pinpoint. I just started loving coding again. I loved being able to make things that made other people's lives better (especially by way of saving them time so they could get to do the really interesting things they wanted to do in life).
I have no idea what drives people's inner sense of "interest" (i.e. what interests people, piques their curiosity and motivates them). It seems pretty far outside of my own control, for me at least. It seems to take a lot of wisdom, introspection, radical honesty and internal negotiation to balance my interests with what genuinely works for me at the time.
Certainly one of the more predictable paths is moving up into engineering management.
In my case, after experiencing a bit of burnout in my late 20s, I debated between going back to school for an MBA---another common route in this scenario---and trying to find a more customer-oriented role within an interesting technology company. I ended up deciding to join a late-stage startup in order to help found their Solutions Architecture team, which has been an absolutely terrific experience. I could imagine going back to an engineering role in time, but I've enjoyed and learned so much traveling the world to work with a wide range of companies across industries---just long enough to understand their business and (hopefully) help resolve their core difficulties...
Feel free to message me (account @gmail) if you're interested in hearing about my experience or of course if you're looking for a new role (https://stripe.com/jobs/positions/solutions-architect).
There's a job title for exactly this - Solutions or Sales Engineer.
I've worked in this role in the past and here's a bit caveat. Due to time pressures your technical skills may (will!) erode and it's very easy to reach the point where you simply become a talking head for a particular vendor's architecture and you hand wave around the hard/technical questions. It's entirely possible to end up in a position where you simply regurgitate the same architecture slide decks over and over.
You have to decide how technical you want to be and how much time you want to spend talking and pick roles accordingly. When a technology is new and probably half-baked (e.g. Hadoop in the early years), you'll be of higher value by having technical skills. When it's mature and has a GUI, being good at selling and demos is more important.
One of the nice things about some (not all) Solution/Sales Engineer roles is that you code enough to enjoy it, but not so much that you find yourself caught up with all the stuff that's needed when you are a full time developer building stuff for production.
I ask this because I had something relatable but wrt education. For three years, aged 16 to 18, I was deep into science and maths as I wanted to get into mechanical engineering at a good college, and these subjects were the key. I did quite well in the entrance exam and achieved what I aspired for. I was excited and did really well the first semester. Then, per chance, I visited the city library, for the first time, and saw a big hall full of books of all kinds on liberal arts topics. Having been immersed in STEM topics for so long, I was instantly taken in by its charm. I had never seen anything like that before and I indulged in it full time. I lost all interest in my engineering for the next few years, and my grades took a nose dive, but I did come to my senses and recover eventually. After I joined the software industry I had occasional flings of this kind with other topics but my past experience made me more prudent in dealing with them. I take that as a great life lesson.
It's always been a means to exercise my brain and solve interesting problems. An escape from the mundane triviality of life.
I've never been in love with programming just to program. I've always been in love with that "Oh! I get it!" moment when you finally figure something out. The next piece of the puzzle. Forever working towards the big boss of the next level - delivery.
Gaming never held my attention. Programming for me seems to be a never ending journey of discovery, forever chasing that moment of realization. Programming is just a means of expressing my solutions in one of a handful of languages I speak. It just so happens that the languages are technical rather than verbal.
Did you fall out of love with language or did you fall out of love with solving problems? "Solutioning" as you put it isn't any different than programming - you just feel like you need to express your solutions in a different form... a new language. Perhaps it's at a higher level now rather than being stuck in the details.
Being able to master technical product, build relationships, solve problems, and find problems that customers didn't know they had has been a really rewarding experience. It comes with its own challenges for sure, and a whole new skillset and language, but the level of impact is huge, and the ability to code helps you relate complex concepts and learn from users.
There's some great research by Adam Grant that debunks the myth that customer-facing roles (ie: tech sales) are for non-technical extroverts. In fact, the most successful tech sales leaders develop technical skills to be thought leaders in their industries.
Happy to chat more - DM me if you have questions. I'm the founder at Flockjay (YC W19 - Tech sales education where the school doesn't get paid until you're hired) - we have amazing engineering talent in our current batch, and past graduates. We help with the transition from engineering/other backgrounds into sales.
It is likely the case that you've come so far and a lot has changed in your life in just a relatively short amount of time. Now, move forward 5 or 10 years and imagine the same amount of change.
What I'm trying to say is... it is perfectly normal to change your interests.
I started out programming in RPG III on an IBM AS/400, a mini computer. Then had to unremember a lot of that stuff and move onto fat client-server architecture and RDBMSs (visual basic, oracle). Then had to unremember a lot of that stuff and move onto N-tier. (C#, application servers, MS-SQL) Then had to unremember a lot of that stuff and move onto the internet stacks (HTML, CSS , XML, Javascript and so many damn frameworks i cant even count at this point) now, unremembering a lot of that stuff so I can go serverless over at AWS.
try coding in the language/stack you are most comfortable and knowledgable in (even if it's old and out of date) and see if that doesn't rekindle the passion. If it doesn't, then its pre-sales tech support for you my friend.
Solving complicated issues at work is satisfying but I still find the most pleasure in my own projects solving little life issues using the tech stack I'm most comfortable with (older, less trendy platforms like Heroku/ExpressJS/Postgres). I love the feeling of an elegantly solved problem that works in a reliable and efficient way. When I invent the projects I am working on, I feel the most control to getting to that point since I can somewhat anticipate my own future feature requests.
What I have been missing lately is having my own home server and tweaking with the server configs and having more control over how my own projects are hosted. S3/Cloudfront are incredible but I miss having an apache server at home doing it for me. One consequence of the laptop age, I guess.
However, I never doubt that I'm in the right profession, but I do know that, as a human, I'm bound to have ups and downs with any topic that I'm involved in for longer periods of time just like relationships have ups and downs.
What I chose for myself is to have some activity that is completely different yet very enjoyable for me and I acknowledge that I do it as a balance and reward.
In my case, it's playing the guitar. I reward myself with the occasional gear purchase and generally enjoy studying+playing.
Sometimes, I'm super focused on my job and go slow with music. Other times, I'm super into music and I'm fine with sinking less effort into my job. The idea is that I have where to bounce to when I get a bit disenfranchised with one or the other.
I have been coding for like 10 years now. I feel it has become more .... routine? Coding itself starts becoming a tool for me, a modeling tool that realizes when I speak to it, like I know soundly winter will freeze the water into ice, and fire can turn woods into ashes.
But I think that means for me that coding itself is probably not going to provide more challenges or growth I would expect into next stage of my life. Coding has to been associated with the problem I am trying to solve. After all, understanding a problem then dissecting it into solvable pieces is what is fun. I would try to seek problems at a bigger scale, and maybe that would bring new perspective of coding to me by facing ever growing complexity.
IMHO your situation is actually quite positive because you notice the domain you enjoy more, which is communicating with people rather than interacting with computers. Why not just keep moving toward that direction?
I wonder if you have played any games that lack of tactics and don't require you to learn techniques to master, and you can just farm and farm and farm before your level or whatever is enough to conquer the final boss. Monotonous, boring, just like that. If the only reward you get from coding is salary and nothing else, then you should really consider leaving the comfort zone, which is actually what you are trying now, and that's good.
"Here, make minor tweaks to our established codebase, for stability or for minor enhancement X, our working practices are set in stone, our coding style is ancient and you will have no creative control or input"
Yeah, that's boring, however much you love code.
"Here, we've got some ideas, but they needs to be transformed into a product. You'll be part of a small team making the important decisions and figuring out the best way to take this forward, technology decisions, working practices etc are all up for definition and change, have at it"
This is far more interesting.
For me it is compilers, for some others it is games, etc.
The biggest stumbling block in "solutioning" is when the programmers responsible for implementing your vision drop the ball and you have to face the customer and explain the delay, cost over-run, etc. For me that was too stressful over the long-run.
Once you're experienced, it's pretty hard to find an exciting project that can stoke your fire because you've done it all before. Things just become an exercise.
How often do you get to work on a totally unsolved problem or world changing piece of software?
That said, sounds like you've simply grown. The actual act of writing the code is boring. That's not where the fun ever was. Typing on a keyboard? Yeah, thrill city.
The fun was in thinking and the problem solving; if you no longer get that fun at the point of typing, then of course the typing doesn't seem fun anymore. If the kind of problem you like to solve is now at a broader level, embrace it.
I just written a piece of mind that might help you notice, whats going on with your passion. You can read it at https://link.medium.com/Td65gAxIkT
If you are simply spending time in this new area over coding then I do think it could be a sign of burn out. In which case, you need to recover.
When you reach the point where you don't want to code outside of work, you've lost the passion and you're slowing starting to deteriorate as a developer. It's time to do something else.
There was a time I liked to travel. Now I prefer spending my holidays at home or my parent's home, relaxing.
Earlier I used to devour fiction. Now I am more into Non-fiction.
I didn't care about politics, now I do.
Life is just like that. Enjoy what you like now. Cherish the memories of what you used to in the past. And try to not to worry too much about future.
Good luck.
I have a couple of friends that found they basically hated coding and switched, one to technical marketing and the other fixes machine tools.
I've recently joined a project in a language (to be left nameless) with limited abstraction, and thus limited means to perform these trade offs, with the result being noisy code.
My interest has consequently waned.
You mean work has started to feel like.... work?
Any time you make your hobby into a job, it goes from being play to being work and will lose a certain aspect of fun.
For me personally, when I had a lot less experience the attraction was mostly a feeling of accomplishment and satisfaction that I could make a machine do exactly what I envisioned in my mind. As I accumulated more and more professional experience, the source of my satisfaction became increasingly distant from the actual code itself, e.g. analyzing a business need and identifying a technical solution that met it became more satisfying than writing the actual code itself. 10+ years down the line now and in my current role I very rarely write any production code. To the extent that I miss it, it's probably mostly down to nostalgia. I typically get more satisfaction from working with strategic technical problems, enabling developers, doing high-level designs, liaising between tech and other departments, etc.
So TL;DR - yes, it's perfectly normal to find non-coding software development activities more gratifying :)
Let it flow.