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 Applications

Syncoboard image

Syncoboard

A code-driven project management board designed specifically for high-velocity software development teams.

Web Development
Management
DarAlWefaq Store image

DarAlWefaq Store

a comprehensive web application for Dar Al Wefaq, a prominent publishing house specializing in academic, legal, and literary works.

Web Development
Store
Books
El-Mahrousa image

El-Mahrousa

El-Mahrousa (المحروسة) is a localized, streamlined version of the classic Monopoly game tailored for the Egyptian market. It features Egyptian cities, currency (EGP), and a 24-tile board for faster, more engaging gameplay. The game supports real-time multiplayer over a Peer-to-Peer (P2P) network using WebRTC, allowing players to connect and play directly with each other without a centralized game server.

GameDevelopment
HTML5
Multiplayer

Latest Articles

A Comprehensive Guide to Integrate FawryPay API into your own RESTful API Server image

A Comprehensive Guide to Integrate FawryPay API into your own RESTful API Server

These papers provide a brief, but sufficient, exposition of how FawryPay works, how to integrate its payment methods in your back-end software application, how refund works, and how to keep up with transactions status. Moreover, a general architecture that ensures a seamless integration of FawryPay API, with a flexible design that can adapt any other API, is proposed at the end of these papers.

Fawry
Payment Provider
Integration
Storage-Facilities Architecture image

Storage-Facilities Architecture

This article prescribes a general architecture, perceived as a receptacle box in which various frameworks can be plugged, that web developers can implement regardless of what technology will be used in the future. This article is a plea for mature industry!

web
software engineering
architecture
StateFile: A Minimalist Design for Permanent State Management image

StateFile: A Minimalist Design for Permanent State Management

A simple minimalist design to permanetally store and access arbitrary types of data. It can be handy in kind of applications where the complexity of common databases is considered groundless.

state management
software engineering