<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Experiment, Fail, Learn, Repeat</title>
    <link>https://www.hairizuan.com/</link>
    <description>Recent content on Experiment, Fail, Learn, Repeat</description>
    <generator>Hugo -- gohugo.io</generator>
    <copyright>Copyright &amp;copy; 2017 - Hairizuan Noorazman</copyright>
    <lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.hairizuan.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Privacy Policy</title>
      <link>https://www.hairizuan.com/policy/</link>
      <pubDate>Tue, 05 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/policy/</guid>
      <description>Privacy Policy for www.hairizuan.com Last updated: 5 September 2023
At hairizuan.com (hereinafter referred to as &amp;ldquo;we,&amp;rdquo; &amp;ldquo;us,&amp;rdquo; or &amp;ldquo;our&amp;rdquo;), we take your privacy seriously. This Privacy Policy outlines how we collect, use, disclose, and safeguard your personal information when you visit our blog, www.</description>
    </item>
    
    <item>
      <title>R Googleslides Package</title>
      <link>https://www.hairizuan.com/rgoogleslides/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/rgoogleslides/</guid>
      <description>Privacy Policy The rgoogleslides package includes a default google credentials in order to make it easier to try the following package. (It is recommended for you to use your client id/client secret from your own Google Project though)</description>
    </item>
    
    <item>
      <title>Speaker Profile</title>
      <link>https://www.hairizuan.com/speaker-profile/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/speaker-profile/</guid>
      <description>Bio Hairizuan is a Devops Engineer at Kiteworks. He is a avid fan of tools and technologies and has dabbled in various programming languages such as Golang, Python, Elm and R.</description>
    </item>
    
    <item>
      <title>Tools</title>
      <link>https://www.hairizuan.com/tools/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/tools/</guid>
      <description>The following page lists out all the tools that are being built and then embeded to this blog
Lifestyle  BMI Calculator Bus Arrival  </description>
    </item>
    
    <item>
      <title>About Me</title>
      <link>https://www.hairizuan.com/about/</link>
      <pubDate>Wed, 09 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/about/</guid>
      <description>Below is a collection of some of projects I&amp;rsquo;ve been working on. These are not code snippets but of tools/internal libraries I&amp;rsquo;ve built to solve issues that I have in the past</description>
    </item>
    
    <item>
      <title>Measuring Coding Tool Effectiveness</title>
      <link>https://www.hairizuan.com/measuring-coding-tool-effectiveness/</link>
      <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/measuring-coding-tool-effectiveness/</guid>
      <description>Most online content regarding AI coding tools focuses heavily on input and output token counts. While these metrics are useful for understanding the raw volume of data processed, they often fail to address the actual effectiveness of those tokens in solving real-world engineering problems.</description>
    </item>
    
    <item>
      <title>Building a dictation app with Swift</title>
      <link>https://www.hairizuan.com/building-a-dictation-app-with-swift/</link>
      <pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/building-a-dictation-app-with-swift/</guid>
      <description>I&amp;rsquo;ve been wanting to reduce the amount of typing I do on a daily basis. Between writing messages, emails, and documentation - there&amp;rsquo;s a lot of text to produce. macOS does have a built-in dictation feature but I had concerns about its accuracy - it relies on a model running locally on the Mac, and I figured a cloud-based speech-to-text service would produce better results, especially for technical jargon and longer dictation sessions.</description>
    </item>
    
    <item>
      <title>Learnings from building agents</title>
      <link>https://www.hairizuan.com/learnings-from-building-agents/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/learnings-from-building-agents/</guid>
      <description>I&amp;rsquo;ve tried to build a bunch of AI agents at work for a variety of purpose and with that, learnt a couple of interesting properties out of it:
Should it even be an agent?</description>
    </item>
    
    <item>
      <title>Learnings from using Claude Code</title>
      <link>https://www.hairizuan.com/learnings-from-using-claude-code/</link>
      <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/learnings-from-using-claude-code/</guid>
      <description>Here are some of the learnings for using Claude Code. This will be a running document of learnings as we go along for the ride of using this tool
Last update: 26 January 2026</description>
    </item>
    
    <item>
      <title>Monitoring Jenkins via Prometheus</title>
      <link>https://www.hairizuan.com/monitoring-jenkins-via-prometheus/</link>
      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/monitoring-jenkins-via-prometheus/</guid>
      <description>It is pretty important to understand how our jenkins job is running. We can technically keep querying the jenkins server via jenkins API but that would mean trying to parse the every changing response - which could be quite a painful process to go through.</description>
    </item>
    
    <item>
      <title>Using Alloy and Grafana for extracting metrics and pushing to dashboard</title>
      <link>https://www.hairizuan.com/using-alloy-and-grafana-for-extracting-metrics-and-pushing-to-dashboard/</link>
      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-alloy-and-grafana-for-extracting-metrics-and-pushing-to-dashboard/</guid>
      <description>I need to deploy a metrics exporter to check for nodes on instances and push it into a grafana metrics dashboard
We can demonstrate this with 2 instances
Deploy alloy to collect Node Metrics We would first install alloy of the instance we would want to monitor.</description>
    </item>
    
    <item>
      <title>Backfilling logs on Loki (Grafana Stack)</title>
      <link>https://www.hairizuan.com/backfilling-logs-on-loki-grafana-stack/</link>
      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/backfilling-logs-on-loki-grafana-stack/</guid>
      <description>I have a small engineering problem to resolve which to export logs from an android application and save it into a monitoring stack of sorts. The logs are mostly only for debugging purposes because its a pure pain to try to go chat with the user that holds the phone in order to debug the issue.</description>
    </item>
    
    <item>
      <title>Container Signing Experimentation</title>
      <link>https://www.hairizuan.com/container-signing-experimentation/</link>
      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/container-signing-experimentation/</guid>
      <description>One of the major things that I was researching on for security stuff for distributing software is the capability to answer &amp;ldquo;is this software produced from your company&amp;rdquo;? This led me to a rabbit hole for the signing mechanism for containers.</description>
    </item>
    
    <item>
      <title>Trying ZFS filesystems</title>
      <link>https://www.hairizuan.com/trying-zfs-filesystems/</link>
      <pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-zfs-filesystems/</guid>
      <description>There is a technical challenge and interesting requirement in my job that requires lightweight snapshot capability of a folder/set of files. Technically, it should be ok to simply create a volume snapshot on the cloud vendor of this - however - creating such snapshots actually take a lot of time and potentially, a lot of space - it&amp;rsquo;s not the cheapest solution for this.</description>
    </item>
    
    <item>
      <title>Solving the File Sync Bottleneck in tests: How Torrenting Could Be the Answer - Part 1</title>
      <link>https://www.hairizuan.com/solving-the-file-sync-bottleneck-in-tests-how-torrenting-could-be-the-answer-part-1/</link>
      <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/solving-the-file-sync-bottleneck-in-tests-how-torrenting-could-be-the-answer-part-1/</guid>
      <description>At my job, one recurring technical challenge has been syncing massive files—often ranging from 10GB to 20GB—across multiple servers. We&amp;rsquo;re essentially copying over large iso files around to various servers. The current process still somewhat works but it is bandwidth-intensive, and increasingly difficult to manage as our the number of servers we need to sync this large file grows.</description>
    </item>
    
    <item>
      <title>GKE as Gitlab Runner</title>
      <link>https://www.hairizuan.com/gke-as-gitlab-runner/</link>
      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/gke-as-gitlab-runner/</guid>
      <description>Part of my job involves me dealing with Gitlab on a daily basis. Gitlab is a complicated beast to handle and it took a while to get around the various features that the product offers.</description>
    </item>
    
    <item>
      <title>Configuring Compute Storage</title>
      <link>https://www.hairizuan.com/configuring-compute-storage/</link>
      <pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/configuring-compute-storage/</guid>
      <description>When we initially start playing around with compute instances in the cloud, we generally just deploy instances without thinking too much about it. We don&amp;rsquo;t think about the application requirements or how CPU or Memory may require.</description>
    </item>
    
    <item>
      <title>Building a code assessment tool but in Kubernetes</title>
      <link>https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/</link>
      <pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/building-a-code-assessment-tool-but-in-kubernetes/</guid>
      <description>Container based security measures  Smaller images for code execution platform Not running the container as root   Kubernetes related  Run the deployment in different namespace Setting up a new Service account in kubernetes Ensuring service account token is not mounted in potentially vulnerable pods Ensuring that the container is started with non-root access Ensuring resource limits are set Set security context Setting network policy Using a stricter seccomp/apparmor profile   Tool related  Ensure limited logs sniffed Ensure that there is a time limit of code executions   Future efforts  I had previously attempted to build a code assessment tool in docker.</description>
    </item>
    
    <item>
      <title>Connect Slaves Jenkins configured with JCasC - Docker</title>
      <link>https://www.hairizuan.com/connect-slaves-jenkins-configured-with-jcasc-docker/</link>
      <pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/connect-slaves-jenkins-configured-with-jcasc-docker/</guid>
      <description>This is a continuation of the previous blog post for automating Jenkins server setup. The previous setup only created a setup for a single node Jenkins build server farm. This definitely won&amp;rsquo;t be sufficient for larger teams where they would be building applications and running workflows on a more frequent basis.</description>
    </item>
    
    <item>
      <title>Automating Jenkins Initial Setup</title>
      <link>https://www.hairizuan.com/automating-jenkins-initial-setup/</link>
      <pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/automating-jenkins-initial-setup/</guid>
      <description>Jenkins, a pretty popular Continuous Integration/Continuous Deployment (CI/CD) build tool, plays a pivotal role in automating the software development/deployment process. Over the years, Jenkins has evolved to become an extremely versatile automation server that facilitates continuous integration and delivery by orchestrating the building, testing, and deployment of code.</description>
    </item>
    
    <item>
      <title>Building RPMs and storing it in Artifact Registry</title>
      <link>https://www.hairizuan.com/building-rpms-and-storing-it-in-artifact-registry/</link>
      <pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/building-rpms-and-storing-it-in-artifact-registry/</guid>
      <description>Introduction When one mentions about application packaging - the usual first thought that can cross a person&amp;rsquo;s mind is how the application would be packaged in docker containers. That is a somewhat fair thing to think about - containers have gotten pretty common in developer circles.</description>
    </item>
    
    <item>
      <title>Github actions for shopping list application</title>
      <link>https://www.hairizuan.com/github-actions-for-shopping-list-application/</link>
      <pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/github-actions-for-shopping-list-application/</guid>
      <description>I have a basic shopping list application that is available in the following code base: https://github.com/hairizuanbinnoorazman/Go_Programming/tree/master/Apps/shopping-list. This is a simple Golang application that also embeds a generated javascripts that has been transpiled into Javascript files.</description>
    </item>
    
    <item>
      <title>Using Terraform for deploying databases and applications in Google Cloud</title>
      <link>https://www.hairizuan.com/using-terraform-for-deploying-databases-and-applications-in-google-cloud/</link>
      <pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-terraform-for-deploying-databases-and-applications-in-google-cloud/</guid>
      <description>Over the past few months, I have been toying with the idea of going all in with Ansible or all in with Terraform. Both tools are pretty popular tools when it comes to application and tools deployment.</description>
    </item>
    
    <item>
      <title>Nginx as API Gateway - focusing on auth_request directive</title>
      <link>https://www.hairizuan.com/nginx-as-api-gateway-focusing-on-auth_request-directive/</link>
      <pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/nginx-as-api-gateway-focusing-on-auth_request-directive/</guid>
      <description>On virtual machine How to &amp;ldquo;protect&amp;rdquo; api requests https://www.nginx.com/blog/deploying-nginx-plus-as-an-api-gateway-part-1/
Mostly is the auth_request directive
Microservices are a software architectural style that structures an application as a collection of loosely coupled, independently deployable services.</description>
    </item>
    
    <item>
      <title>System Design Notes</title>
      <link>https://www.hairizuan.com/system-design-notes/</link>
      <pubDate>Wed, 18 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/system-design-notes/</guid>
      <description>General framework for system design interviews From the following website: https://www.youtube.com/watch?v=i7twT3x5yv8
  Specify Requirements
  Design High Level Functional Components
  Deep dive to specific &amp;ldquo;interesting&amp;rdquo; pieces of the components</description>
    </item>
    
    <item>
      <title>Access Cloud SQL from Google Cloud Run without Serverless VPC Access Connectors but via VPC</title>
      <link>https://www.hairizuan.com/access-cloud-sql-from-google-cloud-run-without-serverless-vpc-access-connectors-but-via-vpc/</link>
      <pubDate>Wed, 11 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/access-cloud-sql-from-google-cloud-run-without-serverless-vpc-access-connectors-but-via-vpc/</guid>
      <description>Introduction Previously, Serverless VPC Access connector is a commonly used solution to connect Cloud Run to Cloud SQL securely. This option is still available for use today but with all the previous blog posts that cover how we can:</description>
    </item>
    
    <item>
      <title>Multiple Database Support - MySQL and SQLite support</title>
      <link>https://www.hairizuan.com/multiple-database-support-mysql-and-sqlite-support/</link>
      <pubDate>Wed, 04 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/multiple-database-support-mysql-and-sqlite-support/</guid>
      <description>I intend to try out the Turso service in order to see if there is any other potential serverless database that would have pretty decent type of billing for small projects.</description>
    </item>
    
    <item>
      <title>Serverless Applications with Cloud Run with Serverless MySQL from PlanetScale</title>
      <link>https://www.hairizuan.com/serverless-applications-with-cloud-run-with-serverless-mysql-from-planetscale/</link>
      <pubDate>Wed, 27 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/serverless-applications-with-cloud-run-with-serverless-mysql-from-planetscale/</guid>
      <description>Serverless computing, as seen in platforms like Cloud Run or AWS Lambda, allows developers to run code without managing the underlying infrastructure. This is achieved by automatically scaling the resources based on the incoming requests, and users are billed based on the actual execution time and resources consumed during each function or container invocation.</description>
    </item>
    
    <item>
      <title>Access Cloud SQL from Google Kubernetes Cluster without Cloud SQL Proxy</title>
      <link>https://www.hairizuan.com/access-cloud-sql-from-google-kubernetes-cluster-without-cloud-sql-proxy/</link>
      <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/access-cloud-sql-from-google-kubernetes-cluster-without-cloud-sql-proxy/</guid>
      <description>Introduction Similar to my previous blog post, we would usually be connecting Google Kubernetes Engine (GKE) clusters to Cloud SQL databases by using the Cloud SQL Proxy. However, we can now use Private Service Connect, which allows for private communication between different Google Cloud services, similar to how we did for connecting our application in Google Compute Engine (VM) to a Cloud SQL instance.</description>
    </item>
    
    <item>
      <title>Access Cloud SQL from Google Compute Engine without Cloud SQL Proxy</title>
      <link>https://www.hairizuan.com/access-cloud-sql-from-google-compute-engine-without-cloud-sql-proxy/</link>
      <pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/access-cloud-sql-from-google-compute-engine-without-cloud-sql-proxy/</guid>
      <description>Traditionally, when connecting a Google Compute Engine instance to a Cloud SQL database, the Cloud SQL Proxy was commonly used to facilitate secure connections. The Cloud SQL Proxy acted as an intermediary between the application running on a Compute Engine instance and the Cloud SQL database.</description>
    </item>
    
    <item>
      <title>Persistance in Google Cloud Run with FUSE storage to Google Cloud Storage</title>
      <link>https://www.hairizuan.com/persistance-in-google-cloud-run-with-fuse-storage-to-google-cloud-storage/</link>
      <pubDate>Wed, 06 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/persistance-in-google-cloud-run-with-fuse-storage-to-google-cloud-storage/</guid>
      <description>Google Cloud Run is a serverless compute platform that automatically scales applications in response to traffic. It is designed to run stateless containers, meaning that the instances of your application are ephemeral and can be spun up or down as needed.</description>
    </item>
    
    <item>
      <title>Accessing Google Compute Instances via Cloud Run</title>
      <link>https://www.hairizuan.com/accessing-google-compute-instances-via-cloud-run/</link>
      <pubDate>Wed, 30 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/accessing-google-compute-instances-via-cloud-run/</guid>
      <description>The typical way to access Google compute instances from Cloud Run is usually done via the Serverless VPC Access. However, setting this up would mean that we are essentially create an instance that would be used as a proxy to send traffic from Cloud Run to the Google Compute instance.</description>
    </item>
    
    <item>
      <title>Storing Helm in Docker Registries</title>
      <link>https://www.hairizuan.com/storing-helm-in-docker-registries/</link>
      <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/storing-helm-in-docker-registries/</guid>
      <description>We can apparently now store helm charts in Docker registries - this was made available via helm commands since v3.8.0. https://helm.sh/docs/topics/registries/
Now with that being available for use, we can now use it across a variety of storage mechanism (as compared in the past when the artifacts produced through it has to be managed in some of file system and would require some of index file to list all available helm charts available).</description>
    </item>
    
    <item>
      <title>Python call Golang functions via Wasm/Wasi</title>
      <link>https://www.hairizuan.com/python-call-golang-functions-via-wasm/wasi/</link>
      <pubDate>Wed, 16 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/python-call-golang-functions-via-wasm/wasi/</guid>
      <description>Inspirations While I was watching the following video of a talk by Richard Feldman: https://www.youtube.com/watch?v=zX-kazAtX0c&amp;amp;ab_channel=ChariotSolutions. He was covering a pretty interesting concept/topic of how would one &amp;ldquo;slowly&amp;rdquo; migrate codebases from one language to another.</description>
    </item>
    
    <item>
      <title>Writing code to store items in memory with Golang but with maps</title>
      <link>https://www.hairizuan.com/writing-code-to-store-items-in-memory-with-golang-but-with-maps/</link>
      <pubDate>Wed, 09 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/writing-code-to-store-items-in-memory-with-golang-but-with-maps/</guid>
      <description>The following blog post is a continuation of the previous blog post on Writing code to store items in memory with Golang. The previous blog post was mostly to cover simpler cases where we storing something simple like data in a single array/slice.</description>
    </item>
    
    <item>
      <title>Writing code to store items in memory with Golang</title>
      <link>https://www.hairizuan.com/writing-code-to-store-items-in-memory-with-golang/</link>
      <pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/writing-code-to-store-items-in-memory-with-golang/</guid>
      <description>I have a small tiny application that is a http api server that is meant to store data temporarily in memory. There is no need to persist data into any file or even database.</description>
    </item>
    
    <item>
      <title>Using Emulators for testing Google Cloud Datastore integration</title>
      <link>https://www.hairizuan.com/using-emulators-for-testing-google-cloud-datastore-integration/</link>
      <pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-emulators-for-testing-google-cloud-datastore-integration/</guid>
      <description>Motivation for finding emulator for Google Cloud Datastore Many applications out there in the real world would require the use of databases to persist data. In the cases where an application depends on databases such as mysql or mariadb or postresql, we can create some form of &amp;ldquo;staging&amp;rdquo; server where we can test that the application works as expected.</description>
    </item>
    
    <item>
      <title>Heap datastructure with Slices/Arrays in Golang</title>
      <link>https://www.hairizuan.com/heap-datastructure-with-slices/arrays-in-golang/</link>
      <pubDate>Wed, 19 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/heap-datastructure-with-slices/arrays-in-golang/</guid>
      <description>Part of the software engineer journey is to learn data structures - especially if one were to go for the software interviews. Surprising, data structures knowledge and familiarity with it becomes somewhat important in them - with knowledge with certain data strucutre, certain problems become somewhat easier (also, sometimes, all one can do is simply stare in wonder at the algorithms and data structures that people in the past created)</description>
    </item>
    
    <item>
      <title>Deploy Golang Apps that interact with headless service in Kubernetes</title>
      <link>https://www.hairizuan.com/deploy-golang-apps-that-interact-with-headless-service-in-kubernetes/</link>
      <pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/deploy-golang-apps-that-interact-with-headless-service-in-kubernetes/</guid>
      <description>In certain application scenarios - there is a need to have applications that need to do client side load balancing to a bunch of servers. Such cases are pretty rare - but we won&amp;rsquo;t be covering the exect reasons or scenarios or when these are needed.</description>
    </item>
    
    <item>
      <title>Redis vs Memcached via Golang</title>
      <link>https://www.hairizuan.com/redis-vs-memcached-via-golang/</link>
      <pubDate>Wed, 05 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/redis-vs-memcached-via-golang/</guid>
      <description>This is often a question that often comes up during system design interviews. If one were to design a system that requires the use of cache - one common question that comes up would be whether to use memcached or to use redis.</description>
    </item>
    
    <item>
      <title>Trying to create MariaDB replica server</title>
      <link>https://www.hairizuan.com/trying-to-create-mariadb-replica-server/</link>
      <pubDate>Wed, 28 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-to-create-mariadb-replica-server/</guid>
      <description>A common architectural pattern for relational databases is to create an additional replica server. This pattern usually come up due because most applications are usually read heavy - data is usually read to be presented to users.</description>
    </item>
    
    <item>
      <title>Replicating golang interfaces with static python, run with mypy</title>
      <link>https://www.hairizuan.com/replicating-golang-interfaces-with-static-python-run-with-mypy/</link>
      <pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/replicating-golang-interfaces-with-static-python-run-with-mypy/</guid>
      <description>After coding in both Python and Golang, I now have a very strong preference for strongly typed languages. There is a certain charm and beauty in being able to have the IDE that I&amp;rsquo;m working in able to provide good autocomplete suggestions for the code - there is less for a need to keep moving files in the codebases just to ensure that the function spelling and params are correct etc.</description>
    </item>
    
    <item>
      <title>Writing static python with mypy</title>
      <link>https://www.hairizuan.com/writing-static-python-with-mypy/</link>
      <pubDate>Wed, 14 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/writing-static-python-with-mypy/</guid>
      <description>Python is a dynamically typed language - which provides a huge developer experience as compared to a statically typed language such as Golang. Python does serve as a nice introductory programming language for new developers but as time goes by, it&amp;rsquo;s pretty easy to see why static programming language is why nicer to work with as compared to dynamically typed language.</description>
    </item>
    
    <item>
      <title>Running database migrations in Helm chart</title>
      <link>https://www.hairizuan.com/running-database-migrations-in-helm-chart/</link>
      <pubDate>Wed, 07 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/running-database-migrations-in-helm-chart/</guid>
      <description>In many examples for helm charts, the general focus is on the &amp;ldquo;2nd&amp;rdquo; day operations of having applications running without too much issues. In the case for usual web developers, that would mean applications handled with kubernetes deployment objects which would run a set number of replicas (or handled via HPA) in the kubernetes cluster.</description>
    </item>
    
    <item>
      <title>Using smaller base images for applications, slim images? alpine images? distroless images</title>
      <link>https://www.hairizuan.com/using-smaller-base-images-for-applications-slim-images-alpine-images-distroless-images/</link>
      <pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-smaller-base-images-for-applications-slim-images-alpine-images-distroless-images/</guid>
      <description>When building applications in docker images, there is sometimes a need to consider the size of the containers. There are multiple reasons for us to monitor and check this:
 In the case where our container registry is actually by us rather than the on public registries.</description>
    </item>
    
    <item>
      <title>Altering outputs of helm installations with post-renderer via kustomize</title>
      <link>https://www.hairizuan.com/altering-outputs-of-helm-installations-with-post-renderer-via-kustomize/</link>
      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/altering-outputs-of-helm-installations-with-post-renderer-via-kustomize/</guid>
      <description>When one thinks of Kubernetes and deploying stuff into Kubernetes, one of the usual ways to get such stuff into Kubernetes is through the use of Kubernetes manifest files. Kubernetes manifest files describe various different resources in Kubernetes cluster - some primary examples that are often used are Deployment, Configmap, Secret, Service and even Ingress Kubernetes resources/objects.</description>
    </item>
    
    <item>
      <title>Updating configuration in Kubernetes pods managed via Helm</title>
      <link>https://www.hairizuan.com/updating-configuration-in-kubernetes-pods-managed-via-helm/</link>
      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/updating-configuration-in-kubernetes-pods-managed-via-helm/</guid>
      <description>When building an application, a common way to alter and set the running properties of the application is to use configuration files that could be written with JSON or Yaml files.</description>
    </item>
    
    <item>
      <title>Consistent Hashing Implementation in Golang</title>
      <link>https://www.hairizuan.com/consistent-hashing-implementation-in-golang/</link>
      <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/consistent-hashing-implementation-in-golang/</guid>
      <description>In the real world, we often have to deal with such large traffic loads that it is almost necessary to know that there is possibility that we might need to get data stored in a cluster of machines.</description>
    </item>
    
    <item>
      <title>Rethinking migrations in Golang Applications</title>
      <link>https://www.hairizuan.com/rethinking-migrations-in-golang-applications/</link>
      <pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/rethinking-migrations-in-golang-applications/</guid>
      <description>This is more of a reminder post for me that every aspect of application development is critical and sufficient thought should be put behind it. This time around, it&amp;rsquo;s on database migration within applications.</description>
    </item>
    
    <item>
      <title>Writing Rego Policies for authorization in Golang Apps</title>
      <link>https://www.hairizuan.com/writing-rego-policies-for-authorization-in-golang-apps/</link>
      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/writing-rego-policies-for-authorization-in-golang-apps/</guid>
      <description>When building login systems in applications, there are generally two parts to it; authentication and authorization. Authentication is the step to provide and identify who the user that is attempting to use the system.</description>
    </item>
    
    <item>
      <title>Chrome Extension to get rid of Youtube Shorts</title>
      <link>https://www.hairizuan.com/chrome-extension-to-get-rid-of-youtube-shorts/</link>
      <pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/chrome-extension-to-get-rid-of-youtube-shorts/</guid>
      <description>I hate Youtube Shorts with a passion. Youtube shorts are a plague in my ways and it seems to be that it&amp;rsquo;s main purpose is to drag me down to waste hours of my time watching stupid short clips that are usually only mildly amusing.</description>
    </item>
    
    <item>
      <title>Running kubectl in a Kubernetes Pod</title>
      <link>https://www.hairizuan.com/running-kubectl-in-a-kubernetes-pod/</link>
      <pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/running-kubectl-in-a-kubernetes-pod/</guid>
      <description>I have a little side project at work where it somewhat requires me to allow a pod within a kubernetes cluster to access and query and manipulate resources in a Kubernetes cluster.</description>
    </item>
    
    <item>
      <title>Serving Videos with Golang via HLS</title>
      <link>https://www.hairizuan.com/serving-videos-with-golang-via-hls/</link>
      <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/serving-videos-with-golang-via-hls/</guid>
      <description>I was watching a bunch of tiktok and youtube videos recently and kind of started to wonder how such companies serve videos to their consumers. That is where I started to going down the rabbit hole of how videos are served and how to try to ensure the possibility that videos can be played without requiring to download the entire video.</description>
    </item>
    
    <item>
      <title>Yaml linting and auto completion in Visual Studio Code</title>
      <link>https://www.hairizuan.com/yaml-linting-and-auto-completion-in-visual-studio-code/</link>
      <pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/yaml-linting-and-auto-completion-in-visual-studio-code/</guid>
      <description>When dealing with applications - in terms of configuration work or even deploying the application to production, there is high possibility that we would need to deal with plenty of yaml.</description>
    </item>
    
    <item>
      <title>Trying cooklang with Golang to document recipes</title>
      <link>https://www.hairizuan.com/trying-cooklang-with-golang-to-document-recipes/</link>
      <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-cooklang-with-golang-to-document-recipes/</guid>
      <description>For many people, cooking is not just a means of sustenance but a beloved hobby and a way to express creativity in the kitchen. However, one of the biggest challenges for home cooks is keeping track of their recipes and possibly the list of interesting recipes from other people.</description>
    </item>
    
    <item>
      <title>Custom Endpoint for Google Analytics data with Golang</title>
      <link>https://www.hairizuan.com/custom-endpoint-for-google-analytics-data-with-golang/</link>
      <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/custom-endpoint-for-google-analytics-data-with-golang/</guid>
      <description>Introduction I used to work with Google Analytics to obtain site analytics for websites and android application. Technically, the current blog is monitored using Google Analytics. Monitoring of website data is generally useful as it provides information to the authors of the website/website owners on what particular content that website visitors find the most useful.</description>
    </item>
    
    <item>
      <title>Creating a SSH Tunnel to expose a web application from a workstation</title>
      <link>https://www.hairizuan.com/creating-a-ssh-tunnel-to-expose-a-web-application-from-a-workstation/</link>
      <pubDate>Tue, 31 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/creating-a-ssh-tunnel-to-expose-a-web-application-from-a-workstation/</guid>
      <description>There are some cases where we would need to host an application on our workstation but need it to be exposed publicly so that people would be able to access the application over the internet.</description>
    </item>
    
    <item>
      <title>Trying out Google Cloud Workflows</title>
      <link>https://www.hairizuan.com/trying-out-google-cloud-workflows/</link>
      <pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-out-google-cloud-workflows/</guid>
      <description>Over the recent weekends, I&amp;rsquo;ve decided to take a gander and try another &amp;ldquo;serverless&amp;rdquo; tool called Google Cloud Workflows. The tool&amp;rsquo;s appeal is to be able coordinate a bunch of services in order to achieve a particular goal.</description>
    </item>
    
    <item>
      <title>Leader Election in Kubernetes via Kubernetes Configmaps and Leases</title>
      <link>https://www.hairizuan.com/leader-election-in-kubernetes-via-kubernetes-configmaps-and-leases/</link>
      <pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/leader-election-in-kubernetes-via-kubernetes-configmaps-and-leases/</guid>
      <description>The leader election mechanism is a somewhat complex thing to kind of code up for an application. There are various Golang libraries that assist with this but it would be nicer if there were mechanisms within the environment that the application operate in which can help with this.</description>
    </item>
    
    <item>
      <title>Continuous Profiling of Applications in Kubernetes via Pyroscope</title>
      <link>https://www.hairizuan.com/continuous-profiling-of-applications-in-kubernetes-via-pyroscope/</link>
      <pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/continuous-profiling-of-applications-in-kubernetes-via-pyroscope/</guid>
      <description>The whole process of profiling an application is an attempt to identify hotspots within the application which consumes more resources or takes too much time - knowing this would allow us to identify how to further improve the code within the applications that we build in order to build applications that consume less resources or would respond better to external inputs.</description>
    </item>
    
    <item>
      <title>Fake Redis Server built with Golang</title>
      <link>https://www.hairizuan.com/fake-redis-server-built-with-golang/</link>
      <pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/fake-redis-server-built-with-golang/</guid>
      <description>A friend of mine once mentioned about one of the tasks that he had to go through during his programming days was to build out a server which would respond to the redis-cli tool and I started to think - &amp;ldquo;that&amp;rsquo;s something I&amp;rsquo;ve never done before&amp;hellip; I wonder how hard it is?</description>
    </item>
    
    <item>
      <title>Coding out Self Balancing Tree data structures</title>
      <link>https://www.hairizuan.com/coding-out-self-balancing-tree-data-structures/</link>
      <pubDate>Thu, 07 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/coding-out-self-balancing-tree-data-structures/</guid>
      <description>Over the past month, I decided to go down the rabbit hole of exploring an example of a self balancing tree data structure. I generally don&amp;rsquo;t need to handle data structures on a day to day basis - I mostly deal with integration of tools as well as deployment of tools into a Kubernetes cluster.</description>
    </item>
    
    <item>
      <title>Custom JS Snippets in Google Sites</title>
      <link>https://www.hairizuan.com/custom-js-snippets-in-google-sites/</link>
      <pubDate>Mon, 20 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/custom-js-snippets-in-google-sites/</guid>
      <description>Google sites now allow one to embed Javascript snippets into a site; thereby providing some interesting new capabilities with websites built with Google sites. The post here is a simple example of getting the same functionality provided in the BMI Calculator page.</description>
    </item>
    
    <item>
      <title>Experimenting with IP Tables</title>
      <link>https://www.hairizuan.com/experimenting-with-ip-tables/</link>
      <pubDate>Sun, 05 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/experimenting-with-ip-tables/</guid>
      <description>While playing around with container technologies such as docker and kubernetes, one critical component that kind of comes up over and over again is the whole portion about managing network connections to the containers.</description>
    </item>
    
    <item>
      <title>Restricting connections between pods in a Kubernetes Cluster (Network Policy)</title>
      <link>https://www.hairizuan.com/restricting-connections-between-pods-in-a-kubernetes-cluster-network-policy/</link>
      <pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/restricting-connections-between-pods-in-a-kubernetes-cluster-network-policy/</guid>
      <description>There is an old adage from security land that we should restrict access to resources/assets as much as we can. Users and applications should only access items that they need to operate themselves.</description>
    </item>
    
    <item>
      <title>Private VPC Experimentation</title>
      <link>https://www.hairizuan.com/private-vpc-experimentation/</link>
      <pubDate>Thu, 05 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/private-vpc-experimentation/</guid>
      <description>This blog post is kind of a blog post that provide some notes of some experimentation that I encountered while playing with Google Cloud Platform. The purpose of this experimentation was to do the following:</description>
    </item>
    
    <item>
      <title>Debugging Distroless Kubernetes Pods</title>
      <link>https://www.hairizuan.com/debugging-distroless-kubernetes-pods/</link>
      <pubDate>Fri, 15 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/debugging-distroless-kubernetes-pods/</guid>
      <description>There is a trend of images that follow the philosophy of minimizing the size of image by removing almost everything out of image. This helps with getting image downloaded more quickly by kubelet into the nodes as well as possibly reducing the attack surface of the container even further (I suppose it&amp;rsquo;s harder to do things in a container if utilities like shell or bash don&amp;rsquo;t exist within it).</description>
    </item>
    
    <item>
      <title>A Weight Loss Journey</title>
      <link>https://www.hairizuan.com/a-weight-loss-journey/</link>
      <pubDate>Tue, 05 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/a-weight-loss-journey/</guid>
      <description>Before reading on, I&amp;rsquo;d just give a disclaimer here that any experience recounted here does not count as medical advice. As with anything to do with health or your body, do seek the appropiate medical channels (your doctor etc).</description>
    </item>
    
    <item>
      <title>Application Performance isn&#39;t the most important factor in application development</title>
      <link>https://www.hairizuan.com/application-performance-isnt-the-most-important-factor-in-application-development/</link>
      <pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/application-performance-isnt-the-most-important-factor-in-application-development/</guid>
      <description>NOTE: This post is only my personal view during my course of work across application development and devoloper operations roles across multiple roles and multiple companies and side projects. This might probably sound like random rambling to a software developer that is working in the industry but sometimes, it gets pretty irritating where people throw reasons that certain decisions should be made for &amp;ldquo;performance&amp;rdquo; and provide vague reasons for it.</description>
    </item>
    
    <item>
      <title>Devops Interview Questions</title>
      <link>https://www.hairizuan.com/devops-interview-questions/</link>
      <pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/devops-interview-questions/</guid>
      <description>This is a list of notes for possible interview questions with regards to devops roles. Interview questions for devops are particularly hard to cover since devops roles generally cover a broad range of topics and technologies.</description>
    </item>
    
    <item>
      <title>Kubernetes Ingress for applications with branded links on GKE</title>
      <link>https://www.hairizuan.com/kubernetes-ingress-for-applications-with-branded-links-on-gke/</link>
      <pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/kubernetes-ingress-for-applications-with-branded-links-on-gke/</guid>
      <description>While dealing with branded links during my course of work, I kind of wondered how it can be tackled if I were to do it in a Google Kubernetes Engine Cluster.</description>
    </item>
    
    <item>
      <title>Bus Arrival App - Singapore</title>
      <link>https://www.hairizuan.com/bus-arrival-app-singapore/</link>
      <pubDate>Thu, 03 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/bus-arrival-app-singapore/</guid>
      <description>This is a quick sample tool to retrieve bus arrivals in Singapore. In order to use it, we would need to find for the Bus Stop ID or Bus Stop Code from where we&amp;rsquo;re taking the bus from.</description>
    </item>
    
    <item>
      <title>Database migration via Cloud SQL Proxy for Cloud SQL in Google Compute Engine VM</title>
      <link>https://www.hairizuan.com/database-migration-via-cloud-sql-proxy-for-cloud-sql-in-google-compute-engine-vm/</link>
      <pubDate>Mon, 17 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/database-migration-via-cloud-sql-proxy-for-cloud-sql-in-google-compute-engine-vm/</guid>
      <description>Database migration is kind of a critical bit when it comes to running and operating applications. In Golang, it is kind of appealing to rely on ORM (Object Relational Mapping) libraries.</description>
    </item>
    
    <item>
      <title>CORS with Golang Microservices and Elm Frontend is difficult</title>
      <link>https://www.hairizuan.com/cors-with-golang-microservices-and-elm-frontend-is-difficult/</link>
      <pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/cors-with-golang-microservices-and-elm-frontend-is-difficult/</guid>
      <description>I am still building up my personal pet project: https://github.com/hairizuanbinnoorazman/slides-to-video; the aim of this project is a personal one - to build up a set of microservices that is able to be deployed in various ways such as locally via Docker Compose or even to Kubernetes or the serverless Cloud Run platform on Google Cloud Platform.</description>
    </item>
    
    <item>
      <title>Build Chat App with Golang Websocket and Elm Frontend</title>
      <link>https://www.hairizuan.com/build-chat-app-with-golang-websocket-and-elm-frontend/</link>
      <pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/build-chat-app-with-golang-websocket-and-elm-frontend/</guid>
      <description>While building Elm based frontends, I decided to take the opportunity to learn on how to craft a chat application. Truthfully, I&amp;rsquo;ve never really built one before (nor do I need to).</description>
    </item>
    
    <item>
      <title>BMI Calculator</title>
      <link>https://www.hairizuan.com/bmi-calculator/</link>
      <pubDate>Sun, 05 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/bmi-calculator/</guid>
      <description>BMI or Body Mass Index is calculated by taking one&amp;rsquo;s weight (in kilogram) and divided by the square of the height of the person (in metres). You can utilize the following tool below to quickly calculate this.</description>
    </item>
    
    <item>
      <title>Elm Frontend in Hugo Static Site</title>
      <link>https://www.hairizuan.com/elm-frontend-in-hugo-static-site/</link>
      <pubDate>Sat, 27 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/elm-frontend-in-hugo-static-site/</guid>
      <description>To view the Elm component in action - scroll down to the Elm Component Demonstration section
Motivation I wanted to learn to try to write a Frontend Application that provide some sort of dynamic functionality - e.</description>
    </item>
    
    <item>
      <title>Sending ggplot graphs to googleslides again</title>
      <link>https://www.hairizuan.com/sending-ggplot-graphs-to-googleslides-again/</link>
      <pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/sending-ggplot-graphs-to-googleslides-again/</guid>
      <description>There was a change to the Google Slides API that resulted in an inability to upload images from Google Drive into Google Slides programmatically. Refer to the following issue on the rgoogleslides github repo - https://github.</description>
    </item>
    
    <item>
      <title>RGoogleslides - using your own account client id and secret</title>
      <link>https://www.hairizuan.com/rgoogleslides-using-your-own-account-client-id-and-secret/</link>
      <pubDate>Sat, 30 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/rgoogleslides-using-your-own-account-client-id-and-secret/</guid>
      <description>NOTE: BEFORE READING THIS - ALL SCREENSHOTS BELOW ARE TAKEN SOMETIME IN OCTOBER 2021. THE UI MAY CHANGE IN THE FUTURE - USE THIS AS A ROUGH GUIDE AND NOT AS ABSOLUTE TRUTH</description>
    </item>
    
    <item>
      <title>App with Metrics, Logs and Distributed Traces</title>
      <link>https://www.hairizuan.com/app-with-metrics-logs-and-distributed-traces/</link>
      <pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/app-with-metrics-logs-and-distributed-traces/</guid>
      <description>In a previous post, it details some information of how to setup some open source tooling to capture logs, retrieve metrics as well as capture distributed trace information from apps. The previous blog post would cover the setup of logging system which is Loki, distributed tracing system which is Tempo and metrics collection system which is Prometheus.</description>
    </item>
    
    <item>
      <title>Setting up Observability Tooling in GKE</title>
      <link>https://www.hairizuan.com/setting-up-observability-tooling-in-gke/</link>
      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/setting-up-observability-tooling-in-gke/</guid>
      <description>Generally, most cloud providers come along with all the observability tooling that you need for your apps built-in with the platform. Some of the common observability tools such as logging, monitoring and nowadays, distributed tracing are usually made available and you can easily use said tools by reading up on the various documentation of how to setup each of these tooling.</description>
    </item>
    
    <item>
      <title>Using Envoy for GRPC Applications in Kubernetes</title>
      <link>https://www.hairizuan.com/using-envoy-for-grpc-applications-in-kubernetes/</link>
      <pubDate>Thu, 15 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-envoy-for-grpc-applications-in-kubernetes/</guid>
      <description>As of now, one of the common and easier way to have services communicate with each other would be over HTTP. In real world use cases, HTTPS is usually used (in order to ensure communications are secure) and this communication is done following some sort of REST framework.</description>
    </item>
    
    <item>
      <title>Notes for building apps to be deployed on client infrastructure</title>
      <link>https://www.hairizuan.com/notes-for-building-apps-to-be-deployed-on-client-infrastructure/</link>
      <pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/notes-for-building-apps-to-be-deployed-on-client-infrastructure/</guid>
      <description>This is definitely not an exhaustive list of items to consider but definitely some of the more obvious features that client side users would look out for and consider when attempting to install such third party apps and operate it on their infrastructure.</description>
    </item>
    
    <item>
      <title>Using systemd to manage services</title>
      <link>https://www.hairizuan.com/using-systemd-to-manage-services/</link>
      <pubDate>Thu, 10 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-systemd-to-manage-services/</guid>
      <description>What and why systemd? Systemd is a convenient set of tooling that can be used to manage services and applications on a linux server. When we are managing applications on a server, we would want the following properties automatically for most application - the requirements are somewhat for most applications:</description>
    </item>
    
    <item>
      <title>Basic SSL Setup - server and client SSL certificate setup</title>
      <link>https://www.hairizuan.com/basic-ssl-setup-server-and-client-ssl-certificate-setup/</link>
      <pubDate>Mon, 10 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/basic-ssl-setup-server-and-client-ssl-certificate-setup/</guid>
      <description>Install nginx on the instance. We would also probably need to install vim as well to make it changes on nginx configuration.
sudo apt update &amp;amp;&amp;amp; sudo apt install -y nginx vim sudo su mkdir -p /etc/nginx/ssl cd /etc/nginx/ssl Create the following file in ca.</description>
    </item>
    
    <item>
      <title>Building Nginx RPM from source</title>
      <link>https://www.hairizuan.com/building-nginx-rpm-from-source/</link>
      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/building-nginx-rpm-from-source/</guid>
      <description>NOTE: As software advances, some of the commands shown below may become depreciated/irrelevant. If one encounters errors - check the output logs to see what the issue is (e.g. missing library?</description>
    </item>
    
    <item>
      <title>Python Flask Apps in Kubernetes</title>
      <link>https://www.hairizuan.com/python-flask-apps-in-kubernetes/</link>
      <pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/python-flask-apps-in-kubernetes/</guid>
      <description>This are some notes in the case where one wants to deploy a bunch of python &amp;ldquo;microservices&amp;rdquo; to a Google Kubernetes Engine cluster. These notes emphasize on the basics rather than the various nuances of running a &amp;ldquo;production&amp;rdquo; grade python application.</description>
    </item>
    
    <item>
      <title>Cloud Run Websocket support now allows you to deploy a R Shiny Server as a serverless app to GCP Cloud Run</title>
      <link>https://www.hairizuan.com/cloud-run-websocket-support-now-allows-you-to-deploy-a-r-shiny-server-as-a-serverless-app-to-gcp-cloud-run/</link>
      <pubDate>Fri, 05 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/cloud-run-websocket-support-now-allows-you-to-deploy-a-r-shiny-server-as-a-serverless-app-to-gcp-cloud-run/</guid>
      <description>Sometime earlier this year (2021), Google Cloud Run started to support websocket support - which is one of the critical components in order to be able to run a R Shiny Dashboard application.</description>
    </item>
    
    <item>
      <title>Lessons from building Slides to Video App - Part 1</title>
      <link>https://www.hairizuan.com/lessons-from-building-slides-to-video-app-part-1/</link>
      <pubDate>Sun, 28 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/lessons-from-building-slides-to-video-app-part-1/</guid>
      <description>A long time back, sometime in 2019 (which is almost an eternity ago ), I kind of did up an application that can take some slides saved in a pdf file and generate a video out of it.</description>
    </item>
    
    <item>
      <title>Charting a career path in the tech world</title>
      <link>https://www.hairizuan.com/charting-a-career-path-in-the-tech-world/</link>
      <pubDate>Tue, 05 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/charting-a-career-path-in-the-tech-world/</guid>
      <description>DISCLAIMER: The following article is just an opinion. Naturally, each person have their own work experiences that they can use to project their future plans; so take the items in this article with a large spoonful of salt when applying it into your own perspective.</description>
    </item>
    
    <item>
      <title>Automating the admin work when organizing webinars in a meetup group</title>
      <link>https://www.hairizuan.com/automating-the-admin-work-when-organizing-webinars-in-a-meetup-group/</link>
      <pubDate>Thu, 01 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/automating-the-admin-work-when-organizing-webinars-in-a-meetup-group/</guid>
      <description>There is actually plenty of work that needs to be done in order to continuously and consistently organize webinars in a meetup group. I am involved in one of them and it takes quite a bit of effort to maintain such effort to ensure that the group look &amp;ldquo;alive&amp;rdquo; with webinars being continuously churned out during this unique situation.</description>
    </item>
    
    <item>
      <title>Tripping over helm hooks</title>
      <link>https://www.hairizuan.com/tripping-over-helm-hooks/</link>
      <pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/tripping-over-helm-hooks/</guid>
      <description>One typical way to do packaging for applications that are to targeted to be deployed into a Kubernetes environment would be to utilize the helm tool. The helm tool has been used widely enough to the point that there are whole ecosystems that support the usage of this tool.</description>
    </item>
    
    <item>
      <title>Implications for having switchable loggers</title>
      <link>https://www.hairizuan.com/implications-for-having-switchable-loggers/</link>
      <pubDate>Sun, 16 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/implications-for-having-switchable-loggers/</guid>
      <description>Loggers in codebases are generally code that is just taken for granted. We would usually imagine that we&amp;rsquo;ll just choose a logger library, import it and then just utilize in code.</description>
    </item>
    
    <item>
      <title>Attempting to understand CSI Kubernetes</title>
      <link>https://www.hairizuan.com/attempting-to-understand-csi-kubernetes/</link>
      <pubDate>Fri, 01 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/attempting-to-understand-csi-kubernetes/</guid>
      <description>NOTE: THIS POST IS NOTES IM TAKING FOR MYSELF WHILE ON THIS JOURNEY. TAKE IT WITH A BAG OF SALT. NOT ALL THINGS MENTIONED HERE IS TRUE - DO YOUR OWN DUE DILIGENCE</description>
    </item>
    
    <item>
      <title>Recording demos with free tooling</title>
      <link>https://www.hairizuan.com/recording-demos-with-free-tooling/</link>
      <pubDate>Wed, 15 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/recording-demos-with-free-tooling/</guid>
      <description>There are various tooling out there that helps deal with screen recording etc. However, many of these tools/sites would somehow provide the recordings at a price. Maybe you can only record a certain number of hours of video per month?</description>
    </item>
    
    <item>
      <title>Dockerizing application that use unix sockets</title>
      <link>https://www.hairizuan.com/dockerizing-application-that-use-unix-sockets/</link>
      <pubDate>Sun, 12 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/dockerizing-application-that-use-unix-sockets/</guid>
      <description>While trying to understand how components that deal with Container Storage Interface (CSI) in Kubernetes, I came across mentions of how the components were using Unix domain sockets to communicate with each other.</description>
    </item>
    
    <item>
      <title>Trying Distributed Tracing with Jaeger</title>
      <link>https://www.hairizuan.com/trying-distributed-tracing-with-jaeger/</link>
      <pubDate>Sat, 04 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-distributed-tracing-with-jaeger/</guid>
      <description>Let&amp;rsquo;s say we have a set of applications that was designed to be a set of microservices. Each of the applications would generally be designed to be focused on one specific domain and in order to achieve the overall goal of the platform.</description>
    </item>
    
    <item>
      <title>Trying Knative from scratch</title>
      <link>https://www.hairizuan.com/trying-knative-from-scratch/</link>
      <pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-knative-from-scratch/</guid>
      <description>This blog post is still being updated
Various cloud providers started offering serverless containers as a service. This is a service where developers can just create a container and then, pass that container over to the cloud provider and then forget about it.</description>
    </item>
    
    <item>
      <title>Golang composition</title>
      <link>https://www.hairizuan.com/golang-composition/</link>
      <pubDate>Fri, 10 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/golang-composition/</guid>
      <description>These are some notes I took while experimenting and playing around with Golang further. This article is mainly exploring embedded structs and interfaces to experiment how they work etc.
Use Golang playground in order to see how it works in action</description>
    </item>
    
    <item>
      <title>Tips for Class 3 license in Singapore</title>
      <link>https://www.hairizuan.com/tips-for-class-3-license-in-singapore/</link>
      <pubDate>Fri, 20 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/tips-for-class-3-license-in-singapore/</guid>
      <description>These are some notes that I took while taking my driving license - Class 3 in Singapore at CDC from August 2019 to December 2019. Some of the advice may/may not apply to you when learning to drive - so take all advice with a grain of salt.</description>
    </item>
    
    <item>
      <title>Microsoft Graph API Authentication</title>
      <link>https://www.hairizuan.com/microsoft-graph-api-authentication/</link>
      <pubDate>Fri, 18 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/microsoft-graph-api-authentication/</guid>
      <description>I&amp;rsquo;ve recently needed to find a way to use the Graph APIs offered by Microsoft in order to receive data and send data to the various Microsoft services. However, the documentation for it is pretty much scattered with various &amp;ldquo;depreciated&amp;rdquo; versions of the documentation everywhere.</description>
    </item>
    
    <item>
      <title>Cookiecutter template for Google Cloud Run</title>
      <link>https://www.hairizuan.com/cookiecutter-template-for-google-cloud-run/</link>
      <pubDate>Sat, 05 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/cookiecutter-template-for-google-cloud-run/</guid>
      <description>While working on a couple of projects that would be deployed on Google Cloud Run, I realized that a couple of them tend to have some sort of similar structure. Due to the number of repositories I would typically handle on a personal basis as well as the amount of context switch I would need to move between projects; it would ideal that all of such projects are automated as much as possible.</description>
    </item>
    
    <item>
      <title>SSH configurations for going into Google Cloud Instances</title>
      <link>https://www.hairizuan.com/ssh-configurations-for-going-into-google-cloud-instances/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/ssh-configurations-for-going-into-google-cloud-instances/</guid>
      <description>A classic move to reduce the attack surface of Google Cloud Instances is follow the advice below:
 If service on instance don&amp;rsquo;t need Public IPs, don&amp;rsquo;t attach Public IPs to such instances If instance requires Public IPs, ensure that only specific ports that are required are exposed.</description>
    </item>
    
    <item>
      <title>Introduction to Google Cloud Run</title>
      <link>https://www.hairizuan.com/introduction-to-google-cloud-run/</link>
      <pubDate>Mon, 15 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/introduction-to-google-cloud-run/</guid>
      <description>There are various serverless compute solutions on the Google Cloud Platfrom; initially it used to be only Appengine and Google Cloud Function. Google Appengine is a solution that allow you to focus on writing up apps and allow Google to take of deployment/scaling/operations.</description>
    </item>
    
    <item>
      <title>Private Go Modules in Google Cloud Build</title>
      <link>https://www.hairizuan.com/private-go-modules-in-google-cloud-build/</link>
      <pubDate>Fri, 01 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/private-go-modules-in-google-cloud-build/</guid>
      <description>So recently, I&amp;rsquo;ve been needing to automate my builds for my few Golang projects via Google Cloud Build. However, rather than building docker containers, I needed Golang binaries instead, which kind of meant that I would need to have the CI/CD pipeline have a Go environment/runtime to build them.</description>
    </item>
    
    <item>
      <title>Setting up a Private Pypi Server</title>
      <link>https://www.hairizuan.com/setting-up-a-private-pypi-server/</link>
      <pubDate>Fri, 01 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/setting-up-a-private-pypi-server/</guid>
      <description>As one writes several python applications to be targeted on the Google Cloud Functions platform, it becomes increasingly obvious to pull out the more common bits of code out into its own library.</description>
    </item>
    
    <item>
      <title>Preparing for Google Cloud Developer Certification</title>
      <link>https://www.hairizuan.com/preparing-for-google-cloud-developer-certification/</link>
      <pubDate>Sat, 26 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/preparing-for-google-cloud-developer-certification/</guid>
      <description>Recently, Google has been launching a couple of certification programs that would help people dictate their knowledge and expertise levels with the Google Cloud Platform. At the moment (January 2019), there are 7 certifications including Professional Cloud Architect, Cloud Developer and Professional Data Engineer.</description>
    </item>
    
    <item>
      <title>Devops Tools with Google Cloud Platform</title>
      <link>https://www.hairizuan.com/devops-tools-with-google-cloud-platform/</link>
      <pubDate>Mon, 14 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/devops-tools-with-google-cloud-platform/</guid>
      <description>There are various tooling out there to make deployment of applications easier. Some tools are used in order to help developers and organizations attempt to reach the &amp;ldquo;12 factor app&amp;rdquo; standard of applications which are set of applications that are explicitly designed to be able to scale where needed.</description>
    </item>
    
    <item>
      <title>Things to watch out for in 2019</title>
      <link>https://www.hairizuan.com/things-to-watch-out-for-in-2019/</link>
      <pubDate>Thu, 10 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/things-to-watch-out-for-in-2019/</guid>
      <description>The list would be updated as time goes by in the year
A list of conferences and meetups and exhibitions to look for especially in 2019:
This kind of personal list that I&amp;rsquo;m keeping track; it mainly revolves around Golang, modern architecture technologies e.</description>
    </item>
    
    <item>
      <title>Triggering analytics via Serverless Functions Part 2</title>
      <link>https://www.hairizuan.com/triggering-analytics-via-serverless-functions-part-2/</link>
      <pubDate>Sat, 10 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/triggering-analytics-via-serverless-functions-part-2/</guid>
      <description>This is a continuation of previous blog post.
To summarize the previous related blog post.
 Too painful to have people respond and react to report generation and compilation Too expensive to have machine lying around to pick up the slack and automate the reports; serverless solutions (pay on use) could be a useful model to use when running automated reports.</description>
    </item>
    
    <item>
      <title>Triggering analytics via Serverless Functions Part 1</title>
      <link>https://www.hairizuan.com/triggering-analytics-via-serverless-functions-part-1/</link>
      <pubDate>Tue, 06 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/triggering-analytics-via-serverless-functions-part-1/</guid>
      <description>Seeing how functions change the way one looks at compute workloads in terms of products makes me wonder how one/companies can look at their analytics workloads and try to see if it was possible to change the costing model in that direction.</description>
    </item>
    
    <item>
      <title>Best practices for Python scripting - Building Reliable Data Science Workflows</title>
      <link>https://www.hairizuan.com/best-practices-for-python-scripting-building-reliable-data-science-workflows/</link>
      <pubDate>Mon, 15 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/best-practices-for-python-scripting-building-reliable-data-science-workflows/</guid>
      <description>Data engineering work usually serves to be fundamentally one of the important bits when it comes to report generation in the business. The act of connecting of understanding the data that goes through the business and the need to maintain all the scripts that handle the pulling and merging all of such data makes the job way harder than one can expect.</description>
    </item>
    
    <item>
      <title>Using nginx to serve as ingress to multiple servers</title>
      <link>https://www.hairizuan.com/using-nginx-to-serve-as-ingress-to-multiple-servers/</link>
      <pubDate>Sat, 29 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-nginx-to-serve-as-ingress-to-multiple-servers/</guid>
      <description>This is a little experiment to see how this would work; in the case where we have multiple Go binaries with multiple web applications. If we wanted to expose this via a single http endpoint rather than providing a whole multitude of web endpoints.</description>
    </item>
    
    <item>
      <title>Git Cheatsheet</title>
      <link>https://www.hairizuan.com/git-cheatsheet/</link>
      <pubDate>Wed, 12 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/git-cheatsheet/</guid>
      <description>Git is one of the most important tools in a software developer arsenal. It is one of the main tool developers use in order to handle and control their code versioning.</description>
    </item>
    
    <item>
      <title>Attempting to setup Kubernetes on Ubuntu VMs</title>
      <link>https://www.hairizuan.com/attempting-to-setup-kubernetes-on-ubuntu-vms/</link>
      <pubDate>Wed, 05 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/attempting-to-setup-kubernetes-on-ubuntu-vms/</guid>
      <description>This post details my naive attempt to bring up a Kubernetes cluster on a VM. These steps to try out Kubernetes in a bare Google Virtual Machine (but the following steps should work for most Debian/Ubuntu virtual machines).</description>
    </item>
    
    <item>
      <title>Getting Meetup Stats with Google Cloud Functions</title>
      <link>https://www.hairizuan.com/getting-meetup-stats-with-google-cloud-functions/</link>
      <pubDate>Fri, 24 Aug 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/getting-meetup-stats-with-google-cloud-functions/</guid>
      <description>Meetup.com is a pretty nice site to setup meetups and sharings on technologies. The platform is pretty nice and easy to use when it comes to bookings but sometimes, the data provided by its web interface is not sufficient nor does it fit our use case.</description>
    </item>
    
    <item>
      <title>Trying out skaffold</title>
      <link>https://www.hairizuan.com/trying-out-skaffold/</link>
      <pubDate>Thu, 09 Aug 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/trying-out-skaffold/</guid>
      <description>When developing application that are meant to be deployed to the Kubernetes platform, it involves a bunch of steps on top of your usual local development work:
 Writing a Dockerfile to package the application (Multi stage applications are optional here - useful for compiled based languages) Build and tagging the docker image of the application with the target repository Either use kubectl commands or use kubernetes config resource files to define the resources required for deploying the applications.</description>
    </item>
    
    <item>
      <title>Rendering diagrams in Hugo</title>
      <link>https://www.hairizuan.com/rendering-diagrams-in-hugo/</link>
      <pubDate>Thu, 02 Aug 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/rendering-diagrams-in-hugo/</guid>
      <description>There is an interesting Javascript project that allows one to use just plain old text and convert those said text into diagrams.
  mermaid.initialize({ startOnLoad: true });  graph TD Start -- Stop  Text to that converts to the above diagram:</description>
    </item>
    
    <item>
      <title>Summary of Google Cloud Next 2018</title>
      <link>https://www.hairizuan.com/summary-of-google-cloud-next-2018/</link>
      <pubDate>Sun, 29 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/summary-of-google-cloud-next-2018/</guid>
      <description>Google recently had a Google Cloud conference where they feature all the exciting new technologies that are made available in Google Cloud. There are numerous product announcements that were mentioned in the various keynotes as well as the breakout sessions; so in an attempt to understand what&amp;rsquo;s exactly is happening in terms of major product releases, I did a textual overview of the videos with links to additional resources.</description>
    </item>
    
    <item>
      <title>Summaries from Google IO Extended 2018 Singapore - Day 2</title>
      <link>https://www.hairizuan.com/summaries-from-google-io-extended-2018-singapore-day-2/</link>
      <pubDate>Mon, 16 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/summaries-from-google-io-extended-2018-singapore-day-2/</guid>
      <description>This is not a in depth summary of the talks in Google IO Extended 2018. Rather, it is my notes from attending to the conference, which are heavier on links to find more about the topics.</description>
    </item>
    
    <item>
      <title>Summaries from Google IO Extended 2018 Singapore - Day 1</title>
      <link>https://www.hairizuan.com/summaries-from-google-io-extended-2018-singapore-day-1/</link>
      <pubDate>Wed, 11 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/summaries-from-google-io-extended-2018-singapore-day-1/</guid>
      <description>This is not a in depth summary of the talks in Google IO Extended 2018. Rather, it is my notes from attending to the conference, which are heavier on links to find more about the topics.</description>
    </item>
    
    <item>
      <title>Lessons from Kubecon/CloudNativeCon 2018 Europe</title>
      <link>https://www.hairizuan.com/lessons-from-kubecon/cloudnativecon-2018-europe/</link>
      <pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/lessons-from-kubecon/cloudnativecon-2018-europe/</guid>
      <description>The following set of summaries are from the Kubecon and Cloud Native Con Europe in Denmark from 2-4 May 2018.
These summaries are from conference talks that I thought provided more interesting thinking points.</description>
    </item>
    
    <item>
      <title>Lessons from Gophercon SG</title>
      <link>https://www.hairizuan.com/lessons-from-gophercon-sg/</link>
      <pubDate>Wed, 09 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/lessons-from-gophercon-sg/</guid>
      <description>This is the list of talks provided in the reccent Gophercon Conference held in Singapore on 4th May 2018
 Go with Versions Project-driven journey to learning Go Resilency in Distributed Systems Understanding Running Go Program Go for Grab Optimize for Correctness Build your own distributed database The Scandalous Sotry of Dreadful Code Written by the Best of Us Erlang for Go developers Go and the future of offices Reflections on Trusting Trust for Go The lost art of bondage  Below are some of the more interesting points raised during the talk (View the full talk to understand the context on what and why a certain point was raised.</description>
    </item>
    
    <item>
      <title>Summaries from Fossasia conference in Singapore</title>
      <link>https://www.hairizuan.com/summaries-from-fossasia-conference-in-singapore/</link>
      <pubDate>Wed, 02 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/summaries-from-fossasia-conference-in-singapore/</guid>
      <description>View the full list of Fossasia Video recordings on the [engineers.sg] website on this website: https://engineers.sg/conference/fossasia-2018
Here are some of the videos I particularly liked. I summarized some of the interesting points from said websites.</description>
    </item>
    
    <item>
      <title>Let&#39;s use CLI to create Tasks!!</title>
      <link>https://www.hairizuan.com/lets-use-cli-to-create-tasks/</link>
      <pubDate>Sun, 22 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/lets-use-cli-to-create-tasks/</guid>
      <description>Out of random curiousity and laziness on my part, I decided to create a CLI tool which would allow me to create tasks on task managements websites such as on Asana, and issues in Github/Bitbucket.</description>
    </item>
    
    <item>
      <title>Using Google Tag Manager in React Web Application</title>
      <link>https://www.hairizuan.com/using-google-tag-manager-in-react-web-application/</link>
      <pubDate>Sun, 15 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-google-tag-manager-in-react-web-application/</guid>
      <description>This is going to be a pretty short post but should prove to be useful if you are already familiar with tool.
Quick intro of normal website tracking When one navigates through a normal server rendered website that is utilizing Google Tag Manager or Google Analytics (assuming that is is set up right), as the page loads, it would send a page view hit to the Google Analytics server.</description>
    </item>
    
    <item>
      <title>A sample bookcase application case via Gin Golang Framework</title>
      <link>https://www.hairizuan.com/a-sample-bookcase-application-case-via-gin-golang-framework/</link>
      <pubDate>Thu, 08 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/a-sample-bookcase-application-case-via-gin-golang-framework/</guid>
      <description>This is an application based on a previous blog post on Bookcase application.
The link to the code base of the application:
https://github.com/hairizuanbinnoorazman/golang-web-gin-book-store
There is a chance that when you are on the code base, the application is not fully operational; I am still adding code to it to add functionality to the application</description>
    </item>
    
    <item>
      <title>A sample bookcase application case</title>
      <link>https://www.hairizuan.com/a-sample-bookcase-application-case/</link>
      <pubDate>Wed, 07 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/a-sample-bookcase-application-case/</guid>
      <description>We would try to implement the various technology stack for some common web application scenario in several types of libraries. In our case here, we would attempt to implement it for the following scenario.</description>
    </item>
    
    <item>
      <title>Favourite Golang Resources</title>
      <link>https://www.hairizuan.com/favourite-golang-resources/</link>
      <pubDate>Wed, 28 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/favourite-golang-resources/</guid>
      <description>This is a personal list of Golang Resources I like to keep track. This is a evergreen list so I will update it once in a while when new stuff pops up.</description>
    </item>
    
    <item>
      <title>Refactoring Go Safely</title>
      <link>https://www.hairizuan.com/refactoring-go-safely/</link>
      <pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/refactoring-go-safely/</guid>
      <description>An excellent resource to read on Refactoring Golang code safely and to ensure that Golang code continue does not result in breaking changes in the codebase.
https://talks.golang.org/2016/refactor.article
An important to take away from the article is the fact that when making API changes to a code base, the portion that results in largest amount of work is the amount of code repair that needs to be done.</description>
    </item>
    
    <item>
      <title>Things to watch out for in 2018</title>
      <link>https://www.hairizuan.com/things-to-watch-out-for-in-2018/</link>
      <pubDate>Wed, 14 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/things-to-watch-out-for-in-2018/</guid>
      <description>A list of conferences and meetups and exhibitions to look for especially in 2018:
This kind of personal list that I&amp;rsquo;m keeping track; it mainly revolves around Golang, modern architecture technologies e.</description>
    </item>
    
    <item>
      <title>Opinion piece - Moving to Hugo</title>
      <link>https://www.hairizuan.com/opinion-piece-moving-to-hugo/</link>
      <pubDate>Wed, 31 Jan 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/opinion-piece-moving-to-hugo/</guid>
      <description>After a long while being on some managed platform for writing blog posts, I decided to move out of that into one which would require myself to manage things on my own.</description>
    </item>
    
    <item>
      <title>Using Go in AWS Lambda</title>
      <link>https://www.hairizuan.com/using-go-in-aws-lambda/</link>
      <pubDate>Mon, 15 Jan 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-go-in-aws-lambda/</guid>
      <description>Disclaimer: There are definitely better ways of doing this; this is more of a lazy man&amp;rsquo;s way of doing it. This is just to explore the possibility of getting a golang application into AWS Lambda and successfully running it.</description>
    </item>
    
    <item>
      <title>Interesting Points from Kubecon/Native con 2017</title>
      <link>https://www.hairizuan.com/interesting-points-from-kubecon/native-con-2017/</link>
      <pubDate>Mon, 08 Jan 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/interesting-points-from-kubecon/native-con-2017/</guid>
      <description>Full Playlist can be found here: https://www.youtube.com/watch?v=Z3aBWkNXnhw&amp;amp;list=PLj6h78yzYM2P-3-xqvmWaZbbI1sW-ulZb
Cloud Native Landscape: https://github.com/cncf/landscape
 Keynote: Can 100 Million Developers Use Kubernetes? Kubernetes: This Job is Too Hard: Building New Tools, Patterns and Paradigms to Democratize Weaving the Service Mesh Microservices, Service Mesh, and CI/CD Pipelines: Making It All Work Together Developing Locally with Kubernetes State of Serverless Keynote: What&amp;rsquo;s Next?</description>
    </item>
    
    <item>
      <title>Using AWS Lambda for Data Science Projects and Automations 2</title>
      <link>https://www.hairizuan.com/using-aws-lambda-for-data-science-projects-and-automations-2/</link>
      <pubDate>Tue, 02 Jan 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-aws-lambda-for-data-science-projects-and-automations-2/</guid>
      <description>Following from the previous blog post: Using AWS Lambda for Data Science Projects and Automations - Part 1
Let&amp;rsquo;s deploy a serverless application!
Problem Statement:
The application we would be trying out this time will do the following:</description>
    </item>
    
    <item>
      <title>Using AWS Lambda for Data Science Projects and Automations 1</title>
      <link>https://www.hairizuan.com/using-aws-lambda-for-data-science-projects-and-automations-1/</link>
      <pubDate>Wed, 20 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-aws-lambda-for-data-science-projects-and-automations-1/</guid>
      <description>A thought experiment Let&amp;rsquo;s say there was this one day during your usual work hours where you are tasked to handle some data transformations between your data sources. The data source is csv file generated from backend systems and is provided on the hourly basis.</description>
    </item>
    
    <item>
      <title>Using Decorator Pattern to Remove Code Bloat</title>
      <link>https://www.hairizuan.com/using-decorator-pattern-to-remove-code-bloat/</link>
      <pubDate>Thu, 26 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-decorator-pattern-to-remove-code-bloat/</guid>
      <description>I&amp;rsquo;ve been learning plenty of Golang nowadays and one of the most common design patterns that I keep hearing about is the decorator pattern. It is often used when handling with web requests; where you would create a function that accepts a struct that implements the handler interface which would then return an struct that also implements the handler interface.</description>
    </item>
    
    <item>
      <title>Using Go to post messages on Slack</title>
      <link>https://www.hairizuan.com/using-go-to-post-messages-on-slack/</link>
      <pubDate>Sun, 22 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-go-to-post-messages-on-slack/</guid>
      <description>A sample application to kind of get started with Go.
This application involves pinging a channel on Slack via a webhook. Slack provides a unique URL in order to ping Slack with messages from a script/application.</description>
    </item>
    
    <item>
      <title>Using Docker Multi Stage builds to run unit tests</title>
      <link>https://www.hairizuan.com/using-docker-multi-stage-builds-to-run-unit-tests/</link>
      <pubDate>Tue, 17 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-docker-multi-stage-builds-to-run-unit-tests/</guid>
      <description>This is a suggestion piece and not a recommended way of using docker or anything.
Motivation The question we would want to know here is how do we exactly run the full on/all the unit tests for our applications built via Docker.</description>
    </item>
    
    <item>
      <title>Screen Recording on the Server</title>
      <link>https://www.hairizuan.com/screen-recording-on-the-server/</link>
      <pubDate>Sun, 27 Aug 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/screen-recording-on-the-server/</guid>
      <description>Over the weekend, I&amp;rsquo;ve been experimenting whether if its possible to set up screen recording on a linux server. This is partly just out of curiosity but also, a little a bit of frustration.</description>
    </item>
    
    <item>
      <title>Matching object ids in elements on a Googleslide</title>
      <link>https://www.hairizuan.com/matching-object-ids-in-elements-on-a-googleslide/</link>
      <pubDate>Mon, 19 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/matching-object-ids-in-elements-on-a-googleslide/</guid>
      <description>While attempting to play around with object ids via the rgoogleslides package, the main issue I got was to quickly understand which object id referred to which element on the slide?</description>
    </item>
    
    <item>
      <title>Rgoogleslides Updated to v0.2.0-alpha</title>
      <link>https://www.hairizuan.com/rgoogleslides-updated-to-v0.2.0-alpha/</link>
      <pubDate>Thu, 11 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/rgoogleslides-updated-to-v0.2.0-alpha/</guid>
      <description>The rgoogleslides package is being upgraded with a quite a big change in methodogy. Refer to the following release notes for more detailed information.
https://github.com/hairizuanbinnoorazman/rgoogleslides/releases/tag/v0.2.0-alpha
The previous design package suffer from several design flaws, some of which would be detailed below:</description>
    </item>
    
    <item>
      <title>Sending ggplot graphs to googleslides</title>
      <link>https://www.hairizuan.com/sending-ggplot-graphs-to-googleslides/</link>
      <pubDate>Thu, 11 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/sending-ggplot-graphs-to-googleslides/</guid>
      <description>IMPORTANT:
THE FOLLOWING BLOG POST IS OUTDATED. THERE IS AN UPDATE TO GOOGLESLIDES API WHICH DISABLE USAGE OF GOOGLE DRIVE IMAGES. NOW ALL IMAGES HAS TO BE FROM PUBLIC SOURCES. THERE IS A FEATURE REQUEST TICKET CREATED TO ADD THIS FUNCTIONALITY BACK BUT THERE IS A HIGH LIKELIHOOD IT WONT BE BACK FOR A LONG TIME</description>
    </item>
    
    <item>
      <title>Restructuring Rgoogleslides</title>
      <link>https://www.hairizuan.com/restructuring-rgoogleslides/</link>
      <pubDate>Wed, 10 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/restructuring-rgoogleslides/</guid>
      <description>In the initial draft of the rgoogleslides package, there were several wrapper functions that serve to immediately call the Google Slides API immediately after it is being used. Some of the examples are below:</description>
    </item>
    
    <item>
      <title>Using Service Accounts with RGA</title>
      <link>https://www.hairizuan.com/using-service-accounts-with-rga/</link>
      <pubDate>Tue, 21 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/using-service-accounts-with-rga/</guid>
      <description>RGA is one of the packages I often use in my line of work and I use it to extract data from Google Analytics Platform into R. From there, I can easily utilize data manipulation packages such as dplyr and tidyr to get the results I would need before pushing those results back to Googlesheets via the googlesheets R package.</description>
    </item>
    
    <item>
      <title>Tips on Microservices</title>
      <link>https://www.hairizuan.com/tips-on-microservices/</link>
      <pubDate>Fri, 10 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/tips-on-microservices/</guid>
      <description>Setting up microservices is really quite hard. Its not just about the technology but it involves culture and habits that the team have in order to have the discipline and also the ease in order to create services that would scale well.</description>
    </item>
    
    <item>
      <title>R is an object oriented language?</title>
      <link>https://www.hairizuan.com/r-is-an-object-oriented-language/</link>
      <pubDate>Mon, 09 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/r-is-an-object-oriented-language/</guid>
      <description>Although it is often mentioned in many of the online tutorials and wikis that R is a Object Oriented language, the code examples on the web definitely don&amp;rsquo;t show too many hints of that.</description>
    </item>
    
    <item>
      <title>Googleslides R Package in the Making</title>
      <link>https://www.hairizuan.com/googleslides-r-package-in-the-making/</link>
      <pubDate>Tue, 03 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/googleslides-r-package-in-the-making/</guid>
      <description>Some time late last year, the Googleslides API was announced by Google. This was a pretty exciting piece of news; one that took so long to come.
Slides API Announced By Google</description>
    </item>
    
    <item>
      <title>Data Science Maturity in an Organization</title>
      <link>https://www.hairizuan.com/data-science-maturity-in-an-organization/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/data-science-maturity-in-an-organization/</guid>
      <description>Domino released a pretty comprehensive paper on data science maturity models in organizations.
Link to the paper: https://www.dominodatalab.com/p/data-science-maturity-model-ungated
Data Science is not something that a company can just immediately buy from the market (hiring and tooling); its much more than that.</description>
    </item>
    
    <item>
      <title>Slides API announced by Google!</title>
      <link>https://www.hairizuan.com/slides-api-announced-by-google/</link>
      <pubDate>Sat, 19 Nov 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/slides-api-announced-by-google/</guid>
      <description>Earlier this year, Google announced a couple of new APIs for the set of Google Products in its productivity and office suite, namely the Google Slides API
https://gsuiteupdates.googleblog.com/2016/05/new-ways-to-keep-data-flowing-between.html
It has been a long time but ever since the announcement in the Google IO earlier this year, I&amp;rsquo;ve been anticipating for the arrival of the API and it&amp;rsquo;s already here!</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.hairizuan.com/newposts/apps/30180101_testingdockercompose/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/newposts/apps/30180101_testingdockercompose/</guid>
      <description>Debian installation of docker
sudo apt update sudo apt-get -y install \  apt-transport-https \  ca-certificates \  curl \  gnupg2 \  software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \  &amp;#34;deb [arch=amd64] https://download.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.hairizuan.com/newposts/podcast/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/newposts/podcast/</guid>
      <description>https://dev.to/sedaily</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.hairizuan.com/newposts/random_taskwarrior/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.hairizuan.com/newposts/random_taskwarrior/</guid>
      <description>https://taskwarrior.org/ https://blog.djy.io/taskwarrior-where-have-you-been-all-my-life/</description>
    </item>
    
  </channel>
</rss>
