For most people, home networking is as simple as connecting their modem to their Wi-Fi router, and then following some basic router setup instructions. Then, all the devices in their home can access the Internet via the Wi-Fi network that they set up. Hurrah! End of story. 🎉

The classic network setup (Service In -> Wireless Router -> Devices)

However, such a simple setup may not always be ideal. This was the case with me recently since the quarantine began and I moved to a new apartment. I purchased Google Fiber’s Webpass internet and although the classic Wi-Fi setup I described above worked for a while, I quickly started to feel…


No, I’m not saying that you shouldn’t aim for 100% code coverage. I’m not saying that testing for edge cases is bad. What I’m saying is, you should be thinking about why you are testing. Let me start with a little story during my internship on the React team.

One day, I submitted a pull request to add a basic Fragment export to React. It was a pretty simple addition, something along the lines of

React.Fragment = ({children}) => children;

I also added a ton of tests because I was super scared of React.Fragment breaking somehow if a renderer implementation…


Ahn young ha sae yo! Happy New Years everyone! For the upcoming term, I will be interning at a Y Combinator graduated online beauty company called Memebox, where I will be working with the data engineering team. I’m also writing this post on the plane again, which seems to be the trend for my recent posts.

In this blog post, I’m going to describe the process that I had to go through in order to actually be able to work in Korea. …


Your knees are shaking. Your palms are damp with cold sweat. G-g-good afternoon everyone. Ummmm, I, uh — Today I will be — uh — talking about…

I know this scenario all too well. Until a few months ago, I was phenomenally incompetent when it came to public speaking — even when conversing interpersonally with someone who I don’t know very well, I get very anxious and nervous, stumbling on my words and having my thoughts blank out mid-speech. This can be incredibly frustrating since I know that my written communication can be quite strong, but when put onto the…


The past few months of my life have been one the most influential in my existence — during my stay in San Francisco, I have had plenty of time to experience new things, and introspect on myself, my life choices, and how am I spending my time.

For example, on July 4th, I went to Lake Tahoe, where I conquered two of my fears — air and water. I had always been afraid of heights, and I also panic whenever I am in the water since I almost drowned at Wonderland upon being expelled from a water slide when I…


Last December, during the final few weeks of my internship in Mountain View, I experienced a traumatic event — the theft of my backpack. It was on a Monday evening when I was in Menlo Park to play some badminton for the first time with one of my new co-workers. Since he had a car, we drove to the badminton center instead of bussing like I usually do. Parking right in front of the brightly lit front entrance, I was both excited, yet naive to leave my backpack inside the car. …


Hi! This is Clement checking in and currently, I’m super high (on an airplane that is a couple thousand feet above the ground huehue)! I am now on my way to California to begin my internship at a company called Datera. So, before that happens, I would like to write to post that that summarizes my experience in the previous 2B term (academics, extracurriculars, and unrequited love…), what I have been up to in the two weeks following exams, and finally to document my excitements and expectations for my first internship in the States!

Let’s begin with my 2B term…


Hello, my fellow readers! It’s great to post again, and I must say I apologize for being out of touch for so long. I actually started writing this blog post in the middle of my work term at Ten Thousand Coffees, but I delayed it for a while after becoming a bit caught up in work. Without any further ado, let’s get to the main content:

For a while now, I have been using Git, but I haven’t been using Git (the right way). Instead, I adopted a push/pull flow similar to how central repositories like SVN work. However, thanks…


Hello everyone! This past weekend, I attended UofTHacks, which was a hackathon hosted by the University of Toronto. I had very high expectations for the quality of this hackathon, but it seemed to fall a little short of what I imagined. Perhaps my expectations were set so high because the University of Toronto was one of the biggest schools in Canada, or perhaps my mood was simply a bit grumpy that day. Either way, let’s begin this post with a critique of UofTHacks, and hopefully, I won’t be too harsh:

  • I received my UofTHacks shirt in size L, one size…

Ah, the night before New Years, the perfect time for programming. Recently, I have been brushing up on my Javascript coding in preparation for my co-op term and revisited closures. Closures are a very powerful feature of Javascript, albeit one that is quite tricky to understand at first. Below is an excerpt from Jibbering that aims to define closures in a couple of paragraphs.

Closures are one of the most powerful features of ECMAScript (javascript) but they cannot be properly exploited without understanding them. They are, however, relatively easy to create, even accidentally, and their creation has potentially harmful consequences…

Clement Hoang

Previously worked on React at Facebook and UWaterloo alumnus. Current engineer at Credit Karma. Learn about me on clementhoang.net.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store