> Amin Khansari's Notes
_
≡
Who am I?
Series
Tags
Search
TAGS
25 TAGS
ddd (10)
typescript (7)
effect-ts (7)
event-sourcing (2)
fsharp (2)
linux (2)
llm (2)
architecture (1)
socio-technical (1)
org-culture (1)
leadership (1)
keyboard (1)
neovim (1)
ergonomics (1)
productivity (1)
dotnet (1)
functional-programming (1)
language-design (1)
fedora (1)
cosmic-desktop (1)
tooling (1)
observability (1)
logging (1)
tracing (1)
error-handling (1)
SEARCH POSTS
✕
START TYPING TO SEARCH_
[{"id":"designing-with-types-conclusion","title":"Designing with Types: Conclusion","description":"A before-and-after look at the Contact model, what its types now prevent, and where type-driven design is worth the extra code.","date":"2026-08-28T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"designing-with-types-non-string-types","title":"Designing with Types: Non-String Types","description":"How to constrain numbers, timestamps, and units with Effect so arithmetic and date parsing cannot quietly violate domain rules.","date":"2026-08-26T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"designing-with-types-constrained-strings","title":"Designing with Types: Constrained Strings","description":"How to use Effect Schema to normalize and constrain strings when they enter the domain, so formatting and length rules travel with the type.","date":"2026-08-23T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"designing-with-types-making-state-explicit","title":"Designing with Types: Making state explicit","description":"How to model lifecycle rules as tagged states and events with Effect, making every transition and failure explicit.","date":"2026-08-15T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"how-i-use-fedora-cosmic-atomic","title":"An opinionated look at how I use Fedora COSMIC Atomic","description":"How I combine Fedora's atomic base, COSMIC's keyboard-driven tiling, Flatpak, Homebrew, Mise, and containers into a low-maintenance Linux workstation.","date":"2026-07-28T00:00:00.000Z","tags":["linux","fedora","cosmic-desktop"]},{"id":"the-slop-coding-era","title":"The Slop Coding Era","description":"The hype around AI-generated code is creating a culture where quantity trumps quality. Strategic Domain-Driven Design shows us when LLM can take the lead and when it should stay in a supporting role.","date":"2026-02-12T00:00:00.000Z","tags":["llm","ddd"]},{"id":"mise-everything-in-its-place","title":"Mise: Dev Tools, Environments, and Tasks in One Place","description":"Tired of juggling tool versions, environment variables, and scattered scripts across your projects? Here's how mise brings them all under one roof.","date":"2026-01-30T00:00:00.000Z","tags":["tooling"]},{"id":"designing-with-types-making-illegal-states-unrepresentable","title":"Designing with Types: Making illegal states unrepresentable","description":"How to use union types and Effect Schema to encode business rules directly into your domain model, making invalid states impossible at compile time.","date":"2025-12-08T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"the-right-way-to-code-with-genai","title":"The Right Way to Code with LLM","description":"LLM is a powerful coding assistant, but using it well means staying in the driver's seat.","date":"2025-12-05T00:00:00.000Z","tags":["llm"]},{"id":"designing-with-types-wrapper-types","title":"Designing with Types: Wrapper Types","description":"How to use TypeScript branded types and Effect to eliminate primitive obsession, validate values at domain boundaries, and make illegal states unrepresentable.","date":"2025-11-18T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"designing-with-types-introduction","title":"Designing with Types: Introduction","description":"How to use TypeScript's type system and Effect's functional primitives to model domains more accurately and make bad code impossible to write.","date":"2025-11-13T00:00:00.000Z","tags":["typescript","ddd","effect-ts"]},{"id":"a-survival-guide-to-build-healthy-tech-organizations","title":"A Survival Guide to Build Healthy Tech Organizations","description":"How the right balance of structure, culture, and leadership creates tech organizations where both people and products thrive.","date":"2025-09-10T00:00:00.000Z","tags":["socio-technical","org-culture","leadership"]},{"id":"why-are-logs-big-lies","title":"Why Are Logs Big Lies?","description":"Logs promise clarity but deliver confusion. Explore the common patterns that make application logs unreliable and what you can do about it.","date":"2025-09-08T00:00:00.000Z","tags":["observability","logging","tracing","error-handling"]},{"id":"fsharp-features-i-love","title":"F# Features I Love","description":"What makes F# a joy to write after five years of full-time use.","date":"2025-01-07T00:00:00.000Z","tags":["fsharp","dotnet","functional-programming","language-design"]},{"id":"event-sourcing-a-matter-of-definition","title":"Event Sourcing: A Matter of Definition","description":"Understanding Event Sourcing Basics","date":"2024-11-20T00:00:00.000Z","tags":["event-sourcing","ddd"]},{"id":"from-wrist-pain-to-productivity","title":"From Wrist Pain to Productivity","description":"My journey with ortholinear split keyboard, Linux, tiling WM, and NeoVim.","date":"2024-11-15T00:00:00.000Z","tags":["keyboard","linux","neovim","ergonomics","productivity"]},{"id":"a-migration-journey","title":"A Migration Journey","description":"A migration journey from a critical legacy C# system to a reactive Event Sourcing architecture with F#.","date":"2023-04-12T00:00:00.000Z","tags":["architecture","ddd","event-sourcing","fsharp"]}]