<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>engineering field notes</title><description>curated engineering notes on algorithms, design patterns, SOLID principles, system design, and TypeScript</description><link>https://engineering-notes.gngtgg.space/</link><item><title>3-Layered Architecture</title><link>https://engineering-notes.gngtgg.space/docs/architecture/high-level-architecture/3-layered-architecture/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/high-level-architecture/3-layered-architecture/</guid><description>Separate an application into presentation, business logic, and data access layers to achieve modularity and maintainability.</description></item><item><title>Domain-Driven Design (DDD)</title><link>https://engineering-notes.gngtgg.space/docs/architecture/high-level-architecture/ddd/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/high-level-architecture/ddd/</guid><description>Domain-Driven Design is a software design approach that puts the business domain at the centre of every architectural decision.</description></item><item><title>DRY, KISS &amp; YAGNI</title><link>https://engineering-notes.gngtgg.space/docs/architecture/general-principles/dry-kiss-yagni/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/general-principles/dry-kiss-yagni/</guid><description>Three foundational principles that guide clean, maintainable software — avoid repetition, favour simplicity, and defer unnecessary work.</description></item><item><title>Separation of Concerns</title><link>https://engineering-notes.gngtgg.space/docs/architecture/general-principles/separation-of-concerns/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/general-principles/separation-of-concerns/</guid><description>Each module or component should address a single, well-defined concern.</description></item><item><title>Law of Demeter</title><link>https://engineering-notes.gngtgg.space/docs/architecture/general-principles/law-of-demeter/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/general-principles/law-of-demeter/</guid><description>A method should only talk to its immediate friends, not to strangers.</description></item><item><title>SOLID Principles</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/overview/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/overview/</guid><description>Five fundamental principles of object-oriented design that promote maintainable, flexible, and understandable software.</description></item><item><title>Single Responsibility</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/single-responsibility/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/single-responsibility/</guid><description>A class should have only one reason to change.</description></item><item><title>Open-Closed</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/open-closed/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/open-closed/</guid><description>Software entities should be open for extension but closed for modification.</description></item><item><title>Liskov Substitution</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/liskov-substitution/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/liskov-substitution/</guid><description>Subtypes must be substitutable for their base types without altering program correctness.</description></item><item><title>Interface Segregation</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/interface-segregation/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/interface-segregation/</guid><description>Clients should not be forced to depend on interfaces they do not use.</description></item><item><title>Dependency Inversion</title><link>https://engineering-notes.gngtgg.space/docs/architecture/solid/dependency-inversion/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/solid/dependency-inversion/</guid><description>High-level modules should not depend on low-level modules; both should depend on abstractions.</description></item><item><title>Singleton</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/singleton/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/singleton/</guid><description>Ensure a class has only one instance and provide a global point of access to it.</description></item><item><title>Factory Method</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/factory-method/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/factory-method/</guid><description>Define an interface for creating an object, but let subclasses decide which class to instantiate.</description></item><item><title>Prototype</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/prototype/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/creational/prototype/</guid><description>Share properties and methods among many objects of the same type through the prototype chain.</description></item><item><title>Adapter</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/structural/adapter/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/structural/adapter/</guid><description>Convert the interface of a class into another interface clients expect.</description></item><item><title>Proxy</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/structural/proxy/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/structural/proxy/</guid><description>Intercept and control interactions with target objects through an intermediate layer.</description></item><item><title>Observer</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/behavioral/observer/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/behavioral/observer/</guid><description>Define a one-to-many dependency so that when one object changes state, all dependents are notified automatically.</description></item><item><title>Strategy</title><link>https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/behavioral/strategy/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/architecture/design-patterns/behavioral/strategy/</guid><description>Define a family of algorithms, encapsulate each one, and make them interchangeable at runtime.</description></item><item><title>Quicksort</title><link>https://engineering-notes.gngtgg.space/docs/algorithms/sorting/quicksort/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/algorithms/sorting/quicksort/</guid><description>A divide-and-conquer sorting algorithm with average O(n log n) performance.</description></item><item><title>Merge Sort</title><link>https://engineering-notes.gngtgg.space/docs/algorithms/sorting/merge-sort/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/algorithms/sorting/merge-sort/</guid><description>A stable divide-and-conquer sorting algorithm that guarantees O(n log n).</description></item><item><title>Sign-In Page</title><link>https://engineering-notes.gngtgg.space/docs/system-design/authentication/sign-in/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/system-design/authentication/sign-in/</guid><description>Designing a sign-in page with multiple authentication methods including email/password, OAuth, SSO, magic links, and passkeys.</description></item><item><title>Permissions &amp; Access Control</title><link>https://engineering-notes.gngtgg.space/docs/system-design/authorization/permissions/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/system-design/authorization/permissions/</guid><description>Authorization models including RBAC, ABAC, ACLs, and implementing permission systems in frontend applications.</description></item><item><title>Build Pipeline</title><link>https://engineering-notes.gngtgg.space/docs/web/performance/build-pipeline/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/performance/build-pipeline/</guid><description>Compilers, bundlers, tree-shakers, and minifiers that turn source modules into optimized browser bundles.</description></item><item><title>Loading Optimization</title><link>https://engineering-notes.gngtgg.space/docs/web/performance/loading/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/performance/loading/</guid><description>Techniques for delivering assets to the browser faster — compression, caching, resource hints, and media optimization.</description></item><item><title>Rendering Pipeline</title><link>https://engineering-notes.gngtgg.space/docs/web/performance/rendering/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/performance/rendering/</guid><description>The steps the browser takes to turn HTML, CSS, and JavaScript into a visible web page, and what causes each step to re-run.</description></item><item><title>Performance Metrics</title><link>https://engineering-notes.gngtgg.space/docs/web/performance/performance-metrics/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/performance/performance-metrics/</guid><description>Core Web Vitals and supporting metrics that quantify loading speed, interactivity, and visual stability in the browser.</description></item><item><title>Client-Side Rendering</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/csr/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/csr/</guid><description>A rendering strategy where the server sends a minimal HTML shell and JavaScript builds the entire UI in the browser.</description></item><item><title>Server-Side Rendering</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/ssr/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/ssr/</guid><description>A rendering strategy where the server generates full HTML for every request, giving the browser a complete page to display immediately.</description></item><item><title>Static Site Generation</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/ssg/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/ssg/</guid><description>Pages are pre-rendered at build time and served as static HTML files from a CDN, giving the fastest possible time to first byte.</description></item><item><title>Incremental Static Generation</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/isg/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/isg/</guid><description>An extension of SSG that regenerates individual pages in the background after deployment, keeping static performance while allowing content to update without a full rebuild.</description></item><item><title>Streaming SSR</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/streaming/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/streaming/</guid><description>The server sends HTML in chunks as data becomes available, letting the browser start rendering before the full page is ready.</description></item><item><title>Progressive Hydration</title><link>https://engineering-notes.gngtgg.space/docs/web/rendering/hydration/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/rendering/hydration/</guid><description>A strategy that hydrates a server-rendered page in pieces — prioritizing visible or interactive sections — instead of hydrating the entire component tree at once.</description></item><item><title>Types</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/types/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/types/</guid><description>Quick-reference overview of TypeScript&apos;s type primitives, built-in objects, type expressions, and object type syntax.</description></item><item><title>Interfaces</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/interface/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/interface/</guid><description>Defining object shapes with interfaces, extending them, and interface vs type differences.</description></item><item><title>Classes</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/classes/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/classes/</guid><description>TypeScript class features including access modifiers, abstract classes, and implements.</description></item><item><title>Advanced Types</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/advanced-types/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/advanced-types/</guid><description>Covers mapped types, conditional types, and template literal types in TypeScript.</description></item><item><title>Utility Types</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/utility-types/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/utility-types/</guid><description>There are a lot of utility types in Typescript that are useful for working with types.</description></item><item><title>Control Flow Analysis</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/cfa-analysis/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/cfa-analysis/</guid><description>How TypeScript narrows types through control flow analysis and type guards.</description></item><item><title>TypeScript Challenges</title><link>https://engineering-notes.gngtgg.space/docs/web/typescript/practice/typescript-challenges/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/typescript/practice/typescript-challenges/</guid><description>Hands-on type challenges to practice and deepen TypeScript type-level programming skills.</description></item><item><title>Container / Presentational</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/con-pres-pattern/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/con-pres-pattern/</guid><description>Separate data-fetching and state logic from rendering logic by splitting components into containers and presentationals.</description></item><item><title>Higher-Order Components</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/hoc/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/hoc/</guid><description>Reuse component logic by wrapping components in a function that adds shared behavior.</description></item><item><title>Render Props</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/render-props/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/render-props/</guid><description>Share rendering logic between components by passing a function or component as a prop.</description></item><item><title>Hooks</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/hooks/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/hooks/</guid><description>Use state and lifecycle logic in function components without classes.</description></item><item><title>Provider</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/provider/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/provider/</guid><description>Use React Context to share data across a component subtree without passing props through every level.</description></item><item><title>Compound Components</title><link>https://engineering-notes.gngtgg.space/docs/web/react/patterns/compound/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/patterns/compound/</guid><description>Let related components share implicit state so they can be composed together as a single unit.</description></item><item><title>React 18</title><link>https://engineering-notes.gngtgg.space/docs/web/react/releases/v18/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/releases/v18/</guid><description>Concurrent rendering, automatic batching, transitions, and new hooks landed in React 18.</description></item><item><title>React 19</title><link>https://engineering-notes.gngtgg.space/docs/web/react/releases/v19/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/web/react/releases/v19/</guid><description>Actions, Server Components, the React Compiler, Activity, useEffectEvent, and more across React 19.x releases.</description></item><item><title>SSH 101</title><link>https://engineering-notes.gngtgg.space/docs/backend/ssh-cheatsheet/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/backend/ssh-cheatsheet/</guid><description>SSH commands Cheat Sheet: ssh-keygen, ssh-copy-id, ssh-agent, authorized_keys, public key authentication</description></item><item><title>Network Diagnostic Tools</title><link>https://engineering-notes.gngtgg.space/docs/backend/network-tools/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/backend/network-tools/</guid><description>Basic terminal commands for checking connectivity, routes, ports, DNS records, and HTTP responses</description></item><item><title>VPS Setup Manual</title><link>https://engineering-notes.gngtgg.space/docs/backend/server-setup/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/backend/server-setup/</guid><description>A cheat sheet for remote VPS setup: just a set of steps and commands to keep close for the next time I need to set it up manually.</description></item><item><title>nginx Cheat Sheet</title><link>https://engineering-notes.gngtgg.space/docs/backend/nginx/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/backend/nginx/</guid><description>nginx Cheat Sheet for VPS setup</description></item><item><title>Terminal 101</title><link>https://engineering-notes.gngtgg.space/docs/other/terminal-basics/</link><guid isPermaLink="true">https://engineering-notes.gngtgg.space/docs/other/terminal-basics/</guid><description>Terminal Commands Cheat Sheet: pwd, cd, ls, grep, find, man, etc.</description></item></channel></rss>