While working on one of our internal tools, I decided to make a small comprise and not follow my own advice. We are building a mini CRM tool and the initial requirements were: Maintain information about the companies we are dealing with; Maintain a list...
There are many metaphors to software development that make sense within different contexts but not others. When we talk about craftsmanship as a metaphor we are referring to the attitudes that the craftsman embodies in terms of dedication to customer satisfaction, quality and endless pursuit...
“It is only when the cold season comes that we know the Pine and Cypress to be evergreens.” - Chinese Proverb Over the last few months I have spoken to a number of developers and teams who are making changes to their development and delivery...
I started at Codurance a month and a half ago as a C# developer. I was glad to have the opportunity to work in a place where people value your effort to be a better developer. I had been away from C# for more than...
About a month ago, I started my apprenticeship at Codurance. I have learned a lot already in these few weeks, and I want to share some of it. A little background As some of you know, I moved from Germany over to London to work...
CQRS (Command and Query Responsibility Segregation) and Event Sourcing are concepts that are not new at all. Alongside NoSql, Functional Programming and Microservices, these revival concepts are getting traction because of their ability to deal with modern software challenges. Assuming that you're building a product...
On my second day at Codurance, I managed to delete the repository with Codurance's GitHub Pages on it. This made the website unavailable for the first time in a long time, and during best business hours. I passed by all the checks Github does to...
I like to do apps. As a newbie TDD developer, I've made my apps with tests but not driven by tests. I want to change that. I'm learning to be a Craftsman, so TDD is an essential technique to know. It's your main tool. At...
The popularity of cloud infrastructure services has hugely increased over the last few years. Companies value the flexibility and reliability provided by such services. The simplicity of the solutions delivered by cloud providers should remove the burden from the shoulders of busy Dev and Ops...
Cloud Application Design Considerations When designing applications for the cloud, irrespective of the chosen platform, I have often found it useful to consider four specific topics during my initial discussions; scalability, availability, manageability and feasibility. It is important to remember that the items presented under...
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.