The time right now is 11:11PM. Auspicious? Maybe. The flight i'm on, on the way back from Pune to Bangalore, doesn't really care all that much.
I'm writing this because I've been told by my friends that I should write about my experiences at a national-level conference.
Along those lines - it's been said that writing just shows you how sloppy your thinking really is, and boy, am I seeing.
I want to answer two questions with this writeup.
- Why should I attend Conferences?
- How was my GopherCon India 2023 experience?
As I write these down I realize that I'm probably going to answer them the other way around. Ha, gotcha.
Stream-of-consciousness begins
gophercon was a good conference. I saw a lot of systems engineers and backend devs, and this reminded me that there are still people interested in what originally makes computer science interesting, which is doing hard things and doing them fast, and at scale. Systems is still alive and kicking.
I've had multiple conversations with people over the past few days who work on really large systems (Multiple Million Transactions Per Day). The experience of peeling back the black box around our favorite abstractions and finding out that this is something still understandable seems to be a universally enjoyed activity - There are still people out here writing databases, building distributed systems, making large-scale concurrency happen, creating magic at the intersection of computer science and engineering.
There was a panel discussion on the role of generative AI in building future systems. The consensus seemed to be that while GenAI is a good accelerant of developer productivity, knowing the basics is absolutely essential so you can spend less time fixing what terrible code the AI Generates by knowing how to verify that it's correct.
Here's my take - sure, GenAI tools do help developers write code faster, but there's still a strong case to be made for knowing how to do things yourself. I pull from Freeman Dyson's essay, science as a craft industry - while software development is an industry that still sees rapid change, it's still a creative industry.
IMO There is a value in
- knowing how to do things yourself, and in
- occasionally doing them yourself
Abstraction enables an execution democratization, but it doesn't always enable a knowledge democratization. Abstractions are encouraged for the former without always being cognizant about the drawbacks of the latter.
Like - since when did we start shitting on people who wanted to do things from scratch? It's sad that we see them as fools on a fool's errand as opposed to explorers, armed with the compass of the first principles and a burning desire to understand what goes on.
Actually supporting such explorers is a question of just about infinite nuance - budget, product roadmap, tech debt, backlog, deadlines, etc. One might even argue that while
I should be writing about what I'm arguing xD I am the "one might argue" in the context of what I write. I want to take some time to think. We really just stopped thinking. Nobody wants to just think - we're all too distracted by the 500 sources of information on our watches, in our phones, in our spectacles, and hell, sometimes even in our brains. We should all spend some time just thinking.
The previous generation that now occupies the top positions in most companies don't realize that today's generation is fighting to have the headspace to learn new things. We are all too distracted, even to work. Algorithmic Feeds and Social Media have us constantly glued to our phones - I feel like this is a generational disadvantage because if it takes me a flight with no internet to actually write something like this, for the first time in a long time, then we have a problem.
You shouldn't have to cut yourself off from the rest of the world to have the headspace to think. It means that constant internet connection puts the world in our heads, leaving us no space for ourselves. We become increasingly less self-reliant, and I worry, less capable of independent thought. It's a muscle that has to be developed, and is slowly starting to atrophy at a generational scale.
It took Newton a barn and a summer to write the Principia Mathematica, and it took Carl Jung an abandoned castle by a river to finally be a serious contender to Freud, and this was pre-internet. They spent time with their thoughts, and actively pursued the act of thinking. If such great minds required this kind of isolation to do their best thinking, and career and life-defining work, I wonder what it'll take for the normal person today, perpetually wired up and connected, to reach that level of engagement with their thoughts.
I would hate to see a world where doing something, the act of creating something, is just an interaction - as today's code-writing LLMs propose. The act of creation is a human endeavor to build into our projects parts of ourselves; Removing that safe space of exploring our own thoughts and heads takes away a lot of what makes the act of creation fun.
To draw parallels to art, it's basically telling a painter that they shouldn't paint, but just describe the painting. It's like saying "brush strokes are a commodity effort, there's nothing special about them". The commoditization of software development only accelerates this.
The same way we don't consider knowing how a painting looks to be a proxy for painting talent, we shouldn't consider knowing how to describe code to be a proxy for engineering or computer science talent.
I believe the joy of painting is that you start off with an idea, an image in your head, a series of neuronal impulses that will itself into existance through you, and playing a part in materializing it, bringing it to life, structuring it and architecting it not despite but because of the mistakes you make along the way. Knowing how to make that whisper of an idea into a painting is what the process of art is really all about; art is not about 'producing paintings'. Software Engineering is not about 'producing code'.
What is a mistake but a moment of clarity on what you really want, and how to get there?