About:

Software engineer, web developer, budding entrepreneur

Website:

Specializations:

Subscribe to RSS:
Natural language's ambiguity makes it an inadequate interface for programming AI, necessitating the development of more precise communication methods.
The blog post discusses a critical issue encountered when adding a foreign key in a Rails migration that can lead to the loss of dependent data in an SQLite database. The author shares a personal experience with their error tracke...
The blog post reflects on the evolution of web development from the late '90s to 2025, highlighting the improvements in technology and tools that have made building websites easier. However, it critiques the increasing complexity ...
The author reflects on the nostalgia of playing Syphon Filter, a PS1 game that left a lasting impression on their childhood. They lament the loss of a definitive version of games in today's world of constant updates and SaaS model...
The article discusses the inevitable replacement of human workers by AI, emphasizing that businesses prioritize profit and efficiency over human employment. It argues that as AI becomes more capable and cost-effective, the traditi...
The article argues that while AI can assist in coding by speeding up processes like debugging and documentation, it cannot replace programmers because software development relies on understanding complex human requirements. The au...
The blog post discusses the tendency of software developers to gravitate towards complexity in their work, despite the well-known principle of simplicity (KISS). It compares the construction of the Great Pyramids to modern softwar...
The post laments the loss of nostalgia in gaming due to constant updates, advocating for software that reaches a final, complete version.
The blog post discusses 'Tech Debt', a keyboard-driven web game that challenges players to fix programming bugs before a conference deadline. The game features 13 levels with increasing difficulty, where players must accurately hi...
The blog post discusses 'Tech Debt', a keyboard-driven web game that challenges players to fix bugs in a programming language before a conference. The game features 13 levels with increasing difficulty, where players must accurate...
A comprehensive guide on self-hosting Bearlytics using Kamal, detailing configuration and deployment steps for a lightweight analytics solution.
The author announces Telesink, an open-source real-time event tracking tool, while expressing excitement for the future and a commitment to building in public.
The author discusses the common occurrence of having 'brilliant' ideas that often turn out to be not so great. He advises to let the ideas sit and rot a bit before deciding if they are worth pursuing.
The author launched Telebugs, a self-hosted error tracking solution that was initially tied to Telegram but later changed direction. The author describes the challenges faced in building the product and how the pay-once business m...
The text discusses the future of coding in the context of AI and the rise of vibe coding. The author reflects on the impact of AI on coding, the changing landscape of programming, and the importance of learning the fundamentals of...
...
The text provides a comprehensive list of Tailwind v4 colors as OKLCH CSS variables, making it easier to use these colors outside of Tailwind in JavaScript, plain HTML, or standalone CSS files.
The text explains how to create a dropdown menu using just HTML and a sprinkle of CSS, without relying on JavaScript. It compares the traditional method of using JavaScript to toggle visibility with the new method using <details> ...
The author discusses how playing Counter-Strike 1.6 introduced him to the world of programming by allowing him to create config files and use technical terms related to programming. He learned about concepts like ping, vertical sy...
The article is a step-by-step guide on how to self-host Plausible Analytics with Kamal, a lightweight alternative to Google Analytics. It includes hardware requirements, setting up a subdomain, creating a GitHub Container Registry...
The author reminisces about his first encounter with hyperlinks in Goosebumps gamebooks and how it reminded him of the internet. He reflects on the interactive storytelling experience and its influence on his love for the internet...
The author argues that Test-Driven Development (TDD) is not useful, especially when requirements change frequently. They prefer a more flexible approach to keep their workflow agile and responsive.
The underscore in target="_blank" is used to explicitly tell the browser to open the link in a new tab, free of frame semantics. Before HTML5, developers used <frameset> for SPA-like functionality, dividing the window into multipl...