Melbourne-based SDET focussing on Automated Browser, API and Data testing. I deliver well-designed, robustly implemented, intentional test automation.
The Consultant Utility Belt
Spending most of my career in tech companies, I enjoyed working with technologies largely of my choosing. I have always been of the Open-Source bent, so monetary cost has seldom been a factor. The tools I use are familiar - there is a level of comfort - but I choose them for their functionality - I am substantially faster and more productive with them. The technology I tend to use to describe this is the json processing library - When I made the switch to consultancy I quickly learned not to become too attached to my favourite tools. You never have full say over which contract you'll be on next - and the Standard Operative Environment may differ radically from one to the next. Security and vendor lock-in means you largely use the tools you're given. It's here that I drew inspiration from the greatest technical consultant of all time - Batman. When confronted with a novel set of difficulties, Batman can rely upon the toolkit only Wayne Enterprises could provide, his Utility Belt. So, here are some of the portable toolkit items that keep me productive wherever I was deployed. If you have access and permissions to the chrome or edge extensions libraries, you're pretty much set. But if you don't, creating your own browser extensions is pretty accessible these days. In chrome, navigate to There's not a lot you can't do with VS Code and access to the extensions library - ssh into remote servers, interact with GitHub, but my favourite rather anachronistic extension is VSCodeVim - at first I tried it as a joke, I've now been using it daily for 5 years. So let's just say you have next to no access, and you need some kind of computing tasks done. My execution environment of last resort is Google Dev Tools -> Console. If I have nothing but notepad and chrome, there's a reasonable amount you can do with a javascript execution environment. As an example, I found myself needing to test the limits of how many times an in-page task could be completed - with no testing tools and no permissions to install any. I could either sit there and modify details and click 'submit' 180 times over the course of 10 minutes, or I could request jquery in the console and voila - pseudo-automation. If you've no IDE at all, there are many web-based IDEs, but github.dev takes my vote - all you need is a repository, and you've got a fully featured, free editor. This is my now my go-to as a travelling note-taking tool. If you do have install privileges to your machine, Windows Subsystem for Linux is a way to leverage a world of open-source developer tools. Or if that's not an option - if you have git bash, you may not have a full distro but a decent text processing engine. jq
. Free, lightweight, well designed and - in its small way, kind of life changing. Once you become accustomed to it as part of your dev/testing process, it's pretty hard to do without.Browser Extensions**
chrome://extensions/
, enable Developer mode, and then click "Load unpacked" - you'll be able to load extension scripts downloaded from github. VS Code Extensions
In-Browser Scripts
Github Dev
Adding on the batcave
Julian's AWS Dollar Dazzlers
Studying for my Solution Architect Associate Certification I got a re-education in the constantly updating AWS product line. These are my latest dollar dazzlers - cheap, exceptionally useful product offerings to help having your cloud computing costs take less of a bite out of the old hip pocket. Because the only thing I love more than petabyte-scale computing is an old fashioned bargain From deep storage archiving to budget web site serving, S3 is for me the most versatile and cost effective AWS product. With EventBridge is a swiss army knife of event driven systems. Now offering scheduling, event filtering and fan-out, it can be a simple replacement for a complex chain of SQS/SNS/MSK pipes. The ease of which it is configured is the driver for me because time is money Likely a pattern as old as the hills but - especially for small enterprises with on-prem - hibernated instances are one cheap way to have ready disaster recovery. Hibernated instances charge only the EBS storage - so are a cost effective way to do fast and furious failover. This one comes with caveats - you could achieve the same thing with Fargate, and this solution could easily fall victim to 'out of sight, out of mind' neglect - you would need to keep the machines up to date. Now that Elastic IPs set you back a cool $3.60 a month whether attached or not, it's well worth updating to use IPv6, the plentiful, free alternative. You can manually assign an IPv6 address out of a CIDR to an ENI, pocketing the savings. S3 Select
S3 Select
you can run simple queries against CSV or JSON objects - so if you aggregated and dumped a very large log file for instance, you can query it later from within S3. No Athena, no Cloudwatch, no setup at all. EventBridge
Hibernated EC2 Instances
IPv6 EIP
Jekyll and Hyde: the emotional rollercoaster of technical adoption
Originally posted on github.io If you can read this it means that I'm successfully running jekyll on my macbook air m2, which means I have around 60 open tabs, the fruits of searches such as: I kept my old intel macbook air as long as I could hold out, and in my last position working on OSX, held out on moving to an m1 macbook to forestall just this kind of sanity-draining pitched battle. I find the emotional rollercoaster of encountering issues wrangling a new or newly-required technology follows the arc: From there, we have three possible outcomes: I eventually abandoned up installing rvm and went with Homebrew ruby which means I'm limited to the latest version, and no gemsets unfortunately. However, jekyll is installed and happily serving away. Anyway, through the frustration of Well. From perl to ruby to javascript - it's exciting, blazing fast and bleeding edge one day, then legacy the next. I can recommend attempting to revive an old dev environment to temper the excitement of technical adoption.
rvm hell
, it all made me somewhat nostalgic. I used to love ruby. I'd recently joined REA Group, going to work meant working with incredibly talented, personable people in a truly agile fashion. From Java, and Rational Functional Tester I moved to ruby, Cucumber, and the dizzying cornucopia of gems that made just about anything achievable in a few lines of code. I did the koans and marvelled at the more than one way
mantra. I wrote a synching file management utility in ruby that tackled my growing .mp3 problem. I wrote a to-do list manager in ruby. I parsed and generated spreadsheets and scraped websites. I essentially wrote my own single serving 'myfitnesspal', coupled with garmin and fitbit scrapers, and dealt with the ensuing hair loss wrangling the rails assest pipeline.