Olawale Lawal Engineering Blog

Death to SMS OTPs!

The familiar ping of a text message delivering a six-digit code has become the soundtrack of our digital lives. For years, SMS-based one-time passwords (OTPs) have been the default sentry guarding our banks accounts, emails and other online accounts. Unfortunately, this sentry is sleeping on the job and we'

Structured Logging in .NET with Seq: A Developer's Guide

Why Structured Logging? * Problem: Traditional text logs (e.g Console.WriteLine) are hard to query and analyze. * Solution: Structured logging emits logs as machine-readable key/value pairs and enables: * Filtering (e.g WHERE UserId = 123) * Correlation (e.g trace IDs across microservices) * Integration with dashboards (e.g Seq, Elasticsearch) Setting

Mastering TaskCompletionSource in C#

Asynchronous programming is at the heart of modern .NET applications to enable scalable, responsive systems without blocking threads. While async/await and the built-in Task returning APIs cover most scenarios, sometimes you need custom asynchronous operations, particularly when bridging callback-based code, implementing complex synchronization primitives or exposing event-driven logic as

Olawale Lawal Engineering Blog © 2026