Posts

Featured

So, Who The Hell Is David Oduse?

If you've landed on this blog for the first time, you might reasonably wonder who is behind all these random articles about software, security, infrastructure, products, and whatever else I happened to become interested in. I'm David Oduse . I'm a software engineer, product owner, techpreneur, and an endlessly curious person who has somehow made a habit of turning curiosity into software. I build things. I break things. I fix things. I think things. And, when something teaches me something interesting, I write about it. That's probably the simplest way to explain this website. I Didn't Really Plan for It to Become This My path into tech has been driven more by curiosity than by some perfectly structured career plan. I've always enjoyed figuring things out. How does this system work? Why was it designed this way? What happens if something fails? Can this process be made simpler? What happens if someone tries to abuse it? Could I build one myself? ...

Inside the Monesize Desk Public API

Monesize Desk was originally built to be a product people use directly. Then we started thinking about what would happen if we stopped treating the Desk interface as the product. Monesize Desk has always been a single-tenant-isolated support platform. Every row in the database is scoped to an organization, and every agent-facing endpoint authenticates through a session cookie. That model is great for a hosted workspace, but it does not help an organization that wants to embed support inside its own product. The public API extension changes that. It exposes the same support infrastructure Desk already provides, through a machine-to-machine interface that products can call directly. This post walks through the design: the key model, environment isolation, authentication middleware, the request surface, and the failure modes. It's a deep look at how the extension is built on top of the existing Desk core. The Core Idea Desk now supports two consumption models. The Desk porta...

Monesize Desk: Engineering an Independent Product Around the Monesize Ecosystem

Monesize Desk started from a different architectural position than Monesize Core. Core was the platform from which the broader Monesize architecture evolved. Desk came later, when we wanted to build a product that could operate independently while still participating in the Monesize ecosystem. That created a different engineering problem. The question was no longer simply how to build another module inside Core. It was: how do you build a completely independent product that has its own backend, database, tenancy model, authentication flows, business logic, and deployment, while still allowing it to participate in a shared product ecosystem? Desk became one of the first concrete implementations of that model. Desk Is Not a Core Module The easiest way to build Desk would have been to add customer support functionality directly into Core. That would have made some things simpler. The product could share Core's database. It could share Core's authentication. It could reuse Co...

Building a Cryptographic Identity Layer for the Monesize Product Ecosystem

Image
When I started building this, Monesize was in the middle of a quiet transformation. It was no longer one product. It was becoming a product ecosystem: Core, the operational financial backend; the Gateway, a centralized trust and compliance layer; and Desk, a customer support product that would sit alongside them. Each one was an independent deployment. Each one had its own databases, its own sessions, its own authorization models, its own frontend, its own lifecycles. Almost immediately I ran into the question that would shape everything after it. A user of Core is not automatically a user of Desk. The same person exists inside multiple products. So how does Desk know that a request claiming to be David is actually David? How does Desk trust the identity that Core has already established? And more specifically, how do I make that work when no two products share a database, and when the products are owned and deployed by different tenants? The interesting engineering question become...

Designing Subscription-Gated Audio Streaming That Actually Protects the Media

I recently wanted to download an audio track from a platform that required a subscription before it would allow downloads. I did not subscribe. Instead, while the track was playing, I opened DevTools and looked at what the browser was actually doing. The player was not downloading the entire MP3 in one request. It was making HTTP range requests and receiving 206 Partial Content responses from a CloudFront-hosted media resource. After following the requests, I found that the underlying audio resource was directly accessible. That was the interesting part for me, not because I had found a way to download an audio file, but because it exposed a design question I would rather answer as an engineer: how should I actually build a subscription-gated audio streaming system? The answer is not to hide the download button. It starts much deeper in the architecture. The Actual Problem Suppose I am building an audio platform where users can listen to music, podcasts, courses, or any other audio con...