1 January 2024 · 996 words
- Being a leader (of sorts)
- Fostering a good culture
- Being open to change
- Resisting bad engineering practices
- Final words
Looking back to be able to look forward! "Those who cannot remember the past are condemned to repeat it" — and boy am I repeating mistakes I promised myself I wouldn't. So many mistakes.
Being a leader (of sorts)
I'm the Tech Lead for Spiideo's frontend teams, which means that I don't just have a responsibility towards my own teams, but also towards everyone else in every other team. The responsibilities in question are:
- Fostering a good culture
- Being open to change
- Resisting bad engineering practices
I'd also like to see myself as someone who contributes positively outside of work too: Writing good bug reports on open source projects and helping out on forums. Being socially progressive. Reaching out and helping out, for small things and large. But I also do a lot of dumb shit.
Fostering a good culture
I've worked at a huge company as a Senior engineer, working my way up from 24-year-old junior engineer-me. I left that company, Sony Mobile, in 2015. We didn't have Slack at that point, but maybe they have something now? The only people I interacted with were the colleagues sitting next to me, and the ones I needed to interact with by e-mail, or in person (by walking over to their desk). I guess tickets in the issue handling system also counted. My social reach was limited, and often in person, where my body language and facial expressions could accompany what I said. More importantly, I didn't have the level of responsibility that I have now.
In 2015, I didn't just quit Sony Mobile, I also joined Spiideo. A small team of five developers sitting in one room doing a lot of coding. It was great, and it was in person. Bad or lewd jokes, making fun of each other in a loving way — there was a lot to look forward to on a Sunday afternoon. But we didn't just joke around in person, work Slack was full of dank jokes.
Eight years later, we're a lot more people! Slack is full of names of people I've never met. Last year I still took opportunities to rip into someone lovingly. Last year I still posted some lewd dank stuff. But I've also been challenged a lot of times on that, and rightly so. Irony and sarcasm in text just isn't very effective. Friendly banter in one small, tightly-knit, group can be bullying in another group. This doesn't just apply to Slack, but to any online social interactions.
It's not possible for me to be just a tech lead. For my own sake, I need to have a heavier non-technical leadership aura as well. So what I will do is to look around me, find positive traits in the people I admire, and make those traits a part of my own vibe. Acquiring positive traits is not enough though. I have to shed behavior that makes other people uncomfortable, sad, angry, or worse. I hope those changes will let me be a steward of positivity.
Being open to change
If the last section was about changing my outward behavior, this one must be the opposite. Just thinking about inner change is scary to me.
This last year I've spent a lot of time being a hard-ass LLM hater. At work. In my socials. Most of my criticism still seem valid to me. LLMs will make the bad parts of the internet even worse: It's already easier to generate convincing spam, it's already easier to generate content for search-engine optimized sites that only want to serve you more ads.
However, it's also undeniable that a new generation of developers, as well as some of the more progressive old heads, are finding a lot of success using Copilot as well as local models. I have a young colleague that said that programming was boring before LLMs, but now he's inspired. I have no reason to challenge that. I am worried that the hard fought lessons that made me the programmer I am today are necessary to improve. But I hope that they are not.
How far will coding assistant LLMs take us? What areas are truly fit for LLM applications, and which are unfit? (I had a chat with Simon Willison on Mastodon, where I asked a variant of this question.)
I need to be more open to change, but I need to do it without losing sight of my ideals. LLM technology is particularly easy to dislike by way of its potentially transformative effects on society. It's not "just" a new piece of technology that will disrupt businesses, take jobs, and probably create new jobs. Bad people have been given a superpower overnight.
Resisting bad engineering practices
There may be tension between fostering good culture, being open to change, and resisting bad engineering practices. Tension seems endemic to engineering, but it is necessary to help the teams resist bad engineering practices in the face of it. Engineering practices are their own social organism inside an organisation. Senior engineers that engage in positive social practices can still enable bad engineering practices, and vice versa. Linus Torvalds is an example of someone that has excellent technical skills, but is known to have had abysmal social approaches to get the engineering right. Steve Jobs is someone that built an amazing legacy in tech, but was terrible socially.
Being an enabler for good engineering practices is something I've been trying to do for a long time. Doing even more, helping the other tech leads, and all the developers in all the teams is what I'm looking to achieve next.
Final words
I don't want my place of work to have any Torvalds or Jobs types. I certainly don't want to be seen as one. Not even a carbon copy. Not even "just a bad coworker", and definitely not a bully. I hope that someone can find that inspiring.