Skip to content

Instantly share code, notes, and snippets.

@thearyanahmed
Last active June 28, 2025 19:15
Show Gist options
  • Select an option

  • Save thearyanahmed/faf6c9d3c7a18405fdf4929dfe744349 to your computer and use it in GitHub Desktop.

Select an option

Save thearyanahmed/faf6c9d3c7a18405fdf4929dfe744349 to your computer and use it in GitHub Desktop.

Backend Course Plan - Draft

#projectlighthouse

Quicklinks

  1. Go bindings to systemd socket activation, journal, D-Bus, and unit files
  2. The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions
    1. ./go-1brc -cpuprofile=cpu.prof -revision=1 measurements-10000000.txt >measurements-10000000.out talk about profiling after some time
  3. Context is an important thing
  4. Project [[Distributed Message Queue]] with UI
  5. Profiling
  6. What is Go bad at

Introduction to Golang

  1. Introduction to Go / Why Golang / Consider Golang
  2. Setting up environment
  3. Go 101: Values, Variables & Data Types
    1. Sclar data types
      1. int, float, rune
    2. Compound data types
      1. Array, slice, map
    3. Overflow issue
  4. Go 101: Control Flow (if-then-else, switch), loops
  5. Go 101: Functions
  6. Go 101: Error handling
    1. fmt.Errorf()
    2. Errors wrap
  7. Go 101: Write a program (morse code LED)
  8. Some stuff about golang, difference in make(), var and :=
  9. Go 101: Introduction to package 9. Show golang package 10. Show cloudflare package

Lets read from a file

  1. Read from a file, introduction to structs, do some basic aggregation like counting lines
  2. Introduction to testing (simple)
  3. When we need to have different operations, make it a CLI, add flags
  4. Proper error handling, testing, proper exit codes (refer HTTP Status Codes along, what should we do here)?
  5. Unicode and runes, handling multiple erros, Decoupling & io.Reader

Golang 1 billion rows challenge

  1. Read large file
  2. Parallelisim
    1. Introuduction to concurrency, channels, mutex
    2. Make the concurrent one parallel
  3. profiling tool

Read journalctl

Keep it simple :) Write a program. This chapter must focus more on mutex and similar concurrency related topics.

  1. Create an HTTP server
  2. Json encoding, http handleFunc, make sure to mention return when there is early return
  3. Proper HTTP error handling

Let’s build a web server

Web app for pokemon game!

Features

  1. REST Api
  2. gRPC (auth server)
  3. Containers & Production Grade Containers
  4. E2E testing
  5. RBAC
  6. Automated API documentation
  7. Kubernetes
  8. Production grade kubernetes deployment
  9. Rollback strategies
  10. CORS

HTTP Server Checklist (project distributed message queue)

  • Proper HTTP headers, proper content type
  • Caching
  • Compression
  • Concurrent connections, request body
  • Structured logging + contextual logging
  • Log levels
  • Centralised logging
  • Sensitive data protection
  • Key metrics: RPS, Error rate, Latency, Resource usage
  • Prometheus, Grafana
  • Alerting
  • LB

Another branch will start in data structures and algorithms. This branch will show Arrays, linked lists, recursion, sorting, binary search tree, trees, backtracking, hashmap, DP, graphs and bit manipulation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment