- 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.
- 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.