- 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.
- Oracle Database – Indexes and Execution Plans
Tuning Oracle is one skill: get the real plan and compare estimated rows against actual rows. Index types and the composite leading-column rule, the four reasons your index is ignored — including implicit conversion and the NULLs a B-tree does not store — DBMS_XPLAN with GATHER_PLAN_STATISTICS, bind variables, and invisible indexes.
- Oracle Database – PL/SQL
Anonymous blocks, %TYPE and %ROWTYPE, the two exceptions SELECT INTO can raise, cursor FOR loops, and packages as the unit of organisation. Exception handling done properly, why WHEN OTHERS THEN NULL is the worst line of code in the Oracle world, BULK COLLECT and FORALL with SAVE EXCEPTIONS — and when to write plain SQL instead.
- Oracle Database – PIVOT and UNPIVOT
Rows into columns and back again. The implicit GROUP BY over every column you did not mention — the one fact behind almost every surprising PIVOT result — plus why values missing from the IN list vanish silently, why an empty cell is NULL from sum but 0 from count, the three errors you get for a non-constant IN list and what to do instead, and UNPIVOT's habit of dropping NULLs by default.