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

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

Customized 2D Following Camera in Godot

Two weeks ago, I wrote an article about some camera moving schemes used in Metal Slug 3. In this article, I will show you how to actually implement such a camera. I will be using the open source Godot Engine with GDScript since I believe any programmer with could understand GDScript quite easily, so let’s get started. First, let’s define some variables we’ll use later. 1 2 3 4 5 6 7 8 9 10 # Scroll the screen (aka.
Read more

Camera Moving Scene Scrolling in Metal Slug 3

I’ve started to work on my first 2D side scrolling platformer recently. However, before diving into designing my own game, I did some quick research on various topics about 2D platformers. One of them is camera controlling (aka. scene scrolling). I find some interesting camera controlling technique used in the Metal Slug series, so I would like to share my observations and analysis of how and when to apply those camera controlling schemes.
Read more

Music Syncing in Rhythm Games

Recently, I’ve started my beatbox rhythm game project Boots-Cut using Unity. When prototyping the basic game mechanics, I found that it is quite tricky to sync the music notes with the music correctly. However, there are very little articles on the web concerning this subject. So, I will try to point out some important tips when developing a rhythm game (especially in Unity) in this article. Among all, I found the following three points with most importance:
Read more