adhamzahranfms@gmail.com
A software engineer. A jack of all trades, master of none.
In this website, I will tell you all about my not-so-amazing skills.
Associated with RDI
This project required extensive coordination, technical expertise, and dedication to ensure its success.
In a project led by Amr Elgamal, I had the honor of playing both the roles of a project manager and an engineer. The project aimed to teach kids the Arabic letters, their forms, and pronunciations with different diacritics (Fatha, Damma, and Kasra), in addition to teaching the recitation of Al-Fateha.
As a project manager, I led the research and development of the backend while coordinating the entire project. My engineering role included C++ development, Python (Flask), and cloud engineering on Google Cloud Platform.
Responsibilities included:
Databases . MySQL . Technical Leadership . Project Management . Hands-on Technical Leadership . C++
Associated with RDI
I worked as a systems engineer developing the C++ engines behind the AI suite of RDI: Sotoor, Kateb, Natiq and Tashkeel. OCR, ASR, TTS and Automatic diacratization of Arabic respectively.
The engines do feature extraction, feed forward, language model rescoring. They also interoperate with other languages to be usable by backend servers like java, python and C#
My responsibilities included:
C++ . Multithreading . Inter-process Communication . Interop . Memory Management . Server Programming . Network Programming . Cross-Compiling . CMake . Unit Testing . Continuous Integration (CI) . Continuous Integration and Continuous Delivery (CI/CD) . Parsing . Architectural Design . Project Management . Team Leadership . Technical Leadership
Associated with Ain Shams University
Our work is based on a paper by Jun Xing et. al. Called Autocomplete Painting Repetitions Which detects the patterns in the artists strokes and tries to predict the upcoming strokes accordingly. Here's a video by the original authors of a working prototype that shows the capabilities of the Autocomplete Painting Repetitions.
There is another paper by the same author called Autocomplete Hand-drawn Animations Which takes the pattern detection to be across frames.
Here's a video for the Autocomplete Hand-drawn Animations.
https://github.com/opentoonz/opentoonz/pull/1350
Computer Graphics . C++ . CMake
I attempted to re-create Qt's QML from scratch using C
https://gitlab.com/lordadamson/ugly_ui
Parsing . QML . Lexical Analysis . C (Programming Language)
A visual shell language, and a pipe multiplexer. The idea is to visually create nodes and connect them together. So you connect stdin, stdout and stderr visually. Unlike text you are not limited to pipe to only one process.
https://gitlab.com/lordadamson/golash
Inter-process Communication . Qt . Qt Creator . IPC . Unix Pipeline . QML . C++
A file manager. The UI is programmed from scratch using HTML5 canvas. The backend is a go server.
https://gitlab.com/lordadamson/bilemanager
Cascading Style Sheets (CSS) . Web Servers . JavaScript . HTML5 Canvas . Graphical User Interface (GUI) . HTML . Go (Programming Language)
I created a habit tracker inspired by github's contribution chart to track the good habits I want to gain, and the bad habits I want to lose :D
https://gitlab.com/lordadamson/habit_tracker
SQLite . Databases . Cascading Style Sheets (CSS) . JavaScript . Scalable Vector Graphics (SVG) . HTML . PHP
A simple path tracer that I made following the ray tracer in one weekend book: https://raytracing.github.io/books/RayTracingInOneWeekend.html
https://gitlab.com/lordadamson/bath_tracer
Computer Graphics . Ray Tracing . C (Programming Language)
We intercept calls to malloc, write the data to disk, so that it can later be visualized. This is a seed for a memory profiler. It produces visuals that are very cool.
https://gitlab.com/lordadamson/sneakymalloc
Profiler . Ffmpeg . C (Programming Language) . Visualization
Terrain generation using open simplex in Unity3D
https://gitlab.com/lordadamson/unity-terrian-generation
C# . Simplex Algorithm . 3D Graphics
A note taking application inspired by OneNote. Implemented using Qt C++ and QML.
https://gitlab.com/lordadamson/journal_qml
Qt . Qt Creator . QML . C++
A canvas on the browser where people can go type and draw stuff, and it would synchronize in real time.
Server is written in C, implements web sockets.
Client is javascript on the browser, uses the HTML5 canvas.
https://gitlab.com/lordadamson/the_internet_canvas
Realtime Programming . WebSocket . JavaScript . HTML . HTML5 Canvas . C (Programming Language)
It's a chat client and server using Godot RPC
Does some funny animations like /sad /happy and others. They're inspired by "1 hour 1 life" game
https://gitlab.com/lordadamson/vworld
Remote Procedure Call (RPC) . Godot . GDScript
An implementation to a very simple neural network in C++ for learning purposes.
Recognizes images of numbers by training on the MNIST dataset.
https://gitlab.com/lordadamson/digit_recognition
Neural Networks . C++
A note taking application that is heavily inspired by OneNote.
https://gitlab.com/lordadamson/Journal
Qt . Qt Creator . C++ . Object-Oriented Programming (OOP)
Implementation of std::tuple and tie() for learning purposes.
https://gitlab.com/lordadamson/implementations_of_cpp_stuff
Template Metaprogramming . C++17 . C++14 . C++ . C++11
A simple sticky notes app built with Qt Quick
https://gitlab.com/lordadamson/Notix
Qt . QML . C++ . Qt Creator
Bookmark locations that you visit frequently in your terminal!
https://gitlab.com/lordadamson/QuickCD
Bash
I Created an php MVC framework from scratch inspired by Laravel
https://gitlab.com/lordadamson/phpblog
Model-View-Controller (MVC) . Databases . composer . MySQL . MariaDB . PHP
Associated with Ain Shams University
An Android Application that helps you manage your money.
The idea is quite simple. You tell it how much money you have and for how long is that money supposed to keep you alive. It divides the money over the number of days to give you a daily allowance. Every time you spend money, you let it know and every time you get money. It gonna recalculate your daily allowance everyday.
https://github.com/Open-Source-Community/AllowanceCalculator
Java . Android
Communicate with your team in Facebook-like groups and messages without being distracted by Facebook.
Created using Laravel.
https://gitlab.com/lordadamson/groupsNmessages
Model-View-Controller (MVC) . Databases . PHP . Laravel
Associated with Ain Shams University
This is a simple heat flow simulator that I had done back in university.
Done using Qt widgets.
https://gitlab.com/lordadamson/visualization-heat_flow
Qt . Qt Creator . C++ . Visualization . Computer Simulations
Very basic strategy game using Godot engine
https://gitlab.com/lordadamson/strategy_game
GDScript . Godot
Associated with Ain Shams University
The Operating Systems course in my faculty was being taught on a 10-year-old PCLinuxOS virtual machine, because the build system just didn't support newer toolchains.
So I hacked the system and made it possible to develop the system on modern OS without a virtual machine. The TAs graciously included my name in a thank you note, that is included to this day in the course material.
https://gitlab.com/lordadamson/FOS-improved-development-environment
Problem Solving
It's a game about a little boy who literally has a little chick head. When he got home he stepped on the just-cleaned rug with his dirty shoes. Now the rug is dirty and he's in so much trouble. His mother -who is a woman with a chicken head- now keeps chasing him around the roofs of buildings trying to catch him while he collects coins to buy eggs. Controls: just use the arrow keys space to jump c to crouch Don't forget to collects the coins and have fun :))
https://gitlab.com/lordadamson/7dayGame
Computer Graphics . Godot . GDScript . 3D Graphics
An alternative to Dropbox that uses a git and cronjobs to synchronize files. Zeneti is used for the UI.
https://gitlab.com/lordadamson/CCCSync
Bash
This is a calculator that formats mathematical expressions in the way you would normally write them down with pen and paper.
So instead of having to type lame stuff like:
((2+33)/114)\*sqrt(25)
You would elegantly type it in and it would look like the attached screenshot
https://gitlab.com/lordadamson/latexCalculator
Cascading Style Sheets (CSS) . Parsing . JavaScript . HTML
A game with a boy walking around in an open world. still needs a story and a purpose.
Implemented in Java JMonkeyEngine
https://gitlab.com/lordadamson/OpenWorldGame
Java . 3D Graphics