// blog
Notes and write-ups
35 notes and counting. Filter by tag, or scroll — it's not that long.

Javascript objects are tricky
Unexpected behavior occurs when using standard objects as collections for dynamic input. Prototype properties can conflict with data keys, leading to type errors during data processing. Using specialized data structures provides a more reliable and performant approach for handling arbitrary keys.

Server-sent events or how ChatGPT typing animation works
Real-time communication enables modern web applications to push data to users instantly instead of waiting for traditional request-response cycles. This article explores how Server-Sent Events facilitate streaming content directly from a server, powering features like the typing effect seen in chat interfaces. It provides a practical overview of implementing these streams to improve user experience in web applications.

Database locks, lost updates and idempotency
Distributed systems frequently face challenges with concurrency and duplicate requests that can lead to data loss or incorrect application states. This post explores practical strategies for maintaining data integrity, including leveraging HTTP headers for optimistic concurrency control and idempotency. It also examines how database-level transactions and row-level locking mechanisms can prevent race conditions in complex workflows.

Assuming IAM role and role chaining in AWS
Managing temporary security credentials across AWS accounts allows applications to securely access resources. Using the Security Token Service to assume roles requires a clear understanding of trust policies and session duration limits. A specific limitation occurs during role chaining, where the session length is constrained compared to assumptions made by IAM users.

Running HTTPS on localhost
Development environments often require HTTPS to properly test features that rely on secure connections. This guide covers generating self-signed certificates and configuring local web servers to enable encrypted traffic on a development machine. It also looks at how to map custom domain names to local resources to simplify the testing process.

Keeping track of database changes and when it can be useful
This article explores the concept of database replication and how it can be utilized to synchronize data between systems or feed external services. It covers the mechanics of write-ahead logging and logical decoding, which allow tracked changes to be exported in usable formats. The post also highlights necessary configuration steps for managed environments and potential pitfalls to monitor when implementing these techniques.

Why use multiple unsubscribe groups when sending emails
We all know how annoying all those emails that we receive from various websites might be, especially when we don’t expect them. So naturally, there should be an option to unsubscribe. However there are some things that you have to be careful about.

Travelling around Argentina
This article recounts a journey across Argentina, highlighting logistical challenges and practical advice for navigating the country's unique infrastructure. It provides insights into managing local payments, transportation, and connectivity across diverse regions from Patagonia to the Andean north. The account serves as a guide for others planning a similar trip through this expansive and varied landscape.

Feature Flags
Feature flags provide a mechanism to toggle specific application logic without requiring a full code redeployment. They offer a reliable way to manage service dependencies, handle incident responses, and facilitate gradual feature rollouts. Maintaining clean code necessitates regularly auditing and removing these flags once they are no longer required.