A short overview of approaches for mobile messaging.
The Two Faces of Streaming
Streaming takes two forms: stream processing for data pipelines (e.g. Kafka Streams) and reactive streams for local processing within an application (e.g. RxJava). As the concept of streaming matures, the abstractions may converge. In any case, streaming is a very powerfull abstraction!
Metaphors in Software Engineering
The software architecture metaphor puts the emphasis on the structural properties of software systems. Other metaphors - city, garden, or biology - can help explain other properties of software systems better.
Superintelligence: Lure or Inevitability?
If artificial intelligence is a computation, does it learn by accumulating more input data, by changing its own computation, or both?
When You Should Rewrite
Software rewrites are risky undertakings, but sometimes necessary. Advising strictly against rewrites is too extreme, but it's also worth beeing aware of the risks.
Aligning Incentives
Different people priorizing goals differently inevitably leads to frictions. Incentives must be aligned for the friction to disappear.
OOP: past, present, future
OOP went in the last 40 through three eras, each characterized by various expectations about the technology, and influenced by the learnings of the previous era. Let’s explore them.
Developers Like Technology, not Business Logic
Frameworks and platforms promise to raise productivity by removing technical complexity. But it’s the technical aspects that interest developers, much more than domain aspects. This leads to a dynamics where peak productivity with a given technology is never reached, because developers already look for the next framework or platform.
BATBern43
The slides from our talk at BATBern, focused on « event-driven architectures ».
Great Articles on Software Engineering
A collection of articles about software engineering that influenced me.