Matthew Butt

Matthew believes that people and their relationships should be at the heart of our work as software developers. Since he started working with code in 2000 he has always focused on creating well-crafted software, and building close collaborative relationships within and beyond the technical team.

Recently Matthew has worked primarily on the .NET platform, and he is experienced in giving new life to legacy code written in C# and VB, as well as crafting projects that take advantage of the latest developments on the platform.

Matthew is passionate about teaching excellence in software development, and he is equally at home running a one-hour workshop or designing and implementing a six-month apprenticeship programme. He is a regular participant in the wider Software Craftsmanship and Extreme programming communities.


Publications

Delegates as Type Aliases

In this post I will walk through how to refactor a Factory, moving from a sequence of ifs to a dictionary implementation, and using delegates as a type alias for my object creation methods. Here is a naive implementation of the Factory. You can see...


Complex refactoring in simple steps Part III

Screencast - Complex refactoring in simple steps, Part III: From Conditional to Polymorphism Matthew Butt demonstrates how to compose simple automated refactoring steps in ReSharper to refactor code to better designs. In this episode we identify three classes that are being used in the same...


How Applying Theory of Constraints Helped us Optimise our Code

My team have been working on improving the performance our API, and identified a database call as the cause of some problems. The team suggested three ways to tackle this problem: Scale up the database till it can meet our requirements. Introduce some light-weight caching...


Complex refactoring in simple steps Part II

Screencast - Complex refactoring in simple steps, Part II: Steps towards Polymorphism Matthew Butt demonstrates how to compose simple automated refactoring steps in ReSharper to refactor code to better designs. In this episode we spot a conditional with three branches. We Decompose this Conditional to...


Complex refactoring in simple steps Part I

Screencast - Complex refactoring in simple steps, Part I: Replace Method with Method Object Matthew Butt demonstrates how to compose simple automated refactoring steps in ReSharper to refactor code to better designs. In this episode, we look at a method that exhibits the Long Parameter...


A Retrospective in the Park

The other day, I facilitated a sprint retrospective in the park. The sun was shining, and we had all been working hard to complete our backlog, so it felt like a nice reward for everyone’s efforts. Holding a retrospective outdoors can also give it an...


Codurance Logo

Software is our passion.

We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.

Latest Blogs




Contact Us

15 Northburgh Street
London EC1V 0JR

Phone: +44 207 4902967

Carrer Aragó, 208
08011, Barcelona

Phone: +34 689 723 737

Email: hello@codurance.com