I'm a Software Engineer from Saudi Arabia. Got into programming in 2016 by modding World Of Warcraft Private Servers where I fiddled around with SQL, C++, and x86 Assembly. After that, I got a BsC in Software Engineering from King Fahd University for Petroleum in Saudi Arabia and started with fullstack web, Flutter, and Rust along the way. And right now I spend my days thinking about tools, and currently making a mobile party game.
This blog
I started this blog for two reasons:
I wanted a space to share my thoughts
I began writing my daily thoughts about programming languages and software development in general on 2023/01/01 in Obsidian and I wanted a place to share them. I've considered Twitter & Mastadon for this, but these types of platforms seem better suited to hot takes nowadays rather than thoughts.
I want to advocate for good software design and tools that make software development better
There is this common thought that programming languages (PL), frameworks, and libraries are just tools for the developer to use. This cognitive space has many ideas:
- You should pick whatever PL/editor/framework you're comfortable with
- You should pick the right tool for the job
- There are always trade-offs for each tool. Some tools are better for GUI's others are better for Parsers.
I disagree with most of this. It's not about which tool is "just better" - it's about tools that provide models for understanding how systems work.
Throughout this blog, I'll explore how tools that offer clear mental and computational models can fundamentally change how we approach problems.