Projects
JavaScript
Performance
Life
Career
HTML+CSS
Git
React
TypeScript
Meet Appreciate Button, a Tiny Clap Button for Any Page
Well, if you read my last post about the renewed website you know that I replaced the applause button on my blog with a button…
Sep 27, 2026
My Website Got a New Look in 2026, Here is What Changed
In my last post about my blog stack I said that I deal with my blog the same as I deal with my iPhone, I…
Sep 25, 2026
Speculation Rules in a Nutshell, Open the Next Page Before the Click
Well, if you search on Google with Chrome on a $300 Android phone, the result you click opens almost instantly, while on a $1300 iPhone…
Jun 15, 2026
Why Browsers Are Different? and Why Should You Care?
As a new web developer you might be wondering why do we need to care that much about different browsers and why anyway do we…
May 25, 2025
[2024 Recap] Speaking 📢, Traveling ✈️, Driving 🚗, and more
As always this is the time of the year that I write this summary of the year for myself and to anyone who is looking…
Jan 3, 2025
Have You Optimized for INP? 🚀
If the user has to click twice to do one thing, this is called `Rage Click` and it is very annoying to any user, it…
Mar 11, 2024
How to Optimize the Web for the Worst User Conditions?
As a matter of a fact, there are a lot of uncertainty about the user of the web, and that is what makes it exciting…
Feb 21, 2024
Tracking Your Interviews is Extremely Important (+Template)
Any Interview has usually at least 2 actors, interviewee (the person who gets interviewed) and Interviewer (the person who conduct the interview) I would refer…
Feb 1, 2024
How to Create Automated OG Images using Satori
In this post I will take you in a journey on creating an automated yet customized open graph image per post for your blog, just…
Jan 17, 2024
The Stack I used to Build My Blog in 2024
I deal with my blog the same as I deal with iphone, I have to replace it every 4 years, first couple of years usually…
Jan 11, 2024
[2023 Recap] More Talks 🎙️, New Son 🐣, New Website 🎉
Well, it was a hard year, however some planned goals from last year has been achieved, some unplanned things happened, but I am writing this…
Jan 1, 2024
New Job? Negotiate as if your life depends on it
Software engineers are in need for a lot of soft skills alongside with the technical ones, they need to know how to deal with team…
Jun 4, 2023
Slow Start and Congestion Control
The simplest form of client/server communication is: a client (browser) sends a request for a specific resource and the server of the website sends the…
Apr 3, 2023
Why Your Internet is Limited?
The internet infrastructure began in the 1960s. The development of TCP/IP in the 1980s created the foundation of the modern internet. Commercialization began in the…
Mar 28, 2023
[2022 Recap] Rewards, Career Updates, and more
Hey future me! It's your past self, checking in as I do every year. Just wanted to give you a little pat on the back…
Jan 3, 2023
Cracking the Frontend System Design Interview
In this article I'm giving my own experience studying and passing in the FE system design interview in several high standard tech companies, I believe…
Nov 17, 2022
Optimize Data Fetching 🚀
In this new post in Performance, I want to focus on a very vital reason for a poor performance web app which is fetching data…
Aug 18, 2022
Measuring web performance, How fast is fast?
Any challenge in life is important to be objective in order to be fixed or to be proven fixed, in software performance we can do…
May 6, 2022
My first time on stage, feelings and lessons
Public speaking is both intimidating and exciting in the same time, I would like to share with you in this quick post my experience being…
Apr 24, 2022
What makes the web slow? browser's bottleneck
In this article, I will explain briefly How the web works, and explain the core reasons behind the slowness of the web, specially browser's main…
Apr 17, 2022
Why Performance Matters?
Performance optimization is essential knowledge for all web developers nowadays, not optional or a fancy thing to brag with anymore, in this article I will…
Apr 8, 2022
How to become a Google Developer Expert? 4 steps
I'm so happy to write this article as a good memory first and as a **How to** become a GDE second, I was rewarded recently…
Feb 14, 2022
[2021 Recap] Learnings, Achievements, and more 🧠
By the end of the year, I would like to share some of what I've learned and what I've achieved, and some good habits that…
Jan 8, 2022
Chrome renders emoji's wrongly [resolved]
I was working on a multilingual website and faced weird things about translating flag emojis in chrome that I want to share with you in…
Nov 23, 2021
Using Monorepos Is Not That Bad [Case Study]
The decision either to use or not to use monorepos has been very difficult for a lot of reasons, specially when you make a quick…
Sep 21, 2021
JavaScript Anti-patterns
Usually people search for patterns to follow but some searches for the anti-patterns to avoid, In my opinion both are equally important, by knowing them…
Sep 7, 2021
Best Refinement strategy for bigger teams
We faced lately in our team an issue of wasting time, in a lot of the meetings (scrum ceremonies) most people are silent and a…
Feb 23, 2021
Unleash was a great solution for our CI/CD
Recently we were checking in my team at work ways to accelerate the pace of delivery, we found that most of the issues that makes…
Feb 3, 2021
Evaluations are broken and will never be 100% fair ✋
Last week I wrote a quick thread on twitter but you know tweets could get buried any way with others so I decided to move…
Jan 23, 2021
[2020 Recap] Actually, it was a great year 🤩
Well, I was betting on this year to achieve quite a lot of things, and in fact the first half of it was for me…
Jan 1, 2021
5 different ways to create a ticket layout
Well, last week I've created a post about Gradient borders with curves and 3D animation in CSS, which was a trial to clone the Nextjs…
Nov 10, 2020
Gradient borders with curves and 3D animation in CSS
On 27th of October 2020 is the first global conference of Next.js, I'm so excited about it as a React developer, That's why I've registered…
Oct 26, 2020
Dark mode easily on web
Dark mode 🌒 has been a trend for the last few years, and you can find almost all website enable that, including famous ones like…
Oct 16, 2020
Merging 2 git repos with persisting commit history
Lately I faced a case for the first time in my career to merge 2 working repos with large amount of logs into one repo…
Aug 3, 2020
Cloning hey pin menu using CSS and JavaScript
The best way to strengthen the basics of web development or precisely to be a good frontend developer is to practice HTML, CSS, and JavaScript…
Jul 14, 2020
RCH v1.2.0 went open-source 🎉
After the good impact I got from my PoC that I created recently about the small library I created called react change highlight, which was…
Nov 8, 2019
Enhancements in my Gatsby Blog
As you might know, this website is built using gatsby which is built using react, recently I'm working hard to make my blog better and…
Oct 30, 2019
Paths and baseUrl in tsconfig.json
Hey! in this short and quick note I'd recommend to everyone to use in the current or in the future typescript projects you are going…
Oct 13, 2019
React change highlight (npm lib)
React Change Highlight is a react component to highlight changes in the wrapped component to enhance the UX and grab the focus of the user…
Oct 2, 2019
Five Rules to write a better commit message
Writing clean commit messages is very important in all cases, even some products are relying on the commit messages to autogenerate the changelog, of course…
May 15, 2019