Redowan's Reflections
Hi, I’m Redowan.
A roving amateur fumbling through software, systems, and sundry.
Recent writing
Build retry logic in Go without reflection using generics. Implement exponential backoff and configurable retry strategies with type safety.
Master Go type assertions with i.(T) syntax and type switches. Extract concrete types from interfaces safely with ok idiom examples.
Mock pydantic_settings in pytest tests by patching the settings class to prevent flaky tests from environment variable dependencies.
Track dev dependencies like golangci-lint in go.mod with a tools.go file and build tags to exclude them from production binaries.
Why you should define API response structures explicitly. Compare approaches in Python, JavaScript, and Go with Pydantic, Zod, and structs.
Properly annotate Python *args and **kwargs with heterogeneous types using Unpack, TypedDict, and modern type hints from PEP-692.
Implement rate limiting at the infrastructure layer with Nginx reverse proxy. Protect Go services from DDoS with leaky bucket algorithm.
Enforce immutable dataclasses at type-check time with @final decorator to catch mutations before runtime without frozen=True performance cost.
Why scattered planning documents across RFCs, ADRs, and multiple tools hinder productivity compared to centralized documentation.
Build a CGI script from scratch using Go's stdlib and Bash. Understand why Common Gateway Interface fell out of favor for modern web apps.
Set up VSCode debugger for containerized Python applications using debugpy. Step-by-step guide with Docker Compose and launch configurations.
Why you shouldn't add state-mutating methods to Python dataclasses. Maintain semantic clarity and use dataclasses as pure data containers.
Strategies for achieving deep work and focus time as an engineer drowning in meetings, Slack messages, and corporate interruptions.
How technical skills decay faster than ever in software engineering, and strategies for continuous learning in a rapidly changing field.
How resume-driven development and technical maximalism distract engineers from solving real business problems and delivering value.