Tame product development chaos with YOUR Platform.

2025

๐Ÿ“š Without docs -

โš–๏ธ Code is a liability, not an asset -

โœ‚๏ธ YAGNI -

๐Ÿ›Kernighan's Law -

๐ŸŒ€ Complex systems are hard to predict -

๐Ÿ“Š Simple data formats + powerful tools scale -

๐Ÿ“š Documentation never has to go out of date again -

๐Ÿ“š Keep documentation close to the design/code -

๐Ÿ“ Document "why" not "how" -

๐Ÿ”„ Closed-loop engineering -

๐Ÿšด The power of movement -

๐Ÿ”„ Closed-loop humans -

๐Ÿ”„ Look for closed loops -

๐Ÿ”„ Close the loop with AI -

๐Ÿ’ฐ Ways to reduce your AI costs -

๐Ÿ’ฐ What is the cheapest PDM tool out there? -

๐Ÿ—‚๏ธ Git has an unfortunate name -

๐Ÿ“ Git* solves the problem of managing files -

๐Ÿ“ The file dilemma -

๐Ÿ”„ AI and documentation - close the loop -

๐Ÿค– AI is the new compiler -

โœจ Anyone can write scripts now -

โœ๏ธ Effective Communication (Sketching) -

๐ŸŽจ Effective Communication (Drawing) -

๐Ÿ“น Effective Communication (Video) -

๐Ÿ“ธ Effective Communication (Images) -

โœ๏ธ Effective communication (Written) -

๐Ÿค– How I use Claude Code to help publish this blog -

๐ŸŽง Effective communication (Audio) -

๐Ÿ“ง Top vs bottom posting in email -

๐ŸŽ‰ 200 posts -

๐Ÿ”— Integration, not isolation (part 2) -

๐Ÿ”— Integration, not isolation -

๐Ÿ“ˆ What do we mean by scaling? -

๐Ÿ”„ Open loops -> technical debt -

๐Ÿงฉ Composing is hard, complexity is easy -

๐ŸŽผ Compose software like music -

๐ŸŒฑ๐Ÿ“ˆ Simplicity scales -

๐Ÿ“ Goodhart's law -

๐Ÿ“ˆ Why GUI development tools don't scale -

๐Ÿ”ญ Text based formats and command-line tools are the future -

๐Ÿ”„ Flipping the playbook for AI coding -

๐Ÿง‘โ€๐Ÿ’ป The first step in AI coding -

๐Ÿ‘ฅ Alternatives to meetings -

๐Ÿฅฃ The two ingredients for agility -

โ™ป๏ธ How to iterate quickly on hardware -

๐Ÿค Modern product development is a collaborative endeavor -

โœจ Use the most advanced technology that is comfortable in your product design -

๐Ÿ”„ When to update application dependencies? -

โžก๏ธ Frontload the boring stuff -

๐ŸŒฟ A natural way to get more testing/automation -

๐ŸŒ’๐ŸŒ“๐ŸŒ”The four phases of product development -

โฉ Get on with it ... -

๐Ÿ‘ฅ Who are users? -

โ™ป๏ธ How to define an iteration? -

๐Ÿง‘โ€๐Ÿ’ป How can we increase developer productivity? -

๐Ÿ“ˆ What is the quickest way to store and track data? -

๐ŸŒฑ OSS can decrease or increase your code liability -

๐Ÿค๐Ÿ” Trust, but verify -

๐ŸŒฝ What is the easiest way to avoid silos? -

๐Ÿค– The biggest problem with AI -

๐Ÿค– What is AI good for? -

๐Ÿ“ What is my process for capturing experience? (part 3) -

๐Ÿ“ What is my process for capturing experience? (part 2) -

๐Ÿ“ What is my process for capturing experience? -

๐Ÿง  How to leverage experience? -

๐Ÿ”ญ How to encourage vision? -

๐Ÿง ๐Ÿ”ญ The tension of experience and vision -

๐Ÿ›ฃ๏ธ Two approaches to life -

๐Ÿ† The entire story -

๐Ÿ‘ค It's all about the people -

๐Ÿง ๐Ÿ”ญ Experience and Vision -

๐Ÿ“Š Past performance ... -

โœ”๏ธ Legacy code -

๐Ÿš€ Git driven CD -- you know what got deployed -

๐Ÿ’ธ Technical debt -

๐Ÿ› ๏ธ Another reason to self-host Gitea -

๐Ÿ‘ท The tension between solo and collaborative work -

๐Ÿ•น๏ธ What can we control? -

๐Ÿ˜ฉ Boring, error-prone, repetitive, tedious work -

๐Ÿง‘โ€๐Ÿ’ป Will AI cause coding to disappear? -

โœ… Guarantees -

๐Ÿ”„ The 2nd key to effective process -

๐Ÿ› ๏ธ Git* -- the new standard for workflow -

๐Ÿ› ๏ธ The defining characteristic of a good workflow tool -

๐Ÿ› ๏ธ The critical features of workflow tools -

โœ‰๏ธ Email filters -

๐Ÿ‘ฅ Everybody Works and the impact on meetings -

๐Ÿ‘ฅ Efficient meetings -

๐Ÿ‘ฅ Meetings and human relationships -

๐Ÿ‘ฅ Why meetings? -

โš–๏ธ Horizontal vs Vertical Scaling -

๐Ÿ‘Œ Struggling to scale your IoT system? Simplify your data. -

๐Ÿ”„ The secret to process -

โš™๏ธ Fix systems, not people -

๐Ÿ“ˆ Scaling -

๐ŸŒ… Simple stuff is boring -

๐Ÿ‘Œ The simple/basic things are the most important to get right -

โœ… The problem with software -

๐ŸŒป Downstream, things should be better -

๐Ÿช™ Complexity and Simplicity -- two sides of the same coin -

โฌ†๏ธ The business case for improvement -

โฌ†๏ธ The path of improvement -

โฌ†๏ธ What is improvement? -

๐Ÿ‘ท Make less work for others, part 2 -

๐Ÿ‘ท Do we make more work for others or less? -

๐Ÿ”„ The business model for updates -

๐Ÿ”„ What is the best software release frequency? -

๐Ÿš€ How can Arch Linux get by without releases? -

โš–๏ธ Truth is discovered, not invented -

๐Ÿ”— Connected systems are different -

๐Ÿ›ก๏ธ How to get to secure and reliable -

๐Ÿญ Semi-structured part numbers -

๐Ÿ‘ค Who is our "customer"? -

โš ๏ธ Toward a Theory of Medical Fallibility -

๐Ÿ›ค๏ธ Two paths with experience -

๐Ÿ›ค๏ธ Two paths -

๐Ÿ‘ฅ Your team as the customer -

๐Ÿš€ Why are releases important? -

๐Ÿ“„ Who is a changelog for? -

๐Ÿ‘ฅ Who is the customer in organizational hierarchy? -

๐Ÿ‘ค Confusion about when we are the customer -

๐Ÿ•Š๏ธ Simple -- from whose perspective? -

๐Ÿ•Š๏ธ Simple to maintain vs simple to implement -

๐Ÿค Integrate early -

๐Ÿ•Š๏ธ Simple to use vs simple to implement -

๐Ÿค Handling the small details -

๐Ÿ› ๏ธ Selecting tools -

๐Ÿ› ๏ธ Two classes of tools -

๐Ÿ“ Documentation is part of the process, not an afterthought -

โœจ Demos vs. Products -

๐Ÿงฉ The three legs of YOUR Platform -

๐Ÿ” The importance of small Git commits/pull-requests -

๐ŸŽ† 100 daily emails -

๐Ÿ” The importance of Git Commit/Push often -

๐Ÿ’ญ Thinking, Designing, Developing, Engineering ... -

๐Ÿ”ง envsetup.sh -- a very useful automation technique -

๐Ÿ“ง Effective email is either a pointer or notification -

๐ŸŽ“ The problem with experts -

๐Ÿณ Preparation - lessons from the kitchen -

๐Ÿ˜Š Joy -

๐Ÿชž Platform reflection -

2024

๐Ÿ™ Humility -

๐Ÿ”„ The biggest benefit to frequent updates -

๐Ÿ“… Dates in filenames -

๐Ÿ”„ Lifecycle management in dynamic systems -

๐Ÿงช Abstractions and Platforms -

๐Ÿค Keeping commitments -

๐Ÿ“ Personal vs. collaborative documentation -

๐Ÿ”ง What is your most important tool? -

๐Ÿ“ง Inbox zero -

๐Ÿ† Goals vs. Systems -

๐Ÿ Easy to start vs. easy to finish -

๐ŸŽง Use a headset optimized for calls -

โšก Are your processes proactive or reactive? -

โš–๏ธ Architecture vs. Optimization -

Creativity -

๐Ÿ”— Coupling -

โฐ A platform stuck in time -

๐Ÿงช What is a good abstraction? -

โšก Improve development efficiency, reduce technical debt -

๐ŸŽฏ Rituals and Culture -

๐Ÿ“ˆ Two ways to scale -

๐Ÿ” How to get the little things done? -

๐Ÿ˜Š How can you make your commercial source code customers happy? -

๐Ÿš€ Platforms vs Architecture Astronautics -

๐Ÿ’ช Habits -- a critical ingredient in YOUR Personal Platform -

๐Ÿš€ Advanced technology and small players -

What can kids teach us about platforms? -

๐Ÿ›๏ธ What are the pillars of a good platform? -

๐Ÿ›ฃ๏ธ Kayaks and Platforms -

๐Ÿ’ป What is the purpose of technology? -

โœจ The easiest path to reliability ... -

๐Ÿ” Where do reliability/stability problems typically come from? -

๐Ÿ” Support from the top -

๐ŸŽฏ Doing more with less, rather than less with more -

๐Ÿ†˜ How to ask for help -

๐Ÿ”ง How to keep a product maintainable? -

๐Ÿค What happens when someone else tries to use your work? -

๐Ÿ“Œ Where do you put stuff? -

๐ŸŒฑ When edge nodes grow up -

๐Ÿ”  How do you partition systems? -

๐Ÿท๏ธ How do you consistently name things? -

๐Ÿ”„ How can we be more consistent? -

๐Ÿ”„ Does consistency matter? -

๐ŸŽฒ Isn't it risky to update your dependencies? -

๐Ÿ—๏ธ Platforms are for building systems -

๐Ÿ’ธ The cost of updating dependencies, or not -

๐Ÿ†š What is the difference between YOUR Platform and other platforms? -

๐Ÿ’ช Good enough is not good enough -

โš ๏ธ When things go wrong ... -

๐Ÿš€ Do you own your deployment? -

๐Ÿ”ง What will you improve today? -

What is the role of vision? -

๐Ÿ”ฎ Preparing for the future -

โœ… The Platform Test -

๐Ÿค– What is the role of AI in your platform? -

๐Ÿ”„ What is the first thing you should implement? -

๐Ÿšซ No Golden Machines -

๐Ÿ™‹ How to help yourself? -

๐Ÿ”Ž Seeing patterns -

๐Ÿ—๏ธ What is the best tool for private Git repos? -

๐Ÿถ Lessons from a 1-year old dog -

๐Ÿ” Solving problems or symptoms? -

๐Ÿ™ Github and why does it matter? -

๐Ÿ” Tracking upstream and why does it matter? -

๐Ÿ”ง What makes a good Yocto BSP? -

โฐ The present or the future? -

๐Ÿ‘ฅ Platform != People -

โœ… What is the simplest form of automation? -

๐Ÿ“ˆ How does your product value increase after the initial sale? -

โš ๏ธ Hack-it, ship-it, forget-it ... -

๐Ÿ† What is the #1 purpose of YOUR Platform? -

๐ŸŒฑ Culture -

๐Ÿ—๏ธ Three levels of YOUR Platform -

๐Ÿ‘ฃ What are the first steps? -

๐Ÿ”„ What is YOUR Platform? (v2) -

โ“ But what if ... -

๐Ÿ” You are not Google -

๐Ÿ’ฐ Owning YOUR platform is not more expensive -

โš–๏ธ False vs Real Platform Development -

๐ŸŽ† Do something different -

๐Ÿœ The smaller you are, the more import YOUR Platform is -

๐Ÿ˜จ Control is a scary thing -

๐ŸŽ›๏ธ What is control? -

๐ŸŽฏ Why do we need some level of control? -

๐Ÿ The long game -

โ™พ๏ธ It's about not starting over every time -

๐ŸŒ Complex Systems, Simple Platforms -

๐Ÿ”น Simplicity -

๐Ÿข What is your Platform? -

โœจ The Beauty of Constraints -

๐Ÿ˜ฑ The tragedy of no constraints -

๐Ÿ‘‹ Introduction -