Search

Lessons (40)

  • Meaningful Names

    … Learn simple rules for naming variables, functions and classes so code explains itself. The big idea A name …

  • Services & Ingress

    … Prefix backend: { service: { name: orders-api, port: { number: 80 } } } - path: /products pathType: Prefix backend: { service: { name: catalog-api …

  • Helm, kubectl Cheat Sheet & Best Practices

    … name: {{ .Release.Name }} spec: replicas: {{ .Values.replicaCount }} template: spec: containers: - name: api image: "{{ .Values.image.repository }}:{{ .Values.image …

  • DRY: Don't Repeat Yourself

    … Merging them couples things that should change independently. js // These look identical… const validateProductName = (name) = name.length 0 …

  • ConfigMaps, Secrets & Storage

    … containers: - name: api image: registry.example.com/shop-api:1.9.0 envFrom: - configMapRef: { name: shop-api-config …

  • Kubernetes Cluster Architecture

    … virtual clusters A namespace is a folder inside the cluster that groups resources and scopes names, permissions and …

  • Normalization & Denormalization

    … We will normalize one deliberately bad order table: order id customer name customer email product id product name …

  • Structural Patterns: How to Connect Objects

    … each wraps a function and returns a function with the same shape const withLogging = (fn, name) = async (...args …

  • Frontend Testing Strategy

    … One behaviour per test, with a name that reads like a sentence. Component tests with Testing Library ⭐ Testing …

  • Small Functions That Do One Thing

    Short, focused functions are easy to name, test and reuse. Learn how to spot a function doing too …

  • Pods

    … containers: - name: web image: nginx:1.27 ports: - containerPort: 80 bash kubectl apply -f pod.yaml kubectl get …

  • I — Interface Segregation Principle

    … string; name: string }) { return <img src={src} alt={name} / ; } <Avatar src={user.avatarUrl} name={user.displayName} / <Avatar src …

  • Microkernel (Plugin) Architecture

    … this { if (this.plugins.some((p) = p.name === plugin.name)) throw new Error( Plugin ${plugin.name} already registered …

  • What Are Design Patterns?

    Design patterns are named, reusable solutions to problems that keep coming up in software design. Meet the three …

  • React Fundamentals

    … cart, products"] -- products, onAdd PL[ProductList] PL -- name, price, onAdd PC1[ProductCard] PL -- name, price, onAdd PC2[ProductCard …

  • SQL vs NoSQL Databases

    … 17, name: "Ana", email: "ana@mail.com" }, items: [ { productId: 5, name: "Keyboard", qty: 1, priceCents: 4999 }, { productId: 9 …

  • What Is Clean Code?

    … subtotal; } What changed? 1. Names explain intent: calc became orderTotal , and a[i].s === 1 became item.inStock …

  • System Design Interview Framework

    … 4. Model data and name each source of truth. 5. Define APIs with authorization and idempotency. 6. Deep …

  • SQL Interview Query Drills

    … Find repeated rows SELECT name, section, COUNT( ) AS copies FROM students GROUP BY name, section HAVING COUNT( ) 1 …

  • S — Single Responsibility Principle

    … split by actor js // ✅ One reason to change each class Employee { constructor(id, name, hourlyRate) { Object.assign(this …

  • React Hooks in Practice

    … order changes between renders if (user) { const [name, setName] = useState(user.name); } // ✅ Always call it; put the condition …

  • Deployments, ReplicaSets & Rollouts

    … containers: - name: api image: registry.example.com/shop-api:1.8.0 ports: [{ containerPort: 3000 }] resources: requests: { cpu …

  • JavaScript Essentials: Event Loop, Closures & this

    … plain call setTimeout(() = console.log(this.name), 0); // ✅ "Ana": arrow inherits this }, }; user.greet(); // "Hi, Ana" const greet …

  • Comments & Formatting

    … Comments that replace a good name js // ❌ // check if the user can get a discount if (user.orders …

  • TypeScript Essentials

    … number; name: string; email: string; avatarUrl?: string; // optional readonly createdAt: Date; // can't be changed after creation } type …

  • Behavioral Patterns II: Chain, Template, Iterator, Mediator, Memento, Visitor

    … offline ); target.receive(from.name, text); } } class User { constructor(name) { this.name = name; } send(to, text) { this.room …

  • REST API Design

    … resource naming, methods, status codes, pagination, versioning, errors and idempotency. The big idea A good API is like …

  • Onion Architecture & Clean vs Hexagonal vs Onion

    … domain model → domain services → application services The Dependency Rule + named layers, use cases as first-class objects, crossing …

  • Scaling & Health Probes

    … Deployment, name: shop-api } minReplicas: 3 maxReplicas: 30 metrics: - type: Resource resource: name: cpu target: { type: Utilization, averageUtilization …

  • Why Kubernetes?

    … containers: - name: api image: registry.example.com/shop-api:1.8.0 ports: [{ containerPort: 3000 }] bash kubectl apply …

  • Docker & Containers

    … docker run -d -p 3000:3000 --name api -e DATABASE URL=postgres://… shop-api:1.0 docker logs …

  • Topics, Partitions & Offsets

    … b@new.com"] end Before -- After bash kafka-configs.sh --alter --entity-type topics --entity-name user-profiles …

  • DSA Interview Patterns Cheat Sheet

    … 4. Optimise: "The bottleneck is the inner search… a hash map makes that O(1)." Name the pattern …

  • Finding Service Boundaries with DDD

    … Ordering stores the product ID, name and price at the time of ordering , not the full catalogue entry …

  • Domain-Driven Design: Tactical Patterns

    … identity matters"] E1["Customer cus 7<br/ name: Ana, city: Porto"] -- "moves city" E2["Customer cus 7<br …

  • Clean Error Handling

    … Error { constructor(message, statusCode) { super(message); this.name = this.constructor.name; this.statusCode = statusCode; } } class ValidationError extends AppError …

  • How a Web Request Works

    … You know the person's name, but you need their address → DNS turns shop.com into an IP …

  • REST vs GraphQL vs gRPC

    … 42) { name avatarUrl posts(limit: 3) { title likes } followers { totalCount } } } json { "data": { "user": { "name": "Ana", "avatarUrl": "https://…/ana …

  • Hexagonal Architecture (Ports & Adapters)

    … wires adapters to ports Naming ports well Cockburn suggests naming ports after their purpose , as "For…ing": Side …

  • Views, Triggers & Stored Procedures

    … Transaction-control and return-value capabilities vary by engine, so name the product in an interview.