Overview
I am passionate about programming, math and physics. I have started programming when I was 14 years old, and you probably have already seen the programming languages, that I experienced from the header of the website.
I like to work the most on new ideas and challenging projects, the most recent one was a Contexual Scriptable Chatbot that uses Lua to manipulate the business logic.
In my spare time, I do play with cutting-edge web technologies like ReactJS/Native and ES7 along with graphics programming (OpenGL) and phsyics engines programming. I am always interested and motivated to work on low level logic.
It is worth mentioning that I have three years of hacking experience 2008 - 2010. In fact, learning how to hack computers and Linux servers, along with proficiency in programming, let me understand crackers and type a clean code.
Web Projects
Jan 2016 - Present
Chatbot Platform
Software Engineer, Full-Time at Jirnexu Sdn. Bhd. (Malaysia)
Jirnexu is a multi-national FinTech company headquartered in Kuala Lumpur. It is behind the most popular financial services website in Malaysia RinggitPlus.com and KreditGoGo.com in Indonisia. They offer B2B FinTech solutions for banks, insurance companies and service providers.
The business requirements were to make a Chatbot that can handle the customers application for banks products, and I was mainly involved in the back-end development of the Chatbot platform.
The Chatbot was able to start a contextual conversation and reply to the customers according to intents that it is been provided, and it was able to communicate through Web, SMS and Email.
Redis was used as a dedeicated memory for the Chatbot, we took advantage of Pub/Sub support and Lua scripting on Redis.
Technologies:
- Golang for RPCs.
- Lua was embedded into Golang.
- AWS Elastic-Cache to maintain Redis instances.
- Stanford NLP Engine for text analytics.
- Elastic-Search to store the intents.
Customer Relationship Management System (CRM)
Full-Stack Web App Developer, Full-Time at Jirnexu Sdn. Bhd. (Malaysia)
My mission as a Full-Stack web app developer is to develop and maintain a CRM system -with a team consists of talented engineers and developers- using cutting-edge technologies in terms of cloud computing and development. I had the chance to see Microservices architecture in action along with using the most popular cloud infrastructure Amazon Web Services.
I'm primarily writing Golang code for making Microservices and using RiotJS library for making UI components. AWS is always handy, I almost touched every service Amazon provides.
Dynamic CMS:
It gives ability to product researchers and content writers to generate forms for the products through CSV files, the CMS engine parses the CSV file to indicate the inputs' types and whether it's static or dynamic, then it outputs JSON representation of HTML form. The front-end parses the JSON objects and generate forms.
Serverless Page Generator for the CMS:
Using AWS Lambda, I managed to create a concurrent highly available page generator for the CMS. the website Admin can trigger mutliple builds at the same time, thousands of Lambda functions (depends on the load) will be triggered concurrently to read (by querying AWS CloudSearch) and generate a static HTML page for the given content (dump the build to AWS S3).
Lambda functions were created:
- routes function to read the website routes from S3, and triggeres generator function for each route. (e.g /blog, /product)
- generator function to read the template for each route and querying data from CloudSearch.
- tracker to keep track of the generated pages, so we can have a progress bar on the front-end, uses AWS DynamoDB for atomic counter.
- sitemap to generate a sitemap for the generated pages, and it supports sitemap-tree to archive >10Mb of URLs.
- deploy to deploy the new build in matter of seconds without leaving major effects on the CDN (AWS CloudFront), very easy and flexible way to role-back.
Page Generator Deployment:
I used Terraform to automate the deployment of:- Lambda functions
- Create the required buckets for the templates and generated pages on S3.
- Create the website distribution on CloudFront.
Amazon Services Used:
- NoSQL DynamoDB to store a massive amount of data.
- Upload, download and manage content using S3.
- Scale up and down using EC2 and isolate the network(s) using VPCs.
- Heavy execution functions bcome faster by using Lambda functions.
- Fast/Reliable search engine on the cloud CloudSearch.
- Every international website needs a CDN, CloudFront is the solution on AWS.
- I used to stream Docker containers logs to CloudWatch before it's supported out of the box.
- PCI Compliance is number one priority for every eCommerce website, KMS was responsible for managing the encryption keys.
- SQS to process events/emails and such.
- SES to guarantee email delivery.
Web Technologies:
- Golang for microservices and RPCs.
- RiotJS is used to create UI components.
- EcmaScript6 was used and jQuery.
- Terraform to automate the deployment for AWS.
December 2014 - 40 Days Individual
Company Registration Application
Full-Stack Web App Developer, Part-Time at Black and White (Malaysia)
At Black and White (Malaysian company), I worked on a web project that had a simple idea but a huge process. The goal of the project was to allow people to register companies in various countries through a website. Each country has its own process to accept a company. Therefore, the administrator had to have the ability to control the forms and make them dynamically.
The website has three active actors, the applicant, reviewer and service provider. The applicant is who applies for a company. He is responsible for filling the form for the country that he wants to register his company in and making the payment. The reviewer is the one who reviews the submitted application and checks the provided information. After that, he will direct the application for one of the service providers in that country. The service provider is the individual who works with the government to register companies. He will get the required information from the reviewer and start working with the government. Each one of the actors has the ability to track the application and know its status. Moreover, each one can return the application to the previous actor.
The website has been provided with a fully functional payment system. The administrator was able to pay the service provider or refund the money to one applicant through the website. The supported payment gateway is Paypal.
Technologies Used:
- I used Metronic UI elements and arranged the interfaces.
- PHP in the back-end, used CodeIgniter framework.
- Javascript validation library is created from scratch for this project.
- Javascript and Ajax covered the whole website.
- MySQL is the database.
Screenshots:
July 2013 - Individual
Bedaea - Crowd Funding Website
Full-Stack Web App Developer, Freelance Contract (Malaysia)
Bedaea means "the beginning" is a crowd funding website for Arab countries and the Middle-East. It has been awarded Best Arab Website by Mobily Telecom Saudi-Arabia in 2013. The website is provided in both Arabic and English.
The project has a new idea that allows the user to post job opportunities that are related to his project so that people can apply for these opportunities and find a job. Perks system was provided along with two payment gateways (Paypal, CashU). The UI is created by one designer and I was the only developer. I spent 8 months supporting it technically. I was activly involved until March 2014.
Technologies Used:
- Metronic UI elements for the administration panel.
- The scripting language is PHP using CodeIgniter framework.
- Javascript and Ajax.
- MySQL is the database.
Go Online:
Check the website live.
Screenshots:
July 2011 - 90 Days Individual
Sham Search Engine
Full-Stack Web App Developer, Self-Employed (Syria)
Sham means "Syria, Lebanon, Palestine and Jordan all together" is a web search engine made to crawl Arab websites and archive them. It has been awarded Best Youth Project by the Presidency of the Council of Ministers in Syria in 2011 with the support of the Syrian Inventors Association.
The goal of making this project was to learn how search engines work. Unfortunately the project had lack of resources, I was not able to launch it after the competition. I learned a lot about data structures and how crawlers work through this experience.
Technologies Used:
- The scripting language is PHP.
- Javascript and Ajax to get the most popular searched words.
- MySQL is the database.
Screenshots:
Windows Projects
April 2012 - 20 Days Individual
Xsenior - PC Remote Watcher
Visual C#.NET Developer, Self-Employed (Syria)
It is a Windows project consists of two applications Server and Client. The purpose of making this project was educational. I did not publicize the project because it could have been used to hack PCs.
The application has the ability to monitor PCs and watch the desktop screen in almost real-time. It has a sensitive key logger, which stores all the pressed keys and sends them to the client, who got the ability to indicate how many characters the key logger can store before sending file. The big plus for this project is that the server can be updated from the client side with a new version and new commands to be applied on the remote PC.
The server receives commands from one file on the cloud, then the information that the server collects is sent to an e-mail address.
Features:
- Grab the PC information (IP address, Hard Disk information and the Running Processes).
- Watch the remote screen.
- Kill any running process.
- Key logger was provided.
- Ability to get the Hotmail contacts.
- Ability to update the server application from the client side.
- The server application is not discovered by Anti-Virus and Anti-Malware software.
Technologies Used:
- Visual C#.NET.
- XML to store some data.
Screenshots:
May 2015 - 5 Days Individual
Path Finding Demonstrator
Visual C#.NET Developer, Self-Employed (Malaysia)
It is a Windows application which aims to demonstrate search algorithms and apply them on finding the shortest path from one object to another. The user is able to draw a tree or grid and set the starting and the goal nodes then demonstrate the algorithms, in addition to the ability to put block nodes.
Four search algorithms were provided with this application which are Depth First Search (DFS), Breadth First Search (BFS), Hill Climbing and A*. The user is able to limit the speed of the algorithm execution by setting a time step so he will be able to see the algorithm steps on the graph. Moreover, he can pause the execution and resume it.
GDI+ API was used to let the user draw on the sheet.
Features:
- Ability to demonstrate 4 algorithms DFS, BFS, Hill Climbing and A* in grid or tree shapes.
- Ability to put block nodes so the algorithm will assume it like a wall or an obstacle.
- Two types of graphs were provided, Directed and Undirected graphs.
- Ability to draw a tree or grid.
- Ability to sit a time step and run, pause or resume the execution of the algorithm..
- Basic collision-detection was provided between the mouse and the drawn objects.
Technologies Used:
- Visual C#.NET.
- GDI+ API for drawing.
Screenshots:
Games Projects
April 2015 - on-going Individual
Syriana 2D Game Engine
Game Engine Developer, Self-Employed (Malaysia)
This is my first experiment in making a components-based game engine. I am using C++ and OpenGL. The 2D rendering part of the engine is complete and currently I am working on the physics engine.
This project is supposed to be my final year project in Limkokwing University. However, I am taking it seriously to be my lifetime project, so it can be developed to support more platforms and extended to have a DirectX renderer.
I might start with the 3D rendering part after finishing the 2D physics engine.
Things that I have done so far:
- Handling the window and inputs.
- Making a maths library that contains multi-dimensional vectors and 4x4 matrices.
- Optimized 2D renderer using modern OpenGL.
- Support masks in shaders.
- Transformation Stack and Layers were supported.
- Text rendering.
Technologies Used:
- C++ Programming Language.
- Modern OpenGL for rendering.
- GL Shading Language.
Screenshots:
Android Projects
May 2014 - 2 Days Individual
HIV Community Application
Android Developer, Self-Employed (Malaysia)
At Limkokwing University we have been asked to make an android application that helps people who are infected with HIV virus. I came up with an application that associates doctors and infected/uninfected people in one community, so the doctors could help the patients by posting the recent medications and some advices while the patients can post their experience and how they got infected, so the awareness will be increased among uninfected people.
Features:
- Account activation by SMS messages.
- Community functionalities have been provided like news, posts, comments and likes.
- Online streaming, relaxing music player that uses the motion of user's hand to determine either pausing the song or resuming it during browsing the community's posts.
Technologies Used:
- Java Programming Language (Android SDK).
- REST API developed in PHP.
- MySQL database was in use.
Screenshots:
Technical Skills
Expert, 7 Years
Web Development
I am a full stack web developer. I enjoy working as back-end developer.
- HTML, CSS, Javascript, ES6, ReactJS, RiotJS and jQuery.
- Back-End experience using PHP and Go language.
- Four years' experience of using CodeIgniter framework.
- I have used MySQL and PostgreSQL databases in my web projects.
- Terraform for infrastructure deployment.
Advanced, 2 Years
Amazon Web Services
I have used almost all the popular services to setup or manage a web application environment.
- NoSQL DynamoDB to store a massive amount of data.
- Upload, download and manage content using S3.
- Scale up and down using EC2 and isolate the network(s) using VPCs.
- Heavy execution functions bcome faster by using Lambda functions.
- Fast/Reliable search engine on the cloud CloudSearch.
- Every international website needs a CDN, CloudFront is the solution on AWS.
- I used to stream Docker containers logs to CloudWatch before it's supported out of the box.
- PCI Compliance is number one priority for every eCommerce website, KMS was responsible for managing the encryption keys.
- SQS to process events/emails and such.
- SES to guarantee email delivery.
Beginner, >2 Years
Game Engine Development
I took advantage of my experience in C++ and started making games using it.
- C++ Programming Language.
- Modern OpenGL.
Advanced, 3 Years
Mobile Development
- Java Programming Language (Android SDK).
- ReactNative framework.
- PhoneGap framework (Hybrid App).
Advanced, 5 Years
Windows Development
- Visual C#.NET.
- Mircrosoft SQL Server.
- Visual Basic 6.
Education
3 Years, Feb 2013 - Dec 2015
Limkokwing University
Bachelor of Computer Science in Games Technology, Malaysia
The most important modules that I had:
C++1/C++2 | Java 2 (Extra Class) | Data Structure & Algorithms Analysis | Mathematics for Game | Unity3D | Unreal4 |
---|---|---|---|---|---|
A | A | A | A | A | A- |
Artificial Intelligence | Software Project Management | OO Design and Analysis | OO Game Implementation | System Development Methods & Tools | Data Communication & Networking |
---|---|---|---|---|---|
A | B+ | B+ | A- | A | A |