56,966 blogs · [ { "id": "01a087e9-387d-7192-baad-ace84b7e79b5", "title": "The ambiguity of nouns: absolutisms, transformations and nominalisations", "url": "https://talesfrom.dev/blog/the-ambiguity-of-nouns-absolutisms-transformations-and-nominalisations", "published_at": "2026-09-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84b9451a9", "title": "Hands, heads and hearts: from coding to caring", "url": "https://talesfrom.dev/blog/hands-heads-and-hearts-from-coding-to-caring", "published_at": "2026-08-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84bd4ec8d", "title": "The ambiguity of requirements: features, questions, understanding", "url": "https://talesfrom.dev/blog/the-ambiguity-of-requirements", "published_at": "2026-07-26T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84bfa8a36", "title": "The ambiguity of communication", "url": "https://talesfrom.dev/blog/the-ambiguity-of-communication", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84c9c158f", "title": "The ambiguity of implementation details: mocking, interactions and abstractions", "url": "https://talesfrom.dev/blog/the-ambiguity-of-implementation-details", "published_at": "2026-04-28T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84d45f080", "title": "The ambiguity of easy: what does it mean?", "url": "https://talesfrom.dev/blog/the-ambiguity-of-easy", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84e0fa928", "title": "Keep it visible, smartass", "url": "https://talesfrom.dev/blog/keep-it-visible-smartass", "published_at": "2026-03-14T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84e33b4cd", "title": "The ambiguity of arrows", "url": "https://talesfrom.dev/blog/the-ambiguity-of-arrows", "published_at": "2026-02-27T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84f1d96ed", "title": "LLMs, 3D printers and amplifiers", "url": "https://talesfrom.dev/blog/llms-3d-printers-amplifiers", "published_at": "2026-01-31T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace84fe5df22", "title": "COCOA: from Ports & Adapters to concepts, capabilities and providers", "url": "https://talesfrom.dev/blog/cocoa-from-ports-and-adapters-to-concepts-capabilities-providers", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace850760984", "title": "Consumer-expected, need-driven behavior development", "url": "https://talesfrom.dev/blog/consumer-expected-need-driven-behavior-development", "published_at": "2026-01-07T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8513081df", "title": "The invisible role-switching problem and Need-Driven Design", "url": "https://talesfrom.dev/blog/the-invisible-role-switching-problem-and-need-driven-design", "published_at": "2026-01-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85183ba24", "title": "Bounded contexts: from compile-time hierarchies to runtime composition", "url": "https://talesfrom.dev/blog/bounded-contexts-from-compile-time-hierarchies-to-runtime-composition", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace851f5ea28", "title": "Boundaries, modularity and a diaper effect", "url": "https://talesfrom.dev/blog/boundaries-modularity-and-a-diaper-effect", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8523c5783", "title": "TDD: specify, satisfy, simplify", "url": "https://talesfrom.dev/blog/tdd-specify-satisfy-simplify", "published_at": "2025-11-30T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85260e49a", "title": "The ambiguity of naming", "url": "https://talesfrom.dev/blog/the-ambiguity-of-naming", "published_at": "2025-10-27T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85273da5b", "title": "Code, knowledge and \"AI\"", "url": "https://talesfrom.dev/blog/code-knowledge-and-ai", "published_at": "2025-10-20T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace852e237f9", "title": "The Inverse Matrix problem", "url": "https://talesfrom.dev/blog/the-inverse-matrix-problem", "published_at": "2025-10-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace853aabe4b", "title": "The ambiguity of architecture decision records", "url": "https://talesfrom.dev/blog/the-ambiguity-of-architecture-decision-records", "published_at": "2025-08-22T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace853b42de8", "title": "The knowledge gravity problem", "url": "https://talesfrom.dev/blog/the-knowledge-gravity-problem", "published_at": "2025-08-07T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace853f0b4fd", "title": "The ambiguity, the curse and the fallacy of domain model", "url": "https://talesfrom.dev/blog/the-ambiguity-the-curse-and-the-fallacy-of-domain-model", "published_at": "2025-08-04T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace854051f75", "title": "Time, angle and depth: dimensions in software design", "url": "https://talesfrom.dev/blog/time-angle-and-depth-dimensions-in-software-design", "published_at": "2025-07-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace854534aac", "title": "Easy will make you dizzy?", "url": "https://talesfrom.dev/blog/easy-will-make-you-dizzy", "published_at": "2025-07-01T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85482236f", "title": "Tools make fools?", "url": "https://talesfrom.dev/blog/tools-make-fools", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace854c29855", "title": "WTF are you talking about? Acronyms, jargon and abbreviations", "url": "https://talesfrom.dev/blog/wtf-are-you-talking-about-acronyms-jargon-and-abbreviations", "published_at": "2025-05-31T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace854d46491", "title": "Composing a PIE", "url": "https://talesfrom.dev/blog/composing-a-pie", "published_at": "2025-05-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace854ebad86", "title": "Functions, objects, actors: deliverying results", "url": "https://talesfrom.dev/blog/functions-objects-actors-deliverying-results", "published_at": "2025-04-21T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85598412e", "title": "Evolve, don't hack", "url": "https://talesfrom.dev/blog/evolve-dont-hack", "published_at": "2025-03-30T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace855d4a810", "title": "Context Segregation Principle", "url": "https://talesfrom.dev/blog/context-segregation-principle", "published_at": "2025-03-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8561e1bb0", "title": "The ambiguity of problems", "url": "https://talesfrom.dev/blog/the-ambiguity-of-problems", "published_at": "2025-02-10T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8566bc948", "title": "Functions (and facts) describe the world", "url": "https://talesfrom.dev/blog/functions-and-facts-describe-the-world", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85680974c", "title": "Abstracting over people", "url": "https://talesfrom.dev/blog/abstracting-over-people", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8577a16e4", "title": "The ambiguity of objects", "url": "https://talesfrom.dev/blog/the-ambiguity-of-objects", "published_at": "2024-11-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85850d998", "title": "Representing knowledge: what, how and why", "url": "https://talesfrom.dev/blog/representing-knowledge-what-how-and-why", "published_at": "2024-09-29T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace858746db6", "title": "The ambiguity of team work", "url": "https://talesfrom.dev/blog/the-ambiguity-of-team-work", "published_at": "2024-09-11T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8596dad6e", "title": "The ambiguity of application", "url": "https://talesfrom.dev/blog/the-ambiguity-of-application", "published_at": "2024-08-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85a4b480f", "title": "Dogmatic engineers and a product", "url": "https://talesfrom.dev/blog/dogmatic-engineers-and-a-product", "published_at": "2024-07-26T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85b402b7b", "title": "Map, don't ask", "url": "https://talesfrom.dev/blog/map-dont-ask", "published_at": "2024-06-30T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85b5d8e08", "title": "The law of eventual composition", "url": "https://talesfrom.dev/blog/the-law-of-eventual-composition", "published_at": "2024-05-15T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85b80e4a7", "title": "The ambiguity of code", "url": "https://talesfrom.dev/blog/the-ambiguity-of-code", "published_at": "2024-04-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85baea178", "title": "The ambiguity of interfaces", "url": "https://talesfrom.dev/blog/the-ambiguity-of-interfaces", "published_at": "2024-03-10T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85c35280f", "title": "Inverse Bruce Lee maneuver", "url": "https://talesfrom.dev/blog/inverse-bruce-lee-maneuver", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85ca8ccb2", "title": "Systems: by, with, for people", "url": "https://talesfrom.dev/blog/systems-by-with-for-people", "published_at": "2024-02-22T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85cd6067b", "title": "Psst, wanna solid options?", "url": "https://talesfrom.dev/blog/psst-wanna-solid-options", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85d6881f4", "title": "From concepts to architecture", "url": "https://talesfrom.dev/blog/from-concepts-to-architecture", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85d882bdc", "title": "FSM - Functional State Machines", "url": "https://talesfrom.dev/blog/fsm-functional-state-machines", "published_at": "2023-12-15T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85e203fee", "title": "Common words of the shared apocalypse", "url": "https://talesfrom.dev/blog/common-words-of-shared-apocalypse", "published_at": "2023-12-06T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85eb55311", "title": "Easy becomes complex", "url": "https://talesfrom.dev/blog/easy-becomes-complex", "published_at": "2023-11-17T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85f25b26b", "title": "Simple isn't easy", "url": "https://talesfrom.dev/blog/simple-isnt-easy", "published_at": "2023-11-11T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85f64b591", "title": "The ambiguity of composition", "url": "https://talesfrom.dev/blog/the-ambiguity-of-composition", "published_at": "2023-10-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace85f66d9c0", "title": "The ambiguity of software architecture", "url": "https://talesfrom.dev/blog/the-ambiguity-of-software-architecture", "published_at": "2023-09-17T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8604f2f33", "title": "The ambiguity of documentation", "url": "https://talesfrom.dev/blog/the-ambiguity-of-documentation", "published_at": "2023-08-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86122e614", "title": "New tools, old rules", "url": "https://talesfrom.dev/blog/new-tools-old-rules", "published_at": "2023-08-02T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace861caee70", "title": "Concepts, Entities, Data", "url": "https://talesfrom.dev/blog/concepts-entities-data", "published_at": "2023-07-20T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86267f22b", "title": "How do errors evolve?", "url": "https://talesfrom.dev/blog/how-do-errors-evolve", "published_at": "2023-07-17T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace862963333", "title": "I, interface", "url": "https://talesfrom.dev/blog/i-interface", "published_at": "2023-07-02T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace863163d77", "title": "Overdebugging", "url": "https://talesfrom.dev/blog/overdebugging", "published_at": "2023-06-07T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace863d1083f", "title": "Concept maps", "url": "https://talesfrom.dev/blog/concept-maps", "published_at": "2023-05-15T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace863e30114", "title": "Rethinking \"missingness\"", "url": "https://talesfrom.dev/blog/rethinking-missingness", "published_at": "2023-04-23T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace864013f11", "title": "Modularity Uncertainty Heuristic", "url": "https://talesfrom.dev/blog/modularity-uncertainty-heuristic", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace864d6aead", "title": "\"Solution-Probleming\"", "url": "https://talesfrom.dev/blog/solution-probleming", "published_at": "2023-03-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace865d37043", "title": "I don't know", "url": "https://talesfrom.dev/blog/i-dont-know", "published_at": "2023-03-05T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86625f394", "title": "Modeling Maturity Levels", "url": "https://talesfrom.dev/blog/modeling-maturity-levels", "published_at": "2023-02-19T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86701341d", "title": "The ambiguity of encapsulation", "url": "https://talesfrom.dev/blog/the-ambiguity-of-encapsulation", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8670ce413", "title": "A solid grasp of responsibility", "url": "https://talesfrom.dev/blog/a-solid-grasp-of-responsibility", "published_at": "2023-01-21T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86723906e", "title": "Slow down", "url": "https://talesfrom.dev/blog/slow-down", "published_at": "2023-01-09T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace867951eb8", "title": "Bool considered harmful?", "url": "https://talesfrom.dev/blog/bool-considered-harmful", "published_at": "2022-12-24T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8688a3250", "title": "Many faces of DDD Aggregates in F#", "url": "https://talesfrom.dev/blog/many-faces-of-ddd-aggregates-in-fsharp", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8691fb400", "title": "The ambiguity of abstraction", "url": "https://talesfrom.dev/blog/the-ambiguity-of-abstraction", "published_at": "2022-12-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace869940734", "title": "The cost of modeling", "url": "https://talesfrom.dev/blog/the-cost-of-modeling", "published_at": "2022-11-28T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace869d20834", "title": "(Fr)Agile", "url": "https://talesfrom.dev/blog/fragile", "published_at": "2022-11-14T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86a5fbd22", "title": "Language of the problem", "url": "https://talesfrom.dev/blog/language-of-the-problem", "published_at": "2022-11-02T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86b470469", "title": "\"Microoffices\" vs \"Officeolith\"", "url": "https://talesfrom.dev/blog/microoffices-vs-officeolith", "published_at": "2022-10-15T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86c45a763", "title": "Software Engineering for busy parents", "url": "https://talesfrom.dev/blog/software-engineering-for-busy-parents", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86cc98cfe", "title": "The value of Value Objects", "url": "https://talesfrom.dev/blog/the-value-of-value-objects", "published_at": "2022-09-12T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86d39db06", "title": "Feature toggling as a design tool?", "url": "https://talesfrom.dev/blog/feature-toggling-as-a-design-tool", "published_at": "2022-09-04T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86e2d9b9a", "title": "\"The ambiguity\" of TDD", "url": "https://talesfrom.dev/blog/the-ambiguity-of-tdd", "published_at": "2022-08-22T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86e93345b", "title": "\"Organization-Driven Design\"", "url": "https://talesfrom.dev/blog/organization-driven-design", "published_at": "2022-08-09T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86eca28ca", "title": "Modeling Value Objects in TypeScript", "url": "https://talesfrom.dev/blog/modeling-value-objects-in-typescript", "published_at": "2022-07-31T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86ef5bbb1", "title": "Conversation-Driven Design", "url": "https://talesfrom.dev/blog/conversation-driven-design", "published_at": "2022-07-25T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86f41e31c", "title": "Essentially bounded, Accidentally unlimited", "url": "https://talesfrom.dev/blog/essentially-bounded-accidentally-unlimited", "published_at": "2022-07-18T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace86f9f074b", "title": "Where did my methods go?", "url": "https://talesfrom.dev/blog/where-did-my-methods-go", "published_at": "2022-06-28T00:00:00+00:00" }, { "id": "01a087e9-387d-7192-baad-ace8705d441a", "title": "Hello world!", "url": "https://talesfrom.dev/blog/hello-world", "published_at": "2022-06-21T00:00:00+00:00" } ] posts Claim your blog
Back to talesfrom.dev
Blog · corpus.blog/blogs/talesfrom.dev/posts

talesfrom.dev

talesfrom.dev

2026

2025

2024

2023

2022