Sharing Failures - Interviewing is Hard

I will get to part 3 of my series on becoming an engineer again, but that needs some more time to bake (part 1 and part 2 for those interested). In the meantime, something a little different… This is one of those posts that was difficult to write, and once written it was difficult to publish - it’s not easy to talk about failure. When I see how people react to such posts from others, in addition to just how demoralised and depressed people can get when they don’t get their dream job, deciding to share myself was made a lot easier.

Becoming an Engineer Again - Fog and Rust

Although my first post on this topic stated that a mindset shift was the key to a successful transition, it also takes some time to achieve. It is a longer term goal that I am working towards, but I don’t expect to make it happen in a couple of weeks. So, while there may be a post about approach and progress in that category relatively soon, it needs some time to bake.

Swinging the Pendulum - Becoming an Engineer Again

The pendulum is swinging again, and it is swinging a lot faster this time than it has previously. I asked on Twitter whether people would be interested in some posts as I work through this change and the answer was yes. So here we are… Not My First Rodeo First things first - I like to remind myself that I have done this before, though a lot less deliberately. While working at MongoDB I was a manager for 2 years, eventually burned out in that role, and then made the shift back to engineering work (Solutions Engineering, then Consulting Engineering).

Deploying Secure Asset Distribution with AWS and Terraform

I was recently asked to come up with a solution for hosting some media files for a site. The requirements were pretty straight forward:

  • Should be available via HTTP and HTTPS
  • Minimal support requirements
  • AWS Based
  • Assets can be uploaded to the hosting with minimal effort/knowledge
  • Site should be performant within Europe (in particular)

The rest of the post will detail why I chose the solution I did to satisfy those requirements and how I went about configuring it. It includes a generalised version of the configuration in Github and even a diagram to illustrate!


Switching to Hugo from Wordpress

Something I have been meaning to do for a while is to switch away from Wordpress. While it is quite a nice collaborative tool and has some great options for WYSIWIG editing and content, it’s also far too big a hammer to use given my modest content and collaboration needs. I don’t have guest posters, I don’t get a lot of comments, and when I do get some interactions they would often work better in another medium (Twitter for example). I don’t have a lot of dynamic content and running Wordpress myself is not something I am particularly expert in.

I had been considering several options, but when I saw Steve’s work with Hugo I was sold (this was early days in the project and it was still pretty awesome). The big stumbling block was what to do with my old content and that stalled me out for a while. Around the same time as I contemplated the switch, I finally obtained the comerford.net domain - I had watched it for some time while someone sat on it, not using it, for years. I even tried making an offer for it (at what I considered a reasonable price) but got nothing, so I decided to wait for it to expire, which it eventually did.


Reflecting on 3 Years at MongoDB

This post took a while to write – when I started, it was my last day in MongoDB and finishing it I am over a week into my new role in Riot Games.  It was a bittersweet moment – I was very excited to move on to my new adventure in Riot Games, but I was sad to leave a company that has been such a great place to work for the last three years.  I decided to write this post partially as a record of what I enjoyed most, partly as a list of some of my accomplishments – memory fades and I have very much enjoyed reading similar posts from several years ago.  I often wish I had written more in fact.

So, here it is, some random reflection on three great years, in no particular order.  Due to the length, I’ll insert a jump, so click through if you would like to read on.


Explaining Parenting in Gaming Terminology

I was asked to do an “About Me” introduction for my new gig, and wasn’t sure how to mention the fact that I had recently become a parent for the first time. Given the fact that I now work for a games company, I decided to have a bit of fun with it and translate it into more gamer-friendly format. I think it turned out pretty well: I’ve just started playing a new game called Parenting, it’s in early beta, only at version 0.

MongoDB 3.0: Hitting 1.3 Million Inserts/Sec with mongorestore

This will likely be my last post about MongoDB 3.0 performance, as I am leaving MongoDB (after 3 fantastic years) to join Riot Games – more about that in later posts. Before I go, some testing I was doing to verify WiredTiger performance with the journal disabled led to some eye-catching numbers. While performing a restore using 3.0 mongorestore to a 3.0 mongod with 4 collections, I noticed I was pushing close to 300,000 inserts/sec.

MongoDB 3.0: Benefits of Compression with Limited IO

I re-ran my compression testing from November to show the on-disk savings that compression in WiredTiger allows in my last post. The other part of that testing was to see if we could show a benefit to having compressed data from a read perspective. As I explained back in November, one of the scenarios where compression can help is when there is only limited IO capacity available. Once again, to simulate that, I used a relatively slow external USB 3.

MongoDB 3.0: Testing Compression

Back in November, with the newly minted RC0 version of MongoDB 3.0 (then 2.8 of course), I ran a series of tests to check out how well compression using the new WiredTiger storage engine worked with a ~16GB data sample. Compression on disk worked fine, but the follow up tests to show the benefits of using compression when limited IO is available ran into issues and I ended up having to run the tests again with an updated version (and the appropriate bug fix).