Felix Barbalet
banner
felixbarbalet.com
Felix Barbalet
@felixbarbalet.com
software engineering w/ #clojure, #data, #electronics, #photography, #infosec and #economics. My longer form writing is @ https://felixbarbalet.com
https://keyoxide.org/hkp/535FFD2607AFCB2C97831159CD1D679C615C17C8
The result is "Draft for Consultation." It proves my point: just because you can, doesn't mean you should. It’s terrible. You’re going to love it.

Sorry in advance to anyone who listens to it.
December 12, 2025 at 3:19 AM
The real work is not typing; the real work is thinking.

#DeepWork #SoftwareEngineering #DevSky #Tech #EngineeringLeadership #SystemDesign #Philosophy
December 10, 2025 at 9:25 AM
The rush to "build" often means prematurely entangling ideas, leading to accidental complexity that paralyzes future development. You cannot stumble into a robust architecture for high-stakes stochastic systems.
December 10, 2025 at 9:25 AM
Spend time designing that model before you worry about the execution.

#SoftwareArchitecture #Datomic #DevSky #SystemDesign #Database #Tech #SoftwareEngineering #Data
December 9, 2025 at 7:34 AM
Their states are assertions and retractions over time. If you don't have a rigorous, temporal model of your execution, you aren't engineering; you're just hoping.
December 9, 2025 at 7:34 AM
Designing this interplay - where the stochastic meets the deterministic - is the hardest part of the architecture.

#KnowledgeGraph #AI #RAG #SystemDesign #DevSky #Tech #GraphDatabase #SoftwareEngineering
December 8, 2025 at 6:01 AM
The LLM suggests actions or interpretations, but the KG validates them against established facts and schema. The LLM is a powerful reasoning engine, but the KG is the referee.
December 8, 2025 at 6:01 AM
Choosing when to impose structure, and when to defer it, is the essence of sound design.

#DataModeling #Datomic #SoftwareEngineering #DevSky #Tech #Database #SystemDesign #Data
December 6, 2025 at 10:19 PM
We don't force it into a predefined relational structure immediately. Using a database like Datomic allows us to accrete facts about this data later, evolving the schema as our understanding grows. By prioritizing data over structure, we maintain flexibility.
December 6, 2025 at 10:19 PM
Choosing where the seams are, and what belongs in an interceptor versus the task itself, is not trivial.

#SoftwareArchitecture #DevSky #CleanCode #SoftwareEngineering #Tech #DesignPatterns #Refactoring
December 5, 2025 at 9:57 PM
If you want a system that can evolve, you must separate these concerns. We use interceptor chains—middleware wrapping the execution of every task. This allows us to inject cross-cutting "plumbing" without polluting the core logic.
December 5, 2025 at 9:57 PM
Designing the rules for this adaptation requires profound clarity about the problem domain, not just the technology.

#AIAgents #SystemDesign #DevSky #SoftwareEngineering #Tech #AI #Orchestration #Automation
December 3, 2025 at 9:25 AM
After a task runs, an assessor determines the continuation, potentially rewriting the workflow DAG at runtime. This is how you bridge the gap between predefined orchestration and autonomous behavior.
December 3, 2025 at 9:25 AM
Designing this ledger is a prerequisite, not an afterthought.

#LLMs #AI #Observability #DevSky #SoftwareEngineering #Datomic #Tech #SystemArchitecture #AIGovernance
December 2, 2025 at 7:34 AM
This ledger must capture the exact inputs (fingerprinted), the precise function executed, the outputs, and the duration. Datomic gives us this history inherently. If you cannot replay and interrogate every probabilistic decision your system makes, you are flying blind.
December 2, 2025 at 7:34 AM
This composability allows you to manage complexity and scale without centralized control. Thinking functionally about parallel, probabilistic processes takes significant effort.

#FunctionalProgramming #SoftwareEngineering #SystemArchitecture #DevSky #Tech #Dataflow #Backend
December 1, 2025 at 6:01 AM
Model workflows functionally: map, reduce, aggregate. We are transforming information, not dictating steps. A reduce operation shouldn't be a monolith; it should dynamically expand into a sequence of dependent reducer tasks at runtime based on the data shape.
December 1, 2025 at 6:01 AM