M. E. Abdelsalam

About mePublications
personal portrait image

Software Developer

WHO I AM

Just like "What do you do?" is ironically the most difficult question that can be asked to a software engineer by a non-tech person, "Are you a web developer?", "Are you a mobile application developer?" or the like, are in some sense the same to me. Either asked by a tech or non-tech person, I frankly find it very tedious to answer. Perhabs I can figure out why...

I've been programming since 2012; just a twelve-year-old kid with all the passion and curiosity to know how video games are made. Back then, there were no many resources (on the web) to learn from, especially in my mother tongue (Arabic). However, I managed to develop my first game in the same year; I read and watched English resources with the help of google transtale and somehow it worked! I learned C# and used Unity Game Engine to develop my very first game (pretty much a typical maze game). After a couple of years, I've learned about databases, developed simple servers with PHP, and gotten some sense of how the web works. Many years later, I just figured out that I know nothing about "actual" programming, in the sense of using tools and programs, which have been made for solving the essential of the problem at hand, to solve the problem at hand is deemed not "actual" programming! Therefore, I hilariously settled on building everything from scratch in C/C++ (actually, nothing valuable has been built; just read Kern & Ritchie and Part 1 of Bjarne's book). Years later, I became aware of software engineering and software design, and just realized that every piece of code I wrote beforehand was a piece of crap!

Also, throughout these years, I've tried different disciplines, languages and tools. I've tried C, Java, JavaScript/TypeScript, Prolog, Matlab/Octave, R, Python, PHP, NodeJS, Flask, SKlearn, TensorFlow, OpenCV, OpenGL, ReactJS...etc.

I guess I get vexed by such a "question" because of the sparse of qualities one could use to identify oneself. I once read a quote from one of Ken Wilber's books that can be succinctly stated as follows: "I have a body, but I'm not my body. I have emotions, but I'm not my emotions. I have thoughts, but I'm not my thoughts". In the same manner, I'd say that: I've programmed in JavaScript, but I'm not a JS programmer. I've developed video games, but I'm not a game developer. I've designed web applications, but I'm not a web designer... and so on.

All these are havings, no single one necessarily identifies me...

and so, I may take the "Software Developer" title.

Latest Publications

Play with Your Pal image

Play with Your Pal

A full-stack web application that allows gamers to play local multiplayer games online together.

Golang
Web Development
WebSocket
GoWeb - Project Template image

GoWeb - Project Template

A template for developing full-stack web applications in Golang. Used tech: Fiber, Templ, Tailwind, HTMX, and Postgres.

Golang
Web Development
Template