When geek rockstars go wild!
Ok, a silly one but I’ve got to share this. When walking to the hotel on Sunday before Progressive .NET I saw this in the middle of the pavement: I’m guessing someone broke the build and this is what...
View ArticleEstablishing team values
One of the biggest things I took from the Progressive .NET tutorials was the idea of establishing a set of values for your team. This was raised in David Laribee’s session Towards A New Architect...
View ArticleNott Tuesday – July 14th
Though most the original links from this post are now dead, this records the time I met Adam, my co-founder and CEO of Cronofy so I’m keeping it for posterity! So I went to Nott Tuesday for...
View ArticleTest-driven development - 3 years on
I’ve been questioning my own practices recently, seeing if there were places that I could improve, both in quality and productivity. Part of this process involved an evaluation of my test-driven...
View ArticleDescribing the journey
Often when explaining something it’s easy to straight to the end goal saying: “This is how to do it. Isn’t it awesome?!” At this point you will get a blank stare and quite possibly a “why?” This can...
View ArticleSimple parts combined simply
I’ve been on a refactoring mission for what feels like an eternity. The motivation for which is to pay off a significant portion of our technical debt. However, throughout the whole process I keep...
View ArticleHow I feel about the .NET world lately
Great article by Davy Brion which echoes the feelings I’ve been having around .NET for a while: They (Microsoft) provide architectural and design guidance for everything from your database to your...
View ArticleBeware Count()
Something I’ve seen at various times is: if (enumerable.Count() > 0) { ... do stuff ... } I’ve always preferred using: if (enumerable.Any()) { ... do stuff ... } Mostly because it reads better,...
View ArticleProducts for people who make products for people
Your end users are Product People. You need to toss out this stupid idea that making something usable by DHH fanbois means you’re not HARD CORE. You can still be hard core and make something they can...
View Article10 common mistakes made by API providers
Twitter has made numerous changes to fix its API. Those experiences have taught providers what mistakes not to make when launching a service. But there is still a lot for providers to learn. Alex...
View ArticleThe Long Beard's revenge
Very interesting article on a reduction in contribution to open source and the possibly underlying forces behind it. I recently heard that RMS is pissed at cloud service companies because they are...
View ArticleSimple tools and fundamental principles
We are doing an experiment in using Ruby for an internal project at work. I am the most experienced in Ruby so I’m leading the choices of gems and so forth and the team questioning those choices has...
View ArticleUse integration tests when working in a new language
This is in some respects a follow up to my previous post in that it has been triggered by our internal project in Ruby. When working in Ruby I consciously lean towards integration tests. Sinatra and...
View ArticleWhy Rack should matter to .NET developers
There’s been a lot of talk in the .NET community about Sinatra clones, namely Nancy and Nina in recent times but there are several others as well. Unfortunately, all these frameworks are...
View ArticleCross-site XmlHttpRequest with CORS
I was working on a personal project over the Christmas period and wanted to make cross-site requests from an AJAX client to an API. As the client and the API were hosted on different domains they...
View ArticlePragmatic web service design
Web services are a crucial part of most solutions nowadays, I spend a significant portion of my time designing and writing them and I have read a lot about them to make them better, faster and more...
View ArticleTags are magic!
The Guardian produced a interesting series of blog posts on how they use tags to categorise their content, display related articles and so forth: Part 1 Part 2 Part 3[read more]
View ArticleHow to keep your software awesome
There’s a whole school of thought that quantity of features is directly proportional to what you can charge for software. While clearly this is true in practice, that doesn’t mean that it’s not...
View ArticleThe most important code isn't code
I cannot stress how much I agree with this. I’ve come to exactly the same conclusions as Zach in the last year myself. I wish I had written this post myself! Here are my highlights: Documentation is...
View ArticleLMAX Architecture - Martin Fowler
I remember watching one of the original presentations on this architecture a few months ago (no idea why I didn’t link to it at the time) and Martin’s article puts it into a format that’s easier to...
View ArticleFinagle
I came across Finagle a few weeks ago, it’s: … a protocol-agnostic, asynchronous RPC system for the JVM that makes it easy to build robust clients and servers in Java, Scala, or any JVM-hosted...
View ArticleDDD North - Introduction to Backbone.js
Yesterday, I gave a presentation on Backbone.js at the inaugural DDD North. My thanks go out to Andrew Westgarth and his team for organising it, it was a great event. I was a bit nervous as it was my...
View ArticleHeroku in Europe
I tweeted yesterday (25th Jan 2012) to ask if anyone knew of a solution as convenient as Heroku but based in the UK or Europe. The reason I asked was at Zopa we are thinking of migrating our front-end...
View ArticleSoftware and Schrödinger's Cat
An interesting article exploring the relationship between quantum physics and continuous delivery. None of it is real until it is in the hands of actual users. I don’t mean someone who will...
View ArticleGain Trust and Create Change - LDNUG - Followup
Last Monday I gave my talk “Gain Trust and Create Change” for the first time at the London .NET user group. The guys at Skills Matter recorded the whole thing so you can watch it online if you missed...
View ArticleVersioning APIs Sucks
Also, versioning APIs sucks. It’s not that it’s hard, it’s that once you publish an API, you pretty much have to support it forever. This is especially true when your API is being consumed through...
View ArticleDDD 10 - 10 Practices
Among some of the more interesting feedback were some requests for some links and an overview of the things mentioned in my talk. Slides I’ve put them up on Slideshare though without the...
View ArticleThe Boy Scout Rule
My friend Dom Finn wrote a post To Fix Or Not To Fix. This is something I’ve thought about quite a lot as, lets be honest, everyone is maintaining a legacy codebase to some degree. The Boy...
View ArticleMinimalism in an Age of Tremendous Hardware
Usually – almost always – there’s a much simpler solution waiting to be discovered, one that doesn’t involve all the architectural noise, convolutions of the...
View ArticleLogging
If there was one thing that I learnt in 2012 that I would want to convey to all the developers I know, it would be this: Logging is about so much more than failures I don’t know if it was...
View ArticleRuby 2 - Module#prepend
As you may know Ruby 2.0.0 has been released. Despite the major version it is mostly an incremental release. However, it does include a few breaking changes so a major version is warranted. However,...
View ArticleHiring for the future
When hiring people, beyond the basic competency requirement of the role, I look for an alignment in future goals. This is why the question of “where do you see yourself in N years time?” is so...
View ArticleMaking the most of an accelerator as a techie
Over the past 4 months Cronofy has graduated from the Microsoft Ventures London Accelerator and soon after we became part of the Seedcamp family which involved an on-boarding process. Though...
View ArticleKubernetes rollout stuck
Quick post to help anyone else stuck in the same situation I was today. The internet, or at least my Googlefu, failed me. Today we had a Kubernetes deployment get stuck, all health checks seemed...
View ArticleCompliance and continuous deployment
Cronofy is ISO27001 certified and SOC2 Type 2 accredited. Though we have always been serious about how we handle data, in 2019 we set about proving that was the case. Initially, I led that effort for...
View ArticleMoving forward with observability
As a leader, particularly as an early stage founder, your role is to empower people to do their jobs to the best of their ability. One of the places this is most extreme is in understanding the ebb...
View ArticleKubernetes and Terraform two years on
In late 2018 we were looking at overhauling our infrastructure at Cronofy. We had some key pain points, mostly a lack of autoscaling on the compute side, but also an eye on some future challenges. We...
View ArticleHow we improved deployment velocity at Cronofy
In Q1 2021 I set the goal of increasing the deployment velocity of the Cronofy engineering team. We were already deploying several times per week, often multiple times per day putting us in the top...
View ArticleDumb questions
The saying goes “smart people ask dumb questions” and whilst memorable it doesn’t explain “why” or provide a mental model for how to choose the kind of questions to ask. Smart people don’t ask dumb...
View ArticleOne-to-ones for high performance teams
Skipping straight to the point, here’s the agenda: How are you? Life is full of peaks and troughs. Where are you at right now, and what’s the trajectory? Anything you want to brag about? Professional...
View ArticleBDD from scratch – Build your own framework
Behavior-Driven Development (BDD) is a higher level of unit testing, it creates better documentation of your system by recording its intent which makes your system easier to learn for new developers...
View ArticleSimple scorecards beat scales
Simple scorecards are more effective, and can provide stronger data for better insight, than the goto sliding scale. Rather than defaulting to an overall “marks out of 10” and then agonising over...
View Article
More Pages to Explore .....