Ooze Codes #0 - Booting Up
Hi, I'm Ooze - Welcome to Ooze Codes
Have you ever watched a coding tutorial, everything makes perfect sense, and you think: "Easy!" Then you try it yourself — and suddenly, nothing works the way it did in the video.
The tutorial code doesn't fit your use case.
The library might be outdated.
Or something behaves completely differently.
... or, you know — THIS:
I know that feeling.
And that's exactly why I wanted to do something different:
I chose a language I had never used before, explored a new programming paradigm, and decided to build a real project from scratch - including all the mistakes, dead ends, and #@!$^ with the &%#?! $@!?% code, $@!?% errors, and the inevitable "why did I even start this?" moments.
And I'm documenting it here — in this blog (and in the vlog if I learn how to do that properly).
Why I'm writing this blog
I want to show how learning programming really looks like — not through perfect tutorials, but through actual projects.
This isn't about doing everything right. As if wouldn't make errors left, right and center. It's about experiencing the journey to a maybe finished product.
I'll share:
- where I failed
- how I approach problems
- and what I learned about software development along the way
I am doing all this mainly to help you learn software development on your own — to write and publish your own dream projects.
How it all started
I'm in my late (late, late) 30s, studied computer science a while ago, and now work in software quality assurance — specifically in medical software.
Throughout my career, I've worked on many projects in verification and validation, meaning I checked, tested and documented software thoroughly.
On the side, I've always coded — helpful tools for work or personal projects just for fun.
I even developed, delivered and still maintain a lab software.
In short: I'm not a full-time dev, but I understand software and love building things.
Why Elixir?
This project is not about a specific language. However, I am coding EZStreamer in Elixir and will explain concepts specific to this language. I'll try to not make it only about Elixir, so you can still map the problems and solutions to the language stack of your choice. If I fail at that, please let me know.
Elixir is a functional language build on Erlang, running on the BEAM VM — a platform designed for reliability, parallelism, and fault tolerance.
Instead of traditional threads, it uses many small processes that run independently and don't crash each other.
This way of thinking was completely new to me, but fascinating.
Two years later, I'm convinced Elixir was the right choice — even though I'm still far from even calling myself proficient in Elixir.
The project: EZStreamer
EZStreamer is my web app for streamers — mainly for me because let's be honest: This is still a private fun project of one guy.
It's meant to let you configure your stream live, persistently, and as easy as possible.
Some features/ideas:
- A chatbot with fully customizable commands
- Small chat games playable live during streams
- Steam integration to automatically display achievements in the stream
- Self-deployable by anyone
Most importantly, EZStreamer is a learning project for me (and hopefully you), covering all key areas of software development — from planning and architecture to deployment.
Topics I'll cover:
- Project management
- UI/UX with LiveView, HTML, CSS, and a bit of JS
- Backend logic & architecture
- Database design
- Deployment with docker
- Security (HTTPS, data protection)
- Testing & Documentation
- Git & version control
What to expect here
This blog is not for showing off (well, a little maybe), but for sharing my learning experience with you — with the goal of enabling you to build software on your own. The source code for EZStreamer is freely available on Codeberg. You can deploy the app yourself, follow along with the blog updates, make suggestions, or fork the repository and experiment on your own.
Honestly, I should have started this blog a couple of months ago when I first discovered most of the things.
On the one hand, this is a good thing — I can show things in a more finished state.
On the other hand, I might skip a few steps because I simply forgot.
I promise I'll do my best to get the blog (and maybe the vlog) up to the current state of the project as fast as possible.
This is a community project. If you have a feature idea, feel free to issue a
Next up
I'm honestly shocked that you've read this far — thank you for that.
I really need to set up my socials like Discord and YouTube so you can give feedback in other ways than Codeberg (I know not everyone has an account there). Once I do, I'll let you know.
In the next post, I'll cover project management —
which tools I tried, why many didn't work, and how I landed on my current solution. Spoiler: It was a messy learning process.
Along the way, I'll also share a bit about how I got started with Elixir itself and how that journey shaped my approach to architecture.
And yes, eventually we'll get to Docker and a first look at the system design.
See you next time,
— Ooze