Ayman Mahfouz

Ayman Mahfouz

Software Engineer / Architect

Contact Me

About Me

Software was my passion long before it became my profession. I got my first computer back in 5th grade and I was hooked to that 64K RAM Z80! I wrote my first programs in BASIC and became fond of writing games through highschool.

I decided to study CS to build a solid foundation for my hobby. During college, I won a couple of programming awards including a national one for a billirads game I wrote in C++. Then, I had some of my games selected for commercial release by a software firm.

Since graduating, I have been building enterprise software on various technology stacks, albeit primarily using Java. Recently, I have been focusing on enterprise mobility and IoT.

Over the years, I have used a dozen programming languages. I take a lot of pride in my code. I always look for ways to improve architecture and means to refactor code to make it clean and elegant.

Gradually, as I advanced in my career to senior then principal engineer then to principal then chief architect, I found myself becoming the default go-to person for whatever team I worked in. Not necessarily because my technical knowledge was needed, but also because my judgement was required. I always liked working closely with others and think I have the talent of getting people to work together as a team. This culminated in my appointment as VP of Engineering at Webalo. My style of management is very people-oriented. I believe that development process should be flexible to bring the best out of every individual.

My management role exposed me to new experiences including competitive analysis, product management, business development, customer management, and other aspects that complete the cycle of taking a vision and producing code that realizes it. Although now I am in management, I still keep my hands dirty as much as I can. When I can't manage to spend enough time coding at work, I log on to hackerrank to solve a programming challenge, learning new languages along the way.

At this point, I felt that I have learned all I cann learn in the small-startup world. I needed to scale myself and my skills, and hence I moved to Amazon. At Amazon, I got to tackle giant-scale projects and make a significant impact. I also get to exercise my people skills at a corporate scale and influence decisions at the VP level. But most importantly, I am back to being an IC, which I really missed!

Side Projects


Phabulosa!

Phabulosa! - Phabricator Gmail Add-on

This Gmail add-on integrates the issue tracking system "Phabricator" into Gmail. You can view information about Phabricator tasks without leaving the browser tab. You can even post comments to the task directly from your inbox. Phabulosa! is written in Google Apps Script and uses the Conduit REST API to connect to Phabricator.


Astute UI

Astute - Attention Test

An Android Kotlin app to test your attention. Keep track of the circles on the screen, then try to recall their positions after they disappear. Sounds easy? Try it and find out how much out of 100 you will score!


Coach UI

Coach - Soccer Coaching Tool

An AngularJS application for aiding soccer coaches. Sketch your tactics on the soccer field to teach your team formations. Animate the formation to show your team how to move around the field relative to each other and to opponents.


Places UI

Place - Place-based Reminders

A React Native iOS app for place-based reminders. Set your places, add items to be reminded off, and go! Once you arrive at (or leave if you want) a place you will be reminded. Useful for maintaining shopping lists by store.


Multic

Multic - Multiplication Game

Multic, short for "Multiplication Tic Tac Toe", is a logic game originally meant to teach kids multiplication, factoring, and strategy, but it is also challenging for adults! Beat the computer and get four squares in a row in the 6x6 square grid. If you manage to beat the hardest level, let me know!

  Download Multic from Google Store.

My GitHub

Publications

Requirements-Driven Adaptation of Choreographed Interactions

PhD Thesis, Open University, Milton Keynes, UK 2012.

Requirements-Driven Design of Service-Oriented Interactions

IEEE Software no. 0740-7459/10 (November/December), pp. 25-32.

Requirements-Driven Design of Service-Oriented Interactions: An Evaluation

The Open University, Milton Keynes, Technical Report TR2010-14, July 2010.

Requirements-Driven Collaborative Choreography Customization

Proceedings of the International Conference on Service-Oriented Computing (ICSOC'09), vol. 5900. Stockholm, Sweden: Lecture Notes in Computer Science (Springer), 24-27 Nov, pp. 144-158 Mahfouz, A. (2010)

From Organizational Requirements to Service Choreography

Proceedings of the Third International Workshop of Software Engineering for Adaptive Service-oriented Systems (SEASS 2009) held in conjunction with the First International Conference on Cloud Computing (CLOUD-I 2009), Los Angeles, California, USA: IEEE Computer Society, 6-10 July, pp. 546-553.

Customizing Choreography: Deriving Conversations from Organizational Dependencies

Proceedings of the 12th International IEEE Enterprise Distributed Object Computing Conference (EDOC'08). Munich, Germany: IEEE Computer Society, 15-19 Sept, pp. 181-190.

Patterns for Service-Oriented Information Exchange Requirements

Proceedings of the 2006 Conference on Pattern Languages of Programs (PLOP’06). Portland, Oregon, USA, October 21-23, 2006: ACM.

My DBLP Page