Redowan's Reflections — Page 8
Recent writing
Longer articles, short notes, and things I'll probably need to look up again.
Browse the archiveWhy 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.
Organize custom scripts with comma-prefixed naming. Improve tab completion and eliminate clutter by prefixing script names with special characters.
Why footnote-style reference links create cleaner Markdown documents and improve the writing experience over inline links.
Manage dotfiles across devices with GNU Stow. Symlink configuration files from git repo to home directory with simple, idempotent commands.
Exploring minimalist web design that prioritizes content over frameworks, celebrating the raw spirit of the early internet.
Host Google Fonts locally in Hugo without CDN dependency. Download woff2 files, configure CSS, and improve performance while maintaining GDPR compliance.
Compare three Go option patterns: exposed structs, option constructors, and functional options. Learn when to use each for clean APIs.
Build a working round-robin load balancer in Go with goroutines and the standard library. No dependencies needed for this educational prototype.
Control goroutine concurrency with buffered channels as semaphores. Prevent resource exhaustion with backpressure patterns in Go workers.