Everyone around me from management to the HR apparatus and even my peers seem geared towards me remaining a non client facing worker bot content with my perks and not harboring any ambitions beyond 'solving challenging problems' as a means to elicit that dopamine rush towards the collective ego
Growing up I chose computer science because it wasn't supposed to feel like work it was supposed to be a calling a duty but now the whole system is geared towards blind compliance and disengagement
My good people how can I break the endless cycle of mindless mechanical labour that has become the software business and become the consummate professional I've always wanted to be?
I don't have any answers to your questions but I hope it's some consolation, at least.
Perhaps you can give us some additional insight about your current role, industry and experience level?
"Life hack: just build your own compiler, one that just gets you"
"Quit your job and live off bug bounties - I did am I'm great"
"Show off to everyone: how in my free time I made software that dwarfs your entire coding career"
"How I work out six times a week and meditate to write better code, and why you shouldn't have had kids..."
"Us mere bunch of 20 year olds just got 15M to build something cool - here's how we did it (went to MIT and were young and free enough and able to work in a shed for 3 years to polish our idea first)"
I love this community, it's only in jest I comment like this, but it's true that you can't see the forest for the trees here. There are many amazing people who achieve amazing things and share them, and some incredibly smart people, but most of us are just normal, interested people working pretty normal jobs. Albeit in an industry with huge potential and decent salaries!
If I could offer any advice it's to do some time at different startups that will let you work on code outside your area of expertise. Most (not all) larger companies in particular push people into quite narrow scopes because "the person who makes the most sense to do this" is usually the person who already can.
Conversely many larger businesses are more stable and might give you the work life balance you need to not burn out, and to have time for side projects.
Sounds like you want to make a change. Look for other opportunities that might help you grow. Reach out to a mentor, dress differently of it helps make people know you want something different.
But don't stress. It's all a game, and for most the only true winning is enjoying the journey. We don't all get to build the next unicorn, or become the high paid CTO. But we can still all have amazing, enjoyable lives.
It's good to read that others feel the same.
Thank you. I needed that, myself. It cannot be understated: Its all a game. I believe, its one of chance with a very strong element of skill. But, its the stress that makes one bitter. Bitterness is it`s own hell.
artsyca: I second that you sound like you want a change. Perhaps you`re trying to solve the wrong problem? Like the Paradox of Hedonism, I find that these things come when one isn`t thinking of them.
Best of luck, m8. I feel confident in saying that the most of us are with you.
"Worrying is suffering in advance."
So - stop worrying about what and how other people are doing, and focus on improving yourself. Better things may or may not come from that, but worrying about whether it will or won't, will not help you one way or another, so just don't.
At times, easier said than done, though.
Once the joy is gone, stopping comparisons doesn’t really bring it back unfortunately. And comparisons only hurt in a few individualized things. Everywhere else they show the path of incremental progress and long term strategy.
Places like dev.to, Medium, LinkedIn are saturated with articles that are basically self-marketing pieces.
There are three ways to break out of this:
1. Play the game inside the system - work “really hard”, be “visible”, demonstrate “strategic leadership” inside some game space like BigCo, VC-backed flavor of the month. You will still likely be a cog, but with luck you might be able to influence the edges of the game.
2. Find an orthogonal vector into doing computer work - look outside the set or opportunities typically presented to you and instead look at problems you care about and whether you have an edge that lets you put together a team to go solve it. Note that this works best with at least one other person, you need someone in the trenches with you to keep morale up and even if you’re both talented at the construction and people end of things it’s better one specializes in each.
3. Organize your fellow workers - we are quite possibly the single best paid, most powerful group of workers in the history of humanity. There are efforts to collect this power so that we may actually influence the decisions that get made.
One last piece of advice, the way you feel in this moment is where anyone who has ever done anything great has started. There is no assurance whatsoever that you will achieve what you initially set out to build. But what you can control is whether you try to do something or accept the existing structures as they are.
Good luck!
The things that have helped me a lot have, paradoxically, not been changing my environment drastically, nor the people I'm around at work (I do believe that changing those things can help a lot, but understanding, knowing, or finding which professional situation or group of people that facilitate what I'm looking for can sometimes be tricky; I'm hopeful, however, about finding a better environment or group of people with time). Rather, doing things like dressing better, reading in the mornings, practicing piano, going on long walks, and doing yoga (it's important, in my experience, to do yoga with someone that feels like they have a sense of poise and setteledness is important).
When I can find a feeling of centeredness and wholeheartedness and groundedness within myself, I perceive others around me as fully human as well as myself — by fully human I mean having potential, intelligence. And that lifts others in a subtle way, I think and leads to better success for myself and mutually. Sometimes the feeling arises that in spite of the normal BS of work, that there's actually a lot of room to get good things done if I can let go of ego, let go of the sense of frustration about how bizarre things are.
The valley has changed a lot the last ten years. I'm sure you'll find your way if you try. We all need to. Despite the money and perks, more people are waking up to how bizarre things have slowly become. Remember you're not alone and things can probably get better if we try.
Yep, this is true. To be honest, no one cares about your career but you. I'm not saying this to be harsh, it's the same for me. But no one is going to come up and say "you're really smart, and we need you to do smart person job." I wish they would, especially for me. But it doesn't seem to happen, at least not very often. Everyone gets in their own rut, and most people can only see what they think is the status quo, even if that isn't how it is in reality. And people like the status quo. It's predictable. But usually not optimized for success or efficiency.
But the only answer I have for both of us is to figure out what we want, and make a plan, and go for it. Most if not all my important growth came from quitting one job and moving into another. Figure out something that means something to you now, and go for it. You're the only one who can know what you need to do.
Not at every company and/or with every boss. As a young worker, I’ve had managers care for my career. And when I became a manager and later as entrepreneur, I’ve always felt like part of the compensation I could and wanted to provide, was to care about the future careers of individuals working with me. Some components of work would thus be structured and selected to develop resume items, others to develop experiences that would hopefully become useful beyond the current job. — However I never felt this was being particularly altruistic - it made it more likely that good individuals would stay with me for longer. And that helped them, me and the company: win/win/win.
I'm sorry but this is just incorrect. I have done that myself, had it happen to me and know that it's a common occurrence. Whenever you hear of someone being "poached" that's exactly what happens.
There are also thousands of recruiters doing exactly this. Not every recruiter mind you but executive and technical recruiters do exactly what you describe for a living.
I think generally though, your advice of "figure out what we want, and make a plan, and go for it" is correct, and generally leads to you being sought out and recruited in the way you describe. You're not going to stand out if you don't want to, so it's a required first step in order to get on that "must have" list of recruits.
I was talking about the people OP was referring to (company peers/management/HR). Once you're hired and settled, I find the story can often change, and the only thing you can really do then is find another job if the promises of what work you would be doing don't hold up (and they often don't, but it sometimes works out anyway).
I collected all of the emails where recruiters started off with "I'm Impressed...". https://www.iteachrecruiters.com/blog/when-everyone-started-...
These individual efforts happen both within big organizations and outside of them. Go read the story of any big product and you'll see how it happens - all of the major Apple products for example had an internal recruiting effort that pulled people off of other teams. I do this a few times a year myself within my org.
Coding can still be fun, but once you see and know yourself and environment better, you can try to spot the career you actually want more clearly.
Interpersonal culture and power struggles, code quality, work life balance etc. are reasons to move jobs. More than prestige, perks or money alone.
I am however experiencing the reality of 99% of software products being, to be polite, unnecessary. And that does bother me.
I've spent over 2 years now compromising any other consideration in the sake of building something that I see as important and useful. I've relocated, I took junior jobs, worked with tech stack I hate or know nothing about. I did some effort (not enough, yet).
And you know what? it worked :) I now work on a product I love and feel related to. I cut my salary down ~25% (I could afford that thanks to my amazing better half). I also officially work 80% and occasionally from home. That whole package really helped me to reenergize and get myself together as I was very close to declaring myself "X-software developer" and pivot to some other profession.
Yes. “The best minds of my generation are thinking about how to make people click ads. That sucks.” - Jeff Hammerbacher, Facebook.
I was lucky. I got to work on some good problems. Like "Can we get computers to talk reliably to each other over this Internet thing even when they come from different companies with different operating systems and operate over a wide variety of connections." And "Can we cram a useful CAD program into a rather small PC". And "Can we get a multiprocessor OS and computer to stay up for a month or two instead of crashing several times a day." Early in my career, there were many big problems that clearly needed solving.
Now we're past that. Most of the high-value problems have been dealt with. Most new software is rather banal. Or hostile.
That's something that only people in a very small corner of the US tech industry actually believe. It's not even remotely close to being true. The people figuring out how to get other people to click on ads, are not the smartest people of any generation. Amusingly the people in the ad-click industry are the ones that spread that false premise (Hammerbacher) because it feels better to pretend to be super smart and wasting it, rather than the alternative.
The smartest people of this generation work at SpaceX. They work on the Large Hadron Collider. They work for DARPA. They work for NASA or ESA or CNSA. They work for AMD, TSMC, Intel, nVidia or ARM. They work on CRISPR. They work for Intuitive Surgical or Illumina. They work for Boston Dynamics. They work for Biogen. They're working on the next gene therapy or the next cure for a massive killer disease ala Pharmasset. They're working on autonomous vehicles for Waymo or Tesla. They're working on hypersonic weapons for the Russian or Chinese militaries (which humiliates ad-click work by comparison to how difficult it is and the mental capabilities that it requires). They're working on new nuclear reactor technology. They're Jennifer Doudna or George Church, not Jeff Hammerbacher & the ad teams at Facebook or Google.
I could not disagree with this more. Most of the underlying problems have been solved, now we don't have to worry about buying and setting up machines to run our servers, or making a computer be reliable before we can start working on our problems. This is the most exciting time ever to start working on real high-value problems, because there isn't a lot of stuff in the way stopping you from getting to work on it.
There are still a ridiculous amount of high-value problems left to work on, for example, biology and computer science are just getting to a point where we can do meaningful work there. In 30 years, there will be someone talking about working in the underlying problems there and saying most of the high-value problems have been dealt with.
Every field has a lot of crap optimized towards just making some profit, and the underlying tools have made it easier to build something just to make a buck, but you can choose to filter down to more exciting projects.
Almost no job feels like this. Few people ever feel this way about what they do for money.
My advice is to reduce your hours and find something you are passionate about. Facing clients probably isn't it (which I say from experience)
Personally, being thoroughly mediocre myself, the best I can do is help realize somebody else's vision. I choose jobs that ship interesting products, usually for non-web stuff.
A "builder" is someone who assembles furniture like from IKEA by following instructions. A "creator" is someone who envisions furniture and makes their vision come to life.
Most people get into tech because they want to be creators. Most people get disillusioned about tech because of the way that industry constrains one into the role of a builder.
I know a lot of productive engineers that just build miniature models of things like cars, helicopters, and trains in their spare time. They do not need to reinvent the wheel to be intellectually stimulated.
What makes people miserable is the incessant drum of you are meaningless in life if you are not a creative savant.
That's something I look for at a company is the sales culture. connections is like the most important thing for your career if you want to move above IC. My last company's CTO was super impressed when I asked to shadow a sales call to learn more about the customers... even if it was totally my plan all along to look different than other engineers, that's the game.
Its not all about the other engineers you know.
What I noticed is that it is better when direct leadership are people with technical background and worst when you work under non-technical leader. In first situation you are part of "us" for leader and thus more likely to be listened to or given chance. In latter you are the "other" or "different kind of person" and thus not seen as potential source of value.
It's hard to get the balance right, but I wouldn't want to work in a place like that any longer, as the codebase would presumably be a nightmare.
Developers need to have some power to say "I can't do this well as scoped, is there something we can change" sometimes technical debt is essential, but it's a dialogue in a healthy company.
"Hey Joe, yeah I'd love to add this new feature and I see how it could be really valuable to the end user. But I just wanted to let you know that there are some risks to this adding this feature. If we add this feature we'd be responsible for performance issues that will significantly degrade the end user experience. For instance it could change the time it takes to run a TPS report from 5 minutes to hours. This probably would be fixable but it could take up to 500+ hrs of engineering time. I have a couple ideas on some alternate approaches if you'd like to discuss."
I've found that lots of people in corporate America avoid responsibility like the plague, and being willing to take responsibility is like a super power. 95% of the time the other person will just do what I propose to make sure if shit hits the fan I'm responsible for it instead of them. 4% of the time I learn that this technical debt is really worth it. And 1% of the time at least I got cover when it blows up.
If I ever decide to move more towards a client facing role again, I would probably do one of two things. 1) Find a role that was very light on (or eliminates) the technical work, and only focus on managing the client relationships or 2) stay technical, but go the freelance route. If you are going to have to deal with all of the stress of managing clients, you might as well get the benefit of being your own boss.
Another thing to consider, appearances matter for these types of roles. And I am not just talking about dressing slightly nicer and getting more frequent haircuts. Nice smiles, firm handshakes, height, weight, etc... If that is not something you naturally have, then you will always be at a disadvantage. It is certainly not necessary, but it will definitely help. Looking sharp is not something I am particularly pre-disposed to, So I find it rather nice that I can wear jeans and t-shirt to my software engineering job while making just as much if not more than the folks wearing the suits and ties.
In short it's this -- corporacy held such a promise that we would be something far greater than ourselves
It's well known that an organization that designs systems is bound to design systems which mirror the communication structures within the organization
It's also known that any sufficiently large software system becomes a half baked implementation of common LISP with an email client tacked on for good measure
You can tell a lot about a company by the software it creates and vice versa
Rather than fix corporacy as a means to write the best software we're slogging along with a toxic casual mediocracy that's beginning to resemble a surveillance state policed by petty bureaucrats where initiative is punished in favour of disenfranchisement and the only way to build a career is to self deal with the bullies
They say the only thing worse than running in politics is having others do it same goes for corporations
As software and systems people we were supposed to fix the system from the inside for everyone remember people over processes agile is a disruptive paradigm and all that?
Instead we threw t-shirts at it and told it to fix itself
Somehow the tables have been turned on us and we've become the data you know what I mean I never signed up to have someone less qualified to do my thinking for me and force me into one of a few stereotyped roles while the bourgeois brats take all the profits
I signed up to commune with gods and legends like Alan Turing do you suppose he cracked the enigma just to clear the road for this shit?
But truly tech is massive, if one space feels robotic find another section of it that feels impossible to conquer and chip away at it and network and work your way in and enjoy the new challenge knowing it's just fun. I don't think anything can stay a "calling" but I like to hope things stay fun for me in my job, also truly if the material is fun without the people in your office it might not be the subject matter but the people you're doing the job with that are making it difficult to enjoy. So that's my two cents! Good luck, stranger!
Here's one problem. People will usually underestimate you because people who are not programmers don't understand programming. When I broke into programming, my managers at the time wanted me to do QA instead. However, in my case they weren't really paying attention and weren't technically savvy, nor did they really actually care, so I simply ignored them and worked on the programming tasks instead. This doesn't always work, but I think knowing when you can get away with breaking "the rules" is an important part of getting ahead. Looking at mega-successes like Carmack and Jobs, they also didn't play 100% by the rules all the time.
It's also important to understand when it's beneficial to the company that you break the rules. Because if you're just doing your own thing without a thought to the company's needs, that will cause trouble. But if you break the rules in a way that you bring more value to the company than your formal job description dictates, then a smart manager will let you continue to do so (and if they aren't smart, I recommend getting a new manager).
> but now the whole system is geared towards blind compliance and disengagement
This sounds to me more like a company culture problem than necessarily an industry problem. My division is in the business of breaking blind compliance and challenging assumptions both within our own division and the rest of the company. Maybe have an eye open to other opportunities?
> creating something of lasting value for the world and society and even my own legacy
This may be the most challenging bit. There's lots of value out there, but it's coming from competing value systems. So you would first need to identify what exactly this value looks like to you (Making the best educational software in the world? Operating robust communications networks within disaster areas? Building a better fundraising platform for nonprofits? Catching human traffickers with machine learning? The list is endless.) and then look for companies that are delivering that.
My main ideas are 1) Working on more significant but shorter term finishable projects, at a higher level. Taking inspiration from movie directors, cinematographers, and high level architects, being more of a high level problem solver and compositor is something that seems compelling. 2) I don't have a 2 yet. Maybe doing more independent speaking or switching fields. Not sure
There are few places like Xerox PARC and Bell Labs around today. Because they are few and far between and there are plenty of programmers and CS students, they can pick and choose among the very best.
Other than that, software and software development is a commodity. If you want to do something other than just coding things to spec, you have to actually put in hard work, take risks and have a fair bit of luck to boot.
What is it that you want to create? Do you have an idea? Can you monetize it? If you're in it for the fame and glory rather than money, look into FOSS. If you're looking for a managerial position, start applying for managerial jobs.
Your job is to use your side projects to improve your people skills. Your side project will let you do whatever you want. So make a plan and do what you need.
If it’s lasting value for the world and a legacy, I’m not sure software provides that in spades. How often do you think about MySpace now Facebook is here? Altavista now Google is here? Software is pretty transient and even if you do something first, your competitors will probably be the guys that get remembered, not you and your team. Maybe that’s not what you mean though.
The good news is that feeling as you do, it often means you are self aware enough to have reached the point where you see life is just a journey, there is no end point other than death, and the meaning of life is what you put into the journey.
The bad news is that it reads like you are feeling that, so far, you've not used the time on your journey well.
That can be dangerous, as it can lead to depression, jealousy, and a whole host of emotional roller coasters before you get to the point that you realize you're actually in control of your journey[1].
You wrote "Everyone around me from management to the HR apparatus and even my peers seem geared towards me remaining a non-client facing worker bot."
Step one is to recognize your own agency in your journey.
You could resign your job tomorrow, just walk in and say "Oh hey, my last day will be Friday, could you let HR know so they can have my final paycheck ready?" That is using your agency to change the circumstances of your life. That said, I don't recommend it, since that would be jumping in without a plan and that leads to a bumpy journey with a lot of risk.
You've got the start of a plan going in this question, you write "How can I ... become the consummate professional I've always wanted to be?" (some editing there to pull out the goal statement). Spend a couple of hours with a notebook (or an open editing window) and let your thoughts flow on what would be true, how your life would look, what your job would look like, what your resume would look like, when you were this 'consummate professional.'
You might write "I would be the chief/lead engineer on the development of new products for my company." or "I would be leading a team of <n> engineers who were working to build the next <y>." Etc. Remove the shackles from your brain and reality and write down anything you want, even silly things like "Elon Musk would report to me." (that being way outside the 'box' and highly unlikely but speaks to part of your life satisfaction being derived from having managerial authority over 'celebrities' as an example).
The goal of the exercise is to convert a feeling of 'want' into concrete expressible and measurable things that would address that ambition.
Once you have a list, rank them from 'things I could do in my current position' to 'things I could only do if I was a superhero.'
Start with the head of the list and work your way through it. You will want to check in with your feelings to verify it is still what you want. As with most things, you might find that you think you want something, only to find as you get closer you want something else.
At the start of every month write a note on your calendar or your refrigerator that says what you are working on this month. At the end of the month do a retro on how well you did and what you learned about what you want, how you got it (or didn't get it), and how it changed your outlook on the next step.
Since all consummate professionals have discipline, this activity will exercise those skills you need. Good luck, and remember, you get out of life what you put in.
[1] Well at least it did in me.
You have a perception problem and need to find a strategy to break that. You can do it in a variety of ways from finding a new job and a clean start, to putting forth great ideas to management/peers that add value (be careful to receive credit for them most of the time).
You still have to do your professional craft (software engineering), but the purpose will be different.
You sound like you lack purpose, not like you dislike your area of expertise.
First I'd suggest not thinking of your work as 'writing code'. Think of it as 'producing a product', 'helping users', 'facilitating economic and social progress'. Re-gear what you do around those ideas. It reframes what you're doing from just 'mindless mechanical labor' to actually improving someone's life, or enhancing the value of some part of society. If you don't feel like your work is doing that, either change how you do your work, or do some other work.
You can focus more on performing the task at hand at the highest level you can. This might involve going back to school, attending conferences/seminar on your subject, compiling lists of inefficiencies with your current work methods, trying to figure out how to work around problems in your current workflows or methods and how to solve them in really beautiful, simple ways.
You can look past the task at hand, and look at what it's being used for. What's the end goal? What can you contribute to that has to do with that? It might be a deeper understanding of how someone uses what you create, finding out problems or inefficiencies in those use cases, and working on how to solve those from your position.
You can also work on things outside your immediate purview that relate to either the task at hand or ultimate goal. Maybe there's something in the SDLC that's inefficient or creating unnecessary problems. Maybe there's outside groups that have inefficiencies. Maybe there's communication problems, process problems, business problems. What is really involved in the entire value chain of this thing you're working on? How can you contribute, even if it means not working on code? How can you improve the whole process, the whole business?
And you can think bigger. How is society impacted by this thing you're working on? What changes could you make at a level outside your organization that would help? Can you get engaged in civil organizations? Can you work directly with communities that have to do with this product? Can you organize a PAC of some sort?
Last thing I'd add is to beware a mindset of trying to 'change the world' or 'fix big problems'. I think these are negative perspectives, because they assume the world needs changing, or that things are broken. People that get passionate about an idea often drift toward a more extreme position than is realistic. I've gained a lot more from the perspective of "nothing is or ever will be perfect, but I can try to constantly improve things over time and help people". Often this is just improving tiny little things one at a time, or teaching by example. Cumulatively, it does change the world, but without big expectations, assumptions or implications hung on it.
"You pass butter".
Welcome to the real world. It beats you down and keeps you down. But the key is to keep going on. Stick to the sisyphean task of rolling the rock back up the mountain.
It sounds like you are burnt out or having a midlife crisis, so good luck finding whatever it is you are looking for.