Skip to main content



Error handling with results in Typescript
·902 words·5 mins
David Simão
What are the main takeaways of error handling with result objects and how does it compare to the try-catch idiom? Looking into different approaches and some examples.
Building a simple rules engine in Typescript
·1300 words·7 mins
David Simão
Building a lightweight, general purpose and easy to use rules engine under 30 lines of Typescript. We’ll start with an example use case and build the engine around it.


Multiple test input combinations with jest
·670 words·4 mins
David Simão
A simple method to generate exhaustive input combinations for test cases while maintaining a healthy and readable test codebase
Engineering Friendly Product Manager
·1181 words·6 mins
David Simão
The rules of engagement in solid partnership with engineering. The do’s and don’ts as seen from a software developer’s perspective
Self-organizing teams misconception
·763 words·4 mins
David Simão
Reflecting on the common problem of leadership across multiple teams in scale-up organizations
Creating optimal pull requests
·2040 words·10 mins
David Simão
An essay on the role of pull requests and their importance in the software development cycle and what strategies can we use to improve them
Docusaurus vs Gatsby vs Hugo
·2210 words·11 mins
David Simão
A comparison between Docusaurus, Gatsby and Hugo, as blogging frameworks and why I chose to use Hugo for implementing this blog


An IPFS adventure
·2523 words·12 mins
David Simão
Excited with all the Web3 and self-hosting hype, I’ve set myself on a mission to self-host this blog on a self-hosted IPFS cluster. Here’s what I learned from it
Surviving at the bottom of the iceberg
·2566 words·13 mins
David Simão
A classic tale of a team that deluded themselves with the mirage of breaking a monolith into shiny new microservices on a limited budget, understaffed and fast-paced environment
The complete software engineer
·2408 words·12 mins
David Simão
What does it take to excel as a software engineer and what other aspects beyond programming can help us differentiate ?