> Cultivate a professional mindset. You are above the company, descending to help them. Do the work required, do honest work, help them achieve their goals, but don’t become mentally trapped.
This is the most important one to me - I do my job for exactly that reason - it is a job. A business transaction where I get a specific amount of money in exchange for putting time and energy towards their goals. It is amazing how much you can accomplish while not letting the BS get to you once you take the attitude of your work being a daily business transaction.
I was afraid that one would sound too arrogant. But, I figured, society frequently implies that management or the CEO are "above" the workers, and everyone seems OK with it. Personally, I want a different mindset, although it's hard to maintain.
It's a great point. The quote I always have in my head at work is from Mr. Wolf in Pulp Fiction. "I'm here to help. If my help isn't appreciated, best of luck, gentlemen." After seeing so many people lose their minds over the "mission" of my previous employer I vowed to never let the company dictate how much I should sacrifice for them ever again.
I'm cracking up at the idea of The Wolf as a professional role model. Though I have to say, with the exception of "pretty please..." it's a pretty good one. WWTWD?
I read it as a partnership to begin with: I am above the company and step down into a role. The CEO is also above the company and steps down into a role. The fact that their role is higher than mine on an org chart doesn't make the company more important than me, nor does it make the CEO more important then me. We're equals as human beings, he just has more authority in a specific narrow context.
Thought precisely the same thing and I think the author's disposition is deeply ethically for this reason. Other convictions expressed in the piece are similarly flawed. For me, many of the views expressed are anathema to how to be a good professional.
Is a sports team unethical when they talk about being the best? Seems pretty unethical to think your better than the other team, right?
No, it's just a thing they tell themselves to hype themselves up and avoid the depressing truth most teams face, "we're far from the best and probably never will be the best, and there's a good chance we're going to lose this game".
Well, in work the depressing truth is "my boss is my boss, I have to do what they says so I can eat". A little chant to remind yourself that work should, ideally, be mutually beneficial and based on mutual respect, and that you're not a slave to the company and its politics is all this is.
Sure, but this is a trap. You’re just trading time for dollars, and you are not growing your personal value.
One thing that distinguishes a professional is the focus of what they work on. If somebody tells you what to do, and it’s not in that narrow range, you are not a professional anymore; you’re a stand-in for a professional, and you’ll get treated poorly.
> Consider doing personal projects early, before work. Give my best self to myself, to my own projects.
This is excellent advice. In the past, I've often tried to do my personal projects after a long 9 hour work day, and it was just so difficult to pull myself together to put the effort, even into projects that I loved and had a passion for. The few times I have tried working in the morning however, have been amazing. I'm full of energy, and able to put my best into the project. I 100% need to remember this advice always.
I definitely agree with this and had the same experience. I sort of stumbled on this accidentally while working on personal projects late after work, sleeping on ideas, and then resuming the mornings before work only to realize I was more way efficient and had better clarity during the mornings.
Eventually I just ended up mostly re-allocating my evenings to recreation and relaxation which I felt had a positive impact on my life balance.
Clearly every lesson is hard won from many years experience.
This is where development employment ends up I think after gaining significant experience.
You start by caring, making mistakes, throwing yourself into it, becoming disappointed, mad, excited, frustrated, overjoyed, deeply engaged, loving the company, less loving the company - believing in the mission.
Over time, you think about and wonder about situations that do not play out well, you formulate strategies to do better on them.
In the end, the passion for the company and its mission gives way to a cooler, calmer, more professional and reliable approach. At this point you're probably a much better and more valuable employee, but inside you no longer really care about what you are doing. You're easier to get along with, more predictable, and likely a very much better developer than when you started.
I'd say the employees who have learned all these lessons are the most valuable, but they're not going to be wildly enthusiastic perhaps. Unless of course the situation demands overt enthusiasm, in which case these employees might show the required enthusiasm, but it's ticking off an internal box "enthusiasm required in this situation".
I personally got to the point that I don't believe in any company mission except my own mission to make my own software - I'll build stuff for some other company, and I won't say out loud what I think about the mission/the product/the management/the strategy, but inside I won't believe.
> inside you no longer really care about what you are doing
IMHO that's okay. Life has given me lots more things to care about, and I can enjoy them more freely because I'm not trying to squeeze a living out of them. Though to be fair I've never worked anywhere that really "sold" me on its mission, and it's actually kind of difficult for me to imagine such a company.
I have a question I always ask when I'm being interviewed: what's your favorite part about working here? The best answer I've gotten is "the work-life balance" and it's been a very good fit for me.
Does not have to be that way. I did feel that way when I was still doing web apps, but I left that ten years ago, and still look back on that decision in fondness.
I am making "things" now. I'm on the software side, but it's tightly integrated with the hardware side of an actual thing, that people can use. For some reason, much of the bullshit in web development just does not apply in that situation. I still care. I had to adjust what exactly I'm working on a few times, but then I still care.
One passage I noticed in the article is that the author contemplates the question "could I make this app just myself", and the answer being along the lines of "yes, but then I'd have to deal with all the marketing and so on". In my case, the answer is a resounding no. The complexity is so high that you absolutely need multiple teams, some that work on pieces essentially distinct from other teams.
Maybe that is a factor? The fact that I can only work on a specific piece of the thing anyway, but can own that to a high degree? Does that make me feel "part of something" myself? I don't know.
The other passage I noticed was "don't rewrite things". That just does not apply to my work at all. Me, my teammates, and other teams have rewritten plenty of stuff. Some of these attempts failed, but for those that did not fail I remember many times where I and others were glad that we did not have to deal with the old code anymore, that had just grown in complexity from now illfitting beginnings.
Rewriting is a regular part of all of our jobs, and without that we had probably become mad by now.
Hardware development is fundamentally different and so is the software that goes along with it. When you have a firmware deadline dictated by a production schedule, it leaves a lot less room for feature and scope creep because there is a final "done"(-ish) state. Any changes to the firmware after the product has shipped are far more expensive and risky than starting a CI/CD build.
With the deadline, there is pressure to push employees as the production deadline approaches. In software where you and all your competitors can push changes to production at any time, that pressure exists 100% of the time - sort of like on a factory floor.
Edit: The other side of it is that hardware production depends on standardization far more than software. Once you have designed a part and a manufacturing process around it, the ROI of designing a new alternative is usually negative compared to improving part of the manufacturing process.
I, <name>, in the presence of these my betters and my equals in my Calling, bind
myself upon my Honor and Cold Iron, that, of the best of my knowledge and power, I
will not henceforward suffer or pass, or be privy to the passing of, Bad Workmanship
or Faulty Material in aught that concerns my works before mankind as an Engineer, or
in my dealing with my own Soul before my Maker.
MY TIME I will not refuse; my Thought I will not grudge; my Care I will not deny
towards the honour, use, stability and perfection of any works to which I may be
called to set my hand.
MY FAIR WAGES for that work I will openly take. My Reputation in my Calling I will
honourably guard; but I will in no way go about to compass or wrest judgement or
gratifiction from any one with whom I may deal. And further, I will early and warily
strive my uttermost against professional jealousy and the belittling of my
working-colleagues in any field of their labour.
FOR MY ASSURED FAILURES and derelictions, I ask pardon beforehand of my betters and
my equals in my Calling here assembled; praying that in the hour of my temptations,
weakness and weariness, the memory of this my Obligation and of the company before
whom it was entered into, may return to me to aid, comfort, and restrain.
I am an Engineer. In my profession I take deep pride. To it I owe solemn obligations.
As an Engineer, I pledge to practice integrity and fair dealing, tolerance and respect; and to uphold devotion to the standards and the dignity of my profession, conscious always that my skill carries with it the obligation to serve humanity by making the best use of the Earth's precious wealth.
As an Engineer, I shall participate in none but honest enterprises. When needed, my skill and knowledge shall be given without reservation for the public good. In the performance of duty and in fidelity to my profession, I shall give my utmost.
These kind of posts always make me think how crappy being a just a coder is and how unsatisfying for many the career actually is. After five or ten years it’s probably downhill and you will have more and more trouble getting new gigs.
Someone earlier wrote they are a “Wolf” but more likely they are the code monkey. That’s usually the gist of the problem, software coders end up being a tool that gets used by the people that actually do the thinking in the organization. If this is you I suggest trying to find a position where you are also the user of your code. To continue with the animal analogy you eat your own dog food.
This, I’ve found is the most satisfying experience one can have writing code. For example, if you own a Tesla, get a job writing code or developing hardware for an electric car startup. Or if you are in finance get a job working on a crypto exchange so you can trade on the code you wrote. If you do your own taxes get a job at Intuit. Etc.
Then maybe you won’t feel so disconnected from the work you do and it will become more satisfying.
It’s better to give full effort half the day and then be done.
I'm curious to hear thoughts from others on their personal definition of 'done' for a given 'day'. I've felt 'done' plenty of times, but dared not stray too far into enjoying it because I usually (almost always) get pinged for something.
Honestly, I feel mentally done after sitting on calls for 5hrs in the morning. By the time I get to the afternoon, any energy I would have had for coding or research is gone. I'll typically pickup a small bug to fix or work on something brainless, and call it a day.
Agree though, someone always pings for something, so that is what I'll do for remainder of day.
The meetings in the morning are a really killer though - offshore team + 2 daily stand-ups + scrum of scrums, it's got me drained and looking for another gig.
Great crede though. Lots of good nuggets that made me reflect. Reminded me a tiny bit of Naval.
The meetings in the morning are a really killer though - offshore team + 2 daily stand-ups + scrum of scrums, it's got me drained and looking for another gig.
I empathize. A prior job had me hopping from call to call from 7 to 1 during the pandemic, then I'd spend a couple of hours helping my team triage, putting out project fires, babysitting slack, barely finding time to do any actual engineering because I was an EM that was also expected to IC tickets (something I asked about in the interview and had such a different experience than the one I was informed of that it feels now like a complete lie). I was ending days with throbbing headaches. Thankfully that chapter is closed.
That said, I don't know that I necessarily agree with EVERYTHING of this creed, but it's got me wondering if its beyond time I wrote one of my own. For that I tip a hat to the author.
> Don’t half-work just to put in the hours. It’s better to give full effort half the day and then be done. Cultivating an ass-in-seat mentality is harmful to myself. When needed, give full effort all day, exceed expectations and demand compensation.
Unfortunately, for salaried employees, early delivery is usually rewarded with more work, often with no compensation.
I kind of agree here but also feel like it could be isolating. Part of forming meaningful relationships that make you more successful is sharing some intimate things. It’s a double-edged sword of course, you can ultimately regret some things you’ve shared or said. That being said, I think it’s ultimately a net positive because good relationships allow you to be more effective in the workplace (eg people may be more willing to listen to the problems you surface of solutions you propose).
I really like how most of them answer a common trope that I tend to see in the industry. For example:
> Appreciate marketing. It seems like bullshit, but it’s bullshit I don’t want to have to do. I’m glad someone else is doing it, I’m sincerely grateful for their efforts.
or:
> User interface matters.
That's a good basis to compare my current attitude too.
There are some good points in there, especially "none are above me". Not just at work, but in all aspects of life, treat others with respect as equals. It doesn't matter if it's the janitor or a CEO or the homeless guy selling newspapers in front of the grocery store. Try to at least meet everyone at eye level, understand them and empathize with their situation and motivations.
As for the workplace, be loyal to people, never to a company. The company will kick you out at their unfeeling convenience, but people can and will respect you and support you.
In my experiences, this all coincide flawlessly with how the "game" is played. On top of that, it embodies the gervais principle. Always talk positive, don't be afraid to give others credit and be viewed as a team player, quit thinking just about yourself. All of which aren't specifically because someone wants to do that thing like a dumb office game, but because it's a litmus test for others to view you. The better you get at gaming that system, the happier people are to work with you and say good things about you.
In my experience as well, I've had better relationships with coworkers when I half-assed stuff with a positive attitude than I did when I was just a workaholic. Nobody likes do-gooder brown nosing workers. Nobody. Everybody despises you because you make them all look bad. Making friends and getting along is worth far more than being able to do the job day 1. Every supervisor wants less work, especially with people. So give it to them.
When people talk of playing a “game” in regard to any social obligation - especially when they admit that the playing of the game is largely indistinguishable from earnest ethical behavior - they are telling on themselves, not their environment. They are saying they view their obligations and the attitude of their interlocutors as artifice and sincerity as idiocy. They expect constant, low-level deception from their peers, over-generalizing past negative experience. If a critical mass of participants adopt this attitude, the earnest among them are turned out and the imagined hostile environment becomes real.
I mean I hate to break it to you, but there is an undercurrent of mentality among everyone that is: people will sell you out if it means their job is on the line. No amount of friendship, interaction, or skill level of yours will come into play. When it's either them or you, they side with themselves (or the majority) every time.
I stopped playing being the good employee and just started viewing everything as a means to an end. Talking? Figure out what makes them tick. Milk everything for what its worth. Engage positively out of purely Machiavellian instinct. You shouldn't do good because it's good, you should do good because you believe there is a reward somewhere. Is it evil? Well it could be considered that way, but when you work with a varying degree of people who have different dark triad traits, you need to evaluate how much of it on your end you're willing to engage with in order to get ahead. In my life, I've found that if you don't do this, people will notice and walk all over you.
An honest, rational, and intelligent way to approach our working lives and it runs counter to much of the advice you'd get elsewhere.
I think it's possible to be disillusioned with work and yet still do a good job and find satisfaction in it. Maybe it's just a matter of finding the proper distance between you and your work.
I came back to the office this week - I was very much dreading it. The long drive, the in-person BS, etc. While it’s not been as bad as I may have thought, your words here have been a worthwhile lens to view the return and why I continue to enjoy this particular job.
> you can’t become worse off than when you started.
Well, having experienced ageism in software engineering the last three plus years I entirely guarantee you this point #1 is totally untrue. I am at my best, at leadership, management, architecture, security, compliance, SRE, testing... And my salary is worse than 12 years ago (and way worse than a few years ago) and my workload way higher.
Found many of the points helpful. Does anyone know what "Don’t rewrite. Go to the problems." would mean? There wasn't a way to contact the author. Because I think rewriting is essential in a lot of cases.
I've never seen a big rewrite succeed. I've seen rewrites used as an escape from facing the hard problems of an existing system, and I'm as guilty of that as anyone. This point is a reminder to myself to address the problems of the existing system rather than avoid them with a rewrite.
"Face the problems" might have been clearer, but this point is inspired by a time where, in hindsight, I should have got up from my desk and physically gone to another building to talk to the people who could fix the problem. I also should have spent more time reading and and changing legacy systems instead of avoiding them. It means, to me, to get close to the people and systems involved with the problems (or who are causing the problems). Sometimes the problems aren't that hard to fix, but to fix them you'd have to learn a legacy system written in another language, or contribute to another team's project, etc, and so I think of it as going to the problem, you just need to be where the problem is.
Thank you, "Face the problems" makes it clear. I think the point of going to the problems and dealing with legacy systems and people to sort it is important enough to be a separate advice itself.
This is the most important one to me - I do my job for exactly that reason - it is a job. A business transaction where I get a specific amount of money in exchange for putting time and energy towards their goals. It is amazing how much you can accomplish while not letting the BS get to you once you take the attitude of your work being a daily business transaction.