Designing a geospatial search service
How to design a geospatial search service?
Designing a typeahead search system
How to design a typeahead search system?
Designing an S3 object storage system
How to design an S3 object storage system?
Designing a URL shortener
How to design a URL shortener?
Designing a rate limiter
How to design a rate limiter?
Building an interpreter
How does an interpreter work? Notes on "Writing an Interpreter in Go" by Thorsten Ball
TypeScript and Set Theory
How does set theory help to understand type assignability and resolution in TypeScript?
Typing a convict
Config Schema
How can we map config options to return types in a convict
config schema?
Revisiting Data Structures in JavaScript
Implementing in JS all methods of linked lists, stacks, trees, hash tables, and graphs.
Docker
How can we run an app in a reproducible isolated environment?
The OAuth 2.0 Protocol
How can a user allow an app to access user data at a third-party service?
Git
How do we use git to manage changes to source code over time?
Just JavaScript by Dan Abramov
What does Dan Abramov's mental model of JavaScript look like?
JavaScript Hard Parts by Will Sentance
What does Will Sentance's mental model of JavaScript look like?
Pointers in C
What is the purpose of pointers in C and how should we work with them?
Big O Notation
Understanding Big O notation, approximations when determining runtimes, and classification of runtimes: constant, logarithmic, linear, quasilinear, quadratic, exponential, factorial, etc.
Behavioral Design Patterns
Summary of all the behavioral design patterns: memento, state, iterator, strategy, observer, command, template method, mediator, chain of responsibility, and visitor.
Structural Design Patterns
Summary of all the structural design patterns: composite, adapter, decorator, facade, flyweight, bridge, and proxy.
Hash Tables
Understanding what hash tables are and how they work, collisions, common operations, etc.
Arrays and Linked Lists
Features and implementation of linked lists and arrays, singly and doubly linked lists, circular linked lists, common operations, etc.
Stacks and Queues
A stack is container where pieces of data enter and exit from a single end, following the last-in-first-out (LIFO) principle.
Trees
Trees, nodes, binary trees, breadth-first search, depth-first search, pre-order, in-order and post-order traversal, common operations, etc.
Graphs
Graphs, cycles, adjacency matrix and adjacency list, implementations, etc.
Recursion
Recursion is when a function calls itself, reducing a task to smaller subtasks until reaching a base subtask that it can perform without calling itself, and then using the result of that base subtask in the smaller subtasks until reaching a final result.
Sort Algorithms
Bubble sort, selection sort, insertion sort, merge sort, quick sort, counting sort, bucket sort, etc.
Search Algorithms
Linear search, binary search, ternary search, jump search, exponential search, etc.
Heaps and Tries
A heap is a type of tree with two properties: completion and heap property. A heap is complete, i.e. every level is fully filled, or has nodes inserted consecutively from left to right.
Flutter State Management with Provider
Managing state in Flutter with Provider: ChangeNotifier, ChangeNotifierProvider, Provider.of, Consumer, etc.
Flutter UI
Notes on Flutter UI: assets, app icon, splash screen, themes, fonts, images, widgets, gestures, etc.
PyQt
How to work with PyQt: setup, QtDesigner, free-form design, event handling, intercepting events, fbs, styling, etc.
Flutter Basics
Notes on Flutter: commands, VSCode tips, navigation, networking, persistence, releasing, etc.
Firebase Basics
Notes on Firebase and Jeff Delaney's courses: setup, data modeling, CRUD ops, composite index, data relationships, etc.
SQL
Operations, operators, modifiers, data types, constraints, aggregate functions, numeric functions, string functions, date functions, conditional functions, subqueries, views, stored procedures, triggers, events, transactions, concurrency, database design, indexing, etc.
JavaScript OOP
Object-Oriented Programming in JavaScript: principles, object creation, factory functions, constructor functions, classes, prototypes, composition, inheritance, static methods, getters and setters, etc.