I’m just a normal guy.

Me @ Twin Peaks, SF

This is hard. I’ve never actually written an article about myself before. So I’m just going to write and see where my thoughts take me.

My name is Michael. I grew up in China and flew to Toronto when I was 10 years old and that’s where I grew up. I’m a recent graduate from the University of Waterloo and I’m currently working remotely as a Software Engineer.

Yeah, I had no idea what I wanted to do, but I turned out to be alright. In high school, I was…

How I learned and progressed from them

Woman working on code on a laptop
Woman working on code on a laptop
Photo by Christina @ wocintechchat.com on Unsplash

I was fortunate enough to start working as a junior developer with a senior as my mentor. It means I had the opportunity to learn from someone who walked the path I’m going to walk and has more experience than me on this journey.

Having a senior engineer in your team who is willing to teach and guide you is such a blessing. If your career goal is to become a senior developer, it can save you an enormous amount of time.

In this post, I’d like to share the things I saw my mentor and other senior developers do…

Find what works for you

Card that says “What can you do today that you couldn’t do a year ago?”
Card that says “What can you do today that you couldn’t do a year ago?”
Photo by Mikel Parera on Unsplash

I’ve now been working as a full-time software developer for over a year. I went from a fresh graduate who only implemented simple frontend features to leading a whole project and designing an entire system for our customers.

Needless to say, I’ve struggled a lot, and I’ve learned a lot. Like many others, I felt lost when I started. Not only did I not feel confident in my technical skills as a fresh grad working with senior developers with 10+ years of experience, but most importantly, I didn’t find a “way of working” that worked for me.

Every developer has…

You don’t need to write everyday

Photo by Daniel Álvasd on Unsplash

I finally earned $100 for straight two months on Medium, purely from my writing. Then I got kicked out:

To grow, you need to embrace discomfort sometimes

Man walking in underground tunnel
Man walking in underground tunnel
Photo by Lindsey LaMont on Unsplash.

Working in software is hard — no matter what level you are at. But as a junior developer who is maybe fresh out of school or has just switched to the industry, this journey can be extra challenging.

Comparing myself to a year ago, I have definitely come a long way as a junior developer, from a fresh university graduate to a developer who can input on design decisions and make a real impact on various projects. I think that is a big accomplishment for my first year since entering the field.

But improvement doesn’t come for free. In the…

Show off your skills and increase your chances of getting the job

Male celebrating.
Male celebrating.
Photo by bruce mars on Unsplash

If you Google behavioral interview questions, you can find a lot of example questions:

It’s impossible to prepare for them all. There are too many different questions an interviewer can ask.

But you don’t need to memorize all of them, just memorize how to answer them. If you know what interviewers look for, you can answer all of them. That sounds simple, right?

Well, duh, you might think, but there’s a pattern here.

During my undergrad, I’ve been to over 60 interviews. Although most…

All the things you need to know to go from beginner to expert

tree diagram of concepts to learn in React
tree diagram of concepts to learn in React
Image credit: Author

React is one of the most popular JavaScript libraries for creating dynamic web applications. It has huge community support and an active development team behind it.

Although React by itself is relatively simple, it’s not enough to just learn a single library, especially if you want to create a complex web app.

I’ve been developing in React since 2016, and as my tasks increased in complexity, I had to learn other “helper libraries” to implement features.

In this article, I want to lay out a roadmap you can use for learning how to create real-world applications using React. …

How to use meetings with your manager to accelerate your growth

Two men talking at a table
Two men talking at a table
Photo by LinkedIn Sales Navigator on Unsplash.

I have a love/hate relationship when it comes to one-on-ones with my manager. I love them because I am fortunate enough to have a responsible and experienced manager, and I’ve learned a lot from them. But I also get nervous because sometimes I just don’t know what to say.

It’s hard to have an effective one-on-one, which is why a lot of articles talk about how to host a good session as the manager. But it’s hard for the junior developers as well. …

Simplify things with existing technologies


If your web application needs to persist user data, then you probably need them to sign up or log in to display more personalized content.

Nowadays, if you want your application to be more accessible, you need to support all kinds of sign-in methods such as SMS, Email/Password, Google, Facebook, etc. It’s a lot of work.

In this tutorial, I want to show you how Firebase and Firebaseui can simplify things. These technologies support multiple sign-in methods, will keep track of user states, and make our job as the developer very easy.

We will be creating a sign-up and login…

They are not all about white-board coding

Photo by ThisIsEngineering from Pexels

When preparing for a software engineering interview, we often jump right into behavioral, white-board coding, and system design questions.

But there are other questions, although technical, that are not algorithmic or data structure related. Companies ask them because they want to know your potential in this field and if you know the stacks in more depth. Companies don’t want to hire someone who can “only” code.

In this article, I want to share some of the “rapid-fire” questions I encountered many times in front-end interviews. Hopefully, they can help you to prepare as well.

1. What is the use of “key” in React/Vue?

Key is a unique attribute that…

Michael Chi

Always drinking coffee, always coding, and always building beautiful websites.

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