About Me

Henlo, I'm Chris.

I'm a software engineer based on Bandung, Indonesia, specialized in full-stack web development.

I help our clients with their requests and needs, translate it to technical requirements, and manage engineers to work on them. In addition, I manage the company's infrastructure as well.

I have a weird hobby of checking many platform's API, learn how they implement the limiters, safe guards and more, then try it out by my self by running some weird, specific, and sometimes dumb experiments. This weird hobby of mine actually helps me to advise my clients when they want use said platform. One of the latest examples is how I helped a Property Management company run their backup pipeline for their directory app. I helped by making the reports, documentations and proposing the restore strategy. Not exactly web development related, right? But that's why I pick the Software Engineer title, because I love to program other stuff too!

Skillsets

Aha! Time for me to show off my weird sets.

Front-end

  • HTML, CSS, Js, SASS
  • React + MobX
  • Nextjs
  • jQuery
  • Bootstrap

Back-end

  • CodeIgniter 3+4 (PHP)
  • FatFree Framework 3.6+ (PHP)
  • Express (Js/Ts)
  • Axum (Rust) — Learning
  • MySQL, MongoDB

Other

...but web-tech related, or maybe not?, you decide lah.

  • WordPress
  • Apache, Nginx

Other

...but for anything else.

  • Rust — learning
  • Grafana, Prometheus
  • Docker
  • GitLab CI/CD
  • Digital Ocean, Linode
  • Cloudflare

OSes

Since some job descriptions sometime mention certain experience requirements with certain OS, I'm adding this extra section.

  • Ubuntu (my current workstation)
  • Windows
  • Alpine Linux (docker image only)

Languages

  • Bahasa Indonesia

    Native level

  • English

    Business level

  • 日本語

    Just strarted to learn ✨

About this site

Abstract

Just like my friends who happened to be engineers, they all have their own website that showcases their works. I have owned this domain ever since... 2015, and mostly use them to run some experiments. The apex domain was used to directly host my blog, just a single landing page, and is now hosting my properly made website—this.

That being said, originally the site was made with Tailwind, but I'm not very confident with that solution because it feels like I have to create everything from scratch: typography, colors, animation, etc. I can't put that much effort into using it, so I decided to remake the site back, and just use any technology I already know will need low or "essentially-zero" maintenance :)

The story behind this site, my branding, and more will be posted in a blogpost, so you can read more behind the scenes.

Tech Stack

  • Bootstrap on Plong Theme.
  • React-Bootstrap for Boostrap Js Binding.
  • Nextjs, hosted on Vercel.
  • Google Analytics, for performance optimization tracker.

I made my own Bootstrap Theming called Plong, learn more about Plong here , blog posts are incoming.

Mini FAQ

Why the crossed "Bandung" part on the home page?

Bandung is a city in Indonesia that includes the surrounding districts too. When people refer to "Bandung" in conversation, they usually mean the city, not the districts. So when people actually meant the districts area, they sometimes jokingly corrected themself with "Bandung coret", crossed Bandung.

Learn more about Bandung on Wikipedia (EN) .

Why do you use "this domain" when mentioning email?

To prevent automated email scans on my site. Adding my email on IANA PEN and domain WHOIS Info already make my inbox full with spam, before finally I switched to major email provider with better spam filtering. In addition to that, AI still sucks at understanding relative context, so...

Why the external API for your own site?

I'm very lazy maintaining JS stuffs. Everything feels as if its unstable, and rebuilding it might break after several weeks. If I want to update my data, I need to consistently maintain the deps, which makes me harder to be productive. If I store the data on my own external API, I can just update the data, and let old codebase update their thing on their own. No need to refactor things when I just want to update my portfolio, just because the plugin author didn't want to update their plugin to support new major release of X.

Yes, dependabot exist for both GitHub and  GitLab , but to be able for them to run the auto-merge thing, you will need to maintain test suite, in which, will also break when new version released with no backward compatibility. I'll reconsider this approach when either I have more time and energy, or, the thing got calmer as its mature.