Every career step is searching for the next set of collaborators. And, even in a buyer’s market like we face today, it’s a bidirectional affair. The employer and the employee have to choose each other. Granted, I’ve been at this particular job search longer than I’d hoped!
Vibe coding is generating code with an LLM (Claude, ChatGPT, Copilot, etc.) and just going for it. No review, no tests, just prompt/reload/repeat.
Hopefully, you’re only doing this for prototypes! I’m sure some folks are not. Surely, they don’t read this website.
When working this way, I’m tempted to accept every suggestion from the robot “product” collaborator. Yeah, my humble little idea could use a two-pane navigation interface, lazy update semantics, insightful logging, robust error handling, and keyboard shortcuts! Sure, go ahead and try to implement that thousand word spec you just generated in one shot. Without automated feedback. I’ll wait.
This goes about as well a human trying to implement the entire spec in one epic commit. At best, you get a big ball of illegible mud that looks right but doesn’t quite work. At worst, it’s riddled with syntax errors or misused APIs, aka “hallucinations”.
For better or worse, an LLM can slop out as much code as you are willing to pay for, but the compiler/runtime still has the last laugh.
A return to hand-written notes by learning to read & write – Google research on training models to recognize not just text in handwriting, but the actual strokes. So you could color or even edit-in-place the handwritten strokes later on. I hope someone is working on productizing this! A Remarkable/Kindle/Boox/Daylight tablet that recognizes sloppy handwriting and allows tweaking it later would make e-ink displays live up to the name. 🙃
Adjacent: Ink and Switch is publishing more of their programmable ink work lately.
If we play our cards right, the next couple years could be exciting for pen-and-paper sorts of thinkers.
Harper Reed, My LLM codegen workflow atm:
If you have a small or large project that you are procrastinating on, I would recommend giving it a shot. You will be surprised how far you can get in a short amount of time.
My hack to-do list is empty because I built everything. I keep thinking of new things and knocking them out while watching a movie or something.
The workflow includes: prompts for generating product requirements, technical specifications, project plans. It recommended tools for implementing those ideas into new and existing projects. CLI-friendly throughout, no need to change workflows to an AI-infused flavor-of-the-month. And, there are caveats for skeptics. It’s not a “everything is shiny and free from surprising consequences” sort of piece.
As if you haven’t heard it enough lately: it is, earnestly, mind blowing that we can go from a few sentences describing an idea to a working prototype in a few hours of supervising an LLM. Inevitably, we’ll learn about shortcomings, scaling problems, and pitfalls in the coming years. As ever! But, the cost function for software is going to change a lot in the coming years and, if we play our cards right, it will be a fun ride.
Improving Team Morale is not an Objective, Marc Gauthier:
- Morale is a byproduct of everything going on in the company. While improving it shouldn’t be an objective in itself, there are many reasons to pay attention to it.
- Instead of focusing on mood or morale, gather qualitative feedback on specific topics. This is more actionable and precise, and should help you address actual issues and not the resulting low morale that is just a side effect.
Morale is a second order effect of the fundamentals that managers and leadership work on. If the outcomes, process, technology, teams, and people are aligned and thoughtfully cared for, good morale is possible. If one or more are misaligned, morale and motivation can suffer.
Mikkel Malmberg makes macOS apps “for the connoisseurs,” creates lots of little web things, and has a pretty delightful YouTube channel where he shares his creation process. While you’re there, scroll to the very bottom of his webpage for a surprise.
Zed now predicts your next edit with Zeta, our new open model. I wouldn’t guess that new features in a programmer’s editor require such attention to detail in user experience and development of a specialized language model for code edits. Watching the video on how they built it show how deep they went in building this. Seems like it was worthwhile! 👍🏻
I’m delighted that there’s still plenty of room to explore for programmer’s editors. And, we’re not in a monolith corporations vs. open-source world like we have been in years decades past.
Zed is a product (and team) with big potential. It’s not yet right for me, but worth keeping an eye on.
A parable of adventures
Consider two adventurers, one setting off alone and another setting off with fellow explorers. Both in search of greater glory through software development. 🙃
One adventurer closes social media, shifts into Founder mode, and grinds out “wins” to the satisfaction of their benefactors. They move quickly, but sometimes diverge from their fellow explorers. When discarding a day’s work that solves the wrong problem is drama-free, they may have gone further than their fellow explorers.
Another adventurer has learned how endeavors succeed from experience and observation. The adventurer knows they will create something of intangible greatness by influencing a team of explorers. At times, the journey must pause. The team of explorers gathers to consider the map and decide how to proceed. These moments of collaboration and coordination are essential to the journey. The adventurer who only knows how to proceed alone will fall behind the adventurer who can rally a whole expedition crew. Thus, the adventurer does not directly produce the journey, but is essential nonetheless.
Thus, the team of explorers, when pulling together, goes much further than scrappy bands of individualistic explorers often pulling at odds with each other.
Previously, an iron rule of Aretha Franklin: she could sing anything slower and better than anyone else.
Update, a contender has entered the ring: Carole King performs “You Make Me Feel Like A Natural Woman” pretty dang slowly. Which she wrote!
So I have to relax the iron rule here. That’s okay, I have another one.
New iron rule of Aretha Franklin: no one made ‘em sweat like Aretha. In part, because Aretha contractually insisted every room she played have the air conditioning turned off to protect her vocal cords.
About a VH-1 Divas television performance:
As producers laid out the run of show and began rehearsals at the Beacon Theater an electrician called in to work on the air conditioning accidentally flipped a switch and cold air began blowing down on the stage. Now, it was widely known at the time that Ms. Franklin had a clause in her contract that there was to be no AC during her performances and rehearsals as the cold air agitated her vocal chords and prevented her from giving her best performance. It wasn’t a matter of being high-maintenance; it was her professional commitment to giving her audience her best.
Next time you’re watching a live performance, look at how much Aretha, and everyone else in the room, is sweating. It’s not just the stage lights. She’s the queen for a reason!
A field guide to exploring rabbit holes
You’re deep in eldritch code, a product problem, or a cross-functional issue that is affecting your team. Hours have passed, and you feel like you’re only starting to get your bearings with the issue. Finding a solution, let alone considering its consequences, seems further hours away.
You’re down a rabbit hole. You need to explore a very open-ended concern, but you also need to maintain a bias toward action.
Don’t go without a time box or teammate. Set a time limit. Or, ask a colleague to keep you accountable. You want a constraining mechanism to pull you out of the hole if you get lost.
“Rubber duck” the issue before you start. Explain it out loud or write a summary in your notes. You may activate a different part of your brain and talk yourself out of the rabbit hole entirely.
Keep notes. Track every conceptual tunnel you explore. Note the dead-ends and red herrings. Show something for your effort, even if you don’t find what you were looking for.
Tell teammates what the rabbit hole is and why you think it’s necessary. Ideally, you can explain this in a sentence or two at most. Think about how long you think it’s worthwhile to go down that rabbit hole. Don’t spend more than that in the rabbit hole!
When you encounter black boxes, rabbit holes in rabbit holes, note them and keep moving. You’re already distracted by this rabbit hole, don’t get distracted from your distraction! Not all rabbit holes are worth exploring – some lead to deeper problems without payoff.
You never stop growing as a project leader.
Hurry up and flub your first fifty projects; the sooner you learn from stumbling, the better. Get a taste for all the technical and interpersonal ways a thing can go sideways. Grow past trying to use process to block all the ways projects have punched you in the face. Develop your sense for a project that is drifting off the golden path. Experiment with and develop your moves for bringing the project back.
Accept that people will always ask for estimates. Find peace in a way to provide them honestly. Help your team use estimates as planning and research without feeling like they’re setting themselves up for failure.
Most importantly, give your team the freedom to solve meaningful problems instead of grinding through a backlog of tasks and epics.
Perfection often manifests as procrastination. But, we imagine our work with more perfection and grandeur than we could hope to achieve in reality. By definition!
Something—our limited talents, our limited time, our limited control over events, and over the actions of other people—will always render our creation less than perfect. Dispiriting as this might sound at first, it contains a liberating message: if you’re procrastinating on something because you’re worried you won’t do a good enough job, you can relax—because judged by the flawless standards of your imagination, you definitely won’t do a good enough job. So you might as well make a start.
— Oliver Burkeman, Four Thousand Weeks
Better to get a bit done today, no matter how small or imperfect. Over the days and weeks, what’s done will compound. That compounding effort yields a better idea of how to realize what you imagined, and opportunities to reach for the perfection or grandeur originally imagined. 📈
🔊Recently listening, mostly jazz
“Puzzling Evidence”, The Talking Heads. Somehow I’ve just noticed this song. It sounds like if the E-Street Band helped write a Talking Heads song. Which is not a thing I would expect of The Talking Heads.
Get Up With It, Miles Davis – I missed this in my deep dive. It’s real good! Very clanky.
Naked Lunch soundtrack – Howard Shore, Ornate Coleman, London Philharmonic Orchestra. Another fantastic discovery. Jazz/bop film soundtracks - I did not realize this is a sub-genre!
The Birthday Concert, Jaco Pastorious – like the opening of SNL was a whole album. Also, a curious preponderance of steel drum solos. This was an extremely formative album for 16-years old Adam, but I recently revisited it and still love it.
The Great Concerts, Dave Brubeck – another favorite of 16-year old Adam. Most notable: in the liner notes, the drummer noted they took every song way too fast. I think this worked out.
Mercy, Mercy, Mercy, Cannonball Adderley Quintent – “the” soul jazz album. More traditional Joe Zawinful, great contrast to the Weather Report stuff. Could you pull off the name “Cannonball”? I could not. The title track is one of the only songs I taught myself on piano, but I can only play one hand at a time. 🤷♂️
A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software development philosophies. The idea was for us to share our years of experience with our more junior developers.
– qntm, Developer Philosophy
My favorites: “Aim to be 90% done in 50% of the available time”, “It is insufficient for code to be provably correct; it should be obviously, visibly, trivially correct”, “Write code to be testable”.
Make great stuff. Tell people about it.
Don’t sweat the network or medium.
It’s all tinkering at the margins! Serving at the pleasure of the algorithm! The core concern, the thing that really matters, is doing interesting things. You can literally forget about everything beyond that. Interesting can mean whatever you want!
— Aaron Francis, Reputation is portable
I could clip the whole article! 👏🏻
Networks come and go. Platforms come and go. Followers come and go.
Your reputation is portable. You take it with you wherever you go.
This works because the particular networks don’t matter (much) in the end. It’s the people! If a network has reached critical mass, and your people or scene are there, then you don’t need to think much about anything else. How you post to a particular network, or how popular you are on any given network, matters less than participating in the network at all.
What matters is doing and sharing the work. Finding the network with your people or scene. Telling people about your work. Supporting the work of others on the scene.
When you focus on the core, the craft, you’re free from the algorithms. Good tweet flopped? No worries, I’ve got plenty more. Bad tweet succeeded? Awesome, I’ve got plenty more. Keep doing things, keep hitting the publish button. By all means learn from your successes and failures. Adjust your strategy to meet your goals. But remember, you can afford to play the slow game. Building something durable takes a long time.
It’s tough to play the long game lately. In particular, because social networks (and news media) are primed to tell us the short game is everything.
Should my favorite social platform collapse tomorrow, I’ll take my reputation with me.
Granted, these networks can boost us in pretty amazing ways. But, we exist largely outside of them. At the end of the day, we are what we’ve done and who we’ve helped along the way. These networks aren’t built to track our value as people, so don’t sweat it.
Path dependence is one heck of a thing. It’s hard for teams and organizations to do something different if nothing seems imminently broken.
Don’t let “we’ve always done it this way” serve as the entirety of the answer to “why are we doing it this way?”. Even if a wholesale change is unlikely today, reconsidering the forces at play is helpful.
The first step to course correction is discovering or acknowledging that “we did it this way because…” may rely on assumptions that are no longer true.
The categorical flaw behind “ghost engineers” is seeing a house only for its superficial wood, glass, and brick. Anyone who has owned or rented a house for more than a few months knows that specialists who can work on the infrastructure within those walls, especially the timely and reliable ones, are what keeps a house going.
🧠Do the Impactful Things. Avoid the temptation that leads to attempting to do All the Things. (And, the guilt of coming up short.)
Once you stop believing that it might somehow be possible to avoid hard choices about time, it gets easier to make better ones. You begin to grasp that when there’s too much to do, and there always will be, the only route to psychological freedom is to let go of the limit-denying fantasy of getting it all done and instead to focus on doing a few things that count.
— Oliver Burkeman, Four Thousand Weeks
Personally, this goes for writing, but also: reading, watching, playing, coding projects. The only thing I find it easy to approach with an abundance mindset is listening to music. (Sorry, musicians getting the squeeze from technology companies.)
In other words: no productivity system can solve for fear-of-missing-out. Decisions are made, some don’t work out, learning happens, life goes on.
Tinkering is the productivity (output) killer.
2024 was the year I stopped thinking like a super-customizer. I’m not (and maybe wasn’t ever) one who writes scripts and plugins for my own idiomatic note-taking, coding, and website publishing needs.
2025 is the year I accept the tasteful opinions and defaults of applications I use and think/write/publish my own dang thoughts. And maybe do a bit of waste book writing.