From the ground up (WIP)

Updated: 2020-05-07

The Plan

Part 1: Start from scratch

Build a simple web app:

  • one single HTML page to draw a world map and highlight the countries you've visited.
  • create a React app to expand on that idea
  • create a simple backend, or an API server (Express/Node)
  • create a simple database (Postgres)

At the end of Part 1 you should have a minimal however functional web app, yet it is hard to sell it, due to the lack of features and lack of stability and scalability.

Now you have 2 branches to choose from:

  • if you want to be an awesome Software Engineer (SWE), focus on Part 2a Development;
  • if you are more interested in scalability, availability, large scale distributed systems, and want to be a Site Reliability Engineer (SRE), then Part 2b Deployment may be more relevant.

Part 2a: Development

This covers the development only, regardless how it would be deployed. Think of SWE.

  • gRPC instead of REST
  • security: e.g. Google Cloud Endpoint API Keys, Auth0, or Okta

    • API auth
    • User auth

Part 2b: Deployment

This covers the deployment, regardless of the functionalities of the app. Think of SRE.

  • Deploy to cloud
  • Dockerized app and database
  • use proxy (Envoy)