After two decades of building data platforms, I’ve witnessed the pendulum swing between data lakes and data warehouses multiple times. Organizations would invest heavily in one approach, hit its limitations, then pivot to the other. The data lakehouse architecture represents something different—a genuine synthesis that addresses the fundamental trade-offs that forced us to choose between… Continue reading
Tips and Tricks – Implement Idempotent ETL with Merge Statements
Use MERGE (upsert) for safe, rerunnable data pipelines that handle duplicates gracefully.
Azure OpenAI Service with Python: Building Enterprise AI Applications
After spending two decades building enterprise applications, I’ve watched countless “revolutionary” technologies come and go. But Azure OpenAI Service represents something genuinely different—a managed platform that brings the power of GPT-4 and other foundation models into the enterprise with the security, compliance, and operational controls that production systems demand. Here’s what I’ve learned from integrating… Continue reading
Tips and Tricks – Apply Strangler Fig Pattern for Legacy Migration
Gradually replace legacy systems by routing traffic to new implementations incrementally.
Tips and Tricks – Implement Domain Events for Loose Coupling
Use domain events to decouple components and enable reactive architectures.
The .NET Renaissance: How C# 13 and .NET 9 Are Redefining What Modern Development Looks Like
After two decades of building enterprise applications on the Microsoft stack, I’ve witnessed every major evolution of .NET—from the original Framework through the tumultuous transition to Core, and now to the unified platform that .NET 9 represents. What strikes me most about this release isn’t any single feature, but rather how it crystallizes Microsoft’s vision… Continue reading