Hi, my name is
Islam ElHakmi.
I'm a Full Stack (Heavy Backend) software engineer with +4 years of experience building web️ applications & contributing to open source projects :)
Get in Touch My Resume
Twitter GitHub Linkedin Stackoverflow
About me
I'm a Full Stack (heavy backend) software engineer (+4 Y.O.E) with a B.S degree in Computer Science from Mansoura University in Egypt
I'm interested in Open Source, Web Development, Cyber Security, DevOps, Site Reliability Engineering, and Marketing.
In my free time,I love listening to Music 🎶, playing the Piano 🎹, playing Computer Games 🤖, watching Anime 🎌, exploring different Technologies and Coding 👨💻 of course 😅.
Skills
Programming Languages: C/C++, Javascript, PHP, Python, SQL, Java, C#
Libraries & Frameworks: HTML, CSS, Bootstrap, Materialize, JQuery, Vue.js, React.js, Next.js, Laravel, Yii, Node.js, Redux, Express.js, Socket.io, Laravel Echo, Pusher.js.
Testing: Jest, PHPUnit, Cypress.io
Operating Systems: Linux (ubuntu), Windows
Databases: MySQL, MongoDB, PostgreSQL
Cloud Providers: GCP, AWS, Digital Ocean
Other Skills: GIT, LAMP, PM 2(Process Manager), Redis, Cron Jobs, BeautifulSoup4, Docker, FFMPEG, Hyperledger Fabric (Blockchain), NLP (Wit.ai, Dialogflow)
Open Source Development Experience
-
- Improved the development server security by developing `serveIndex` option that enables/disables `serve-index` middleware so the user can control whether the development server directory lists folders without index.html or not.
- Added support for webpack-cli v3.3.x+.
- Developed `liveReload` option that helped the developers enable/disable the live reloading of the browser on file changes which greatly helped developers working on projects with so much content in single pages.
- Added webpack-dev-middleware `callback` functions support through the development server.
- Improved the performance of the development server by removing socket injection when hot & live reloading are disabled as then the socket injection won’t be needed and would consume more memory.
- Helped in improving the debugging process by logging http server errors instead of ignoring them.
- Improved `open` option by allowing it to accept an object instead of accepting only `Boolean` and `String` which allowed the developers to use all possible `open` package options.
- Improved the readability and error detection by refactoring small parts of the code.
- Added new tests for newly developed features and modifications and Improved existing ones using Jest testing framework.
-
- Documented newly developed webpack-dev-server features.
- Improved the documentation by adding missing options’ details for webpack plugins.
-
- Allowed the developers to preprocess all html tags instead of adding every single html tag in the `tag` option by making the `tag` option optional so the plugin processes all the html tags if the `tag` option isn’t defined.
- Added support for `Asynchronous` functions to`preprocessor` option to support all modern preprocessors.
-
- Improved `encoding` option by adding support to all Node.js encodings instead of supporting only `base64` encoding.
- Developed `generator` option to allow the developers to implement their own implementation of encoding data.
-
- Allowed backers to reply to emails by adding `Reply-To` email header to emails which greatly improved the communication between the backers and collective admins.
- Improved the sorting options for expenses by adding sort by `created_at` date.
- Improved the consistency of shown information by flushing `CloudFront` cache after transaction refunding.
- Generally improved the application by deprecating unused parts of code and fixing logical errors and small bugs.
-
- Improved the UX by allowing users to view transaction details from the `All transactions` page as it was allowed only in the collective page.
- Improved the UX of email unsubscription by building a front-end landing page with React.js instead of showing a JSON object.
- Fixed a UI bug that caused the FAQ accordion to overlap the footer by dynamically modifying the height of the accordion container with JQuery.
-
- Added support for `Asynchronous` functions to `waitForFunction` option which prevented the hanging of the library on passing `Asynchronous` functions.
-
- Fixed a bug that caused child elements to be highlighted like their parent elements by adding UUID for all target elements.
-
- Fixed a bug that caused rust vulnerabilities scraper to fail.
Professional Work Experience
- Achievements & Responsibilities
- ● Worked with a multinational team on Sfera Studios localization platform in the Media and Entertainment industry.
- ● Worked on automating the registration and payment process using Stripe API/SDK for vendors/studios.
- ● Worked on transitioning the old codebase (Yii1, JQuery) to modern frameworks (Laravel, React.js [Material-UI, Redux]).
- ● Worked on developing new features, debugging and fixing bugs.
- ● Improved code quality by implementing SOLID principles and best practices.
- Achievements & Responsibilities
- ● Developed and maintained Educational,E-commerce and CMS web applications using Laravel and JQuery.
- ● Designed and developed RESTFul APIs for mobile applications.
- ● Worked closely with clients to analyze their requirements and design efficient software solutions.
- ● Mentored new engineers by giving advice and sharing tutorials, articles and best practices.
- Achievements & Responsibilities
- ● Worked on an E-commerce platform that enabled the users to browse nearby registered sellers.
- ● Worked on the Delegate module which was responsible for verifying, and communicating with newly registered sellers.
- ● Improved the UX for the users by suggesting and Implementing new features and improvements such as browsing history.
- ● Developed real-time chat and notifications systems using Socket.io, Vue.js, Node.js, Laravel Echo and Redis.
- ● Improved the performance and UX of search pages by converting all search pages from form-submitting to AJAX.
- ● Developed RESTFul APIs using Laravel.
- Achievements & Responsibilities
- ● Developed the frontend and the backend of an indoor (RMS) Recruiting Management System from scratch with a notifications system that notifies both the recruiter and the candidate via Email and SMS using Laravel, Nexmo API/SDK, and JQuery.
- ● Developed search, profile and reservation systems for a Medical Services Platform using Laravel, Vue.js and JQuery.
- ● Installed and configured LAMP Stack on Ubuntu Servers.
Education
-
Graduation Project
- A mobile application that depends on Hyperledger Fabric to make a secure and private Blockchain network to store the medical history of the patients.
My responsibilities were developing the back end (Node.js) and writing the smart contracts for Hyberledger Fabric SDK and integrating them together.
My team won the 1st place for our project in the 4th Egyptian Computer Science Olymlics wich was held in Benha University (Feb 2020).
Achievements & Awards
- Completed Google Africa Developer Scholarship Program (GADS 2020) for Google Cloud Track (GCP) (https://adscerts.com/scholar/02D1EC113ADFCEA9).
- 1st Place Winner in The 4th Egyptian Computer Science Olympics as my team won for our project "Blockify Medical"
- Completed 5 Quests on qwiklabs.com about DevOps, Cloud Computing and Google Assistant actions development.
- Earned a Gold Medal (Top 50 In Egypt) in Huawei ICT 2020 Competition for Cloud & AI Development Track.
- Earned AWS Cloud Practitioner Essentials (Second Edition) certification.
- Earned Javascript Algorithms & Data Structures Certification from freeCodeCamp.
- Earned 16 badges on IBM Academy about Cloud & Blockchain Development using Hyperledger.
- Completed Hacktoberfest 2019 By Solving +10 issues in opencollective-api and opencollective-frontend.
Volunteer Experience
- Helped in cleaning and repainting the streets of Mit Ghamr city.
Projects I'm Proud Of 🤗
I was assigned to work in Sfera Studios OneDub team.
My Achievements :
● Worked on automating the registration and payment process using Stripe API/SDK for vendors/studios.
● Worked on transitioning the old codebase (Yii1, JQuery) to modern frameworks (Laravel, React.js [Material-UI, Redux]).
● Worked on developing new features, debugging and fixing bugs.
● Improved code quality by implementing SOLID principles and best practices.
It was launched in Feb 2019 and got +3300 users and +20,100 unique visits from +50 different countries.
My Technical Achievements:
● Built a service that preprocess newly uploaded images and videos to various qualities using FFMPEG to improve the browsing experience.
● Built a js music player built from scratch that streams music through PHP server that allows serving partial content (playing the song from any second immediately).
● Built a followers system that allows blocking and friendships.
● Built a real-time chat and notifications system using Socket.io, Vue.js, Node.js, Laravel Echo and Redis.
● Built a voting system that notifies the users with results after the deadlines through CRON jobs.
● Built a posts/comments system that allows users to upload images, videos and also allows voice comments using Web Audio API.
It was built only in 2 days.
I was lucky to lead the development of an E-learning system that Helps Edumeter an educational institution in Saudi Arabia to provide E-learning services.
So far It's used by +1000 Students and +50 Teachers, improving the education and making real impact.
What's next ?
Get In Touch
I'm available for all opportunities, my inbox is always open. Whether for a potential project or just to say hi, I'll try my best to answer your email !
Say Hello