Object-Oriented Game Design in Python: Modeling Asteroids as Software
How object-oriented programming provides a practical way to model players, asteroids, projectiles, and shared game behavior in Python.
>_ journal
Engineering • Architecture • Lessons Learned
Technical notes on backend engineering, distributed systems, infrastructure, developer tooling, and the lessons learned while building real software.
42
Published Articles
Backend • Go
Primary Focus
Build • Learn • Document
Engineering Philosophy
Latest Writing
How object-oriented programming provides a practical way to model players, asteroids, projectiles, and shared game behavior in Python.
How Platform-Infra uses multi-stage Docker builds and scratch images to produce small, deployment-focused Go containers.
How Strata-Log uses page buffering and buffered writes to separate high-volume network ingestion from slower disk operations.
How OpsPilot approaches repetitive infrastructure work through automation, reusable operations, and predictable developer workflows.
Why Strata-Log uses a fixed worker pool to control concurrency, protect resources, and separate network ingestion from slower storage operations.
Performance engineering lessons from Strata-Log, including throughput benchmarking, allocation behavior, concurrency, buffering, and identifying real bottlenecks.
How Platform-Infra separates workloads and operational configuration using Kubernetes namespaces and ConfigMaps.
A practical exploration of collision detection in a 2D Asteroids-style game, using object geometry and distance relationships to determine interactions.
How Strata-Log uses sync.Pool and reusable byte buffers to reduce allocation overhead in a high-throughput Go workload.
What I learned building reproducible Kubernetes environments with Minikube, K3s, Docker, and Infrastructure as Code.
How a real-time game loop continuously processes input, updates state, and renders the world while keeping the simulation predictable.
The engineering practices behind reliable static-site generation: deterministic builds, filesystem management, asset copying, testing, and predictable output.
A practical look at representing plain text, emphasis, links, images, and inline Markdown as structured nodes inside a static site generator.
How buffered writes, batching, and asynchronous storage can improve high-throughput log processing in Go while balancing performance and durability.
The architectural decisions behind OpsPilot's command-line interface and how modular design keeps developer tooling maintainable as it grows.
A complete walkthrough of the Markdown-to-HTML pipeline, from raw content and block classification to node generation and final rendering.
How I approached Infrastructure as Code for local Kubernetes environments with Terraform, containers, and declarative configuration.
A practical look at how the Asteroids project was structured in Python and Pygame, from game entities and state management to rendering and interaction.
Exploring raw TCP connection handling, deadlines, concurrency, and resource management while building the Strata-Log ingestion layer.
A practical look at concurrent TCP server design in Go, including connection handling, read deadlines, worker coordination, and graceful shutdown.
How focused tests can validate Markdown parsing, text nodes, HTML nodes, and end-to-end page generation without relying on fragile full-site tests.
How a static site generator can transform Markdown into a structured HTML tree instead of relying on direct string replacement.
A technical look at the architecture behind Strata-Log, from raw TCP connections and worker pools to buffered storage and graceful shutdown.
How OpsPilot evolved from a collection of operational tasks into a modular toolkit for backend engineers and DevOps workflows.
How I designed Flux-Gateway in Go to protect downstream services from traffic spikes, slow dependencies, and cascading failures.
How block-level Markdown parsing can transform headings, paragraphs, lists, quotes, and code blocks into structured semantic HTML.
How Flux-Gateway uses Redis Lua scripts to implement atomic traffic control across multiple gateway instances.
A practical look at building a static site generator in Python, from parsing Markdown blocks to constructing HTML nodes and producing deployable pages.
The deeper engineering lessons from building PokedexCLI, covering Go fundamentals, API integration, state management, caching, testing, and designing software that remains easy to extend.
Lessons from building an AI agent about orchestration, APIs, state management, failure handling, testing, and designing systems around probabilistic components.
Why explicit state matters in AI agents and how conversation history, task state, tool results, and execution context fit together.
The engineering practices required to make an AI agent predictable, observable, bounded, and resilient when models and external systems fail.
A practical look at the architecture behind an AI agent, from user input and tool execution to state, orchestration, and reliable responses.
Why failing quickly can protect microservices from slow dependencies, connection timeouts, and cascading failures.
A practical look at designing a maintainable command-line architecture for a Go Pokedex application, including command dispatch, state management, API boundaries, and extensibility.
Exploring the role of an in-memory cache in PokedexCLI, including cache keys, expiration, memory trade-offs, and how caching changes the application's interaction with an external API.
The architecture, concurrency model, and engineering decisions behind Strata-Log, a high-throughput distributed log aggregation engine built in Go.
How tool calling turns an AI agent from a text generator into an application capable of interacting with real systems.
How PokedexCLI uses Go's HTTP primitives to communicate with a REST API, decode structured responses, handle failures, and keep network concerns isolated from command logic.
A practical look at implementing a concurrent circuit breaker in Go to prevent cascading failures in backend services.
The thinking behind building a portfolio that documents engineering work instead of simply displaying it.
The motivation, architecture, and engineering goals behind OpsPilot.
ikwukao
Backend • Distributed Systems • Platform Engineering
I design and build reliable backend systems, distributed platforms, cloud-native infrastructure, and developer tooling with Go, Python, Linux, Kubernetes, and modern DevOps practices.
© 2026 Ikwuka Okoye. All rights reserved.
Built with Hugo, Tailwind CSS & Go-inspired simplicity.