👋🏻 Welcome to My Personal Website 👋🏻
That’s me, presenting my Enhanced Android IDE graduation project 8 years ago :)
My name is Ahmed - aka Tito. I am a Software Engineer, mainly Android, with +8 years of experience. Currently, I am a Senior Software Engineer at Zendesk since November 2019.
Proudly, I am one of EGDroid founders. A community that helps and mentors Android Engineers.
Besides, I mentored tens of techies and helped them improve their android level to reach seniority. For more details, I did a mentor program for anyone who wants to learn Android from scratch that I am sure will help you somehow to start NOW and TODAY!
When did I realize that programming was my passion?
My programming journey started when I was 15. I had that task in my computer school class to make a calculate desktop app using Microsoft Visual Basic Studio IDE.
For sure, I don’t know what the IDE is or even what that Microsoft Visual Basic is doing at that time. Even more, it sounds hard to me to make a calculator desktop app that should have some buttons, text view, and some mathematical operations. But like most of the students in my class, I want to make the task done.
So, I called my cousin, who is our computer expert in my family, and I told him about the task. Surprisingly, he said it is something so easy to do by Visual Basic programming language. And it was. I remembered that we finished the calculator desktop app in an hour or two.
From that point, I liked the programming mindset, how we think about the problem, and how we solve it smartly. So, I got more ambitious about computers and programming as well.
My Bachelor’s Degree Final Project
I have applied for the computer science faculty, ElShorouk Academy. And I started to know more stuff about computers and programming.
But the most thing that took my attention is mobile development. In my second year, I wanted to learn iOS development. But it was kind of hard for me because it required a Mac laptop and some objective-c programming language knowledge.
And for me, these two options were not available at that time. So, I proceeded over Android development since it required Java as a programming language that I already learned in my faculty, and Windows or Linux operating system to start the development process.
And in the last faculty year, one of my friends got the idea to make an Android IDE that helps android developers to develop android apps through tablets.
The Android IDE was on Google Play Store already at that time but with bad User Experience; like there was no DragNDrop some buttons to the XML file, opening more than one tab in the same screen…etc.
So, we talked with our graduation project supervisor about it. He suggested taking the current Android IDE, reverse engineer it, try to fix the errors that we will face after the reverse engineering, adding the UI component that we developed, and then try to run the app.
I can say that It sounded very complicated to me. But we started the development process, and we made it. It was not fully completed. But, we achieved 90% from the project with some bugs that we couldn’t solve due to time constraints and some of the required knowledge we don’t have time to learn.
Ministry of Communications and Information Technology Scholarship
After I took my bachelor’s degree in computer science, I applied for a scholarship to learn Android development. It was nine months, and we took a lot of cool stuff at that time.
I remembered we took Java Standard Edition, Java Enterprise Edition, and Java Application Development Framework. We learned some HTML and CSS basics as well.
For the scholarship graduation project, we created a website called SharingIsCaring. We did not publish it. So, don’t google it 😅. We developed the website app and the android app by ourselves, and to be honest, it was a wonderful experience to dig deeper into some web development stuff.
Since that time, I have focused on mobile development especially android. But I got the chance to know more about web development and things that work under the hood.
My Working Experience
StarWallet Labs: June 2014 - June 2016
It was a startup company, and I was only the android guy there. But for me, it was a unique experience to work in a startup company. To be involved in all the startup decisions was a good experience for me.
In that startup, I developed three products by myself. Two of them were Android Mobile Apps, and the other one was SDK.
BogoPlus app was one of them, and it was a Buy One Get One Free coupons app, enclosing the best brands covering all aspects of our lives with only top-notch brands and best customer service. It was a simple app. But for me, as a beginner, it was not 😃 so I learned a lot from it.
The same thing with the StarWallet Rewards app. It was -at that time- the Largest Mobile & Social Rewards Network in Egypt.
The last one was RewardsKit SDK. It was SDK for Android and iOS apps allowing developers to integrate with it to give rewards.
These apps are developed in Java and through Eclipse IDE. I remembered I followed the MVP presentation pattern with few SOLID principles applied. At that time, I didn’t have too much knowledge about android architecture patterns or event testing methodologies.
Eventtus: July 2016 - June 2018
Mobile development in Eventtus was something new to me because it was with a team of around ~ 3 android developers, and we developed white-labeled mobile apps for the organizers.
Making an abstract white-labeled app to generate different event mobile app was a new challenge to me. We faced some challenges like separating some components in our white-labeled app.
So we started to read more about Clean Code. Clean Architecture and Presentation Patterns. Also, handling the offline experience was a new thing for me.
In Eventts, I worked on a lot of cool stuff like the Taking Notes feature, Photo Editor feature that we made an open-source project after that, and it exceeds 400+ stars in Github till now, and more.
DigitalYards: July 2018 - January 2019
It is a software house company that develops web and mobile apps with different businesses. I joined as an Android Team Lead, and I got the pleasure to lead and help ~ 3 smart and talented android developers.
The challenge in DigitalYard was a new one for me because the last two companies were one product startups. So, business-wise, we were mainly focusing on one customer sector, one idea, one vision, and one mission.
But DigitalYard is a software house. So, you can work on tons of different projects with different business and technical requirements.
My duty was leading the android team, writing code, and managing the business requirements. Also, we got the idea to make a skeleton android project to add all the common business cases and requirements inside it like authentication, settings, about us, and more. Then we can clone this project with any new android app to not start from scratch every time.
OvenBits: January 2018 - April 2018
After launching the PhotoEditor SDK on Github. I and my colleague got an email from Micah Davis, CEO of Oven Bits company, asking us to work with him as freelancers.
The mission was to build a photo editor feature in Bible Verse Photo Editor app, the same work of what we had done already in Photo Editor SDK.
It was a great and professional experience working with Micah and the android team in Oven Bits. I learned a lot at that time, and we build the Photo Editor feature from scratch in Kotiln.
Also, we dug deeper into android gestures, custom views, OpenGL for photo filters, and more.
Swvl: January 2019 - October 2019
It is one of the top famous startups in the Middle East and Africa. Swvl is a premium mass transit system that provides buses to every neighborhood in Egypt and more than five countries.So, you can imagine how much the size of the startup is and how the challenge will be.
My main work and focus were on the customer android app. I have to say that I was impressed with the team, and how they built the android app infrastructure.
Clean architecture, MVI as a presentation pattern, 100% Kotlin base code, unit tests, cool animations, Room for database, and more.
I can say I found myself in that android technical stack, and I learned a new thing every sprint that I didn’t know before.
Working on an app that the daily active users are more than 40 thousand is not an easy mission. So, focusing on quality, performance, and shipping the features in no time was our daily mission.
Zendesk: November 2019 - Present
Traveling abroad, working in large companies, and in large teams was a dream to me. I was applying from time to time in companies outside my hometown Egypt to get the experience of working in a multinational company, traveling abroad, and working in large teams. And here comes Zendesk.
Zendesk is a service-first CRM company that builds software designed to improve customer relationships. Its software is powerful and flexible and scales to meet the needs of any business. Zendesk has more than 4,500 employees and serves 200,000 paying customers in 150 countries and territories.
I joined Zendesk as a Senior Software Engineer, and I am still working there.
It is started when I was talking with my friend Ahmed Ateek about a way of sharing my knowledge with others. And from that perspective, we created a private Facebook group “EgyptDroid”.
The group started with four people and reached more than 200 members in less than one year. But people are expecting more like real communication, real talks, interactions, and existence.
Then, I was thinking about building an Android Community for people who need help gaining experience/knowledge in android development. And, here comes EGDroid.
EGDroid main goal is an android community for android developers to help them building robust android apps and becoming good Android Developers by:
- Mentoring the juniors.
- Connecting the android developers.
- Making podcasts with android geeks to be always updated with the new stuff.
- These podcasts will be in Arabic or English, depends on the guest.
- Creating events monthly to share knowledge.
- Making weekly meetups for each area to talk about what’s new and the challenges we are facing in our android development.
- Sharing links, blogs, articles, videos, and any helpful resources for increasing our android knowledge.
- Publishing Slack channel to make the connection between android developers smooth.
Once we founded this community in April 2020, we did:
- Four successful meetups.
- Android course for teaching android development for seven fresh computer science graduates
- Created an Android Roadmap to help anyone who wants to learn android from scratch.
- Our slack channel to communicate and help each other learning android development.