AWS Step Functions are difficult to test. I found an approach to testing that helped in one particular scenario. It relies on using the same programming language for both testing and infrastructure-as-code (IaC). I hope the idea helps others tame their Step Functions into a testable submission. Why are Step Functions hard to test? I’m most familiar with unit testing. I’m used to lifting some small…
AWS Step Functions come in two flavours: Standard and Express. They share a definition language called ASL , but numerous features are different. Standard offers better observability features than Express, which is reflected in its higher cost . Takeaways Standard has useful features in the AWS web console which are not available with Express CloudWatch Logs from Express expose the same raw data…
AWS Step Functions come in two flavours: Standard and Express. They share a definition language called ASL , but a lot of the API operations are not supported across both types. I didn’t find a good side-by-side comparison showing the support for each individual API operation, so I made one. This could help you decide if your Standard workflows could be replaced by Express workflows. There is a…
I spent a while trying to reclaim disk from an on-premise Nexus Repository Manager instance, and got stuck when delete requests would take a surprisingly long time. The Nexus instance is an old version, running on an old OS, old hardware and an old JVM, simply because we haven’t got round to upgrading it yet. So this is not me complaining about Sonatype – instead, I want to leave a…
For several years I’ve been a fan of the analogy of Mechanical Sympathy as it applies to software development * . I’ve decided to make the analogy more concrete, by finding out what pressing the pedals has been doing all these years I’ve been driving. Out of my way Jackie Stewart, I’m taking a class in basic car maintenance. Last night was the first class in an eight week beginner’s Car…
tl;dr: Developer tools and shared code can be usability tested, providing a different insight to code review or pair programming. While working on a developer tool, knowing I intended to perform usability tests got me focused on making something usable. Just framing the problem as “providing a usable tool” changed how I approached it. Recently I was working on setting up an internal tool[0] for…
Here I give a lightning talk on how we mitigated the risk of upgrading the version of MySQL used in one of TIM Group’s most important databases. Our approach to risk mitigation was Rollbackability . Rather than spend all our time ensuring that nothing would go wrong, we decided to plan the upgrade such that if anything did go wrong, we could rollback safely. One complicated replication topology,…
My talk at DevoxxUK 2014 has now been made freely available * at parleys.com. So if you would like to me reprise my previous post in full audiovisual form, go here . * following registering for a free Parleys account.
Despite my numerous gripes about working day-to-day in Scala , one of the things I do love about it are case classes. The ability to define an immutable class which will have equals() and hashCode() methods, a decent toString() , accessor methods (just say no to setters, kids) in a single line of code, is such a breath of fresh air compared to Java. Bleh, all that boilerplate just for a value…
Recently I caught up on Dick Wall’s Devoxx UK talk , “What have the Monads ever done for us?” * . Dick does a great job of introducing terms such as “monoid”, “functor” and “monad” in a way that’s easy to grasp, even for Java-damaged minds like my own. I thoroughly recommend watching the talk to all developers who have heard these terms and want a simple way to understand them, without trudging…
This September, the people of Scotland will vote in a referendum to decide if we should leave the United Kingdom, and become an independent country. There are many questions about what would happen to Scotland and the rest of the UK (rUK) in the event of a Yes vote. Questions that nobody can definitively answer. I expect I will vote Yes, in favour of independence. While visiting London over the…
There’s a particular technology used within TIM Group that has been too useful for too long to continue to go uncelebrated. The tool is called “ Saros ”, it is an Eclipse plugin for distributed pair programming that is used extensively at TIM Group. Why We Need A Distributed Pairing Solution We have developers spread across London and Boston offices, and a few “Remoties” working from home in…
If you’re like me, at some point you have wanted to join a project. Perhaps you wanted to improve your skills, try a different technology, or brighten up your CV. But alas, you didn’t know the best way to get started. I am trying to provide that exact opportunity, in conjunction with RecWorks’ “Meet-A-Project” scheme . I have an open source project, called Mutability Detector , with issues and…
… in an uncontrolled study, in which I reflect on my personal experience, I feel like I’m less productive. Therefore, you will be less productive as well, QED. Well, I think I can safely tick the ‘science’ check box. In this lengthy post, I’ll share my thoughts and opinions on Scala, and moving to it for day-to-day coding. Using a cavalcade of flawed data; logical fallacies; biased opinion;…