Context: I was an early strategic technical hire by a director/manager/CTO 3 times to help execute process changes and lead new initiatives healthcare SaaS companies between 2014-2020 and then started working in strategic cloud consulting since then where I am brought in to get developer, operations and the “business” to be better aligned and/or to lead new initiatives.
I’m currently a “staff software architect” at a 3rd party cloud consulting company.
What not to do:
1. Disrespect current processes. What you call “legacy code” was done for a reason, is generating revenue, solving real world problems, and the reason you have a job
2. Make any suggestions about improving processes before you have been their at least 90 days and understand why the current system is like it is.
3. Suggest rewriting something or introducing new to the company technology until you have worked there 90 days. Especially don’t start doing resume driven development.
What to do:
1. Set up a meeting with sales and ask them to “sale you the value proposition of the product as if you are the customer”. Ask questions as if you were a potential customs and raise objections to the product as if you were customer. Sales is usually very good at answering those questions.
2. Talk to your manager and ask what are their 90 day and 1 year plans for your team and make sure your work is aligned with the goals.
3. Get to know the pecking order. The org chart will not show you who has the most influence in your department.
4. Setup “getting to know you” 1-1’s. What are people working on? What do they want to be working on? What are their biggest pain points? What would they improve if they had a magic wand?
5. Pick up small stories, bugs to get familiar with the development process.
6. Learn about pre-wiring a meeting when you are trying to suggest changes. Do a POC, talk to the person who might have the biggest objection or has the most influence and work collaboratively to address their objectives. Keep doing that for more people on your team. It helps get more people on your side.
ADKAR change management model
Great list - especially the "what not to do". The most self-destructive thing you can do is be the new guy that shows up talking about how everything is shit and needs to be rewritten with your favorite stack. I have seen so many autist senior engineers come in and completely self-sabotage their employment with that move.
This is an amazing response. In particular this.
>> "Disrespect current processes. What you call “legacy code” was done for a reason, is generating revenue, solving real world problems, and the reason you have a job"
I'd summarize and simplify your "What to do" by simply saying: Be curious but not annoying.
We have an extremely background (3x Founder/CTO + A bunch of other things). The largest issue I would find with new hires is simply a lack of curiosity and a desire to "perfect" everything without an appreciation for "why". It comes across as extremely arrogant and ignorant, and even more so when the individual becomes frustrated when they're not given free reign to implement their suggestions.
I'm curious what word was missing from this
> We have an extremely ??? background (3x Founder/CTO + A bunch of other things).
lol...weird brain fart: "similar" was the word i was hunting for
On point 4: keep these work-focused. Don't ask about families, hobbies, "what are you passionate about," what sports they follow, etc. Fine to discuss that if it they volunteer it, but as an developer I always felt put on the spot by those sorts of questions, even if they were meant with friendly intent.
Exactly this. I keep my personal life and work completely separate.
My wife and I travel a lot and we have done the digital nomad thing for a year.
I go out of my way not to talk about that at work because I don’t want people to say I’m “being distracted” or when I actually do have something like doctors appointments for them to think that I’m goofing off during work hours.
I worked from 15 cities the year before last.
That’s partially PTSD from my time at AWS (Professional Services).
Very important to be able to read the room on this one. Some people love to talk about themselves, and are turned off if you do not engage with them. Others are very private and don't want to discuss anything outside of work. A fair number of people are right in the middle.
A good strategy is to listen to other person, read what they want to talk about, and ask follow-up questions in that direction. Is the person only talking about work? Fine, talk about that. Did they mention their favorite team, or offer up an anecdote about their partner? Then follow up on those.
I find this all very difficult. I don't like asking personal questions because it feels like prying. I don't like talking about myself or my family until, like, at least a year goes by. But, everyone is different, and it's important to meet people halfway, not just wherever you are, on the social spectrum.
In general, some spend a large portion of that part of their career cleaning up dysfunctional projects.
i.e. the entrenched incompetence and hype-driven career-butterflies left the firm with a smoldering pile of wishful thinking.
Sometimes, one can slowly migrate to something standard, sustainable, and reliable... Yet if the product is an established code base, it usually means entry level jobs become a glorified Janitor with a digital mop.
Due to the sunk cost fallacy, one usually won't be allowed to fix the core problems even if relatively trivial. =3
> i.e. the entrenched incompetence and hype-driven career-butterflies left the firm with a smoldering pile of wishful thinking.
Luckily I’m at point of my career where I have nothing left to prove and my success metrics that I take to any company is that I can show I am “smart and gets things done”.
https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...
And I can work at a staff (smaller companies) or at least a senior (BigTech) level of “impact”, “scope” and “dealing with ambiguity “.
https://www.levels.fyi/blog/swe-level-framework.html
I spent years railing against “Kubernetes everywhere”. But now it’s my go to for anything that’s even slightly complicated with multiple services. But still keep my databases, cache clusters, etc off of it.
If it’s a monolith, just use GitHub actions or Jenkins. Again something standard
It’s a known standard, it’s cross cloud (for the most part) and it works on prem. You can find people that know it easily and it’s easy to recruit career oriented people who want to know Kubernetes or who already know it.
It’s just like standardizing on React on the front end.