Hello. My name is Mohammad Ali. I was born in Tehran, the capital city of Iran. Commodore 64 programs and games sparked my interest in programming when I was seven years old. I started computer programming more seriously with Visual Basic 4 in 1997 when I was thirteen years old. I started web development in 2005 using C# and ASP.NET. I also learned using many programming languages such as Java, JavaScript, TypeScript, C++, Python, ... I have developed many desktop and web applications. I would like to work in companies that have positive impact on people's life.
Mohammad Ali Ghaderi
Jul 2016 – Aug 2016
(2 months)
"No technical interview is necessary," the manager said, "You will get paid based on your performance.” I thought, "I am a Rockstar! Challenge accepted!"
When I saw their current code, I realized that it could be improved significantly. In less than a week, I learned everything about their current platform, and I fixed two major bugs. I also had to learn TypeScript, KnockoutJS and MS Azure as their framework was heavily based on these technologies. In less than a month, I cleaned the whole code, added many new modules, and I reduced their 16-step development procedure to a simple 5-step procedure by automating many parts of it.
Result:According to the manager, I delivered more value in a month than his previous team of four in eight months. He even threw the code written for another project away (seven months of work) and started from scratch based on my new framework. He could also hire a junior developer to continue their projects. I exceeded the manager's expectations overall.
Aug 2015–Jan 2016
(6 months)
I got hired as a .NET developer in AMI Monitoring Inc. Their goal was to develop an ECG monitoring platform.
The management insisted on using SQL Server and C# for storing the ECG (time series) data. It was challenging because SQL Server is not designed for this purpose. I ended up designing three solutions that can scale well with terabytes of ECG data, and I implemented one of them.
They had a proprietary ECG interpretation algorithm in Matlab. They needed the FDA approval for this part. I worked with an FDA consultant to prepare the required software engineering documents. In addition, we needed to run the algorithm on both Android and C#. So, I suggested Atlassian products that work well in both MS stack and open-source stack. It was challenging because I had to learn BitBucket, Git, Confluence, JIRA,... Afterward, I prepared Android and C# development environments for all other developers. I also trained current employees and put the standard procedures in Confluence for future developers.
Testing of the algorithm was very challenging. Test data was more than 10 GB, and we should have it in both Visual Studio and Android Studio environments. In addition, the algorithm should get the same testing in both C# and Java. So, I put the data on a separate server and developed required libraries to simplify the work of test developers. I designed a test plan to make sure that the algorithm will get sufficient testing and will be identical to its Matlab counterpart. I also put an automated process to convert the algorithm and test cases from Java to C# and generate the required FDA documentation using Sandcastle.
During the design reviews and code reviews, I noticed that our Android team is not experienced enough for such a critical app. Thus, I learned native Android development after work hours every day, and I designed and developed the required architecture for data storage in Android. I also defined the required procedures for automated testing of the Android app.
Aug 2012- Dec 2016
I reached a point in my country that I considered as a ceiling; I worked in the biggest companies, and I contributed to several nationwide projects. My frameworks were used by major companies and were very successful, but I desired more. Therefore, I decided to continue my education in the US. I received a full financial support (TAship) from UTD for Ph.D. studies.
broadened and deepened my knowledge about Software Engineering and Computer Science during this time. I also picked a dissertation topic to become familiar with many new technologies and learn ways to speed up development of the software applications.
Sep 2009– Jul 2012
(3 years)
I joined Rayan Pardaz in 2009. The clients of this company were several large organizations such as banks or telecommunication companies. They had a 3-tier architecture based on C# and Telerik ASP.NET components. I helped them to maintain their current projects. I found a beta version of Coolite (Ext.NET) library, I recommended using it for future projects. I worked closely with their architect to redesign and redevelop their framework from scratch with Ext.NET components. I also added many features such as a role-based security, BI dashboards, manual workflow management, etc.
The new framework was 10 times faster in many use cases and three times easier to maintain. Therefore, the management decided to migrate existing projects to the new framework. Interestingly, one of their clients canceled their current contract and signed a new contract to re-develop everything from scratch with the new framework.
In addition, I helped our junior to mid-level developers with debugging and optimizing their code. I obtained some management experiences here, too. I also helped the business analysis team with simplifying and designing complex parts. Furthermore, I presented our company products in several other companies for future contracts.
ResultAs a result, not only the company saved thousands of dollars, it could get several new projects. The company also sold licenses of this framework to other companies and this became another source of revenue for it.
Apr 2007- Oct 2007
(7 months)
Sep 2001– Sep 2009
I started Mohsoft when I was a kid! My goal was to create a great software brand in my country. Mohsoft has many stories of failure, but it gave me a unique experience that I couldn’t get anywhere else.
In the beginning (2001), I prepared several CD packages and tried to sell it. I developed the first training CD for playing online games. I also developed a dictionary that became very popular among all my friends as it was very easy-to-use and could work well with the internet browsers. The CD Business was not successful as people could copy CDs easily and were not willing to pay for it. I developed a lock mechanism for CDs, but it didn’t help my business because the distributors were going to take %70 of the price. Selling the lock mechanism didn’t work as well because there were several companies that already dominated the market and had a good relationship with those large distributors mafia!
I started to make money by giving custom software development services. I developed several windows desktop applications using VB6, and I sold several copies of them, but the revenue was not satisfactory. Many customers were willing to buy a cracked version of similar packages, and it was very hard to compete with those free copies.
This motivated me to think bigger. I also started an online business to access the international market. I developed some shareware software packages and sold it through my website. I learned a lot of things about marketing, SEO, support,… in this business. It was a great experience as my applications downloaded more than hundred thousand times, and I had customers all over the world. However, the US sanctions ruined this business.
Afterward, I found websites are more attractive to customers. In addition, since they were able to copy the source code of web applications, they are willing to pay for it. I developed a content management system, and I got a partner to design web pages and sell websites to several companies. Some customers didn’t pay the cost in full, and the revenue was not reliable at all. The business was not scalable as I had to spend a lot of time preparing one website. Because of all these reasons, I decided to stop this business, and I started working as a full-time employee in other companies. I only gave consulting services after that.
THE UNIVERSITY OF TEXAS AT DALLAS
Dissertation: A flexible software platform for disease management
Aug 2012 - Nov 2016
Thesis: A meta-search engine based on user pattern and feature fusion
Sep 2008 - Sep 2011
Shiraz Islamic Azad University
Project: Designing and implementing a management information system for university labs
Sep 2002 - Feb 2008
C#, ASP.NET, JavaScript, Java
TDD, MS Test
Amazon AWS, MS Azure
OOA/D, Agile (Scrum), RUP
Graz, Austria - 2009
Tehran, Iran - 2008
Bremen, Germany - 2006
Tehran, Iran - 2005
Tehran, Iran - 1999