I no longer have a firm mental model of what they can do and how they work, which means each additional feature becomes harder to reason about, eventually leading me to lose the ability to make confident decisions about where to go next.
This is a similar problem to one that I’m dealing with in a large legacy system at work: the people who designed the system are no longer around, and many of the decisions made in the interim have been bottom-up solutions to transient problems, rather than cohesive approaches working with the grain of the application.
I suspect that the advent of LLMs for programming is not going to resolve the issue.
Good Advice covering the basic parts of system design. I think I’m moving from the “coding” part of my career into the “system” part of my career, which means I’m going to have to think about these things more and more.
What is system design? In my view, if software design is how you assemble lines of code, system design is how you assemble services. The primitives of software design are variables, functions, classes, and so on. The primitives of system design are app servers, databases, caches, queues, event buses, proxies, and so on.
A lot of the advice seems to boil down to: measure your application and fix the slow parts in the most predictable way you can. Avoid cleverness. Like I said, Good Advice.
There’s been a bit of a trend recently for some companies to move to 4-day workweeks. This is making a decent amount of noise, but the actual number of companies offering this still seems pretty few and far between. It’s not hard to imagine why CEOs might feel this is risky, considering that many don’t even trust people to work from home.
What I don’t see much are 80% jobs, which are 32 hour jobs, at 80% salary. This should be a low-risk proposition that I think a lot of people in the tech industry would take, if it were an option.
I think this idea works pretty well for software development jobs, which have notoriously inflated salaries and where short bursts of Deep Work (tm) are punctuated by meetings and context switching. I think a lot of devs would take a 20% pay cut for an extra day on the weekend. Apparently many workers in the Netherlands already do!
The main downside from the discussion on Hacker News seems to centre on the extra bandwidth that would come from managing 80% employees: fixed per-employee costs like hardware and HR, extra burden on the recruitment team. One enterprising poster complained that the outcome of this kind of thinking is the hourly commoditisation of jobs—everyone working on hourly salaries—and that this would lead to some catastrophic impact on software developers' quality of life, but:
some software developers, like those who work for themselves, already work like this, contracting to clients on an hourly basis, and
there's a world of difference between someone in the service industry making minimum (or slightly-above-minimum) wage, and someone in tech making their salary-equivalent.
Man, there is some money in tech. Developers command six-figure salaries and tech companies trade in hundreds of millions of dollars annually. Fortunes change, stars rise and fall (but mostly rise). And the brightest of those stars attend conferences.
Conferences are events of opportunity where the future of software development is written and where the scions of industry trade follows on Twitter. Web & design conferences—like UX London, coming up in June—are the events that I aspire to, if I intend to make a change in the world, however small, using only my computer and an enterprising spirit (& I do).
They're also very difficult for regular schlubs like me to attend, because of how expensive they are. UX London costs £1,250 for the 3-day event, which is like 4% of my take-home annual salary!
I'm led to believe that a lot of software developers don't buy their own tickets; instead, their employer pays for their attendance, and the developer returns with some bleeding-edge wisdom to practice during the nine-to-five. And the employers that have this sort of disposable income aren't, usually, SME agencies in the North East (which is probably why headline tech conferences are rarely held in Newcastle). The result is that conferences, from the outside, feel like a bit of a tech elite club, accessible to the masses only through videos posted after the event if the organisers are generous.
But maybe the high prices are totally justified: maybe margins here are razor thin and the value that canny conference attendees can extract from from a room of so many sharp minds is worth all of Smaug's bullion & then some. Maybe I'm just not good at turning my network into opportunity. (Maybe I don't have a network because I've only been to like 3 conferences!)
And at any rate, this whole "conferences are expensive" complaint isn't a universal rule: there are affordable conferences. Like Hey!'s All Day Hey in Leeds at the beginning of May, which was only ~£50 if you got an early bird ticket.
Let me finish by saying that I know that excluding folks isn't the intention here. I know for a fact that UX London is organised by smart, thoughtful people, assembling a diverse and talented pool of speakers, building a more inclusive, robust internet for all of us. I don't mean to single UX London out—they're just the most high-profile conference on my radar at the moment.
Always thinking about effectiveness. Maybe the overriding concern of the past 3-4 years or so. Since getting into tech.
Men in tech seem extremely preoccupied by effectiveness. Extension of the general self-help/productivity schtick that we're all obsessed with. Really fine-tuning our whole selves to squeeze the last drop of experience out of everything that we do. Wringing ourselves dry and then blogging about it for clout.
Blog posts about not taking a day off. Blog posts about forgiving yourself for taking a day off. Blog posts about how taking a day off makes you more effective on the days that you don't take off. Blog posts on recognising burnout; blog posts on not being able to recognise burnout; blog posts about how good I feel now that I'm not burned out anymore.
I lie on the sofa and my ineffectiveness eats me alive, piecemeal, squirming the whole way down.
I'm at my best when I'm up on my feet, or in my office chair, working on a problem. At my best with a tech-related podcast in my ears. At my best when I'm moving forward. Stopping fills me with dread and anxiety. Stopping gnaws at me until I'm all raw and ragged around the edges like a well-loved dog toy. (Except for dogs are lovely and anxiety is decidedly unlovely.)
When I think of how old I am, something drops out in the pit of my stomach and my guts make sounds that the ear wasn't designed to hear. When I think of how old I am and how much of my useable effective lifespan I spent not doing the thing that I spend all of my time doing, now. When I think of how old I am and how much of my useable effective lifespan I spent not turning my time into spendable assets, into things that can be enjoyed and taken pictures of and reminsced about with rosy spectacles. Yuck.
When I think of the things I haven't done; the things I don't do; the things I won't do. The things I might do, if I don't have the discipline. The things I'm doing right now, that I oughtn't be; the things I ought to be doing but can't find the wherewithal to just get up and.
The difficult decisions to make, the hard conversations to have, the things I want people to understand but can't find the words or the phrases to express myself.
When I think of the Twitter posts reading "Good work gets noticed." When I think of the thought leaders writing, "Put in the graft; talent will be recognised." The thought leaders writing, "Never finish the week with nothing." When I feel that I'm firing on all cylinders and no one knows who I am. When, maybe I only have 2 cylinders in the first place, so all the hard graft in the world isn’t going to get me off the line faster than a mid-range Volkswagen. When I think that I just don't have the displacement to generate the engagement.
When I think of the navel-gazey stuff I've written, the self-pity I've felt, re-reading paragraphs I've just written. When I write weird prepositional phrases joined end-to-end with full stops: no intervening, anchoring phrasal roots. When I finish a sentence with the word and. When my navel-gazing folds back in on itself as a meta-commentary on the Navel Gaze. When I don't know what I'm trying to say.
Encouraging
Writing like this is encouraging. On my worse days I feel like I've become some sort of weird human content mill, just trying to churn out usefulness without any real concern for consumption. The couple of blog posts I've done about job listings at big companies (well, bigger than I've ever worked for) don't feel useful to me, except for as an exercise in writing about dry content. I don't think there's much to take from those posts that couldn't be presented in a bulletted list, probably with fewer than or equal to 4 bullets. Maybe that's why open job posting have so many bulletted lists.
But that's the process of learning and growing, isn't it? Doing something awful, and then coming back to it some time later with revulsion, and doing something marginally better, sometime later. That's how I get better at things:
Do the thing that I wish someone else had done for me
Realise that the thing didn't solve the original problem, or it did solve the problem but not it in the way I wanted it to
Repeat
It's worked out pretty well for me so far.
It feels like part of getting better at writing code is talking less and less about code. I'm not sure yet what I'm meant to talk about instead. But I can see the trend. First an engineer talks about functions, and then they talk about programming paradigms, and then they start talking about approaches or something. By the time that engineer is a senior at Stripe, who knows what they talk about?
All to say that things trend upward here. I think the concern is less that things aren't trending upward so much as that they're not trending upward fast enough. Am I going to die before I'm good enough to work at Stripe? Am I going to run out of useable brainpower? Am I going to become stuck in my ways and gradually wind down? Should I be investing more seriously in Go? How do I market myself better? How do I attract an audience to my work?
Certainly not with blog posts like this.
I walked across a moor with Sam
Halfway up the moor we climbed over a stile, and I stopped to relieve myself in a furrow on the other side of the wall. Sam continued on a little ways; a mother sheep and her lambs scurried out of the way. I continued on after her.
A light wind picked up, jostling the trees in a plantation nearby, jostling the tall strawish grasses that grow in boggy moorland. Sheep bleated off in the distance. The wind blew. A far-off tractor groaned through a town down below us somewhere. It was very quiet.
Sam walking through open moorland above Westgate in Weardale.