Rails to Serverless: A Christmas Story

Estimated reading time: 7 minutes ‘Twas the night before Christmas, and all through the house, not a server was stirring, not even a mouse! This meant that my side project Secret Santa was not being used, yet is still highly available with no running costs! Why? Well, because on Christmas Eve, you might be too late to organise a secret santa and when an app is not in use when it comes to serverless, you don’t pay.

Cloudwatch Monitoring and Alerting with Slack

One of the important considerations when running an application is knowing when there are errors, whether or not the service is busy and understanding how your users are using the application to build the best user experiences and work on delivering more business-value. In order to do that though, you need to implement some monitoring, alerting and/or analytics tools to build up that picture. Recently, I helped a team which had built an application which was running in containers behind a load balancer.

Building a Facebook Chatbot using Cloud Run

In the quest to move everything to a pay-what-you-use model and maintaining my enthusiasm for serverless, I was inspired by Nathan’s post over on DevOpStar about creating a chatbot using facebook’s messenger platform. With my past as a town planner, I’ve been wanting to mix my two skills with programming/devops and town planning to help make the community better for a while, but been struggling to find some inspriation for an idea.

Rails on Kubernetes

Reading time (9 minutes) For some time, I’ve run my fun side-project site, Secret Santa on Heroku. In fact, it’s been over three years that I’ve had the site there. Heroku is great for developers wanting to test out their ideas as they have a wonderful free tier of web servers, which has served me well over the past few years. Having spent the last 18 months with my feet firmly planted in the DevOps side of things, I wanted to experiment and test out some things I’ve learned along the way and get my ruby on rails application into the worlds fastest growing container orchestration engine, Kubernetes.

Reduce your build time by leveraging the cache on Google Cloud

Following on from my post over at the Mechanical Rock blog, I thought I’d add in another post on how to leverage cloudbuild and GCR Google Container Registry to reuse docker layers to get fast feedback cycles. In this case, I’ll be referring to my open source application, Secret Santa which is a ruby on rails based application. I’m currently in the process of moving it from Heroku to GCP. I’m currently evaluating CloudRun and Kubernetes for it, but that is a post for another time.


An ex Town Planner, I used to develop websites and small web applications in my spare time for fun before leaving my job to follow what became a passion and began work as a professional software developer in October, 2015. Since then I’ve worked with three software companies in Perth, and am currently employed as a DevOps Engineer with Mechanical Rock. Not to be confused with “the ops guy” which is part of the DevOps role, but to be clear, I still write software too!

Talkback: A serverless web application built with GraphQL, Apollo and AppSync

A few weeks ago my employer, Mechanical Rock hosted a conference in Perth, Western Australia talking all things cloud computing, called Latency with the tagline: The only local conference dedicated to building secure, high performing cloud native applications. I’d been working with some relatively new tech in the past few months with AppSync which had only just come out of beta and was made “Generally Available” in April this year.

Use git credential store instead of keychain

When writing software in a team it’s crucial to work with version control. Version control enables multiple developers to work with code a the same time without stepping on each others toes and helps keep track of changes. Git is one of the tools used to track these changes. A recent update to the Apple developer tools caused Apple’s Git to seemingly randomly(?) take over and try to be helpful with storing credentials for git related activities in their “Keychain” app which is installed on all Macs.

Working with Docker and Hugo

Using multiple computers with varying operating systems and the associated quirks that come with them can be very annoying quickly. They behave differently depending on which one you’re using and when developing code or using systems a certain way for a while, the behaviour becomes second nature so when you’re switching to a new system or if an update or upgrade changes your workflow it can be a big time cost in getting back up and running.

Hugo static site hosting and delivery on AWS

What a long strange trip it’s been building this site! We’ve gone from conflicting documentation, to recommendations from different pros and we’re right back where we started! In this post, I discuss setting up a static website with multiple pages using AWS. The tech behind it includes: Route53 CloudFront Simple Storage Service (S3) Certificate Manager Identity Access Management CodeCommit I started with the knowledge I had learned from completing the 2018 June edition of the AWS certification course on A Cloud Guru of the developer associate level and after running in to a few hurdles we have liftoff.


Send me your compliments, complaints, rants and anything you want to say. Submit function submitToAPI(e) { e.preventDefault(); toggleSendButtonDisabledAttribute(true) const name = document.getElementById("name-input").value; const email = document.getElementById("email-input").value; const message = document.getElementById("message-input").value; const Namere = /[A-Za-z]{1}[A-Za-z]/; if (!Namere.test(name)) { alert("Enter your name, more than 1 character please!"); return; } if (email == "") { alert("Please enter your email"); return; } const reeamil = /^([\w-\.

Privacy Policy

Effective date: July 23, 2018 Jean-Klaas Gunnink (“me”, “I”, or “my”) operates the https://jeanklaas.com website (hereinafter referred to as the “Service”). This page informs you of my policies regarding the collection, use, and disclosure of personal data when you use my Service and the choices you have associated with that data. By using the Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in my Terms and Conditions, accessible from https://jeanklaas.