All Posts

| #tutorial

How to make your cards pop!

In this tutorial, I want to show you how to make your cards pop out on hover using only CSS. This effect looks like this: Here's the code, and a codepen. For an explanation of how everything works, read on! The HTML: <article class="card-outer">... Read More

| #tooling, #javascript

A guide to the Javascript tools ecosystem

I'm relatively new to the Javascript (JS) tooling ecosystem and it's... overwhelming. There seem to be many tools that solve the same problem. Sure there are tools more popular than others, and maybe some industry-standard tools. For example, Webpack... Read More

| #recap

2020 Year End Review

It's felt like March for months now, but 2020 is finally coming to a close! Thank you Time Lord for ending this year. Let's get one thing straight, the pandemic sucked. Really sucked. I wish I could use a more vulgar word but I'm trying to keep my wr... Read More

| #advice

7 tips to help you ace your first technical interview

As an interviewer, one of my favorite interviews was one where the candidate didn't finish the problem. This interview is memorable because of the dialogue. I understood their thought process, they asked the right questions, and they were receptive t... Read More

| #recap

Hacktoberfest 2020 Recap

Hacktoberfest is done and dusted and I wanted to do a quick recap on my experience. Reflecting on this month has helped me appreciate the hard work maintainers put into their projects. I've also found myself surprised by the open source world, and I'... Read More

| #elixir, #recap

My first 3 months with Elixir

I've been learning Elixir as a side project for the past few months. And I wanted to share my process and the rough learning plan I've been following. Before we dive in, I wanted to give some context on my journey so far. As much as I want to, I'm no... Read More

| #recap

Lessons from my first conference talk

Elixir conference happened earlier this month, and like all conferences this year, it was virtual. I wanted to give a huge shoutout to the organizers! Even though it was a virtual conference, they were able to deliver on a great conference experience... Read More

| #recap

2020 blog refresh: the process and lessons learnt

Welcome to my brand new website! I'm stoked that I can finally share it with people. I rushed a little towards the end to get it released. But I'm happy with how it all turned out. Along with a new design, I'm also using a new static site generator.... Read More

| #tutorial, #eleventy

Excerpts with Eleventy

I 100% struggled with getting excerpts in Eleventy (11ty). It seems so simple, but I couldn’t figure it out. I had two issues. Firstly, I got excerpts working using 11ty’s custom frontmatter data, unfortunately the excerpt did not render markdown. Wh... Read More

| #advice

Using Github and Notion to organise side projects

A while ago I posted a question on asking how people stay motivated with their side projects. There’s a bunch of great tips on that thread so definitely go check that out! I shared how I stay motivated, and that is by staying organised. Rarely... Read More

| #misc

What brings me joy as a developer

I've been thinking about joy lately. Which seems like a sad sentence to write. But I promise it's not that bad! It's more of a yearning for something new. I have all these questions in my head like, am I in the right career? Should I move back to Aus... Read More

| #design

Tips for developers starting out with web design

I’ve always had this dream of being the fullest, full stack developer. I would take an idea, design something awesome, and then go build it. Unfortunately, anytime I tried UI design I was a fish out of water. I’d stare at a blank screen not knowing w... Read More

| #phoenix, #tutorial

How to setup CI with Phoenix & Github Actions

Continuous Integration (CI) is the act of automating the build and testing of your code when it's committed to version control. For a small app like my blog, I wanted to setup CI without needing to create accounts with TravisCI or CircleCI. This is w... Read More

| #phoenix, #tutorial

Use Yarn in your Phoenix App

Yarn, like NPM, is a package manager to manage your front-end packages. When creating a Phoenix project you can't specify whether to use NPM or Yarn. And it doesn't look like there's any plan to support this; see github comment. Prior to NPM 6, Yarn... Read More

| #tutorial, #phoenix

Building a blog with Phoenix: Getting started

Today, I want to show you how to start building a blog using Phoenix. You can find the source code here: We are using Phoenix version 1.5.3 and Elixir version 1.10.3. We will cover: Project... Read More

| #learning, #phoenix, #elixir

Elixir & Phoenix: Phase 1 updates

Last week I wrote up a learning plan for Phoenix & Elixir. In this post, I wanted to add an addendum to phase 1 of the plan and give a quick progress update. Addendum First off, the addendum. After working through phase 1, I realized building a s... Read More

| #learning, #elixir, #phoenix

Phoenix & Elixir Learning Plan

Updated: July 17, 2020 - Added another resource I recently wrote about my experience playing around with Phoenix and Elixir for the first time. Looking back on that experience, I copied a lot of code without fully understanding how things worked. Not... Read More

| #phoenix

First impressions of Phoenix Framework

I've wanted to try out Phoenix ever since I heard the Changelog built their site on it. Yes, I'm very late to the party, version 1.0 of Phoenix, released in 2015. Thankfully I've found some time away from constant rewrites of this blog to dive into t... Read More

| #tutorial

Publishing RSS feed to

I enjoy publishing to It has some significant features that my site doesn't have, like commenting (I'm working on it!). In the past, I copied and pasted posts from my site to Devto. This process was not ideal and really bad for SEO to my site... Read More

| #misc

Black Lives Matter

I hope you can forgive this departure from the usual content, but at this point I can't keep silent about the racial inequality in America. My parents were first-generation immigrants, and like many others, they moved to Australia for a better life.... Read More

| #documentation

Documentation Driven Design

I started this year with a goal; develop features faster without sacrificing quality. I soon realized that I couldn't find the balance between quality and speed and became increasingly stressed at work. Unfortunately, for the people and animals in my... Read More

| #tutorial, #ruby

Building the Ruby Proto Compiler gem

Protocol Buffers (Protobufs) are a great way to pass information between your apps. Written by Google, Protobufs give you the readability of JSON but the structure of something like XML. Using the protoc tool you can compile the Protobufs into a lang... Read More

| #recap

2019 blog refresh

I like to refresh my blog now and then. Partly because I want to update the UI but mostly because I forget how I built it in the first place. I've finished my refresh this week and it's about time I wrote something. Judging by the age of my previous... Read More

| #recap

Things that I don't know about (2019 edition)

It’s 2019 and there’s still a ton of things that I don’t know about coming out of 2018. I wanted to write these down somewhere so I can refer to it throughout the year. It’s daunting realizing how much I don’t know. But I enjoy recognizing my knowled... Read More

| #freelancing, #advice

Freelance Advice for Past me

When I first made the choice to become a freelancer and I had no idea where to begin. I reached out to my old manager who was the sales lead/product manager at my old company. We covered a range of topics starting with how to get leads. To copyrighti... Read More

| #tutorial, #rspec

Setting Up RSpec and FactoryGirl

Not another RSpec tutorial! I know, there’s plenty of well written tutorials out there. But, thankfully, this is only a cheat sheet. The article below outlines the steps to get RSpec and Factory girl set up in your Rails app. If you want a TL;DR, fol... Read More