About


About Me

Hi! (。^ ᴗ^)ノ I'm Johnathan, a passionate problem-solver, software engineer, infosec enthusiast, and amateur music composer. I enjoy teaching others and thrive on learning new things. When not immersed in programming, I can be found taking walks, reflecting on life, and occasionally indulging in CTF challenges.

Lately, I've been diving deeper into penetration testing and working on a variations on a theme.

When it comes to personal preferences, I have an affinity for the sleek allure of dark mode. And yes, I must confess, I'm a fan of the controversial delightful combination of pineapple on pizza.

In case pronouns matter to you, I identify as an attack helicopter he/him.

Hobbies and Interests

Programming and Software Development

programming

It was a wild (but fun) journey. I started programming in Grade 9 (~中三) with Khan Academy's Intro to JS modules...

Then I got stuck with prototypes.
Moved to C++.
Got stuck with pointers.
Cried internally for a week.
Got stuck with linked lists.
Made a POS desktop application with Qt.
Learnt template metaprogramming.
Procrastinated a lot by playing Codingame.
Answered a bunch of StackOverflow questions.1
Learnt Python.
Learnt LaTeX.
Wrote a 4000-word mathematics essay on a programming challenge.
Played Advent of Code.
Learnt Haskell.
Got stuck with monads.
Got stuck with Cabal (no, not Cobol).
Got stuck with Haskell Stack (Haskell's build management system).
Got stuck figuring out mutable arrays.
Got stuck with higher-rank type polymorphism.
Learnt Rust.
Got stuck with the borrow checker.
Got stuck with linked lists (again).
Cried.
Picked up JS again.
Built this website. Tada?

See Collaborating for various topics to collaborate on. Most have a software component.

Music Composition

composition

My composing journey began in Grade 10 (~中四) when my music teacher assigned composition homework. Not only that—he introduced us to interesting composition techniques and took us on a tour analysing Joe Hisashi's Studio Ghibli music. Since then, I've been writing down ideas and organising them into coherent pieces.

In uni, I picked up electronic music composition (mixing/production) during a course taught by Prof. Timothy Page.

I like listening to music without words (this rules out pretty much all songs), as words tend to constrain interpretation and imagination. Speeches can't function without words; it'd be ambiguous otherwise.

Some of my favourite composers:

  • JS Bach
  • Shostakovich
  • John Adams
  • Steve Reich

Things I'm interested in exploring:

Huh, that's a lot of M's.

If you ask me, these are some of my favourite self-compositions:

Thumbnail for The Breath of Life
Thumbnail for The Breath of Life

The Breath of Life

Humans are complicated individuals even though we all start from two cells.

Recreational Mathematics/Programming

I enjoy the occasional mathematical/coding challenge. My ears perk up at the mention of:

  • Khan Academy (immensely helpful for exploring high school maths),
  • Project Euler (math + coding),
  • Codingame (super fun interactive element to coding), and
  • Advent of Code aoc (who doesn't want to save Santa and see dumbo octopi?).

There was a time when I procrastinated schoolwork by visiting these sites. Sadly, those days are long gone, and I lack the time to continue tinkering on these platforms.

Embedded Systems

embedded

A fun pastime that began in uni. There's a whole world of practical considerations and opportunity in these little devices that connect the physical world with the realm of software!

Capture-the-Flags (CTFs)

ctf

A relatively recent hobby I picked up. You get to learn cybersecurity—in the form of binary/web exploitation, reverse engineering, cryptography, and other fun knick-knacks—all the while having fun earning points (and taking away an occasional prize).

Things I'm interested in exploring:

  • Reverse Engineering
  • Hack the Box (online CTFs + community)

Board Games

Ah, board games... one of my favourite pastimes. When I'm bored game, you may find me playing the occasional game on Board Game Arena. Some of my favourite games are:

  • Race for the Galaxy
  • Hanabi
  • And more!

Education

I'm recently graduated from the Hong Kong University of Science and Technology, where I studied a combination of mathematics, computer science, and music. Fun times.

Collaborating

I have several project ideas, the scope of which is beyond my capacity given my full-time work. I’ve kept the description generic for certain reasons.

  • Novel Music Instrument on an Embedded Device
    • Looking to work with... embedded/mechatronic engineers who are also music enthusiasts.
  • Music-Based, Cross-Platform 2D/2.5D Game with Dynamic and Adaptive Music
    • (No, I’m not thinking of rhythm games, but I’m open to other ideas.)
    • Looking to work with... game designers/programmers who are also music enthusiasts.

If you’re interested in collaborating, hit me up.

About This Website

This website breathed its first breath in summer of 2022. I had a bit of free time and wanted a place to share thoughts, music, etc. I also wanted it to be customisable; most CMSs are limited and force my hands to be tied.

You may see some posts "published" prior to 2022. Those are usually older projects or experiences which I've included for posterity. The dates there typically indicate the date the experience ended.

Recent site news:

Thumbnail for Site Updates and Migration to Cloudflare Pages
Thumbnail for Site Updates and Migration to Cloudflare Pages

Site Updates and Migration to Cloudflare Pages

Improvements, Optimisations, and a Better Stack with Cloudflare Hosting

FAQ

Personal

Why did you choose to study mathematics in uni?

I didn't know what I wanted to do career-wise. So I looked for a subject I liked which also provided broad career options. With mathematics, one can go into actuary, statistics, finance, physics, machine learning, data science, software engineering, research, teaching, and more.

Why is your LinkedIn so... professionally unprofessional?

Wdym? You mean you don't have a sense of humour?

Why do you believe in all this Jesus stuff?

Because I see value in it.

Is there a God out there?

I believe we were created with a purpose, for a purpose. It doesn't really make sense to me that we just poof'ed into existence from nothing. The mathematician John Lennox argues like so:

But people are now desperate to show the universe created itself from nothing, which seems to me to be an immediate oxymoron. If I say "x created y", I'm assuming the existence of x, I have to explain the existence of y. If I say "x created x", I'm assuming the existence of x, I have to explain the existence of x.

So yes, I believe there is a God out there.

On Christianity

It's worth mentioning that Christianity is a nuanced faith. Although we worship the same God (at least in name) as the God in the Catholic, Islamic, and Judaic faith, our principles and values are fundamentally different.

But it gets murkier. Christianity itself has many branches and sub-branches (aka denominations and sub-denominations). Between branches, we disagree when it comes to emphasis on certain spiritual gifts, debatable metaphysical concepts, and other things.

So just be aware that "Christianity" is an umbrella term for many many beliefs.2

So why Christianity?

My belief comes down to two factors: personal and factual.

The personal stuff is rather cheesy and not really suited to a public webpage. So Imma skip it.

If we look at the hard evidence, it becomes clear the Bible isn't merely a story book. It's the amalgamation of multiple authors preserved over thousands of years. Evidence? There's plenty. Cross-references? Tons. Hotel? Trivago.

Ultimately, my faith is both personal and communal. It forms a part of my identity, whilst being shared with others. And this communal, spiritual component bridges people together, even if we're from completely different backgrounds or hate each other's guts.

This isn't much of an apologia, and perhaps I've left you with more questions than answers. But hopefully this rationale is sufficient for now. I'm open to (reasonable) questions.

This Website

Why doesn't your website support Internet Explorer and Opera Mini?

The technologies used to build this blog only support modern browsers. And I've decided not to be bogged down by maintaining backwards-compatibility. This site should work for 95-97% of users globally.3 The remaining 2-5% either use IE/Opera Mini or use an outdated version of Chrome/Firefox/Edge/etc.

I am sorry if this inconveniences you. I also feel sorry for you, if you're forced to live with those browsers.

Why did you build your site with Vanilla JS and not React/Angular/Vue/{{insert cool technology}}?

Unfamiliar technologies. Also, there's not much user interaction anyway? The UI seems simple? I don't really see the need for them.

Moreover, I want the site to be hackable (in the open-source sense) and approachable by newbs.

Why did you choose Eleventy as your site generator?

See Site Migration to Eleventy.


Footnotes
  1. Being on StackOverflow also helped me learn by 1) digging deeper into languages in the process of answering, and 2) learning from better answers, what techniques are better/worse. Also, contrary to popular belief, most communities don't seem that toxic? I'm guessing just the mainstream ones (JS). ↩︎

  2. And I don't think it's fair for people to say: "Oh, I've been a Christian for a while. I did the usual things, but I didn't like it." To me, that sounds like someone who only played in a shallow kiddy pool without experiencing the exhilaration of swimming free-style. But then again life isn't fair, so I can't really complain. Who am I to judge. ¯\_(ツ)_/¯ I can sympathise with heart-wrenching situations such as free-will, grudges/revenge, and pain; and my heart goes out to you, if you've ever had to experience a dark moment. ↩︎

  3. Checked with caniuse.com. ↩︎