In the age of AI-assisted coding, it’s easy to feel that deep knowledge of
programming languages has become obsolete. Why spend years mastering language
intricacies when an AI can generate code in any language on demand? I recently
encountered this sentiment in a question from a fellow developer: 
 
 I feel like caring about programming languages and stuff is…
A recent exchange on linkedin about what data is and how to store it
prompted me to write this small piece, since I consider the issue at
hand quite fundamental to developing systems that reflect reality and therefore help people. 
 Here is what the author of the quote said: 
 
 I mean that actual data, as observed in the world around us - may not
have natural keys as…

 
 Introduction 
 The setup 
 Laying the foundation 
 
 The foundation: schemas and user roles for modularity 
 Domains 
 Accounts, managed and external 
 Transfers, constrained by a state machine and temporal periods 
 Transfer state history 
 Account auditing 
 Transactions, the immutable events 
 
 
 On maintaining business rules via…
[BROKEN LINK: blog/google-cloud-s-outage-should-not-have-happened-and-they-seem-to-be-missing-the-point-on-how-to-avoid-it-in-the-future.pre-processed.org], another global IT outage happened (dèjá vu strikes again in our
industry). This time at
cloudflare( Prince 2025 ). Again, taking down
large swaths of the internet with
it( Booth 2025 ). 
 And yes, like my previous analysis…

 
 Hallucinations in GPTs can lead to the dissemination of false
information, creating harmful outcomes in applications of critical
decision making or leading to mistrust in AI. In a viral instance, The
New York Times published an article about a lawyer who used ChatGPT to
produce case citations without realizing they were fictional, or
hallucinated. This incident…
I find that it is hard for me to motivate myself to learn a subject that
one cannot define. So I made an effort to define mathematics, and the
best source I have ever found was ( Franklin 2014 ). 
 To sum up my views on the topic: at the core of philosophical inquiry,
one finds a deep division into 2 opposites as their regard to the
universals, realism and nominalism(and its…
[BROKEN LINK: blog/analyzing-crowdstrike-s-root-cause-analysis-or-on-missing-the-point-about-quality.pre-processed.org], this time at Google Cloud Platform
( team 2025 ), taking down with it large
swaths of the internet ( Zeff 2025 ). Like my previous
analysis of the CrowdStrike outage, this post critiques GCP’s root cause
analysis (RCA), which—despite detailed engineering…
Every software project needs to represent the reality of the business he
is embedded in. The way we can represent reality as limited rational
beings is through propositions, i.e, declarative statements that affirm
or deny something about reality. When a collection of such propositions
is stored in a computer system, we call it a database. 
 Such database needs to be designed to…
Underpinning relational databases you find a very powerful principle:
all your information should be represented as attributes drawn from
domains in
relations( Pascal 2020 ). This is Codd’s
Information Principle #1. This principle isn’t just fluffy theory: it
can lead to very concrete wins in how we design, query, and maintain
systems. 1 
 A practical case:…
Recently there has been an interest in cheating(?) leetcode style
interviews( Yang 2025 ). These articles highlight
a longstanding issue in tech recruiting: puzzle-style assessments have
little to no correlation with actual job
performance( Konnikova 2013 ; McAllister 2013 ), and leetcode is nothing but algorithmic
puzzles. This makes them a poor predictor of job performance.…
Are you managing/developing a PostgreSQL based application? Here are some scripts
that might make your life easier dealing with your installation: 
 select 
 schema_name , 
 relname , 
 pg_size_pretty ( table_size ) 
 from 
 ( select 
 pg_catalog . pg_namespace . nspname as schema_name , 
 relname , 
 pg_total_relation_size ( pg_catalog . pg_class . oid ) as…
Have you heard that having decoupled systems is paramount to dealing with complexity at the heart of software ? 
 Have you also seen companies waste piles of cash and lots of developer
time trying to build decoupled systems? 
 This article might be of your interest, since my goal is to teach you
how to build decoupled systems cheaply and using technology that is
battle tested…
As an engineering manager(EM), one of your core tasks is to build and
maintain a team of high performance. To accomplish this, it should be
obvious that motivation is a key factor: 
 
 Why do followers join some teams but not others? How do you get
followers to exhibit enough of the critical behaviors needed for the
team to succeed? And why are some leaders capable of…
If you have a distributed system one of the main worries you probably
have is scalability. Well, what is the principal threat to scalability
in such systems is the conflict between transactions that are used to
guarantee correct results in concurrent operations. 
 Such conflicts are dealt with by concurrency control, either
pessimistically via something like exclusive resource…
Are you looking into event sourcing? I hope this article gives you
enough information for you to properly contrast it with what I consider
an overall better alternative: temporal tables. 
 The context: my last article ([BROKEN LINK: blog/are-you-considering-event-sourcing-think-again.pre-processed.org]) has produced some heated responses. One of the responders
published an article…
Are you considering doing event sourcing? Maybe you have read that it is
necessary for your project or that you will have great benefits in doing
so. 
 If so, I ask you to think about an alternative. Maybe you already have
something of equal capacity in the tooling that you use and could
extract all the benefits for a fraction of the cost. What is that
something? Your old…
A global IT outage occurred on [2024-07-18 Thu] , with several industries
having significant economic problems (see Appendix 1: The impact for
some quotes on what happened). The outage what caused by a bug in the
remote update system of the software of Crowdstrike, a popular Threat
Intelligence/Response company. 
 The company has published the Post Incident
Review(…
It is becoming more common for companies to come out with stories on the
downsides of distributed microservice
architectures 1 ( Kolny 2023 ; Ghemawat et al. 2023 ). 
 Instead of hopping in this bandwagon, as tempting as this might be, I
want to suggest how could one avoid being caught in such situation in
the first place. 
 Fundamentally, I think the problem that…
If the way you think others see you is in stark contrast to how others
actually see you, you are in danger of derailing in your career. 
 To avoid that, here are 3 steps, and a reference: 
 
 Ask and embrace feedback from bosses, peers and followers 1 , 
 Expose your most cherished ideas to the most intense forms of public scrutiny you can find, 
 See ways to measure…
Again with this database business? Let me try to motivate you dear
reader before I start again with a illustrative case: SQL Injections! 
 
 SQL injection is one of the oldest vulnerabilities still present in
the OWASP TOP 10 ( CyberSecura 2021 ) 
 A well documented case puts the cost of one SQL Injection in USD 196k
( Group 2014 ) 
 
 Ok, and how these are related…

 Multiplicity of parts, variety, and unity of plan which 
combines the parts into a coherent whole, – 
such are the elements of order found in all beauty. 
( De Wulf 2012 ) 
 
 I have been working with data intensive applications for a while and of
course that means exposure to a lot of SQL, both personally and training
other developers. 
 In these…
Continuing a rich conversation that sparked [BROKEN LINK: blog/a-real-life-example-of-database-design.pre-processed.org] [BROKEN LINK: blog/how-to-use-the-relational-model-to-do-database-design.pre-processed.org], I was asked to
justify updateable views which, to me, are analogous to module'
signatures (a topic for another post). Here’s the full exchange. 
 
 
 Why is the…
In a followup to [BROKEN LINK: blog/how-to-use-the-relational-model-to-do-database-design.pre-processed.org],
I was asked to provide an example to illustrate the point: 
 
 Can you walk through a real life example of modelling, let’s say, a car
(it’s always a car isn’t it?).. Consider that the car may have 2WD, 4WD
and also let say we allow truck types of cars…
On a recent exchange I was asked the following: 
 
 … what you mean that you use the relation model to design? … 
 
 Let’s first start with the motivation: Why should one use the
relational model(RM) to do database design? Here is my one line answer: 
 It makes it possible to have and to maintain the integrity of your
business rules. 
 To…

 Reification : the treatment of something abstract as a material or
concrete thing, as in the following lines from Matthew Arnold’s poem
“Dover Beach”: ( Britannica 2018 ) 
 
 The Sea of Faith 
Was once, too, at the full, and round earth’s shore 
Lay like the folds of a bright girdle furled. 
 
 
 The microservice architecture(MA) has taken a…
If you are involved in politics, as a voter or just as an office worker
in an unfortunate situation, you would do well to remember this dictum: 
 
 When a public figure tells you something that you want to hear, question
his sincerity. When a public figure tells you something you don’t want
to hear, believe him.( Lawler 2024 ) 
 
 
			 Figure 1:…
As a technologist I often hear variations of the following phrase in my
industry: 
 
 Do it because some FAANG( Fernando 2023 ) company did it. 
 
 The structure of this argument is usually like this: 
 
 Technique or process X is great/bad, 
 Company C does it like this, 
 C is financially successful and famous, 
 Therefore, you should do the same X as C…
How can we talk straight about a concept when the term that should
signify it is equivocated all the time? 
 I think this is a big part of the problem on discussions about
 databases . Here are some ways that the term database is widely used
in the tech industry: 
 
 A server 
 I'll access the database in prod. 
 An instance of a DBMS 
 We are running PG 9.3…

 The law of identity 
 ‘Whatever is, is.’ 
 The law of non-contradiction 
 ‘Nothing can both be and not be.’ 
 The law of excluded middle 
 ‘Everything must either be or not be.’ ( Russell 1912 ) 
 
 
			 Figure 1: The North Rose window of Chartres Cathedral, France, 1190-1220 CE. The stained glass window shows…
If you want to become a (better) leader, you should master the four
essential characteristics for leaders: integrity, judgment, competence,
and vision( Hogan and Kaiser 2005 ): 
 
 Integrity . A leader must be trusted to be followed. 
 Decisiveness . Making reasonable decisions in a timely manner. 
 Competence . Both your followers and your stakeholders must know
that…
Sometimes you stumble upon small insights that illuminate a good chunk
of things. Recently I think I have stumbled upon what I believe is a
case of that, on the Hibernate manual( King 2024 ), of
all places. The author of the manual itself makes it clear that it is a
special section of the manual: 
 
 In this section, we’re going to give you our opinion. If…
A fully normalized database means one thing, and only one thing: your
relations corresponds only one predicate under a given interpretation
(i.e. your business rules) . 
 You should properly normalize your database because it: 
 
 
 Simplifies integrity enforcement and data manipulation; 
 Avoids data redundancy and the risk of database inconsistency; 
 Guarantees…
These days I’m doing quite a lot of work in PostgreSql. Given that my
tool of choice is Emacs, I had to learn how to make do. This post’s goal
is to document that. 
 First, I set up a connection 
 ( add-to-list 'sql-connection-alist 
 ` ( production-read-only ( sql-product 'postgres ) 
 ( sql-user 'prod_user' ) 
 ( sql-server…

 The human mind is limited in its capacity to understand complexity. 
 Concurrent software systems are among the most complex of all human creations. 
 Therefore, when you trade safety for performance, you will probably get neither. 


 abstraction (n.) (Latin abs, from trahere, to draw). 
 
 I’ve seen people I consider good software engineers complaining that
over-abstraction is a (the?) major problem in our industry today. Such
points are usually raised when discussing software architecture in
particular (one example: ( iamprovidence 2023 )). 
 I’d like to defend abstraction, and how I…
I recently commented on how the book ( Kleppmann 2017 )
is a dangerous book, due to a subtle error on how it defines data
models. I suppose it’s my burden to further clarify this point, and for
that I’ll use Hayek’s critical methodological maxim: 
 
 We must first explain how an economy can possibly work right before we
can meaningfully ask what might go…

 … when you trade safety for performance, you may get
neither. Especially when it comes to concurrency, the intuition of many
developers about where a performance problem lies or which approach will
be faster or more scalable is often incorrect. 
 It is therefore imperative that any performance tuning exercise be
accompanied by concrete performance requirements (so…
I think its fair to say that one can significantly improve one’s chances
of being materially successful in life by learning John Taylor Gatto’s
14 Themes of the Elite Private School Curriculum 1 : 
 
 
 A theory of human nature (as embodied in history, philosophy, theology,
literature and law). 
 
 
 Skill in the active literacies (writing, public…
A theme that I think is important to understand a lot of modernity and
the IT sector in particular, is nominalism. 1 
 So, what is Nominalism, and why does it matter? I’ll start with a
concrete case and work my way to the abstract definition. The case in
point is a somewhat popular architecture tactic, CQRS. 
 What is CQRS? Here is an authoritative word on it( Young 2010…
Someone asked me about this, so I feel it might help people out there. 
 The short, no nonsense advise I give to people on standing out as a
programmer: 
 
 Generate results 
 Make your boss look good 
 Join a relevant open source project 

What could be more important for a technology company than great
software? High performing software developers and their teams. After
all, they are the ones who actually create and maintain that great
software. 
 But do they really make a difference? 
 I’ll let the numbers speak for themselves. Here are the typical
variations in:( Steve 2014 ) 
 
 Individual…
It is hard to do science without proper definitions. So what is a manager? 
 Abstracting from ( Horstman 2016 ), my definition of a
manager is the following: 
 
 A manager continuously balances present output with creating the
conditions of future output. 
 
 
			 Figure 1: The Good Sheperd, emblem found in a Roman catacomb, sec III 
		 
…
I have come across people claiming to fear being replaced by bots,
specially chatGPT and other large language models (LLM) . In this
article I’ll take such statements at face value, despite my reservations
about the sincerity of many of them. 
 The short answer is to the question in the title is no, you will not get
replaced. The longer answer is below. 
…
In my view, Qubes OS lives up to its motto: A reasonably secure operating system . I use it for work and personal matters every day. 
 One challenging bit, when you use it in a work setting specially, is to
set up a VPN qube for your app qubes . 
 There are probably other ways to do this, but the way I chose to
structure my setup was the following: 
 
 

 After you…