RiverLogic Inc. — Senior Developer / AI Architect · March 2014 – Present
RiverLogic builds Value Chain Optimization (VCO) software — large-scale linear-programming models that help enterprise customers plan production, logistics, and supply chains. I've spent over a decade with the team driving this platform's architecture forward: from a 2-tier on-prem monolith to an event-driven Azure microservices platform, and more recently, into enterprise AI tooling built on top of it.
The platform started as a 2-tier system with business logic embedded in MSSQL T-SQL stored procedures — hard to test, hard to change safely. I led the migration of that business logic layer (BLL) into a .NET C# application server, restructuring the system into a proper 3-tier architecture with zero downtime during the cutover. Beyond the 30% drop in support tickets, this materially improved the system's security posture and stability, and added PostgreSQL compatibility alongside the existing MSSQL support — opening the door to cloud-native deployment.
With the business logic now in C#, the next step was making it cloud-portable: migrating the codebase from .NET Framework to .NET 8 for full cross-platform (Linux) compatibility, and adopting async/await throughout. That cut resource consumption by roughly 15% and removed the last dependency tying the application server to Windows.
The on-premise monolith was decomposed into high-load microservices running on Azure Kubernetes Service and Container Apps. Services talk to each other over REST for synchronous calls and Azure Event Grid / Queues for asynchronous messaging, with Saga, CQRS, and the Outbox pattern keeping data consistent across services that no longer share a single database transaction. The implementation is Azure-native, but the underlying pattern — event-driven, asynchronously messaged, eventually consistent — maps directly onto the equivalent serverless primitives on other clouds (AWS Lambda, EventBridge, SQS/SNS included).
Current platform architecture, top to bottom — and what it replaced, at the bottom.
More recently, this architecture became the foundation for RiverLogic's AI assistant. With the team, I implemented retrieval-augmented generation (RAG) with embedding vector search, and exposed core VCO functionality to the assistant through an OpenAPI-compliant REST HATEOAS API wrapped as a Microsoft Semantic Kernel plugin — letting the assistant call real platform capabilities, not just talk about them. On the modeling side, I ran R&D with the team on LLM fine-tuning via LoRA (Python, PyTorch, Transformers) to align open-source models for domain-specific enterprise workflows, and separately prototyped a graph neural network for LP-feasibility pre-screening — see the GCNN proof-of-concept for that one.
Architecture work only sticks if the team can build on it safely. I practiced DDD, SOLID, and GoF patterns throughout, and built out comprehensive unit and integration test suites (xUnit, NSubstitute) under TDD to keep releases zero-downtime as the system grew more distributed. I also introduced Claude Code-based agentic workflows to the engineering team, cutting down repetitive code drafting and raising overall development velocity, and manage the team's build/deploy pipelines through Azure DevOps.
My core production codebase here is protected by strict corporate NDAs and proprietary business logic, so it isn't publicly visible on GitHub — happy to walk through the architecture or specific decisions in more depth on request.
A written reference letter from RiverLogic is also available on request.