20 years of IT operations, and why my side projects have no build step
I'm Felipe. I've spent more than twenty years managing IT departments, the last seventeen of them at the same organization on the Pacific coast of Costa Rica. The work is infrastructure and operations: fiber networks, directory services, monitoring, and the business systems that have to keep running whether or not anything else does. Twenty years of that teaches you something specific. You are…
Felipe, an IT operations expert with over two decades of experience, currently works at a single organization on Costa Rica's Pacific coast. His responsibilities include managing fiber networks, directory services, monitoring systems, and the business applications that must function continuously, regardless of the status of other systems.
This experience has shaped his perspective, making him more focused on reliability than cleverness. On nights and weekends, he builds web applications, managing everything himself, from Git hosting to Postgres, email, and more.
One of his current projects is a bookmark manager, a relatively common category, but the link checker component, which he built from scratch, proved to be genuinely interesting. The initial idea was to use a naive URL check, but quickly realized that this approach generated too many false positives due to the web's unpredictable responses to bot-like requests.
To address this issue, his current implementation only flags links after repeated failures over time, distinguishing between links that are gone, require a login, or have been moved.
One of the unique aspects of his approach is the lack of a build step in the frontend, which is built using vanilla JavaScript. Similarly, the backend employs PostgREST directly connected to Postgres, with row-level security handling multi-tenancy and most of the business logic residing in SQL functions. Background tasks are run as Python scripts scheduled with cron. This approach, deliberately designed, comes from his experience in the IT field, where every additional layer adds complexity and potential points of failure.
When considering dependencies, Felipe doesn't ask whether something is good, but rather what happens if it breaks and he is the only one left to debug. While this approach has its trade-offs, he believes it results in a more reliable system. He acknowledges that using a framework would have provided some conveniences, but the time saved by writing specific functionality from scratch has been worth the effort.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.