Google Taiwan 2021 Campus Hire Interview Experience

I was hunting for a new grad software engineering role over the last few months and quite fortunately, Google invited me for a technical phone interview one week after I submitted my resume through their job portal. I will write down the full process of my application in this article. Verbosely. My application process, ordered chronologically: Technical Phone Interview x 1 Virtual On-site Interviews (Technical x 4 + Behavioral x 1) Team-matching Fit Talks x 3 (Matched with one of the team) Hiring Committee Review Additional Technical Interviews x 2 (Requested by the Hiring Committee) Hiring Committee Re-evaluation Onboarding Technical Phone Interview I was called by a Googler from the Taipei Office for my technical phone interview.
Read more

My First CTF Experience

Just participated in my very first Capture the Flag (CTF) competition two weeks ago. I had never heard of CTF before I took the cybersecurity course this semester, and it didn’t interest me at first so I didn’t register for it until a friend of mine invited me to join his team. It turned out to be a fabulous experience. Usually, CTF competitions can be classified into two types, namely, the “attack and defense” match where two teams battle by attacking and defending a server, and the “jeopardy” contest where multiple teams compete to solve tricky puzzles.
Read more

Project: YARC - Cloning Reddit Using Go and Vue

I didn’t get an internship this summer. This wasn’t because of COVID-19 or failing interviews, I simply didn’t apply to any. I felt that since I would be working something like 9-to-5 for the next 20, 30, or 40 years after I graduate, why would I spend my last summer vacation on…working? So, instead of going through the anxiety of internship searching, I designed a few side projects and started working on them.
Read more

My Journey in Programming Languages

In this semester, I am taking a course called Principles of Programming Language. It introduced some interesting programming language concepts such as dynamic scoping, duck typing, functional programming, and logic programming. However, what I enjoyed most in the course is that I got a lot of chance to explore and compare drastically different languages. In a 13-week semester, we had to turn in assignments written in COBOL, C, Java, Python, Perl, Prolog, and ML.
Read more

Proving NP-Completeness by Restriction

Proving NP-Completeness is a core topic in the studies of algorithms. For most of the algorithms textbooks, they show some complicated tricks which reduce a known NP-Complete problem to another problem, say Q, to prove that Q is NP-Complete. This works because if problem A reduces to problem B, then B is at least as difficult as A. And since A is NP-Complete, B is also NP-Complete. However, many problem reduction methods are extremely subtle and often require some “divine instincts” to come up with in the first place.
Read more

Music in Film Terminology

Just took an interesting gen-eds course Music in Film last semester. Though I publish mostly technical or game dev articles on this blog, I really enjoyed the materials in the course and I’d love to share the basics (that is, the terminology) of the course here. (Note we refer “music in film” as the score music of films rather than the sound effects.) Tonality vs. Atonality Tonality is a principle which the music is composed to center around a tonic central.
Read more

Andrew Ng Machine Learning Course Review and Brief Notes

Just completed the renowned Andrew Ng’s Machine Learning course (on Coursera) these couple of days. Since many people are curious about this course, I will do a quick write up on how I think about this course and what I actually learned. About the Instructor Andrew Ng is the co-founder of Google Brain and Coursera, and an adjunct professor at Stanford University. He was also a former vice president and chief scientist at Baidu working on large scale artificial intelligence projects.
Read more

Knights Rubbish Released

My second game project Knights Rubbish has released! Originally I was just doing some experiments with Godot Engine and trying to implement the bare bones of a platformer, but then the project grew larger and larger as I combined it with other mechanics I was testing. After a year and couple of months, Knights Rubbish was born! Real Photos as Game Graphics One of the coolest features in Knights Rubbish is that most of its graphics are made with processed photos.
Read more

iOS Tuner App Using Audiokit

I made an iOS Tuner & Metronome App last couple of months due to boredom. Suffering from boredom again this month, I decided to write an article on how I implement it. In this article, I will show: How to sample audio from the microphone using AudioKit. How to calculate the notes from raw frequencies (of the sampled audio). I will not delve into how I implement the views since the code is quite bulky and tedious.
Read more

Stirling's Formula - Approximation of n!

I.Introduction: The Coin Tossing Problem Whenever you have difficulty deciding something, for example, whether to attend the lectures of a course or not, the most common thing to do in this scenario is to toss a coin and see whether the heads or tails of the coin is facing up when they land. Assume that the coin you toss is uniform, meaning that the chance of the heads to land facing up is equal to the chance of the tails to land facing up.
Read more