A Programmer's Perspective

About Me

Hi! I am Jia Hao and I am a software developer from Singapore. I graduated from Singapore Polytechnic with a Diploma in Information Technology.

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

Tools

  • Programming languages - Elixir, Go, Kotlin, Javascript, SQL (Postgres), C#, Java, Python
  • Technologies - Linux, Heroku, Docker, Git, Gatsby.js, Vue, Spring Boot

Projects

  • 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. Psychology

    I had thoroughly enjoyed learning about psychology through the "Introduction to Psychology" course on Coursera. So, I want to explore the field even more and to see if I would like to study it in depth in university as well! As such, I have decided to pick up a textbook on psychology, namely, the one available on OpenStax!

    The textbook 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. I also spend my time on Discord as a moderator for the largest programming server on the platform where I socialise with my friends there (we generally goof off and have fun), discuss my project ideas with others, help beginners with programming problems, and handle any situations that may crop up among members.