Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Omar Al Zabir, a four time MVP legend on CodeProject.
Who are you?
I am Omar AL Zabir, living in London, UK. I am the Chief Architect of SaaS Platform (now called Business Support Systems) at BT. BT Group plc (trading as BT) is a British multinational telecommunications services company headquartered in London, United Kingdom. It is one of the largest telecommunications services companies in the world and has operations in over 170 countries. Through its BT Global Services division it is a major supplier of telecoms services to corporate and government customers worldwide. Its BT Retail division one of the largest suppliers of telephony, broadband and subscription television services in the UK, with over 18 million customers.
I am an ASP.NET MVP, author of an O'Reilly title "Building a Web 2.0 portal with ASP.NET 3.5". I have written 48 articles on CodeProject.
What projects have you worked on?
Before coming to BT, I have cofounded Pageflakes - a widget powered Web 2.0 Personalizable Start Page. It has been acquired by eUniverse, a company founded by Myspace founder Brad Greenspan. Then I worked with Congral LLC, where we built the first ever online Health Record Management system in USA that allows Patients to have full control over their health record held by hospitals. Before Pageflakes, I worked for about 12 years into various companies into various Software Engineering and Architecture roles and did some startups of my own.
In BT, I work in the IT organization that serves BT's Business division and some of BT's Consumer division. I am responsible for the Non Functional Architecture - performance, scalability, reliability, availability, security - for BT Business Support Systems. Fixing live incidents and delivering non functional optimizations across 80+ systems, that are critical to BT Retail, is a big part of my day to day job. I am also responsible for the Functional Architecture & Delivery of the majority of production BT Business Support Systems including business.bt.com, myoffice.bt.com, BTB Agent Systems, Order fulfilment engines, Third Party integration with other SaaS providers, Partner portals, Salesforce & Microsoft integration and so on. Lastly, I am responsible for migrating most of BTB's legacy systems into shiny new Virtualized Data Center, on the latest and coolest Microsoft and Oracle technologies.
What is your development environment?
I am an ASP.NET MVP. I primary work on ASP.NET, using Visual Studio 2010 and some on 2012. Some on WPF.
What new tools, languages or frameworks interest you?
Besides BT, I have several open source projects of my own, where I mainly work on Rich Interactive AJAX applications eg Dropthings, Codeuml, Droptiles, AlQuranu.
What is your coding pet peeve?
Everyday I work with 10+ year old codebases that have changed hands at least four times, and some hacked code that was written 10 minutes back and copied and pasted on a production server to fix a live incident. So, I don't really have any favourite. Whatever it takes to get the job done without violating Quality Gate criteria that we have imposed on our teams. My java systems are in camelcase, .NET ones in Hungarian. I have no bias towards any specific coding style.
How did you get started programming?
My programming life started at 9 with QBasic. Then I moved to Borland C++ OWL in order to Windows applications. Then I went on to building edutainment applications using Visual Basic. My first startup was at 13, where I built four multimedia titles for children and teenagers, which I sold on CD. Then I spent four years building J2EE applications for one of the fortune 50 companies. For the last 10+ years I have been working with .NET.
How has the developer community influenced your coding?
Love: When I see code that has taken care of proper exception handling, uses frameworks/libraries knowing the pros and cons well enough, resilient to system hiccups, instruments properly what it does and has some decent comment that explains "why" something is done, not the obvious "what" is being done. Developers who write such code will get a hug from me.
Hate: Developers who are obsessed with implementing as many cool new libraries/frameworks as they can to show off in their resume, who copy and paste blocks of code from another place, who finds the most convenient class/function to jam in new functionality without ever thinking about Single Responsibility Principle, refactoring, and code maintainability.
Where do you see yourself in 10 years?
I am passionate about cloud computing and I plan to explore that more in-depth. Get more into Azure stuff. Spend more time honing my skills into building cost effective horizontally scalable systems. From a career point of view, I have probably reached the finish line in the Engineering Discipline. I do not plan to get into non-technical Executive role. So, I will continue to work on similar technically challenging roles.
If you had one piece of advice for an up-and-coming programmer?
Read my articles on CodeProject.