Hi! I’m Hesham. I’m an iOS engineer based in Cairo, Egypt. I write mostly about iOS development, and occasionally about cars and other random thoughts that cross my mind.

I’m currently squashing bugs at Instabug and mentoring iOS students at CareerFoundry. Previously, I have worked at Sarmady, Startappz and Zoboon. Also, I have cofounded Grapes ‘n’ Berries then quit it. I also coauthored the Become an iOS Developer with Swift course at CareerFoundry.

I’ve started writing code when I was 12 years old. My first lines of code were in Visual Basic 6 and I immediately got fascinated by the ability to create something from just a few lines of code that I started skipping school classes to go to the computer lab. I then taught myself PHP and MySQL, and built a number of websites (a few of them are still online, and I sincerely hope you don’t find them). One of them was a ringtones website (don’t judge me, I was 14 and ringtones were cool at that time!). It started with a few static pages and quickly evolved into a full custom-built CMS. I then moved on to start a small reseller web hosting business which I ran for a couple of years then sold to a bigger hosting company (with around 40 customers at that time).

I started to gain interest in mobile apps by the time the first iOS SDK was released. I couldn’t afford to get neither a Mac nor an iPhone, so I began to play around with Android instead. After graduation I worked with the BlackBerry SDK for a little less than a year (and hated it!), then finally made the shift to iOS.


I’ve been developing for iOS since 2010. Here are some of my most recent apps.

Focus List

Open-source work

  • HMSegmentedControl: A drop-in replacement for UISegmentedControl mimicking the style of the segmented control used in Google Currents and various other Google products.
  • HMSegmentedControl-Swift: An attempt to create a version of the original HMSegmentedControl that uses modern Cocoa APIs and Swift 3.0.
  • HMSideMenu: Allows you to display a menu of items that show from the left, right, top or bottom of a view controller with a delightful animation.
  • HMDiallingCode: Gets the dialling code of the user’s current location by using CoreLocation and reverse geocoding to determine the country of the user, then retrieve it’s international dialling code. Additionally, it can be used to get the dialling code for a specific country or the counties that use a specific dialling code.