A Programmer's Perspective

About Me

I am Jia Hao, a software developer from tiny red dot — Singapore! I am studying Computer Science at the National University of Singapore! I use various technologies but my primary focus is in backend systems — managing databases and building APIs.

I am avid learner who loves solving complex and interesting problems. I seize every opportunity to hone my knowledge and seek to be a better version of myself everyday. My love for learning has been the primary motivating factor for me to learn programming as it is such a vast field. It has also cultivated my passion for teaching and helping others with programming.

I started A Programmer's Perspective as a way for me to share about my journey into the belly of the beast (programming). A blog allowed me to combine my love for story-telling with my love for teaching and programming — killing three birds with one site!

Experience

Working experience

  • Research Intern — Stance detection @ DSO National Laboratories — Jul 2020 to Sep 2020
  • UAT team coordinator/Intern — SOI Re-platform @ DBS Singapore — Apr 2019 to Aug 2019
  • Lead Android developer — SenseView Framework @ MightyAim — Feb 2018 to May 2018

Others

  • Software Engineer — Project Sight Words @ GDSC NUS - Sep 2022 to Present
  • Independent Technical Writer & Guest Author — Jan 2018 to Present

Tools

  • Programming languages — Go, Elixir, Python, Kotlin, Java, SQL (PostgreSQL), JavaScript, Typescript, HTML/CSS
  • Frameworks - Node.js, Vue.js, React, Tailwind, Android, Java Spring Boot
  • Technologies — Git, Docker, Linux, Heroku

Projects

  • chris — Pratt parser implementation for mathematical equations
  • life — Conway's Game of Life visualizer
  • apollo — RSS feed aggregator
  • kobold — URL shortening service
  • go-http-server — HTTP server written from scratch in Go
  • Git Guide — Introduction to the Git version control system for Singapore Polytechnic Software Engineering Practices module
  • torrent.go — BitTorrent protocol implementation
  • govid-19 — COVID-19 statistics API
  • kMD2PDF — Markdown to PDF file conversion library written in Kotlin
  • Taiga — Discord administration bot written in Kotlin

A comprehensive list of all my projects can be found here.

Currently, I'm learning ...

These are a list of the various topics that I'm learning at the moment. Check out my recommendations for books and videos here!

  1. Calculus

    I am brushing up on my calculus using Thomas Calculus! I enjoy the depth that the textbook brings. Beyond just understanding formulas, I emphasize on understanding the proofs and theory behind each formula to lay a solid foundation!

    The book can be found here.

  2. Elixir & Functional programming

    Functional programming has always been an object of fascination for me (pun not intended). When programming in Kotlin, I have always tried to imitate basic functional programming concepts like creating pure functions and making full use of the "functions as first-class citizens" concept. However, I have never stepped out of this bubble and explored the other aspects of functional programming.

    Elixir is my jump into this rabbit hole. It was a language that was raved about in TPH and so I wanted to check out what the "fuss" was all about. I plan to learn Elixir and functional programming by exploring open source projects as I cannot really think of practical applications myself.

    The tutorial I am following can be found here.

  3. Structure and Interpretation of Computer Programs

    I have always been put off by this book due to its high level of technicality but now, I wanted to try something new and so I decided to pick it up and give it a read. Currently, I'm enjoying it and really starting to put together the pieces of the book.

    The book can be found here.

Hobbies

When I'm not programming, I enjoy running or hanging out with friends. I love reading and have been using my phone as an e-book reader to consume various technical books on subjects spanning from CS to Math to Physics.