There's a quote that most Software Engineers love to use that always intrigued me: "Pick the right tool for the job". If you take this quote at face value it seems pretty reasonable, right!? Who in good faith would argue that a saw is a better tool to pound a nail than a hammer? The problem is that a simplistic example like this often leads to an equally simplistic logical conclusion far from the practical reality of software engineering.
Read moreThiago's Guide To Everything
Hello! I'm Thiago, and this is the place where I share some of my discoveries with the world. The main purpose of this page is to serve as a storage where I can index my thoughts and useful information I forget after a while. Feel free to snoop around :)
Recent posts
If you have been working in software for long enough you know that there are endless discussions about what constitutes good software with varying opinions on the matter. In this sea of opinions and everchanging landscape, there's one that I still hold in high regard: Constantine's Law.
Read moreModeling polymorphic associations in a relational database can be tricky because these databases are designed around the idea of having structured relationships, making it hard to represent entities that can take on different forms without a consistent interface.
Read moreLike most developers, I have lots of side projects, but there's one in particular that always lures me back in from time to time. This project is an attempt to revive a genre of games that was very popular in the early 2000s called PBBG (Persistent Browser Based Game). If you are not familiar with this kind of game, a PBBG is essentially a game that satisfies the following two criteria:
Read moreRecently I had to deal with a really pesky problem during the development of a client's product related to how unicode strings work. During the development of a new feature, we had the need to summarize some long-form text from the database. Because this text was migrated over by a third-party company, we had no knowledge of how it was previously stored and handled during the migration. The only thing we knew was that the original text could contain HTML markup from a rich text WISYWIG editor.
Read more