The post discusses the behavior of JavaScript's setTimeout function, revealing that it does not always execute immediately as expected, often being delayed by a minimum of 4 milliseconds due to browser throttling. This throttling ...
An experiment using AI to build a browser API for IndexedDB showcases the efficiency of LLMs in software development while raising concerns about the value of traditional coding efforts.
The post laments the decline of traditional programming skills due to AI advancements, urging older programmers to acknowledge the emotional loss of their craft.
<time> HTML element is a theoretically useful feature for timestamps, but it currently lacks practical application and remains largely ineffective in web development.
The post explores the author's journey from skepticism to acceptance of LLMs in programming, highlighting the tribalism in AI debates and the importance of curiosity and experimentation.
An experiment in building a travel itinerary app using AI tools reveals both the potential and limitations of vibe coding for non-programmers.
The author shares insights on effectively using AI coding agents, balancing their utility with the challenges of maintaining coding quality and personal enjoyment.
The author reflects on the evolution of open source libraries, particularly focusing on the npm package 'blob-util', which has been popular for nearly a decade. They discuss the impact of AI and LLMs on software development, notin...
The post reflects on programmers' struggles with identity and relevance as low-code tools emerge, urging a rediscovery of joy in creation despite industry changes.
The post explores the balance between skepticism and wonder in the face of rapid technological advancements, inspired by Paul Simon's song 'The Boy in the Bubble'.
After 15 years of blogging, the author shares insights on personal growth, audience challenges, and the value of writing for self-expression over popularity.
A collection of book reviews exploring historical fiction and philosophical themes, reflecting on the author's reading journey and personal challenges in maintaining a reading habit.
The author discusses the importance of building accessible UIs for selfish reasons, such as making debugging easier, simplifying naming, improving testability, and catering to power users. The author also emphasizes that building ...
The author discusses their ambivalence towards generative AI, expressing skepticism about its capabilities and the impact it has on the software industry. They acknowledge the power of these tools but express hatred towards them, ...
The author is leaving Salesforce after 6 years to join Socket, a company working on securing the software supply chain. They express gratitude to Salesforce for the learning opportunities and research topics, and share some of the...

02024 book review

2024-12-30

The author reflects on their reading habits in 2024, mentioning the impact of the election year and their resolution to spend less time on the news cycle. They discuss their preference for video games and provide a list of nonfict...
The blog post discusses how to avoid unnecessary cleanup work in disconnectedCallback for web components when the component has been moved around in the DOM. It provides a pattern for handling this and explains the use of microtas...
The author expresses skepticism about rewriting JavaScript tools in 'faster' languages like Rust, Zig, and Go. He argues that JavaScript has not exhausted all possibilities for making tools faster and that the performance gap betw...
The blog post discusses the greatness and limitations of the js-framework-benchmark, highlighting its achievements and flaws. It emphasizes that the benchmark does not measure server-side rendering or hydration, and that it is opt...
The blog post discusses the debate around web components, with the author expressing a desire to find common ground rather than escalate the argument. The post delves into the performance implications of web components, the cost o...
The blog post discusses the author's experience with improving rendering performance on a website with 20k custom emojis. The author initially considered virtualization but ultimately used CSS content-visibility to improve perform...
The blog post discusses the issues with emoji rendering on the web, due to fragmentation across different browsers and operating systems. The author recommends that browsers should bundle their own emoji font and ship it outside o...
The blog post discusses the challenges of writing good benchmarks and introduces Tachometer as a tool for reliable JavaScript benchmarking. It explains how Tachometer automates the trickiest parts of benchmarking and highlights it...
The blog post discusses whether it is okay to make connectedCallback async in web components. It explains that it is fine to do so, as an async function is just a function that returns a Promise. It also highlights potential issue...