Tags
Jager McConnell on Proprietary Data in the Age of Generative AI
Crunchbase CEO Jager McConnell on the enduring value of proprietary data in the age of AI.
Inspiring Persons: Simon Willison
Exploring how Simon Willison's work and approach to technology and society inspired me to build my own website and continue coding.
Inspiring Persons: Michael Pilarczyk (Part 1)
Introducing Michael Pilarczyk and how his mindset principles, particularly on visualisation and opportunity, have impacted my life.
Yevgeniy Brikman on DevOps from an engineer's perspective.
Yevgeniy Brikman's view on DevOps as a broad set of processes, not just a role, and its practical implications for engineers, based on his book.
Making AI Work: Leadership, Lab, and Crowd
Ethan Mollick discusses the organizational changes and challenges companies face when integrating AI, focusing on leadership, experimentation, and learning.
Simon Willison on Building with LLMs (PyCon 2025)
A link to Simon Willison's PyCon 2025 tutorial materials on building applications with llms
A Recommended Read: Architecture Patterns with Python
An in-depth guide to architectural patterns in Python, focusing on practical examples, TDD, and DDD.
DevOps for Data Science
A review of Alex K Gold's book 'DevOps for Data Science', offering a framework and guidance for data scientists and IT admins.
Notes on The Startup CTO's Handbook by Zach Goldberg
Reflections on Zach Goldberg's handbook, valuable for startup CTOs and anyone in tech leadership or engineering.
Emerging developer patterns for the AI era
Overview of nine patterns for software development with AI agents from a16z.
Inspiring Persons: Will Larson's systems thinking approach to engineering strategy
How Will Larson transforms complex engineering challenges like LLM adoption into structured conversations using simple systems models
Building and deploying LLMs: A course made by practitioners
A comprehensive open course on LLMs taught by industry veterans, covering everything from fine-tuning to deployment architectures
Twelve-factor agents: Building reliable LLM applications
A structured approach to creating production-ready LLM applications inspired by the classic 12 Factor Apps methodology
Inspiring Persons: Chip Huyen – A Structured Approach to Technology and (Career) Growth
An overview of Chip Huyen's work in machine learning systems design and her perspective on personal development, with connections to strategic thinking.
Building a modern resume: from manual tweaks to AI-powered automation
Discover how I transitioned from tedious manual resume updates to an efficient, AI-assisted workflow using Reactive-Resume and a custom JSON-to-Markdown converter.
Python Developer Tooling Handbook
Comprehensive guide to Python development tools and best practices
Decision-making pitfalls for leaders from Chelsea Troy
Chelsea Troy's insights on common decision-making traps in technical leadership.
Avoiding and reducing technical debt
Exploring Chelsea Troy's insights on managing maintenance load in software projects.
Building a PDF to markdown converter with vibe-coding
How I built PDF and Markdown conversion tools using Claude Sonnet 4 and prompt engineering best practices
Actionable strategy: implementing an ML platform in an energy business
A practical guide to applying Will Larson's strategy framework for selecting and deploying a machine learning platform, addressing common organisational challenges.
Insights on building MLOps systems
Reflections on Mehmet Burak Sayıcı's experiences building MLOps systems over four years
Navigating the Corporate Maze
Reflecting on an article about driving change in large, bureaucratic organisations, focusing on stakeholder management, role clarity, and aligning with company rhythm.
Choosing the right data architecture
Exploring Data Warehouse, Data Lake, Data Lakehouse, and Data Mesh architectures from a data engineer's perspective.
Why learning systems thinking is essential in tech
Diana Montalion discusses how systems thinking helps align stakeholders and improve technical outcomes through better modeling and collaboration.
Moving beyond point-by-point arguments
Sean Goedecke's article on why point-by-point arguments are harmful offers a better approach, aligning well with systems engineering principles.
Agents: Programming with feedback-driven LLMs
How LLM agents become dramatically more capable when given tools to interact with their environment.
Understanding MCP: A New Standard for AI Integration
Exploring Anthropic's Model Context Protocol and its potential to transform how AI interacts with software tools.
Smart People Don't Chase Goals - They Create Limits
Exploring how setting boundaries and constraints can be more effective than traditional goal-setting, especially in complex environments like software development.
A clear framework for the build vs. buy decision
A reflection on a simple yet powerful rule for deciding when to build software versus buying it, inspired by an article from Entropic Thoughts.
A practical toolkit for technology strategy
Moving from high-level maps to ground-level execution by combining Wardley Maps, Pace Layering, and structured strategy frameworks.
Security risks in LLM agents: Simon Willison’s insights
A summary of Simon Willison’s recent posts on security risks in LLM agents, including the lethal trifecta, design patterns, and real-world vulnerabilities.
The small habits that define great managers
A great article from First Round Review on the small, consistent actions that separate high-impact managers from the rest.
Not BYOD, but BYOS: Learning by building
A fantastic collection of guides for learning technology by building it from scratch, and a reflection on why this method is so effective.
How extraversion shapes remote communication
A look at recent research showing how introverts and extraverts have different communication needs in a remote workplace, and how leaders can adapt.
Beyond the vibe: structuring AI-assisted development
Discover how to move from chaotic 'vibe coding' to a structured workflow by applying advanced techniques for steering AI collaboration tools like Claude, Cline, and Cursor.
Finding leverage in the middle: Thoughts on domain engineering
A look at Jack Danger's concept of Domain Engineering and why this often-neglected middle layer is crucial for long-term strategy and scalability.
Using an LLM as a personal tutor for my systems engineering course
A detailed look at my workflow for using a custom-prompted LLM to create effective study materials for a university course.
Are you the best Chief Data Officer?
A quick and fun game to test your skills as a Chief Data Officer, balancing data quality, reputation, and profit.
What a coffee shop can teach you about system design
A summary of a great article by Raul Junco that uses a coffee shop to explain complex system design principles in a simple way.
Shape your work, influence strategy
A practical method for teams to shape their work, influence strategy, and bridge the gap between high-level vision and daily execution.
The last hurrah of human coding
A reflection on Alex MacCaw's concept of 'vibe coding' for senior engineers and how it aligns with the need for structured, architect-led AI collaboration.
The value of the expert generalist
A reflection on a Thoughtworks article about why combining broad skills with deep expertise is crucial for modern technologists.
Assessing new technology with Readiness Levels
A practical look at using Technology Readiness Levels (TRLs) and Commercial Readiness Levels (CRLs) to assess new technologies and decide where to invest effort.
A practical take on prioritisation
A summary of Jason Cohen's framework for identifying high-impact tasks and managing the consequences of intense focus.
Reflecting on AI's real impact on engineering leadership
A look at the 2025 LeadDev report on AI in engineering, and why a clear roadmap is more important than ever for successful adoption.
From theory to practice: How organisations are adopting AI
A look at a Stack Overflow article showing real-world examples of AI implementation at companies like Cloudflare, GitHub, and Abnormal AI.
From notebooks to production systems
A comprehensive overview of moving data science projects from exploration in notebooks to robust, production-ready systems using open-source tools.
What makes strong engineers strong?
A summary of Sean Goedecke's article on the key traits of effective engineers, focusing on self-belief, pragmatism, speed, and technical ability.
An overview of systems engineering core concepts
A practical summary of the foundational principles of systems engineering, synthesised from the first half of my Coursera course.
Europe's new summer energy challenge: the 'Hitzeflaute'
A look at how summer heatwaves and low wind create new challenges for Europe's power grid, and what we can do about it.
How to use AI without damaging your thinking
Reflections on Ethan Mollick's article about using AI to enhance, not hinder, our thinking, with practical tips for learning and writing.
A practical LLM coding workflow and a reflection on teamwork
A summary of Harper's LLM codegen workflow and how structured rulebooks might solve the 'solo developer' problem he identifies.
From platform engineering to platform democracy
An exploration of the evolution from platform engineering to a more collaborative 'platform democracy', driven by developer needs and efficiency.
The human cost of technical debt
A reflection on how technical debt impacts not just our codebases, but also team morale and confidence.
A simple trick for better dictation with AI
A practical tip from Matt Webb on using a persona to give instructions to an LLM while dictating, making the process cleaner and more efficient.
The state of software engineering with LLMs in 2025
A look at how LLMs are changing software development, inspired by Gergely Orosz's recent article, and my own plans for adopting these new tools.
Frameworks for measuring developer productivity
A look at the DX frameworks for measuring AI and developer productivity, placed in the context of other models like DORA and SPACE.
Has self-service BI finally arrived with AI?
A look at how conversational AI and Model Context Protocol (MCP) could revolutionise business intelligence, with a dose of healthy scepticism.
A deeper dive into systems engineering: from design to disposal
A summary of the core concepts from the second half of my systems engineering course, covering the journey from detailed design to system retirement and management.
Practical lessons from Meta on improving code
Exploring Meta's data-driven and cultural approach to code improvement and how we can apply these lessons to our own projects.
The Pragmatic Engineer 2025 survey
A look at the key findings from The Pragmatic Engineer's 2025 developer tools survey, including some surprising trends in AI, IDEs, and project management tools.
Lessons on building software quickly
A look at Evan Hahn's practical advice for efficient software development, focusing on key takeaways like rough drafts and focused work.
Include your tests in coverage reports
A short post on why, inspired by Ned Batchelder, you should include your test code in your coverage analysis.
Roger Martin on going on the offensive with creative strategy
A reflection on Roger Martin's argument that creative innovation requires an offensive mindset, challenging the business world's reliance on historical data for future predictions.
What makes a principal engineer different from a senior?
A look at Amazon's Principal Engineer role, exploring the key differences in scope, autonomy, and how it compares to senior technical roles in other engineering cultures.
Aligned autonomy: from military strategy to engineering teams
An exploration of how the concept of aligned autonomy in business mirrors the effective military doctrine of mission command.
Networking for people who do not network
A practical guide to networking from Stay SaaSy for those who, like me, are not natural networkers.
People, principles, process, then product
A reflection on Mike Fisher's framework that prioritizes people, principles, and process before focusing on the product itself.
A refreshing, back-to-basics approach to coding with AI
A look at antirez's argument for using LLMs as direct, human-controlled add-ons, avoiding agents and retaining full control over the development process.
The cost of being wrong
A reflection on Jack Vanlightly's article about how the low cost of failure in software should encourage decisive action.
The bitter lesson for organisations
Ethan Mollick's article on 'The Bitter Lesson' suggests that brute-force AI may outperform human-designed processes, but where do humans still hold the advantage?
Women as technology
A reflection on the 'Women as Technology' exhibition, exploring the intersection of gender, stereotypes, and technological development.
Putting the developer at the centre of platform engineering
A look at how the practice of continuous discovery helps build platforms that developers actually want to use.
Experimenting with Kilo Code and the Model Context Protocol
A look at my first experiences with Kilo Code, an open-source alternative to Cursor, and the process of getting the Playwright MCP working.
Leadership co-processing with LLMs
A look at how Large Language Models can be used as a thinking partner for leadership tasks, inspired by an article from James Stanier.
A practical guide to setting company policies
A summary of and commentary on Stay SaaSy's excellent article about the lifecycle of creating, managing, and retiring company policies.
An oral history of how ChatGPT disrupted the field of NLP
A summary of a Quanta Magazine article that documents the shift in Natural Language Processing (NLP) following the rise of LLMs.
A practical framework for trusting your gut
Phil McKinney offers a three-step framework to turn unreliable gut feelings into a systematic and reliable tool for decision-making.
A deeper look at AI's impact through the SPACE framework
A reflection on a study that uses the SPACE framework to measure the real-world impact of AI on developer productivity, satisfaction, and collaboration.
A periodic table for system design
An exploration of Joy Arulraj's 'periodic table' of system design principles, with some reflections on its practical use.
Simon Willison on the lethal trifecta and MCP security
A look at Simon Willison's latest talk on AI security, focusing on his 'lethal trifecta' concept and the risks of the Model Context Protocol (MCP).
Onboarding AI with READMEs and quality gates
A practical approach to structuring project documentation using READMEs for context and automated checks as 'Quality Gates' to improve AI-assisted development.
Beyond keys: The rise of semantic and prefix caching for LLMs
An exploration of how new caching techniques from Redis, OpenAI, and Claude are tackling the expensive problem of repetitive LLM calls.
A practical guide to MLOps with Databricks
A detailed overview and personal take on the excellent MLOps with Databricks course series by Marvelous MLOps.
Understanding the ecosystem of MBSE, SysML, and TOGAF
A practical overview of how Model-Based Systems Engineering (MBSE), SysML, and TOGAF work together to manage complex system development.
Rethinking RAG with visual document analysis
An interesting approach from Morphik that uses images of pages for Retrieval-Augmented Generation, avoiding traditional parsing issues.
Fixing the context window for LLM agents
A look at key strategies for managing context in LLM agents, inspired by an article from dbreunig.com and insights from Cognition AI.
On Simplicity in Software and System Design
A summary of Sean Goedecke's principles on simple design, and a reflection on how they connect to broader concepts in Systems Engineering and TOGAF.
Thinking like a VC when evaluating a startup role
A summary of a framework for evaluating startup job offers with the rigour of a venture capitalist, and a reflection on its use in Europe.
What are the most profitable uses of ChatGPT?
A summary of real-world examples from Reddit showing how people use AI tools to save money, improve their work, and solve personal problems.
A modern toolkit for great Python projects
A summary of Duarte Pompeu's recommended Python development toolkit for 2025, focusing on uv, Ruff, and centralised configuration.
MCP servers: less is more
An analysis of the risks associated with Model Context Protocol (MCP) servers, focusing on token consumption and security vulnerabilities.
GitHub's playbook for an AI-powered workforce
A summary of GitHub's internal playbook for scaling AI adoption, focusing on change management and organisational strategy.
Alberta's new blueprint: Treating data centres as grid actors
An analysis of Alberta's proposed regulations that require large data centres to act as responsible participants in the electrical grid, not just passive consumers.
The GenAI divide report: Scrutiny, hype, and the reality of AI adoption
An analysis of the controversial MIT NANDA report on AI ROI, contrasting its claims with critical perspectives and exploring the real challenges of enterprise AI adoption.
Entering the probabilistic era of software
A look at Gian Segato's essay on the shift from deterministic to probabilistic software development and its implications for business.
Documents: The architect's programming language
An extensive summary of Isaac Lyman's article on how architects use structured documentation to deploy ideas, and my perspective on treating documents like high-quality code.
Do the simplest thing that could possibly work
A reflection on Sean Goedecke's article about the power of simplicity in system design, and how this principle applies beyond just code.
A reading list on developer productivity metrics
A curated reading list by Laura Tacho covering frameworks, benchmarks, and articles on measuring developer productivity and the impact of AI.
On 'Communication is The Job' by Andrew Bosworth
A summary of Andrew Bosworth's key strategies for effective communication in a professional context.
Quantifying the Environmental Impact of Large Language Models
Mistral AI has published a comprehensive lifecycle analysis of its models, setting a potential standard for measuring the environmental impact of artificial intelligence.
How Optimising for Short-Term Metrics Causes Long-Term Harm
An analysis of how optimising for short-term engagement metrics through A/B testing can lead to unintended, long-term harm for users and society.
Building Reliable AI Agents: Notes on Evaluation and Contracts
A concise look at why evaluating AI agents is essential and how the 'contractor' model can improve their reliability in business.
Where's the Shovelware? The AI Coding Claims Conundrum
An analysis of why AI coding tools haven't led to a surge in software production, despite widespread adoption and bold productivity claims.
Frameworks as Mental Handrails for Navigating Complexity
A summary of Mike Fisher's article on frameworks as cognitive tools, with reflections on their application in TOGAF and Systems Engineering.
The Tension Between Legibility and Efficiency in Software Companies
Exploring the concept of legibility and how large organisations often prioritise it over real efficiency, based on an article by Sean Goedecke.
A Structured Methodology for Disciplined AI Software Development
A summary of the 'Disciplined AI Software Development' methodology, which provides a framework for managing AI collaboration in coding projects.
Contrasting Memory Philosophies: Claude's Explicit Tools vs. ChatGPT's Automatic Profiles
A look at the different approaches to memory in Claude and ChatGPT, highlighting the trade-offs between transparency and convenience.
Working with AI Wizards and the Need for Explainability
Ethan Mollick's 'wizard' analogy for AI highlights a growing problem: as models become more powerful, their processes become more opaque, creating a critical need for explainability.
Is AI the Next Microprocessor or the Next Shipping Container?
An analysis of whether AI will create new wealth like the microprocessor or primarily benefit incumbents and customers like shipping containerisation.
A Practical Guide to Coding with LLMs: Dos and Don'ts
A structured approach to using AI coding assistants, moving from contemplative prompting to scalable agentic workflows.
You Should Delete Tests
A summary of André Arko's argument that tests should be deleted when they no longer increase confidence, with a focus on flaky, high-maintenance, or irrelevant tests.
Revisiting Vibe Coding: An Analysis of AWS's Practical Guide
An analysis of the AWS guide on vibe coding, comparing its structured, tool-centric approach with earlier conclusions on agentic workflows and human-led architecture.
From Code Generation to AI-Native: Insights from the Front Lines
An analysis of a panel discussion with Anthropic, Trae, and Replit, connecting their best practices for AI-native development to the evolving role of the software engineer.
Understanding the Five Doors of Influence
A framework from Andi Roberts for influencing others by understanding their preferred communication style, from logic to inspiration.
Timeless Leadership Principles from Jocko Podcast 251
An exploration of foundational leadership principles from General Bruce C. Clarke's 'Guidelines for the Leader and Commander', as discussed on the Jocko Podcast.
Scaling Python Data Science: Lessons from Coiled
A summary of a Talk Python podcast episode discussing the trade-offs of scaling data science workflows, focusing on Coiled's approach to environment replication and productionisation.
On Leading a Room Full of Experts
A summary of Ibrahim Diallo's article on the role of a leader in a team of specialists, focusing on translation, goal-orientation, and context-setting.
Stanford's CS146S: The Modern Software Developer
An overview of Stanford's forward-looking course on AI-assisted software development and its core principles.