Archives
All the articles I've archived.
-
Automating Household Chores Reminders With Tody
Automating household chores reminders using Tody app to manage infrequent but important tasks like changing toothbrush heads and bedsheets.
-
Structured meetings are the Product Manager's secret weapon
Well-structured meetings are a secret weapon that product managers should utilise to facilitate effective collaboration between product, UX, and engineering.
-
Are AMP Pages Necessary In Your SEO Strategy?
AMP was introduced by Google as a web development framework to help speed up the web for mobile devices. Learn whether it's necessary for your SEO strategy.
-
Adding Sanity.io Headless CMS To Eleventy
A guide to integrating Sanity.io headless CMS with Eleventy, including setup, data retrieval, and rendering blog posts.
-
GTM Global Click Event Tags
Auto-event variables can help you reduce the number of tags and triggers you need for measuring events.
-
Staying Productive as a Remote Product Manager in the new COVID-19 World
Many tech companies have responded to the coronavirus pandemic by shutting down offices. Learn how to stay productive as a remote product manager.
-
First 30 Days from Software Engineer to Product Manager
Reflections on transitioning from Software Engineer to Product Manager, covering challenges, expectations vs reality, and handling the first 30 days.
-
Migrating Hugo to Eleventy - Initial Thoughts
Migrating from Hugo to Eleventy has been a really pleasant and enjoyable experience.
-
How to set up unit testing in NativeScript Vue
Learn how to set up unit testing in NativeScript Vue using Jest and Vue Test Utils when the Vue way doesn't work out of the box.
-
Creating a Share Extension in NativeScript
Share extensions are a type of app extension in iOS that extend functionality to your app. Learn how to create a share extension in NativeScript.
-
Nativescript-vue Appium error - pid argument must be of type number
After setting up Appium and Nativescript-dev-appium for end-to-end testing in your Nativescript app, you may encounter this error when running your tests for the first time
-
Removing duplicates from an array in ES6 Javascript
ES6 introduces a new type of Set object that stores unique values. This is very useful if you want to get only unique values from an array, similar to Ruby's uniq method.
-
Passing functions as props an anti-pattern in Vue.js
Passing functions down as props is mostly considered an anti-pattern in Vue.js. It links both parent child components together with two-way data binding. Vue.js has a better native way of handling this.
-
How to successfully integrate Netlify CMS with Hexo
If you're using Hexo static site generator and trying to integrate Netlify CMS, you may encounter a cryptic error. Learn how to fix it.
-
Do You Need A Growth Hacker or Growth Engineer?
Reflections on one year transitioning from growth hacker to growth engineer, exploring the difference between growth hacking and growth engineering.
-
Vue Renderless Component Fun: Google Analytics Event Tracker
Let's say you needed to track how many times a specific button in your Vue app is clicked on using Google Analytics, how would you do it? The first thing that comes to mind might be with a click handler.
-
Building My Blog with Vuepress
Having experimented with multiple static site generators and not being very satisfied with all of them for a simple personal blog / website use case, Vuepress hits the sweet spot
-
CircleCI 2.0 and Rails Gotchas
CircleCI was a great automation timesaver previously when I worked with Opswork. It ran all our tests and deployed to Opsworks after all tests turned green
-
Workaround For Chrome's Forced HSTS On Dev Domains In Puma-dev
I use the .dev domain a lot on localhost when working with Rails apps in development. It seems that the Chrome 63 update has stated enforcing HSTS on .dev domains, which means you'll need self-signed certificates for your dev environment sites to work
-
On-Site SEO For Your Jekyll Blog
One of the best ways to grow your traffic is via organic SEO. The concept is simple, you add in new content that is relevant to the audience you want visiting your site, and with more content, it increases the chances that your website appears in relevant searches
-
Migrating Ghost To Jekyll + Github Pages
Guide to migrating from Ghost on DigitalOcean to Jekyll hosted on Github Pages, including theme setup, deployment, and custom domains.
-
Rotating Your Rails Logs In Production
I encountered a really amateur issue that I think shouldn't be happening after so many years working in Rails - my Rails log ballooned into a Godzilla proportions and I ran out of disk space
-
Testing For Rails + Webpacker + VueJS
I've been exploring how to implement a decent unit testing workflow instead of relying too much on feature testing.
-
HTTParty and Rails Caching Gotcha
If you try to cache a HTTParty response directly, you find that you run into some strange error quickly
-
Type Less To Deploy Capistrano
I don't like to type bundle exec cap production deploy so I wrote a quick rake task to run that command with fewer keystrokes.
-
The Dangers Of Constantize In Rails
Metaprogramming in Ruby / Rails is so sweet. In one of my core projects, I have utilised Rails constantize method to dynamically call classes. Let's say we are keeping a record of people interested in adopting a pet and the pets available for adoption.
-
Automating A Ghost Blog Install With Ansible
We are all about efficiency as developers. Why hammer commands line after line into the terminal when you can write code to do it for you? As I setup this Ghost-powered blog, I set out to document down this process as repeatable code.