- Designing a Unique ID Generator
Four ways to mint an id at scale and the single tradeoff that decides between them: sortability against coordination. Database auto-increment, UUIDv4 and v7, a ticket server, and Snowflake — with the bit layout worked through, the clock-skew failure everyone forgets, and why a system can want two ids for the same row rather than one.
- AWS – Start an RDS Instance on a Schedule with Lambda
Starting a stopped RDS instance is one API call and a wait measured in minutes, not seconds, which changes how you schedule it. The handler, the IAM policy, and the state check that stops a retry storm — calling start on an instance that is already starting is an error, not a no-op. Plus the configuration that cannot be stopped at all: anything with a read replica, or that is one.
- Oracle Database – With Spring Boot
Driver, URL, and the colon-versus-slash that decides between a SID and a service name. A tuned Hikari and JPA configuration, a Lombok entity that does not break hashCode, the allocationSize mismatch that causes ORA-00001 under load, batching, calling PL/SQL packages, Testcontainers against real Oracle, and a table of the errors you will hit.
- Oracle Database – Transactions and Locking
Why readers never block writers, and how undo delivers both rollback and read consistency. Where a transaction starts, the DDL that commits behind your back, the two isolation levels Oracle actually has and the ORA-08177 retry that SERIALIZABLE requires. SELECT FOR UPDATE SKIP LOCKED as a work queue, deadlocks, and finding the blocker.
- AWS – Start an EC2 Instance on a Schedule with Lambda
The other half of the schedule: bring the instance back before anyone needs it. The cron expression EventBridge actually accepts — it is not standard cron, and the day-of-week field is the part that bites — why UTC ruins this twice a year, and the waiter that turns 'the API returned' into 'the box is up'. Plus a public IP that changes on every stop, and the one-line fix.