I'm a software developer with about 15 years of experience with 70% of my background being in small companies and startups where my position was some form of "software dev" but I ended up doing the solutions architect work, interfacing with clients, working with the sales/owners, designing solutions, and implementing them too (with great success!). And I loved it, working with stakeholders and coming up with creative solutions really brings me joy.
However now when I go to bigger companies that pay better as some form of "senior software dev" I end up eventually absolutely hating being told what to do or how to build something, especially when it seems to me like it's clearly a terrible way of doing something or if I feel like I could have come up with a much better approach, and ESPECIALLY if the person seems to be half my experience or age.
Perhaps I have some kind of skewed mentality where product managers or solutions architects are superior to me and that by being a pegged as a "lowly coder" I am basically letting them get all the credit, because I often end up spoon feeding them the solution and they end up thanking me on a meeting and then getting all the glory when those things work out, even though it was my experience and advice than caused them to succeed and they just sap everything from me and nobody in the business knows I exist.
In my mind, this manifests itself as "I should just get that job instead", but even after some introspection I can't actually tell if that is an accurate sentiment, it just drives me insane to have someone other than me doing the "big picture" design work and getting to interface with the customer, but I don't have a rational reason other than I have been doing this stuff for so long that I actually do think I know how to do it better than the people I have been dealing with.
On top of it all, and probably the more frustrating aspect of this since I would like to get back to doing what I did when I was younger and "accidentally" fell into the ideal roles thinking it was a standard software developer role but instead they basically made me do all the work (which allowed me to do the really satisfying and creative stuff). I am having a hard time even getting an interview for these types of roles because people just seem to instantly reject a software engineering background for solutions architect positions.
I just don't even know what to believe, but it certainly sucks and I think it's skewing my ability to make rational career choices. For example sometimes I just want to start my own software consulting company so that I can decide which aspects of the work I do but it's mostly because of the reasons above and I have a hunch that those are all terrible reasons to attempt such a thing.
Am I just a total piece of shit who resents authority? Why do I feel so awful and feel like people above me are stealing the credit for my work?
I need a job. I have kids. I feel so incredibly immature for feeling this way and hating people for no reason, but it's the truth and I really don't know what to do. Thanks.
1. Work as a contractor, only with the end customer, on a deal that was "do work, get paid". Nothing else, no teams, no management, no stupid meetings etc.
2. Started my own company, where no idiot who hasn't seen a line of code in his life can tell me how to implement something.
The people you complain about are the worst in the industry. They affect junior talent so much that people fall into depression, anxiety, burnout etc. There's a YT video from a super smart lady based in NY who's managing teams and explains this to great detail, but I can't find it right now unfortunately (thanks for the algorithm update, Google). Anyway, point is: get out and find better work.
You buck the hell up and stop sounding like some teenager who has just entered the workforce, you stop spending time making up fake narratives in your head about what people might think about you ('lowly coder'), you stop painting individual humans with one big brush based on their job titles, you stop doing the same thing each time and wondering why you get the same results regarding credit and communicating your ideas/value, you understand that it's a job and in most cases there will always be someone telling you want to do, you accept that large companies with more money involves tradeoffs and you either accept them or you don't, you stop looking for 'glory' at work.
I was in a similar spot as well, "sucked it up" for way too long until I started interviewing for new jobs and realized that there were many, better suited jobs (better fit) for me out there. (Salary upgrades too)
There are many places that are more "flat structures", where it's encouraged to take decisions as a group. No one is an official "lead/architect/decision maker": we're all happy to bounce ideas around and ask to the ones with more experience in the revelant areas for advice.
When interviewing, you can ask questions around this specific issue as well to find the right places.
Where I work right now, most devs share the same feelings as you towards "architect" roles.
Software is a craft, not an exact science.
I suggest you just accept it and try to get good at playing this game. For example, see if you can get the "product managers" and "solutions architects" to try to do as much of the administrative nonsense, JIRAs, "sprints", release / change approval, etc as you can.
> I feel like I could have come up with a much better approach, and ESPECIALLY if the person seems to be half my experience or age.
Ok, so why don't you do that then? Write up your better approach, give it to the "solution architect" or "product manager", and let them copy and paste it and claim it as their own. Don't worry about the credit, the supposed job roles, just focus only on the outcomes. If it is good, they will come back to you, give you better projects, and you will get your credit later.
> they basically made me do all the work
That's the problem - they are better at getting you to do the boring stuff than you are at getting them to do it.
Start playing the game, get better projects, get promoted, work your way up, etc.
People often recommend meditation because it's a quick, dumb fix for this. Sit still. Observe your emotions. Let them go. Eventually you see these emotions boiling up, but they don't control you. As time goes on, you get into the root of these emotions and pull them out.
If meditation is hard, therapy is similar and more precise, where someone else goes in and debugs you for a price. It's more time-effective, but you still have to put in the time to release the negative emotions.
There are reasons you feel this way, but telling yourself that it's irrational doesn't stop them. It's also quite common for more senior devs who have gone through the death marches and such.
Stop giving a shit.
Care about the job and not the project or the actual work. You're just there to trade your time for money. If they want to waste they time they paid you for, that's on them.
You could see if the product/architect folks would let you tag along to some of these discussions as career development and so you can get a deeper understanding of what you're working on. It sounds like you dislike working in larger organizations where you feel more like a cog and would rather work in a much smaller organization where you have multiple roles. You'll need to think about if those smaller companies/startups can match your financial and lifestyle needs (I assume you spend time with your kids and aren't going to "no-life" a job). I came from an organization numbering in thousands of people to one where the entire size of the company is like 500 and about 100 engineers, totally fits what I want, much less BigCompany bullshit. Sounds like you need to find an organization where you can wear multiple hats and have some decision making capability, another thing to explore might be managing a team - multiple hats, some decision making on solutions, lot more involvement with product/architect folks.
It's easier to do this transition within the company. Just show enough leadership and big picture qualities, signal that you want to move into that direction. Of course, depends on the actual political configuration of your team, your manager etc. If you're doing all the work for them, they might just want to keep you in your place. So, in practice, you might say that, if things won't change within the next year, you'll start looking for opportunities elsewhere.
Sounds like you want the role you had at the smaller company. At a larger company you'll typically either be a product person and talk to the customer, or develop the software, rarely both. Not all of them have solution architects, in which case you should be given the high-level 'what' problems to solve, and design/build it out filling in the 'how' (with the caveat that this can again be split into UX and backend). I have yet to see true fullstack development work well at a large company.
This will let you know if you actually want to do that role or not. In my experience there are a lot of "architects" and "product managers" out there that have no idea what they are doing and are using cargo cult practices to fake it until they make it. Some make it and some don't.
Let go of your anger over people taking credit for your work. It happens a lot, use the experience you gained in doing the work for find a new job where people will appreciate what you do for the company or product. The people who don't know what they are doing and steal credit will soon be discovered, or not, but you will not be there to see it and may never know.
What can you do? At a large level, nothing. You're not in a role where you can make massive changes in a medium to large sized company, let alone the tech industry in general.
However, you are in charge of yourself and you do have some ability to help your family. So focus on that. One of the most helpful statements I've ever been told is: "Where people have abdicated responsibility, there lies opportunity". Another way to look at it is to go "look" or "research" the areas where others are not paying attention for [insert reasons here].
It sounds like you are coming across people who are not *appropriately* responsible for their positions. Why? Is there an opportunity there? You might have to play the long game.
Another thing I have personally realized which is similar to something you mentioned is that you do have the power to do your own thing, even though the risk might be high. I am working full time (I love my job) but am taking time to explore things I can build on my own as a backup in areas that the rest of the tech community seems to be paying little to no attention to _or_ they even say is impossible. There are so many opportunities to push the envelope and you can leverage the fact that other developers are too lazy to do the same to work harder and smarter.
This was a really low thought wall of text / brain dump. I apologize. I hope there's a nugget of practical value somewhere, haha.
Some people love big companies. Some people hate it. There's no shame in either position.
Solution architects get credit because they have responsibility and ownership of the solution being delivered. They also design their solutions with a number of constraints. So the solution might not be the best from your point of view, but it is the solution that will deliver business value in the set amount of time for the set amount of money with the set development team in place.
If you approach work as a zero sum game that you’re participating in against your co-workers then you’ll be deeply unhappy wherever you go, and you’ll be a toxic force in the workplace. Work is collaborative, work has a purpose, work is about contributing to the greater good, work is more than the sum of its parts, work is about creating value.
There’s no shame in being someone who doesn’t work well with others, and you’re under no obligation to change, but it’s your responsibility to find an environment where you’re either a positive or at worst, a neutral force. Choosing to work in jobs that make you deeply unhappy is irresponsible and unfair on those around you. If you find working with product managers to be a miserable experience filled with frustration and resentment, then the responsible thing to do is to remove yourself from that situation. Find a job within a company that uses a structure that’s a better fit for you, don’t drag people down.
I won’t preach to you about how important collaboration is, or how much you’re missing out on by operating with this toxic attitude, but I will say that the problems you’re facing have nothing to do with software engineering or product management, they’re human problems.
Running your own software consultancy can be an amazing and rewarding experience that presents new opportunities for growth and new intellectually-stimulating challenges, it’s an experience you may love, but it’s absolutely crucial to understand that human interaction scales with responsibility, and running your own company (even with just yourself) has a lot of responsibility.
I think your final paragraph shows that deep down you know that you’re the cause of these challenges at work. Maybe the problem isn’t work related at all, maybe the frustration at work is a symptom of the real problem, like being unhappy in yourself, maybe the solution is actually therapy or maybe you’re burned out and need a break.
Ultimately, as software engineers, we are very privileged to earn great money and have far more respect / autonomy / trust than most others in the workplace, and so the ball is in your court. If you think your co-workers are the problem, quit. Don’t waste your life stewing in misery, you’re better than that.
I end up eventually absolutely hating being told
what to do or how to build something
Yeah, that's what the MONEY is for
Firstly it sounds like you're arrogant, and believe your solution's are superior, which may not be true. Secondly if your solution was actually better, then why didn't the team consider it? A good workplace would value your idea, regardless of your title.
> and please don't worry about offending me, if there's some cold hard truth I need to hear it's OK, just let me have it.
I would say you need to be more humble, don't think your ideas are "a better approach" until you've proven them to be.
But also join a company that values each individual's contributions, rather than passing orders down.
Lastly don't "hate" anyone, reserve that space in your head for more constructive things
If not, then I think you need a shift in perspective. You need to stop thinking that you're better than everyone just because you have more experiences.
If you feel it's a terrible way of doing something discuss it with the team. Discuss why you think it's so. You might realized that you don't have the full context of the things that they have to solve or deal with.
If you can come up with something better then propose the solution in a visible way (team instead of individual). I'm sure they will appreciate it. Over time your coworkers will respect you more and more.
Maybe you can look into being a mentor to your juniors as well. With your years of experiences I'm sure you have a lot knowledge to share. This will also builds your reputation among your coworkers.
Not totally. Realize money doesn't come from sound technical design; it comes from paying customers. Regardless of "this will hurt us in the long run," the PM emphasis on "what have you done for me lately" should win.
That is, take it out on them passive aggressively, or treat it as performance art
I will tell you the story of a programmer I worked with who was in his own world and never came out. No one ever knew what he was really ever working on. He was given a bunch of tasks to do and he'd do them and always be busy. He never wanted anyone to talk to him, not even the big bosses. One day, he was so far gone, even the bosses had no idea what he was doing, because he stopped attending meetings with everyone else. He figured he'd knew it all and he was doing what he thought he should be doing. Unfortunately, after a year of product deliveries, they started hiring a few other programmers and taking the program in a different path. They eventually fired him because they just didn't know how to get him out of his own world anymore.
So becareful: you may not know everything. But you're still a part of the corporate world, and this is a world where I've been for many years as well. It's not your game. It never will be. It's not your rules. It's their rules that you must play by even if it means you have to shut up and just do your job because that is what they expect. Until you have your own company, do what you must to survive, especially when you have children.
The woman who hired me who worked her way up to the glass ceiling and could not go further: she got there with a combo of her own ideas and stealing everyone else's ideas. She would say she had an "open door policy" and every few months, she'd want everyone to talk to her, and tell them about their ideas, making it seem like we could trust her, and our ideas would go somewhere. I could never figure out why our "ideas" never made it anywhere, until they started surfacing in different but similar ways until one day, she must've gotten lazy when she presented my idea in front of everyone. I had told my co-worker about this idea a while ago and I knew she knew.
After the idea was presented, I was expecting her to put credit to my name, but instead she simply asked what everyone thought, and at that point, I got up and walked out. My co-worker, who sympathized with me, knew the idea, also ended up walking out. We couldn't do much because I had no actual proof. And I was in another dilemma: this woman hired me many years ago and saved my job many times. The only thing that made me forgive her in the end before she left the company: she got the manager who was giving me heaps of headaches and trouble fired. So in essence, her debt to me was paid. It was her admission without admission that she knew what she did a few years before that.
The corporate world is filled with stories similar to yours and mine... and there's not much we can do about it. I've even gotten a paycut "due to COVID-19" after watching my company lay off 200+ people. Couldn't find it in the budget and cut my pay by $2? I mean, c'mon. Inflation is killing us all. To this day, as we speak, with 10 years at my company, I'm under company review for my performance -- I was expected to complete a job in 4 hours and it took me 5 hours and I'm in trouble for that, so now I have a "two month review" to improve my performance.. or else. Not my first and I'm sure not my last. It only makes me work on my side projects harder, but unfortunately, I've yet to create anything that can replace my salary.
Fortunately, I invested in a property that I paid cash for outright and I'm renting it out... only costs me $2,500 a year to hold on to this property and getting between $1200-$1300/month for rent as my ROI. I'm trying to get another property and have plans to rent out the house I live in while I travel, so hopefully I'll see even better returns and won't have to completely rely the corporate world anymore. Plenty of people go into the corporate world and have amazing experiences, get promotions, raises, restructure the company, etc. And then there is us... the people who do the work for those people while they get all the credit. That shit happens all the time.
Anyways, I know it's frustrating, but you are there to do a job and get paid to do it. Let it motivate you to be better, to seek out ways to make money in different ways, just as mine has done for me over the years. While I do give my all and collect my paycheck for the work I do, it is fun to figure out new ways of having multiple streams of income coming in.