Skip to content
AyoKoding

Overview

Build your software engineering expertise with structured learning paths covering modern programming languages and system design.

What You'll Learn

  • Programming Languages - Deep dives into Python, Go, Java, Kotlin, Rust, TypeScript, C#, F#, and more, with tutorials from basics to advanced topics
  • Algorithms & Data Structures - Core algorithmic thinking and data-structure fundamentals through annotated examples
  • Platforms - Linux (shell and tooling), Web (frontend and backend frameworks), and Mobile (React Native)
  • Data - Databases, SQL, and data-access/migration tools across languages
  • Automation Testing - Test automation with Playwright, Vitest, and Testing Library
  • Automation Tools - Developer automation with Git, GitHub Actions, the GitHub CLI, and text tools (awk, sed, jq)
  • Infrastructure - Infrastructure concepts and tools including Terraform, Ansible, Docker, Kubernetes, K3s, and Proxmox VE
  • Networking - Computer networking fundamentals, protocols, and distributed-systems communication
  • System Design - Distributed-systems patterns (load balancing, sharding, CAP, microservices, multi-region) across multiple services and scale levels
  • Architecture - Single-application structure patterns (SOLID, layered, hexagonal, DDD, FSM, design patterns) inside one app
  • Compilers & Interpreters - Build working interpreters from scratch (Lisp in F# and in Go)
  • Development - Development methodologies including TDD and BDD

Architecture vs. System Design — Two Different Layers

These two tracks are often confused, but they target different layers of the same system:

  • Architecture focuses on single-application internals — how classes, modules, and layers inside one app (or one service) are organized. Think SOLID, layered architecture, hexagonal/clean architecture, DDD building blocks, GoF design patterns.
  • System Design focuses on distributed systems — how multiple services, databases, caches, and queues interact across machines and regions. Think load balancing, sharding, CAP theorem, sagas, consistent hashing, microservices.

Both are valuable, and most real systems need both. An e-commerce monolith primarily needs software architecture; a multi-region payment platform needs both. Pick the track that matches the problem you're solving right now; cross-link to the other when the scope expands.

Each topic follows the Diátaxis framework with tutorials (learning-oriented), how-to guides (problem-solving), reference (technical lookup), and explanations (conceptual understanding).

Last updated December 11, 2025

Command Palette

Search for a command to run...