@DevOpsDaysDC is less than 2 weeks away (9/17-18)! Excited to have @botchagalupe as keynote + book signing for "Rebels of Reason" - every attendee gets a free copy! The untold stories of AI's misfits and visionaries who built our tech world. Join us!
https://t.co/y3QUMEYEFi
The @DevOpsDaysDC CFP closes soon -- end of day on Monday, 6/9. I know you have something to share that people would benefit from hearing.
This year's theme: efficiency and productivity.
Reach out to the DC organizers if you want to talk through ideas. We'd love to help.
Introducing the next generation: Claude Opus 4 and Claude Sonnet 4.
Claude Opus 4 is our most powerful model yet, and the world’s best coding model.
Claude Sonnet 4 is a significant upgrade from its predecessor, delivering superior coding and reasoning.
Stop shitting on vibe coding.
Vibe coating is hacking. In the original sense.
The old hackers were not building perfectly engineered systems from the start like corporate engineers.
Hacking is about passion and enthusiasm and exploring curiosity.
It’s about making things work in unexpected ways. It’s about bringing something into the world that did not exist. It’s about finding new uses for something that existed before.
Curiosity and tinkering should be celebrated, not ridiculed.
Of course true engineering is needed. Of course real security is needed.
But if we had to pick a problem that the world has it would be the lack of enough builders, not the lack of enough perfect engineering.
Vibe coding is giving the power of creation to millions of people who have never had it before.
Support it, Don’t stifle it.
It's Monday, and we want you to know you're amazing. Really, you are!
We want you to share your amazingness with us at DevOpsDays DC! Our call for speakers is open and we're waiting for your submission.
https://t.co/lDp4gXjSvp
🌟 KCD Washington DC 2025 – The Event You Can’t Afford to Miss!
Learn from experts, gain hands-on experience & expand your cloud-native network.
📅 Sep 16, 2025 | 📍 Washington, D.C. 🎟️ Register now: 👉 https://t.co/OtERkKTzBO
#KCDDC#Kubernetes#CloudNative#CNCF
Hypothesis: the world's most valuable data is screen captures of outlier competent people going about their work. But very little of this data is recorded, let alone made publicly available.
You should seriously consider recording all work you do, even if just for personal use.
Some of you may have noticed I've been posting a lot about programming with coding assistants lately, and that I've also doing more writing in general (such as summarizing awesome podcasts and talks that I've watched or heard recently).
These are not unrelated.
I've been telling a bunch of folks about how much fun I've had coding a "writer's workbench" that I'm using virtually every day, to help me write things I want to write.
This is made possible by coding assistants, which are helping me:
- build the things I want faster
- be more ambitious about things I can build
- be able to build them alone (as opposed to requiring other people or a team)
- and have so much more fun doing it
- more swings at bat, explore more options
I want to talk about each of these dimensions.
## Build Things Faster
This is most probably the most talked about benefit of coding assistants (e.g., GitHub Copilot, Cursor, and the one I use most, which is Sourcegraph Cody), but probably one of the most superficial benefits. Make no mistake, with coding assistants, I'm able to build things in hours that would have otherwise taken me days.
The first working version of code that generates the video excerpts of my favorite parts of videos/podcasts was written in about 2 hours, in one pair programming session with @steve_yegge. It was a mind-expanding experience of using "chat-oriented programming" — my big lesson was: type less, lean on LLMs more.
(And of course, afterward, I've spent hours and hours improving that code and adding functionality. But without a coding assistant, it would have taken me days... This level of effort was high enough that building it was something for "maybe next month." More on this later.)
I can say with some confidence that 80-90% of the time, coding assistants make coding faster and easier.
(And let’s be honest: 10% of the time, coding assistants and LLMs make things maddeningly slower and more frustrating. Like last Friday when every LLM was telling me that you could put any DOM element into the Slate.js editor DOM. After reading the documentation, I know now that is absolutely false.
...or when I spent hours going around in circles trying to get ffmpeg to put captions and a static image in the center of a video file... These things happen, and woe be to those who always blindly follow what the LLM tells you to do. Madness awaits.)
That notwithstanding, here's my new reality: if I want to do coding, and my coding assistant or LLM isn't available (like on a transoceanic flight), I'll choose not to code... because it's just too difficult without it.
In other words, who wants to write code by hand, like some savage from 2010?
By the way, prototyping an app using Claude Artifacts is still the most amazing thing ever. (e.g., "build me a React app with three columns: editor on left, 3 buttons in the middle, and editor on the right." 4 minutes later, you have a working prototype app. Who could possibly go back to the old way of doing this?)
## Choosing More Ambitious and Impactful Projects
Recall how my first working version of my video excerpt tool took two hours, which before would have taken me days — because of the time required, I had deferred even trying. It was always a "maybe next month."
There could have been many reasons: maybe the perceived benefit wasn’t high enough to warrant the work, or maybe the difficulty made the “juice not worth the squeeze,” or perhaps another opportunity offered a higher, more immediate payoff.
Last month, I learned some amazing terms from labor economics to frame the importance of this from Dr. Joe Davis, Chief Economist of Vanguard ($9.5T assets under management):
- Substitutes: Two types of labor (or labor and technology) are substitutes if one can replace the other without significantly reducing output. For example, skilled workers and automated machinery might be substitutes. When the cost of one falls, the demand for the other may drop, possibly leading to job displacement.
- Complements: Two types of labor (or labor and technology) are complements if they are more productive together. For example, human workers and specialized software often complement each other, enhancing productivity when used in tandem. Higher demand for one usually boosts demand for the other.
(You can watch the entirety of my conversation with Dr. Joe Davis here: https://t.co/e2MHK34KX8. Just register with an email address.)
Returning to the example of my video excerpt creator, because coding assistants are such an effective complement to my own abilities, I was able to do the work I’d otherwise would not have done.
In other words, coding assistants are complements (especially for senior developers), not merely substitutes. They enable the creation of significant value that wouldn’t have been possible otherwise, as many projects would have been too difficult, costly, or time-consuming to undertake without them.
I’ve experienced this many times over the last few weeks as I’ve built out my writer’s workbench tool, of which the video excerpt creator is a part of. For instance:
- swapping out the standard HTML textarea editor with Slate.js React editor component, so I could introduce more editor controls. I've used React component a handful of times, but my lack of experience/knowledge with React, JavaScript and ClojureScript interop, and heck, JavaScript in general, would have guaranteed eventual defeat.
(3-4 years ago, I put a React tree control in an app I wrote, which is still only half-working — but it's working well enough for me to use, but I gave up trying to fix it years ago.)
- Heck, I’m finding that front-end app development is now sufficiently within reach for me. Even as a novice, having learned Tailwind and with the help from coding assistants, I’m building tools for myself that I’m using every day.
There are all tasks that would have been out of reach for me, and yet are things I’m tackling every week. Which brings us to the next important dimension...
## Ability To Build Do Things Yourself
One of the most fantastic things that happened after Steve Yegge wrote his “Death of the Junior Developer” post (https://t.co/e1fmzKO48L) was that Dr. Matt Beane (@mattbeane) reached out to me. He introduced me to his research on the “novices optional” phenomenon, which he has studied for over 15 years.
Dr. Beane described how, for centuries, medical surgery has required multiple people because you need at least three hands to perform the needed work. This made novice surgeons an essential part of the team, which also provided them a way to learn.
However, with the advent of surgical robots, expert surgeons can now complete their surgical procedures alone. To be clear, they still need the anesthesiologist and the other support staff, but they no longer need a novice surgeon to help them.
The result is that most novice surgeons are deprived of the time and experience they need to become proficient. So how do they eventually become senior surgeons?
(Economic reasons reinforce this outcome, too. Novices not only take significantly more time to complete surgeries (time is money), but novices also make more mistakes (not great for anyone)).
What does this have to do with software development? A lot! Coding assistants allow experienced developers to avoid entirely the high costs of coordination, enabling them to build things themselves, just as surgical robots did for surgeons.
In his article, Yegge wrote about how his then Head of AI showed him a multi-class prediction model that he had trained and deployed in a single day with the help from a coding assistant. What is remarkable is that last year, creating this tool would have been a 6-week university senior-level intern project.
This story and Dr. Beane’s work suggests that, across almost every domain, the cost of coordination is so large that when given the opportunity for an expert to do something themselves, they will.
(It just occurred to me this fact is deeply ingrained in the DevOps community: “self-service” is so important because we know that task queues are very dangerous. Too often, assigned tickets will often not be completed in the time and level of quality expected. That’s even if a task requires opening one ticket, let alone opening twenty different tickets with twenty different departments. It is almost always better to enable the person to get what they need on-demand.)
Indeed, this is one of my key learnings working with Dr. Steven Spear over the last four years: “Leaders massively underestimate the difficulty of synchronizing disparate functional specialties toward a common purpose.” (from the preface of “Wiring the Winning Organization.”)
(One last somewhat tangential thought: Yegge’s Head of AI story illustrates coding assistants being a complement for seniors, but a potential substitute for a junior intern.)
## More Fun Doing The Work
I’ve talked about how coding assistants have enabled me to do work faster, do more ambitious and more impactful things, and increase the likelihood of being able to do something entirely on my own (which obviates entirely the cost of coordination).
But there’s another thing: when using coding assistants, the work is more fun.
For this, I’m going to cite my friend and co-conspirator from the State of DevOps Research (or DORA: DevOps Research and Assessment), Dr. Nicole Forsgren (@nicolefv) on the fantastic work she did with her colleagues on the SPACE framework metrics, as published in her ACM Queue article (citation at bottom).
To me, these metrics speak volumes about how much coding assistants changed how I feel about coding — I’ve picked a couple that seem relevant, and I know there are others that are as good, or even better:
(Satisfaction and Well-Being)
- I felt fulfilled while completing the programming task.
- I found myself frustrated while completing the programming task.
- The code I wrote was of high quality.
- I enjoyed completing this task.
(Effectiveness and Flow)
- I was focused on the task during the programming session.
- I was a productive programmer while completing the task.
- I made fast progress despite working with an unfamiliar system.
- I maintained a state of flow during the programming task.
- I completed the repetitive programming activities fast during the task.
(Communication and Collaboration)
- I spent considerable time searching for information or examples during the task.
So, if I were to score myself on the criteria above, it is clear: when I’m working with a coding assistant, the work is more fun, and I’m happier with the quality of what I’ve built. I’m happier!
(I’ve already mentioned that I don’t want to do coding without a coding assistant!)
And for non-solo projects, when developers are happier, there’s ample evidence that they do better work, and you have better retention, and it’s easier to recruit.
Citation: The SPACE of Developer Productivity: https://t.co/ooQExB4Oea
## One More Thing: Number of Options Explored
During the six years I was involved with the DORA State of DevOps research, we focused primarily on the “code committed” to “running successfully in production” portion of the technology value stream — this was where Dev and Ops had to work together to create value for the customer.
This brought in the processes of code integration, testing, and deployment, as well as a bunch of other necessary activities that we explored over the years (e.g., environment creation, test data management, etc.).
All my excitement with coding assistants makes me super excited to explore how it could help with processes of ideation and discovery, research, design, development, and testing. (And while I’m thinking about it, infosec, architecture, and all that, too.)
One of the things that excites me is how coding assistants make ideation and research both easier and faster. The result is that it vastly increases the number of options we can evaluate, which vastly increases the design space we can explore.
I’ve written about the astonishing results of “coding with ChatGPT voice code while walking the dog,” as recommended by Simon Willison.
My opening question was:
“Hello! I’m trying to build a ‘writer's workbench’ in ClojureScript. I want to integrate a text editor that allows you to edit text, but where I can select text and send it to an LLM for tasks like clarifying, extracting facts, or even suggesting rewrites. For example, in non-fiction, it might help rewrite for ‘showing, not telling.’
"Rather than the usual triple-click to select a paragraph and then clicking a button, I’d like to explore options that go beyond the standard text area. Specifically, I’d love to be able to associate buttons directly with sentences or phrases, so instead of dragging to select text, I could just click on a sentence or outline it visually to interact. What are tools or libraries in the React ecosystem that support this kind of interaction?”
Over the next 60 minutes, I asked it increasingly detailed questions, learning about the options, what factors were important to me, I asked it to write code using the three libraries it suggested (even though I couldn’t read it).
- What options are available for integrating buttons or interactive elements within a text editor in the React ecosystem?
- Can you provide simple examples for setting up interactive features in Slate.js, Draft.js, and ProseMirror?
- What does the JSON structure of a simple Slate.js editor look like?
- Could a simpler JSON structure work for a text editor, where formatting is only applied at the paragraph level?
- Let’s think about the ouliner use case: describe how I could move an item up or down, or promote it to a parent level, in a nested vector structure in Clojure?
That was amazing! By the end of the 45 minute walk, I had confidence that I had a promising option to explore using, and I was ready to try writing a trivial Slate.js application. And that conversation averted lots of risk by talking through the various scenarios, and eliminating less promising possibilities.
So what is that value of this? Option theory gives us a fantastic language for describing this! (Thank you ChatGPT.)
Think of the design process like making a series of “real options” in finance. Each option gives you the flexibility to explore a path without committing upfront. Coding assistants function similarly to these options, giving you previews of multiple paths so you can make smarter decisions before investing significant time or resources.
- Reduced Opportunity Cost: Normally, testing multiple solutions requires a lot of time. Coding assistants lower the “price” of exploring each path, so you can evaluate multiple approaches without the usual trade-offs. This is like having the freedom to explore new markets or projects cheaply before committing capital.
- Able to Change Your Mind: With coding assistants, you’re not locked into one approach early on. You can gather insights on a range of possibilities—Slate.js vs. Draft.js vs. ProseMirror. In options theory, this flexibility reduces the risk of sunk costs if a particular approach proves bad.
- Expanded Design Frontier: Coding assistants also expand what you’re able to explore. You can quickly learn new libraries, tools, or frameworks that might have been daunting on your own. This is like gaining access to new, potentially profitable opportunities because exploration costs have dropped.
- Knowledge Gained, Risk Reduced: Exploring multiple options through your assistant is like accumulating information before committing to a decision. In finance, uncertainty drives risk, and more information reduces that risk. Similarly, by “trying” various approaches through the assistant, you reduce the likelihood of costly rework and increase the odds of a high-quality result.
- Portfolio Effect: Exploring different options through coding assistants is like managing a portfolio of real options. Each question you ask helps you gather insights across multiple potential paths. This portfolio approach reduces overall risk by diversifying your design possibilities, improving the quality of the final solution.
In short, coding assistants provide an “option portfolio” for design and development choices. They allow you to sample multiple approaches at low cost, build flexibility into your process, and ultimately make more informed, higher-quality decisions in a way that minimizes risks and maximizes potential value.
## Conclusion
All of these factors are why I’m so excited about using coding assistants!
(Forcing me to post this now — I’ll put this into a blog post “later.”)
Hope you enjoyed! cc @danielrock@jamescham@nathenharvey@idangazit@DynamicWebPaige
Videos of the talks from DevOpsDays DC 2024 in September are now available! Whether you missed the event or want to revisit your favorite talks, these recordings are a great way to learn about all that is #devops from our amazing speakers.
#devopsdays
https://t.co/4wUrRcb5pp
I've had a couple conversations recently that can be summarized like this:
Buzzwords wax and wane. Good practices have a much longer staying power. Sometimes those good practices get repackaged into new terms. Roll with it.
Can you believe it?! Only one week to go until @DevOpsDaysDC 2024 on 9/25-26. I'm so looking forward to the speakers, the learning, and the community. It's not too late to get your ticket to join us! https://t.co/zbQTcVFpGW #devopsdays