<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://billyokeyo.dev/</id><title>Billy Okeyo</title><subtitle>I am a software engineer with a burning passion to want and help others with code that I create. I enjoy the limitless potential of impact that I can have with what I build, it is what pushes me every day to become a better developer.</subtitle> <updated>2026-05-05T12:10:13+00:00</updated> <author> <name>Billy Okeyo</name> <uri>https://billyokeyo.dev/</uri> </author><link rel="self" type="application/atom+xml" href="https://billyokeyo.dev/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://billyokeyo.dev/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Billy Okeyo </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Debugging Is a Skill Nobody Teaches You</title><link href="https://billyokeyo.dev/posts/debugging-is-a-skill-noone-teaches-you/" rel="alternate" type="text/html" title="Debugging Is a Skill Nobody Teaches You" /><published>2026-05-04T00:00:00+00:00</published> <updated>2026-05-04T00:00:00+00:00</updated> <id>https://billyokeyo.dev/posts/debugging-is-a-skill-noone-teaches-you/</id> <content src="https://billyokeyo.dev/posts/debugging-is-a-skill-noone-teaches-you/" /> <author> <name>Billy Okeyo</name> </author> <category term="Programming" /> <category term="Software Development" /> <category term="Career" /> <summary> You’ve been staring at the same bug for 2 hours. You’ve restarted the server. Cleared cache. Added random console.logs. Somehow… it still doesn’t work. At some point, you stop coding and start guessing. And that’s the real problem. The issue isn’t the bug. It’s that nobody actually teaches debugging as a skill. The Way Most Developers Debug Let’s be honest. Most of us learned d... </summary> </entry> <entry><title>Stripe Connect on Accounts v2 — Standard, Express, and Custom, Rebuilt Around Configurations (with HTTP, Python, C#, and PHP)</title><link href="https://billyokeyo.dev/posts/stripe-connect-accounts-v2/" rel="alternate" type="text/html" title="Stripe Connect on Accounts v2 — Standard, Express, and Custom, Rebuilt Around Configurations (with HTTP, Python, C#, and PHP)" /><published>2026-04-06T00:00:00+00:00</published> <updated>2026-04-06T00:00:00+00:00</updated> <id>https://billyokeyo.dev/posts/stripe-connect-accounts-v2/</id> <content src="https://billyokeyo.dev/posts/stripe-connect-accounts-v2/" /> <author> <name>Billy Okeyo</name> </author> <category term="Payment Processing" /> <category term="Software Development" /> <summary> This is the Accounts v2 companion to the original Connect guide (Accounts v1). Same platform concepts—Standard, Express, Custom, money flow, compliance—but the API shape is the one Stripe describes in Connect and the Accounts v2 API. Use the older post when you must stay on v1 (Account.create with type=express, OAuth-only Standard flows, etc.). Use this post when you are designing around one Ac... </summary> </entry> <entry><title>Contract Testing: Prevent Breaking Changes Before Production</title><link href="https://billyokeyo.dev/posts/contract-testing/" rel="alternate" type="text/html" title="Contract Testing: Prevent Breaking Changes Before Production" /><published>2026-03-19T00:00:00+00:00</published> <updated>2026-03-19T00:00:00+00:00</updated> <id>https://billyokeyo.dev/posts/contract-testing/</id> <content src="https://billyokeyo.dev/posts/contract-testing/" /> <author> <name>Billy Okeyo</name> </author> <category term="Contract Testing" /> <category term="API Testing" /> <category term="Software Architecture" /> <summary> “It worked locally. Tests passed. But production still broke.” If you’re building distributed systems with multiple services and frontends, you’ve likely encountered this (whether using .NET + Angular, Node.js + React, Python + Vue, or any combination): A backend change gets deployed The frontend suddenly breaks No tests warned you The issue isn’t always logic. It’s often a brok... </summary> </entry> <entry><title>Why Your Django App Needs Redis and Celery in Production</title><link href="https://billyokeyo.dev/posts/why-your-django-app-needs-redis/" rel="alternate" type="text/html" title="Why Your Django App Needs Redis and Celery in Production" /><published>2026-03-16T00:00:00+00:00</published> <updated>2026-03-16T00:00:00+00:00</updated> <id>https://billyokeyo.dev/posts/why-your-django-app-needs-redis/</id> <content src="https://billyokeyo.dev/posts/why-your-django-app-needs-redis/" /> <author> <name>Billy Okeyo</name> </author> <category term="Django" /> <category term="Redis" /> <category term="Celery" /> <category term="Background Tasks" /> <summary> Django is an incredibly powerful framework for building web applications quickly. However, as your application grows, certain tasks begin to slow down request-response cycles. Examples include: Sending emails Generating reports Processing uploaded files Running background analytics Sending notifications Running these tasks during an HTTP request can make your application slow and... </summary> </entry> <entry><title>A Practical Guide to File Uploads (Images, Excel, CSV) in Angular + Django</title><link href="https://billyokeyo.dev/posts/image-uploads/" rel="alternate" type="text/html" title="A Practical Guide to File Uploads (Images, Excel, CSV) in Angular + Django" /><published>2026-02-23T00:00:00+00:00</published> <updated>2026-02-23T00:00:00+00:00</updated> <id>https://billyokeyo.dev/posts/image-uploads/</id> <content src="https://billyokeyo.dev/posts/image-uploads/" /> <author> <name>Billy Okeyo</name> </author> <category term="Web Development" /> <category term="Full Stack" /> <category term="Django" /> <category term="Angular" /> <summary> File uploads are one of those features that look simple… until they aren’t. Images need previewing. CSV files need parsing. Excel files need validation. Large files need handling. And suddenly your “simple upload” becomes a full feature. In this guide, we’ll build a practical and production-ready file upload system using: Angular (Frontend) Django + Django REST Framework (Backend) We’... </summary> </entry> </feed>
