All blogs / Software / engineering practice
Well-Crafted Software Solutions
We help private and public sector create innovative solutions, improving agility while driving growth and impact, with people and processes in mind.
Software / engineering practiceEngineering management / careersTesting / QA
- Posts
- 760 from 14 Apr 2009 to 26 Oct 2026
- Posting
- monthly (23 in the last year)
- Kind
- company blog
2026 19
- Success Story: how a managed support service cut incident resolution time by 85% for a global SaaS provider
- How to move AI adoption from experimentation to measurable value
- Building Defensibility During the Hold: Lessons from a Private Equity Workshop
- How AI is Changing Tech Teams: Insights from Industry Leaders
- Platform Engineering and AI Adoption: The Release Nobody Noticed
- Codurance Named an OpenAI Select Partner
- Codurance Joins Anthropic’s Claude Partner Network
- AI-Powered Engineering is Changing Fast. Here’s What Engineering Leaders Actually Think
- The 10x Engineering Reality: Beyond the AI Hype to Proven ROI
- Turning AI Potential into Enterprise Value in Private Equity
- The Value Multiplier for CTOs: Navigating the Shift from Technical Delivery to Commercial Impact
- Your Portfolio Companies Have an AI Story. Can They Prove It?
- Case Study: Achieving 50% Faster Legacy Modernisation with AI-Driven Engineering
- Navigating the AI Storm: Growth, Risk & Value Creation in the Deal Economy
- The New Private Equity Playbook: From Diligence to Exit
- Case Study: AI Project Delivers 10x Speed Without Compromising Quality
- Beyond Functionality: Building Durable 'Moats' in the AI Era
- The Great AI Divide: Navigating Risk and Disruption in Private Equity
- Software Craftsmanship in the AI Era
2025 27
- AI-Assisted Coding for Software Modernisation: Lessons from a Manchester Code Retreat
- Scaling Without Breaking: Growing Tech Teams Without Losing Culture
- Codurance Announced as Strategic Partner of TheBusinessDesk.com for 2026
- The First 90 Days - Turning Software Modernisation into a Force Multiplier
- Beyond the Hype: AI’s True Impact on Software Engineering
- Modernising Retail: Driving Innovation Through Digital Transformation
- Preparing for the Exit in Private Equity: Six Key Takeaways from Codurance’s Latest Panel Discussion
- Celebrating 100 Sessions of the Codurance Technical Community of Practice
- Unlocking Value with Data & Software Modernisation
- Rethinking Software Quality and Delivery Productivity: A Composite, Contextual, and Strategic View
- Codurance announces Steve Lydford as UK Managing Director
- Unlocking AI Through Strategic Data Modernisation
- Modernisation in Retail: The Strategic Imperative for Agility, Innovation, and Sustainable Growth
- What Really Happens When Developers Use AI Tools?
- Challenges with an Outdated Tech Stack: Why Modernising Legacy Tech is the Key to Innovating in Retail
- Beyond the Hype: 5 Critical Insights from Our Generative AI Hackathon
- Retail Reimagined: What We Learned at Ecommerce Conference 2025
- From Team Culture to Process Automation: How will AI Reshape Software Development?
- Scale with Care: Maximising Value and Mitigating Risk When Growing Engineering Teams Globally
- The 2025 Playbook for Retail Transformation: Building for Agility, Data, and Customer Experience
- Preparing for Exit: Align Your Technology Investment from the Start
- Unlocking the Power of Data: Why Modern Software Engineering Is the Key to Business Growth
- Software Modernisation to Boost Business Agility
- Tackling the Challenge of Modernising Legacy Systems in Businesses
- Codurance Achieves ISO 27001 Certification: Strengthening Our Commitment to Security
- Technical Due Diligence: Unlocking Value to Deliver Post-Acquisition Success
- How How CTOs Scale Engineering Teams During High-Growth Periods
2024 46
- Harnessing the Power of Data Strategy for AI Success
- Aligning Technical Debt improvements to business improvements
- Opportunities and Challenges for Private Equity-Backed CTOs and Tech Leaders
- How Retailers Can Scale for Peak Shopping Periods
- AI Code Assistants: Beyond Coding
- AI Code Assistants: Final thoughts
- Transforming Ideas into Reality: How Generative AI is Shaping the Future
- Engineering Excellence: Strategies for Building High-Performing Teams
- Technical Due Diligence: Friend or Foe for Acquisitions?
- Technical Due Diligence: A Key to Private Equity Success
- AI Code Assistants: Features Overview
- Codurance's Technical Due Diligence Assessment: A Holistic Approach to Inform M&A Decisions
- Building a Productive Team: themes from a Leeds roundtable discussion
- AI Code Assistants: Overview
- AI: The Game-Changer for Organisations
- Impact of the Developer Experience on businesses
- Navigating the Complexities of Software Modernisation: Insights from Leading CTOs
- Assess Software Quality to Optimise Your Business
- Software Quality Assessment: Data-Driven Decision Making
- Impact of Software Quality on your business growth
- Will GenAI solve code quality issues?
- Signed git commits. The why and the how
- SaaS tools for improving productivity
- Doing Software Modernisation well now will pay dividends down the road
- Leveraging AWS Step functions while optimising large-scale data transformations
- Building a Productive Software Team in the First 90 Days - a 5 Step Guide for CTOs
- Fireside Chat #63: Optimising Developer Productivity
- Intermediate Refactoring katas
- Advanced Katas
- TDD learning path for an intermediate level
- Advanced TDD learning path
- Introductory katas
- Intermediate Object-Oriented Programming (OOP) Katas
- Getting started with TDD
- TDD Antipatterns: Complete series
- DMS configuration for DocumentDB: don't forget about the indexes
- Codurance’s Simon Shaw Announced as Representative of techUK’s Newly-formed Nations and Regions Council
- Rodrigo Nascimento Joins techUK’s Cloud Leadership Committee
- Reframe the Conversation on Women in Tech - 8 steps to drive DEI on International Women’s Day
- 5 Expert Tips for Harnessing AI in Software Development
- Codurance Wins First Place in Gender Diversity Hiring Awards
- Migrating from Amazon Linux to Bottlerocket while using Karpenter
- Nurturing Innovation: The 4 Stages of Psychological Safety
- Software Crafters Manchester: January Recap
- Software Craftsmanship is at the Heart of UK Govcamp Unconference
- Navigating Software Delivery Excellence with SPACE Metrics
2023 81
- Git Rebase: got it!
- How to Improve Frontend Application Performance with Web Workers & TDD
- You’re never “done” with Product Discovery
- Public Sector Technology Roundup: Episode 3
- Developer Experience (DevEx): A Key to Productivity and Satisfaction
- Risking information asymmetry: embedding emerging technologies across the public sector
- Ten years and ten reasons why DDaT Leaders should choose Codurance as a modernisation partner
- Building Resilience: Integrating Terraform into Your AWS Disaster Recovery Plan
- Codurance Celebrates 10 Year Anniversary
- Public Sector Technology Roundup: Episode 2
- AWS OpenSearch: What and Why?
- From Beaches to Breaches: Summer of Cyber and our Tips for Identity Access Management
- Micro Frontends - An Introduction
- Practical React Testing 101
- Public Sector Technology Roundup: Episode 1
- A visitor (pattern) came knocking
- Trunk-Based Development: the ins and outs
- Is AI About to Revolutionise Software Development?
- A Solution to Public Sector Techdebt and Capability Woes?
- From Enterprise to Public Good: Codurance's Partnership with techUK
- Codurance's Commitment to Cybersecurity: Introducing Our Cyber Essentials Certification
- Boosting Team Motivation: Effective Strategies for Success
- Reflections on London Tech Week 2023
- A Great Developer Doesn't Always Make a Great Technical Leader
- Keys to designing your product's UI
- The Importance of Structure in Software
- Migrating AngularJS to Angular with a hybrid application
- Stop starting over: Crafting the art of product development
- Exposing password myths: shattering the stereotype of strong security
- Monolith and Coupling Types
- Software Craftsmanship for public good
- Refactoring Databases: Strategies to minimise risks
- Using Fear to Build Effective Teams Part 3
- Lean UX: Principles & challenges
- Codurance officially launches office in Leeds for businesses
- Codurance is a Gold Sponsor at AWS Summit 2023
- Using Fear to Build Effective Teams Part 2
- Room for Growth: How to create a culture of continuous learning in your Public Sector tech team
- Codurance achieves AWS Lambda Service Delivery Designation
- Modernising the Public Sector: Part two
- The Dark Side of Technical Coaching
- Using Fear to Build Effective Teams Part 1
- Crafting a Cloud Migration and Modernisation Strategy for the Public Sector – download our new e-Book
- Screenkata – Tennis in Python
- Fireside Chat #61: How useful are tech bootcamps?
- Modernising the Public Sector: Part one
- How can we promote collaboration within the team?
- Fireside Chat #60: How do we learn best?
- Common patterns that make TDD harder – download our new e-Book
- Adopting technical coaching in your organisation
- Codurance Expands to Leeds with New Office Space
- Fireside Chat #59: Non-technical skills for tech careers
- Fireside Chat #58: Finding Confidence in your career
- Providing great technical feedback
- Fireside Chat #57: Future-proofing your career - establishing meaningful networks
- Screenkata – Mars Rover in Rust
- Fireside Chat #56: Tech layoffs? What’s the resolution?
- Are you sabotaging your cloud migration business case?
- Book Club at Codurance - Difficult Conversations
- Rubber Ducking
- Screenkata – FizzBuzz in Rust
- Fireside Chat #55: Challenges of team agreements
- It’s Kataday – String Calculator
- Building a Business Case for Cloud Migration
- Fireside Chat #54: Software engineering and craftsmanship - what's the fuss?
- Shaping your team's engineering culture
- It’s Kataday – Shopping Cart
- Helping the team learn
- Fireside Chat #53: Speeding up your software delivery
- It’s Kataday – ATM machine
- Fireside Chat #52: How will ChatGPT and GitHub Copilot change software development?
- How to measure the ROI of your Technical Coaching initiative?
- Backlog management at all levels
- Book Club at Codurance - Measure what matters
- Discovery of a project: key aspects
- The interrelation between goals, metrics and biases
- It’s Kataday – Stack kata
- Lean Thinking principles in Software Development
- SOLID: What it is and why it matters
- Renewing cluster certificates using kubeadm
- It’s Kataday – Leap Year Kata
2022 79
- Fireside Chat #50: Should you hire job hoppers?
- Fireside Chat #51: How to create a successful feedback culture
- It’s Kataday – Santa's Allotment
- DOS 6 is now live
- It’s Kataday – Let's build a Christmas tree
- It’s Kataday – The 12 Days of Christmas
- Fireside Chat #47: Are technical and business stories a false dichotomy?
- Fireside Chat #48: The cult of the hero programmer
- Fireside Chat #49: Why is our software so complex?
- Fireside Chat #46: Do we need project managers?
- Codurance Talks Episode 36: Interview with Jonathan Smart, author of ‘Sooner Safer Happier: antipatterns and patterns for business agility’
- It’s Kataday – Let's kickstart your katas
- Fireside Chat #45: Quality Assurance: The most misunderstood role in software development?
- It’s Kataday – Game of Life kata
- Global Day of Coderetreat 2022 - London Retrospective
- It’s Kataday – Let's play with the ants
- It’s Kataday – Let's catch a spider kata
- Software Crafters North - part of the Manchester Tech Community
- Codurance achieves Digital & App Innovation Designation in new Microsoft Cloud Partner Program
- It’s Kataday – the Smart Fridge kata
- Manchester Tech Festival 2022 Key Takeaways
- It’s Kataday – the Gilded Rose kata
- Refactoring Legacy Applications with Containerisation
- How testing can transform more than just the code
- Screenkata – FizzBuzz in F#
- Refactor before you rewrite
- It’s Kataday – let's play Battleships kata
- Pair Programming Simplified
- It’s Kataday – Flag that Unusual Spending kata
- How to reduce time and increase value with agile delivery
- First impressions as a craftsperson at Codurance
- How to test legacy software (that was not designed to be tested) when modernising
- Factors in creating a successful technical team
- ScreenKata: Set up Python Repositories
- Clojure Circuit
- ScreenKata: Set up Java Repositories
- Codurance is G-Cloud 13 and DOS 6 approved
- Codurance achieves APN Certification Distinction
- Katalyst has a New Home
- ScreenKata: Set up PHP Repositories
- ScreenKata: Password Validation 1
- It’s Kataday – Put some FizzBuzz into your day with our kata
- Codurance Talks Episode 35: Expert, T-shaped or Generalist
- It’s Kataday – get ready to sharpen your skills and set up your repositories in Typescript
- Scaling the world’s first AI-enabled scent curation platform
- Are your systems prepared to deal with potential failures in the future?
- Innovating in the travel sector in times of pandemic
- Open Space London 2022
- Alignment of the CIO with business strategy
- How to go from an MVP to a scalable product?
- Book club at Codurance - Strategic monoliths and microservices
- Our participation in the Digital Enterprise Show in Málaga
- XP practices in remote times
- TDD and anti-patterns - Chapter 6
- Software Modernisation and Employee Satisfaction
- TDD and anti-patterns - Chapter 5
- We will be at the Digital Enterprise Show in Málaga
- Codurance Spain first Open Space in 2022
- Is there still a place for the AWS Summit London in 2022?
- The keys of iterative and incremental development
- Cloud Migration Strategies: Creating Innovation in the Cloud
- How to create innovative software solutions
- Codurance to Sponsor AWS Summit London
- How can businesses benefit from moving legacy applications to the cloud?
- Application Migration Strategies The 3 R's
- Understanding the benefits of Incorporating modernisation into an application migration strategy
- TDD and anti-patterns - Chapter 4
- Why is culture so important in software development?
- How to optimise software implementation for sustainable change
- How can I leverage new technology in my software?
- Why is software risk management important?
- How can I align my business goals with technology?
- TDD and anti-patterns - Chapter 3
- Making the team as we move forward: insights on how to build a team.
- Reduce your carbon footprint with the help of the new AWS Sustainability Pillar
- Go Study Group
- Calisthenics? Where we're going we don't need calisthenics
- TDD anti patterns - Chapter 2
- Improving testing assertions
2021 52
- Codurance Spain plans for 2022
- Pathfinders, the everywhere cloud and new worlds - takeaways from AWS Re:Invent 2021
- AWS re:invent - New Storage Offerings
- Thinking differently about digital talent in Greater Manchester
- Global Day Coderetreat 2021 at Codurance Spain
- Software Modernisation Strategies for Making your Software Easy to Change
- The Challenges Associated with Software Legacy Modernisation
- 3 Steps for Creating a Software Modernisation Strategy
- Testing anti-patterns
- TDD anti patterns - Chapter 1
- Should I use Pair Programming?
- Codurance Achieves AWS Well-Architected Partner Status
- Málaga event at Parque Tecnológico de Andalucía
- Riding the unicorn - How Cazoo builds for scale and growth
- BCN Inclusive Coding program was presented.
- TPP: From Dumb to specific, to generic
- TDD Knowledge Book- Insights from the first TDD Conference
- JBCNConf in times of COVID
- How can we increase the presence of women in the technology sector?
- Become the best version of a Software Craftsperson
- Agile Product Development in Practice
- Functional patterns
- Codurance to be part of BCN inclusive coding project
- Takeaways from Microsoft Inspire 2021 - partner event of the year
- Design patterns, different approaches to current state of the art
- Moving from DevOps plus Sec to DevSecOps
- Our latest selection of podcasts and blog posts
- Building a testing culture
- Key takeaways from the AWS Summit Online EMEA
- Episode 30 Codurance talks: What is the role of machine learning in optimising e-Commerce experiences?
- DevOps is the guide to your Software Modernisation journey
- Supporting Pride Month 2021
- Accelerating the path to production - how DevSecOps enables fast and secure software development
- Mocking with Python
- Episode 29 Codurance talks: The challenges of selling at Mercadona on line
- Codurance Achieves Advanced Consulting Partner Status in the AWS Partner Network
- Why supporting our people during Mental Health Awareness Week is more important than ever
- Codurance and partner Redis Labs to host retail e-commerce cloud event
- Episode 28 Codurance talks: How to create your dream team
- Separate but as one, the possible ingredients for effective teamwork.
- Codurance drives greater customer success with its latest Microsoft Gold Cloud Platform Competency
- Codurance Talks: Women in Tech Episode two
- Codurance Talks: Women in Tech Episode one
- International Women’s Day 2021: A celebration of inspiration and influence
- Codurance & Snyk Partnership Announcement
- Soft skills, the science of fiction
- Codurance Adds 2 more Microsoft Gold Competencies to accelerate customer success
- What is “Cloud Native” and Why Should I Care?
- My journey to Codurance
- How to structure stakeholder interviews and set your Product Discovery off right
- Codurance Academy: more than code
- How to advocate for Technical Change
2020 62
- Inclusion & Diversity at Codurance
- Codurance Talks 25 - The challenges and opportunities of Platform engineering and DevOps
- Start your Product Discovery with Stakeholder Interviews
- Software Apprenticeships: the heart of Codurance
- Running a Speedback session
- Codurance Talks Episode 24 - Organisational Design and People Analytics
- Codurance signs the Microsoft Partner Pledge
- Software Modernisation and Employee Retention
- The ABC's of Starting an Academy
- Is it even possible to deliver software compliant, fast and correctly?
- How do I streamline a path to production?
- What are the skills that each member of your team must have?
- Signing the TTC
- Why is your team unable to deliver on time?
- When lift and shift is the answer
- 6 Steps for Effective Software Compliance
- What is a Cross-Functional Team?
- StackOverflow’s Contributor Guide
- Breaking Down the Monolith
- Why is OWASP Important for Business Leaders?
- Why is OWASP Important for Developers?
- Should we always use TDD to design?
- Cloud Application Design Considerations
- Why keeping it simple is good for software delivery
- Codurance Appoints Amelia Bampton Regional Director of Manchester
- Becoming PCI Compliant
- Codurance Talks Episode 23 - AI and the future of decision making
- Packaging with Packer
- Skills Matter host ‘Thursdays Matter’ event featuring Codurance Co-Founders discussing Software Modernisation
- How to Customise Any Website
- Codurance achieves Microsoft Gold Partner Status
- Codurance and Redis Labs to host online webinar on modernising distributed monoliths for the finance sector
- Codurance announces official Satalia Partnership
- Sandro Mancuso to speak at JetBrains Tech Day for Java
- Codurance announces official Novoda Partnership
- Signs Your Software is Rotting
- Five Ways to Lead Positive Change Through Software Modernisation
- The Hidden Cost of Not Modernising
- Promises and Lies
- Building a business case for your software modernisation initiative
- 5 signs that it is time to launch a modernisation strategy
- Codurance announces official Redis Labs Partnership
- What is Software Modernisation and why do you want to do it?
- Terraform With Multiple Environments
- Codurance Talks - Episode 22 - Working From Home
- Functional Programming in Elixir
- Codurance Talks - Episode 21 - Apprenticeship
- Types and accepting the fact that I might not be that smart. - Part 2
- Codurance and Skills Matter launch a deeper partnership
- Project Maturity Model
- Achieving Stability and Speed in Software Delivery
- Barcelona Open Space event
- Remote Pairing a true story
- Types and accepting the fact that I might not be that smart.
- Codurance Talks - Episode 20 - Pair Programming
- Solution to an apprentice's self proclaimed Imposter Syndrome
- Newsletter - February 2020
- Open Space Day And Serverless
- Fear Driven Development and How To Tackle It
- My First Months At Codurance
- Testing Your Website for Visual Regressions With BackstopJS
- Newsletter - January 2020
2019 49
- How to test drive a Content Delivery Network
- Newsletter - December 2019
- Codurance Talks - Episode 19 - Serverless
- Codurance Talks - Episode 18 - Value Stream Mapping
- Crafting web apps using finite state machines - Part 1
- World's Strongest Architecture
- Newsletter - November 2019
- Codurance Talks - Episode 17 - Codurance
- Elastic Stack Introduction
- Leap Year Kata in Clojure
- Newsletter - October 2019
- Codurance Talks - Episode 16 - Learning
- Isolating integration tests and mocking dependencies with Spring Boot
- The software craftsman
- Newsletter - September 2019
- Seven Testing Sins and How To Avoid Them
- New London Office
- Codurance Talks - Episode 15 - Feedback
- Progress Structure
- Codurance Talks - Episode 14 - Mentorship and Collaboration
- Nature In Code
- Accessing and dumping Jenkins credentials
- Private Jenkins Shared Libraries
- Creating a Jenkinsfile pipeline
- Microservices adventures: Ignoring platform complexity
- Codurance Talks - Episode 13 - Kotlin
- Initiative Circles at Codurance
- State of the art Continuous Integration and Deployment Pipeline with Jenkins, GitHub, and Docker
- Am I delivering value?
- Containers with Docker
- Introduction to Test Doubles
- Codurance Talks - Episode 12 - Most influential book
- Codurance Talks - Episode 11 - How do I choose a Software Company to work with?
- Just Enough Technical Documentation
- Bank kata in Haskell - using and testing date
- AWS Amplify
- Codurance Talks - Episode 10 - Craftsman Oath
- DynamoDB explained - Part 1
- Taming Dependabot - how to use dependabot in the real world
- Bank kata in Haskell - printing a statement
- 8 ways to ace the apprenticeship
- An introduction to DynamoDB and its SDK
- Codurance Talks - Episode 9 - SDKMan with Marco Vermeulen
- Bank kata in Haskell - dealing with state
- Sandro Mancuso & Alberto Brandolini on Software Design
- Mars Rover Kata - Refactoring to Patterns
- Codurance Talks - Episode 8 - Legacy Code
- Codurance Achieve AWS Partnership Status
- Active Pattern
2018 61
- Native microservices with SparkJava and Graal
- Craftswap with Zenika
- The Functional Style - Part 9
- Codurance Talks - Episode 7 - Parallel Changes
- Codurance Values
- Await vs GetAwaiter
- The Functional Style - Part 8
- The Functional Style - Part 7
- Codurance Talks - Episode 6 - Rust
- Codurance Talks - Episode 5 - Apprenticeship
- The Functional Style - Part 6
- Joining Codurance - the pair programming interview experience
- Nature of Learning
- Codurance Talks - Episode 4 - Functional Programming
- Mocking as a Design Tool
- The Functional Style - Part 5
- Codurance Talks - Episode 3 - SCBCN 2018
- Safety Musings 1 (Languages)
- Why developers do not like organisational change
- Codurance Talks - Episode 2
- The Functional Style - Part 4
- Interview: Sandro Mancuso on Software Craftsmanship
- Codurance Talks - Episode 1
- The Functional Style - Part 3
- Rest Review
- Zenika craftsman swap
- SoCraTes Germany 2018
- The Functional Style - Part 2
- Automated Coding Style (or why not to use it)
- The Functional Style - Part 1
- Busconf 2018
- Cell Design Pattern
- Argument Maps
- Our profession is a card game
- An E-reader story
- Writing safe(r) bash scripts
- Be open-minded, my friend (Spanish)
- Manchester Office
- A Case For Outside-In Design
- Software Craftsmanship - 8 Years
- Be In Control of Your Career
- Is it possible to Outside-In TDD on front-end?
- A Conversation About Software Craftsmanship
- Algebraic data types and their algebra
- Functional lists
- Intermediate step of Gilded Rose Kata
- Rereading The Mythical Man-Month
- Functional Tic-Tac-Toe Speedrun
- Getters and Setters Considered Harmful
- The case of the dreaded interface
- The case of the dreaded interface
- Growing your career
- Duplication, you're welcome
- Software as a craft
- Lambda Calculus in Clojure (Part 2)
- One Year of Codurance Barcelona
- Functions
- Newsletter - January 2018
- Applicative Functors and data validation, part II
- Living a Coderetreat as a facilitator
- Tetris - Failed Experiment: Next Steps
2017 60
- Shrinking Haskell Docker images using multi-stage builds
- Lambda Calculus in Clojure (Part 1)
- Newsletter - December 2017
- Introducing Interaction-Driven Design
- Recursion
- On Tail Call Optimisation
- Craft Thinking
- Applicative Functors and data validation
- Setting up IntelliJ for Rust
- Setting up Rust development environment using VSCode on a Mac
- Falling into Machine Learning
- Functional Programming and Reactive Architecture Part 2
- Java Optionals For More Expressive Code
- Delegates as Type Aliases
- Fractured Skill: Compartmentalising Software Development
- Software Design Bias
- Katas For Functional Calisthenics
- Tetris AI, Experiments 1 & 2: Single Parent Evolutionary Algorithm
- Lambda Calculus for mortal developers
- Legacy Coderetreat - Overcoming challenges together
- Side effects
- Lambda World Conference 2017
- Newsletter - October 2017
- Conventional Interfaces in Functional Programming
- A Case for Outside-In Development
- Functional Programming and Reactive Architecture Part 1
- Functional Calisthenics
- Software Craftsmanship - 8 Years
- Find a workplace where you can grow
- Newsletter - September 2017
- MVC, Delivery Mechanism and Domain Model
- The Life of a Senior Software Craftsman, with Robert Firek
- Outside-In Classicist TDD - Mars Rover
- 99% code coverage - Do we have a good safety net to change this legacy code?
- A reflection on Software Craftsmanship
- My first steps as an embedded software craftswoman
- Newsletter - August 2017
- An Interface Between The Natural And The Artificial
- DDD Modeling from Alberto Brandolini
- Light Access - A simple JDBC DSL
- Bash tips: Easier git branch deleting and checking out
- Newsletter - July 2017
- P3 Quality
- The role of analogies in the software industry
- Newsletter - June 2017
- How do I convince...?
- NCrafts in 20 pictures
- A Workflow for iOS
- My first year at Codurance
- Newsletter - May 2017
- Introducing the Codurance Newsletter
- Teal Organisations
- A Matter Of Perception And Concept
- Make Your Webpack Bundles Clean and Lean
- Learning Specification By Example from Gojko Adzic
- Discovering Codurance during my first week as an apprentice
- The 4 key elements of conversation
- Complex refactoring in simple steps Part III
- Create an F# project in VSCode
- Hierarchy of opinion
2016 80
- How to use 'npm link' to develop sharable components
- How Applying Theory of Constraints Helped us Optimise our Code
- Setting up Scala on Android
- Approaching Outside-in TDD on Android III
- Visualise interruptions on a LEGO Wall
- Database Testing With tSQLt
- What I wish I knew when I started as a software developer
- When a good architecture helps you in your UI design iterations
- Complex refactoring in simple steps Part II
- Approaching Outside-in TDD on Android II
- Approaching Outside-in TDD on Android I
- Codurance Barcelona
- Bowling Kata in Kotlin
- Server side Swift
- Complex refactoring in simple steps Part I
- The Java Synchronisers
- Chinese whispers on Scrum roles
- Have you met the CLI?
- Maven demystified
- Improve team's communication with User Stories
- Three pillars of Continuous Delivery
- Communicating Design
- Communicating Design
- Testing Spark Streaming: Integration testing with Docker Compose
- What does RESTful really mean
- Testing Spark Streaming: Unit testing
- Thoughts on Coupling in Software Design
- Thoughts on Coupling in Software Design
- Scaling Umbraco On Windows Azure Part III
- Shape your infrastructure with Terraform
- State in scalable architectures
- The Rush Age
- Scaling Umbraco On Windows Azure Part II
- Scaling an Umbraco Website On Windows Azure
- Scaling an Umbraco Website On Windows Azure
- Some Thoughts on the Single Responsibility Principle
- Some Thoughts on the Single Responsibility Principle
- Thinking in Abstractions
- Thinking in Abstractions
- Mastering TDD
- Mastering TDD
- Configuring Amazon Web Services (AWS) for using Lambda
- Why SoCraTes UK is not just a conference for Software Craftsmen.
- Why SoCraTes UK is not just a conference for Software Craftsmen.
- Unit vs Integration Akka Testing
- Unit vs Integration Akka Testing
- A simple TDD environment in Haskell
- AWS Lambda with API Gateway
- Coordination in Akka
- Bowling Kata in Clojure, F# and Scala
- Publish-subscribe model in Kafka
- A Retrospective in the Park
- A Retrospective in the Park
- Initiative Circles
- Initiative Circles
- AWS Lambda for Beginners
- Finite state machines with Akka
- Finite state machines with Akka
- Code Smells – Part II
- Code Smells – Part II
- Language feature envy
- Akka basics
- Async systems with sync clients
- Sorted pagination in Cassandra
- We did it wrong, but not all was in vain
- We did it wrong, but not all was in vain
- Mutual Problems
- Code Smells – Part I : What are they and just what is a bloater?
- Code Smells – Part I
- Containers all the way through...
- Cohesion - The cornerstone of Software Design
- Cohesion - The cornerstone of Software Design
- Docker meets Continuous Deployment
- Open Financials
- Command Prompt Envy
- Coupling in distributed systems
- GitHubAnimator
- Premature Microservices
- Premature Microservices
- Clojure VIM Environment
2015 61
- Testing multithreaded code in Java
- Mouseless Programming
- Property based testing
- Mouseless programming
- Mouseless programming part II
- Changing Scalatra and sbt default directories
- My first couple of months at Codurance
- Configuring an enterprise app sucks
- Tips for a friendly open source experience
- Time To Go
- Practicing Well-Crafted Design
- Practicing Well-Crafted Design
- Talk to the business
- Transcending REST and RPC
- Does TDD really lead to good design
- Code review: Why are we doing it?
- Clojure (Prismatic) Schemas are Swagger
- Interview with Sandro Mancuso - Software Craftsmanship
- My first walking skeleton
- How katas can help you learn
- Increasing complexity one entity at a time
- Appropriate Rigour
- Becoming Evergreen
- Why you should always follow your dreams!
- My first month as an apprentice
- CQRS and Event Sourcing for dummies
- Learning from our failures
- How to start doing TDD in iOS
- Shape your infrastructure with Terraform
- Finding the biting point with pair programming
- Inflection Point
- Big Data Skills Spectrum
- A really good way to make your learning more effective
- Conversations About Conversations at SoCraTes UK 2015
- Crank Up The Volume And Forget Your Pomodoros
- Working with SLAs
- Applying Transformation Priority Premise to Roman Numerals Kata
- Does TDD really lead to good design?
- Outside-In TDD part 1
- Outside-In TDD part 2
- Outside-In TDD part 3
- TDD and Software Design
- Q&A about The Software Craftsman
- Creating a local NuGet repository for offline development
- Side effects and Java 8 streams
- Interaction Driven Design
- Design Patterns in the 21st Century: Conclusion
- Design Patterns in the 21st Century: The Chain of Responsibility Pattern
- Making Sense of Docker Volumes
- Design Patterns in the 21st Century: The Adapter Pattern
- Design Patterns in the 21st Century: The Abstract Factory Pattern
- Design Patterns in the 21st Century, Part One
- Dangerous Words
- Multiple projects in Visual Studio solutions considered harmful
- Project Sizing
- User Story Guidelines
- JavaScript - A Tough Love
- How to install Prezto with Zsh for your OS X Terminal
- Rethinking Pair Programming
- Balanced Abstraction Principle
- Impact Mapping
2014 27
- Code quality cannot be measured
- Naming Test Classes and Methods
- What is it like to be a Codurance Apprentice?
- Test Driving Algorithms
- Codurance - Looking forward to 2015
- Not all managers are stupid
- Too Many Cooks
- Crafted Design
- A Very Quick Guide to Deploying Artifacts With Jenkins
- A Very Quick Guide to Deploying Artifacts With Jenkins
- Highly Strung
- Highly Strung: Understanding your Type System
- Tell don't ask
- Queue Based Synchronisation
- Mob Programming, and the importance of fun at work
- Google+ Sign-In with Scalatra
- A Software Craftsman Is
- TDD is NOT (just) about you
- Test Driving Algorithms
- Screencast - Explanatory Methods
- Keeping the domain in the core
- Explanatory Methods
- Just Another Day at the Office
- Software Craftsmanship book is now finished
- Pairing without Programming
- Resist the "Just in Case"
- Samir Talwar is our first craftsman
2013 10
- Starting a Software Craftsmanship Community
- Craftsmanship: A Few Years On
- UGtastic Interviews Sandro Mancuso
- AgileByExample: Software Craftsmanship
- Test Deafness
- My birthday wish list
- 4 Rules of Simple Design
- Functional Programming is cool, but do you know OO?
- Project Documentation
- Spring Integration based Dispatcher-Worker with Worker Queues
2012 19
- Screencast: Testing and Refactoring Legacy Code
- Testing and Refactoring Legacy Code
- The Wrong Notion of Time
- UGtastic Interviews Sandro Mancuso
- Speed Reading
- Testing legacy code with Golden Master
- The Spirit to Improve
- The best approach to software development
- Encouraging Collaboration via Design Committee
- Encouraging Collaboration via Review Branches and Pull Requests
- Curing Agile Hangover with Craftsmanship
- Test-driving Builders with Mockito and Hamcrest
- Testing multiple properties with single assertion
- Extract, Inject, Kill: Breaking hierarchies (part 3)
- Extract, Inject, Kill: Breaking hierarchies (part 2)
- Extract, Inject, Kill: Breaking hierarchies (part 1)
- Code coverage is a side effect and not an end goal time
- Musings on Zero Downtime Deployment
- Saxon XQuery With Multiple Documents
2011 16
- Mentorship in Software Craftsmanship - part 3
- Installing Io language on Ubuntu
- The difference between UI Designer and UI Developer
- The legacy of misplaced Testing
- Design aligned to the Problem Vs Design aligned to the Technology
- Mentorship in Software Craftsmanship - part 2
- Mentorship in Software Craftsmanship
- LSCC's First Code Retreat
- One year of London Software Craftsmanship Community (LSCC)
- SRP: Simplicity and Complexity
- Testing legacy: Hard-wired dependencies (part 2)
- Testing legacy: Hard-wired dependencies (part 1)
- Working with legacy code
- A change in attitude - Legacy code
- Re-drawing my own map: A new milestone
- Open-source developers deserve respect
2010 9
- Defining and Prioritising a Backlog
- Naming your Unit Tests
- Approach to Performance Tuning
- The relationship between Product Owner, Business Analyst and Tester
- JVM Profiling: Thread Dumps
- Maven Mutli-Project Thoughts and Guidelines
- Find the jar file containing a class
- Creating and using a maven archetype
- Using JIRA for Agile Project Management (without Green Hopper)