Profile image of AhmedTarekHasan
Member since April, 2013
0 Recommendations

Ahmed Tarek Hasan

Online Offline
I got my first computer on age 13. I joined Faculty of Electronics and Communications Engineering and enjoyed courses including programming and software development. After graduation, I worked as a freelance programmer for a short time then I joined Information Technology Institute (ITI) for its 9 month program as a system developer. I learned what is meant to be a developer, how to think, design, troubleshoot and the most important how to be open minded and ready to learn. Day by day I got more confident that it's all about sharing not the title you have. I believe that everyone has something to share whatever small he thinks of it. Sometimes a great idea comes out of just a tiny idea and the same for knowledge and the best way to learn is to try to teach what you already know. This encouraged me to start my blog -Development Simply Put ()- to share my knowledge and learn.
0 reviews
  • N/AJobs Completed
  • N/AOn Budget
  • N/AOn Time
  • N/ARepeat Hire Rate


Recent Reviews

No reviews.


Principle Software Engineer

Jul 2016


Lead .NET Software Engineer - L1

Apr 2015

* Development - Web Applications development * (3.5) * MVC 2 (3.5) * Sharepoint 2010 - Windows Forms development * Back-end (Database) - DB analysis - Writing data manipulation SQL scripts - Writing structuring SQL scripts - Writing testing SQL scripts - DB comparison and synchronization * Deployment - Making web installers - Deploying internal builds * CMO Packaging - Preparing CMO packages - Performing unit CMO validation process * Analysis And Troubleshooting - Reading

Technical Blogger (

Aug 2012

This is my technical blog "Development Simply Put" simplifies main concepts in IT development and provides tips, hints, advices and some re-usable code. During my career days and day after day I got more confident that it's all about sharing not the title you have. I believe that everyone has something to share whatever small he thinks of it. Sometimes a great idea comes out of just a tiny idea and the same for knowledge. I always try to gain knowledge and

Senior .NET Software Engineer

Mar 2012 - Apr 2015 (3 years)

* Development - Web Applications development * (3.5) * MVC 2 (3.5) * Sharepoint 2010 - Windows Forms development * Back-end (Database) - DB analysis - Writing data manipulation SQL scripts - Writing structuring SQL scripts - Writing testing SQL scripts - DB comparison and synchronization * Deployment - Making web installers - Deploying internal builds * CMO Packaging - Preparing CMO packages - Performing unit CMO validation process * Analysis And Troubleshooting - Reading

.NET Software Engineer

May 2010 - Mar 2012 (1 year)

* Development - Web Applications development * (3.5) * MVC 2 (3.5) - Windows Forms development * Back-end (Database) - DB analysis - Writing data manipulation SQL scripts - Writing structuring SQL scripts - Writing testing SQL scripts - DB comparison and synchronization * Deployment - Making web installers - Deploying internal builds * CMO Packaging - Preparing CMO packages - Performing unit CMO validation process * Analysis And Troubleshooting - Reading requirements docume

System Developer

Sep 2009 - Jul 2010 (10 months)

About 9-Month Diploma: The 9-Month Diploma has gained wide regional and international recognition. It is designed mainly for new graduates in the field of information technology to provide them with training in state-of-the-art software technologies. The program offers advanced training for distinguished university graduates. The program is normally executed on a full time basis for the nine-month term. About ITI: The Information Technology Institute (ITI) is a national institute established in 1993

Freelance Developer

Dec 2008 - May 2009 (5 months)

* Writing applications in VB6 * VBA for MS Office (Excel, Word) * Windows Batch Files * Building websites using WYSIWYG web builders * Website data scraping using VB6 programming * Matlab


Bachelor of Electronics and Communications Engineering, Electronics and Communications

2003 - 2008 (5 years)


Bachelor's Degree, Electronics and Electrical Communications Engineering (2008)

Faculty of Engineering at Cairo University

System Developer (2010)

Ministry of Communications and Information Technology (MCIT), Egypt


[Development Simply Put] 4 Ways To Send Parameters To A C# Method

When writing & calling a C# method, you have some points to take into consideration regarding the method parameters. This article is explaining the main alternatives you have to do so with some examples.

[Development Simply Put] Delegates in C# - The definition

"Delegates" plays an important role in .NET development. It is a concept which all .NET developers need to understand and learn to use efficiently. This article explains the main definition of "Delegates" to unlock some main key points under the umbrella of how to comprehend and use.

[Development Simply Put] Events & Delegates In C# - The Concept

"Events" is a very important component in any .NET application. All developers use it even when they don't know. It is the .NET way to control actions and responses and put them under some logical behavior. This article explains the main concept of "Events".

[Development Simply Put] Events & Delegates In C# - Win Forms Controls

If you already know about "Events" in .NET applications, then you may need to read this article to have a look on an example on how to use "Events" in creating a Windows Form Control.

[Development Simply Put] Interfaces - The Concept

"Interfaces" is a very important component in .NET which provides the ability to write beautiful code with all means. If you really want to be an outstanding developer you will for sure need to know and understand the main concept behind "Interfaces" and learn to use it wisely. This article provides a glimpse of what you may need to know about "Interfaces".

[Development Simply Put] Parent VS. Child Classes - Think Like A Compiler

This article talks about an approach which may help while you are working on your .NET application. This approach is mainly about how to think like a compiler when you need to predict the compiler's behavior and accordingly adjust your code to guarantee your desired behavior.

[Development Simply Put] How To Call C# Methods In SQL!!!!

Have you ever wished you can implement some complex logic inside SQL stored procedure or function using C#? If yes, you need to read this article to see the magic happening.

How To Get List Of SQL SPs/Views/Functions/Triggers Containing Certain Word/Pattern

Have you ever needed to search the whole database code (stored procedures, views, functions & triggers) for a certain word or a pattern? If yes, then you need to read this article to find out how you can achieve this the easiest way.

[Development Simply Put] Dynamic Filtering Using Linq Query Self-Wrote Library

Sometimes while working on your .NET application you need to build a generic filtering form or page which filters a pool of data with dynamic filtering query which the system user compose on run-time. This article includes a self-wrote library based on Linq which you can use to build your dynamic filtering system just with minimum modification.

[Development Simply Put] SQL Stored Procedures With Table-Valued Parameters(TVP) & Calling From C#

Have you ever wanted to call a SQL stored procedure from C# and send it a collection of data instead of calling the same stored procedure multiple times sending single parameters? If yes, then you need to read this article to show you how to achieve this.

[Development Simply Put] One Of The Methodologies To Write Clean, Maintainable & Extensible Software

Application development is not just about writing some code to do what the user wants. It is about writing a clean code which can be read, maintained and extended. Many software companies failed to deliver products whith such quality which eventually caused these companies to close. Why? because the development life cycle needs such quality regulations.

[Development Simply Put] Extension Methods!!!

Have you ever needed to add some functionality to a class which you don't own? If yes, then you need to know about "Extension Methods". This article is talking about "Extension Methods" with some examples.

[Development Simply Put] How To Restore/Backup SQL Database From/To Remote Server

Have you ever had a SQL database .bak file on a server and you needed to restore this .bak file on another SQL server? Some may say that you can just copy the .bak file to the SQL server machine then start restoring the database. Ok, this will work but sometimes due to some restrictions you may not be able to copy the .bak file due to not enough disk size or access issues or other issues.

[Development Simply Put] How To Manage Your Resources

A developer builds his resources during his career. These resources are his assets which he should keep, maintain and organize in a way which allows him to access and search easily and nearly anywhere. This article provides some tips and tools on how to do this.

Sharepoint "ListItemPropertyField" WebControl To Render Any Subproperty Of ListItem Field

While working on Sharepoint 2010 custom page layouts, have you ever required to render the value of a certain field of the article listitem? Is it a sub-property of the server-side object? Is it a collection? Do you need some custom formatting? Do you need to apply some server-side code? ..... If you faced such complex requirements or you are just curious to know how to do this, read this article.

Using "EditModePanel" To Show/Hide Webparts In Edit/Display Mode in Sharepoint 2007/2010

While working on Sharepoint 2007/2010 custom page layouts, you may need to control when some components are rendered based on the page mode; edit or display. This article is talking about this showing the most appropriate steps to achieve the result you wish in both Sharepoint 2007 and 2010 as they differ regarding this matter.

[Development Simply Put] How To Make Sure jQuery Is Loaded And Only Once

When working with jQuery, you may face some problems related to loading jQuery more than once or even not loading it at all. This article provides some valuable info regarding this topic and also provides some code to avoid many jQuery-related problems.

How To Get Real-time Info Of Sharepoint Module Files On Feature Activation Event Listener

While working with Sharepoint, have you ever faced the situation when you have to hard-code some info which already exists in the "" file? If yes, then you need to read this article which provides a reasonable resolution for this approach.

[Development Simply Put] How To Change Sharepoint PageLayout Icon To Custom Image

While working with Sharepoint 2010 custom page layout, you may need to provide a custom thumbnail image for your layout. Some may think that it is straight forward but believe me it may not be as you think. In case of upgrading your already deployed package, your new image will not be updated to the system and your layout will still be using the old image.

[Development Simply Put] How To Adjust Sharepoint OOTB Webparts Relative Paths

While working with Sharepoint 2010 OOTB webparts, you may need to use some relative paths like when setting your custom XSLT. Then you may think that you can make use of the "~sitecollection" token to be automatically replaced with the real site collection URL. Unfortunately, sometimes webparts can't resolve the "~sitecollection" token leading to an error in your webpart.

[Development Simply Put] How To Call WCF Web Service With Authentication Credentials

When you deal with WCF web services, sometimes you need to call a web service with certain authentication credentials -username (with/without domain) and password- to be able to take some high privilege actions. This may seem straight forward but believe me there is a trick. If you want to know the trick, you can read this article.

[Development Simply Put] Extensible Logging Library For Sharepoint With ULS Logging Support

What I am presenting in this article is a library used for logging in Sharepoint 2010. What makes this library a good choice is the its code is clean and maintainable, its code is extensible as you can easily add support to many third party logging services with just some few code lines, it provides a single entry point static class for usage instead of many classes,...... and other features.

[Development Simply Put] Items Combinations Generation Library

Sometimes you have a set of items (could be numbers, names, custom entities, .....) and you need to get all possible combinations each consists of a given number of items from the bigger set. Imagine that you need to write a program by which a user can define some birthday gifts. Each gift has an id, name, description, price, ... Your program is expected to provide all possible combinations of..........

[Development Simply Put] How To Create SQL Custom User-Defined Aggregate Functions

Sometimes you need to perform some complex SQL queries depending on some aggregate operations or functions. In most cases, these complex operations could be achieved by series of queries with joins and groupings, but, sometimes it is almost impossible to achieve this by the basic queries and functions natively supported by SQL. In this case, you need to create your SQL custom user-defined aggregate functions.

[Development Simply Put] How To Have Fun With JavaScript And GreaseMonkey

I think everyone of us has faced the situation when he found that some website is missing something which could have been done by just a bit of JavaScript. But, unfortunately we can do nothing regarding this except contacting the website author to try to convince him that this change is really good and he should do it. I can now tell you that you don't have to go through all this hustle because you now.......

How To Handle Exceptions Inside Static Constructors - Double Locking Concept

We use static constructors to do some initialization or logic the first time our static class is used. This is very useful and already used in may applications and even design patterns like "Singleton". But, you need to be careful when using static constructors when the code inside deals with an external source or by any mean is subject to exceptions and errors because once an exception raises inside the..

[Development Simply Put] ASP.NET Tips And Hints

During my work on projects I passed by a number of problems. Some of these problems may be common and others may be somehow rare. Anyway, I decided to focus on these problems and come up with some sort of patterns to overcome these problems in the future. Don't get me wrong when I said patterns, they are not design patterns, they are just some arrangements which work together to help you not fall in the same....

[Development Simply Put] How To Reconstruct String Sections From Concatenated String Format

Sometimes you find yourself in a need to pass some values from one module to another beside being restricted to using a string format not a fully qualified object. This restriction may be due to performance purposes or some technical restrictions like using a dictionary object which only provides you with a "key" and "value" pairs. There is more than one way to deal with such situation like......

[Development Simply Put] The Difference Between SQL Join Conditions Into "ON" And "WHERE" Clauses

Some of us while writing an SQL select statement with a join between two tables or more may get confused with whether to add a certain condition to the "ON" clause of the join or just add it to the "WHERE" clause as if it is just a filtering condition. Some people may think that both approaches will return the same results every time. This is not completely true. Yes in some cases both approaches will........

[Development Simply Put] How To Apply Recursive SQL Selections On Hierarchical Data

Sometimes we work on systems where a hierarchical data structure exists on some entities like employees and their managers. Both employees and managers can be called employees but there is a self join relation between them as each employee must have a manager. We all faced the situation when we need to get the info about each employee and his/her direct manager. At this point we used to join.........

How To Transform Unsorted Flat Hierarchical Data Structures Into Nested Tree Form Objects

Sometimes you have hierarchical data structure presented into an SQL database table where there is a parent-child relation between rows. You may need to transform this flat hierarchical data structure into a parent-child or tree form entity so that you can use it in more advanced or complex business like binding to a tree control or whatever.

How To Copy SQL Hierarchical Data At Run-time While Keeping Valid Internal References And Self Joins

Sometimes when you deal with hierarchical data structures you may need to perform internal copy operations. These copy operations should be handled in a smart way as just using INSERT-SELECT statements will mess up the internal references and self joins of the newly inserted records. If you want to know more about this, you can read this article.

Possibilities Cube Library - A Library Calculates All Possibilities With Logical Conditions

When you have a set of items each is defined by a group of attributes or specifications and you are asked to list all possible combinations of these attributes which each item could have, then you will need some code or library to help you out especially if the number of attributes is large and you are dealing with more than one instance of items.

[Development Simply Put] Forcing ASP.NET Control To Go Through Its Full Life Cycle On Static Methods

You need to load a control inside a static method like a WebMethod and then make use of the control like binding it to a source and getting its generated HTML?? Good idea but you cannot do it that easy as the control instance you defined inside the static method is still not loaded because it did not go through its life cycle. You still want to do it, there is a way.

Application To Generate Combined Images Of All Image-Categories Possible Combinations

Have you ever faced the situation when you have to manage system objects status and each status is a combination of status categories (change type status, approval status, .....)? Did you need to represent each status combination with only one image when each category has more than one possibility? What if the first category has 25 possibilities, the second has 4 and the third has 7.......

Avoid Problems Caused By Clients' Browser Cached Resource Files (JS, CSS, ....) With Every New Build

Browsers like IE, Firefox, Chrome and others have their own way to decide if a file should be cached or not. If a file link (URL) is requested more than a certain number of times the browser decides to cache this file to avoid repeated requests and their relevant responses. So, after a file is cached by the browser and a new request is performed for this file, the browser responses with......

ASP.NET Viewstate And Controlstate Performance Enhancements

The viewstate and controlstate are both saved by the server and then retrieved to keep your page and controls state. The default behavior is that these states are saved into a hidden field on the page so that at postbacks the server will be able to read these states back from the hidden field and retrieve the sates prior the postbacks. Is this good? Could it be better? How about saving the states on server?

For SQL Hierarchical Data, Show Only Tree Branches Including Certain Type Of Entities

If you have a tree of entities represented into a SQL database into parent-child relation, you may need to be able to view only the tree branches which include a certain type of entities and discard the branches which don't include this type. If you ever faced such situation or even curious to know how to manage such situation, you can read this article.

[Development Simply Put] Paging Concept - The Main Equations To Make It Easy

The paging concept is used in many fields that it is even used in our daily lives. When you have a set of items and you want to divide them equally between some sort of containers or groups, you are thinking of paging but may be you don't recognize it. The aim of this post is to explain some mathematical equations which can make it easy for you to implement the paging concept.

[Development Simply Put] How To Access ASP.NET Web.config AppSettings On Client-Side Javascript

There are many ways by which you can access your web application application settings through your client-side javascript code. The common thing between all of these ways is that to do so you for sure need to access the server-side. The most proper way I prefer is to load all your application settings in a batch the first time your page is loaded.

[Development Simply Put] How To Develop/Adjust ASP.NET User Controls For Multiple Instances Support

When developing user controls you should keep in mind whether they need to support multiple instances feature or not. In other words, you should decide if more than one instance of your user control could be added on the same page. Why do you need to make up your mind on this? Because when clicking a button on one instance you may end up applying its logic on all instances or at least on.....

Splitting Daytime Into Chunks To Enhance SQL Bulk Time-based Operations Performance

Sometimes you need to apply SQL bulk operations on a huge number of records and apply grouping based on time ranges. As an example (at the end of each day the electronic sensor readings should be divided into groups where each group is limited by a time range of half an hour and then the readings of each group should be aggregated by taking the average). This is a real scenario which I faced. A challenge.....

A Guide For Dealing With Hierarchical, Parent-Child And Tree Form Data Operations

Lately I have been working on more than one project dealing with hierarchical data structures. This encouraged me to try to sum up my experience on this type of structures and corresponding operations. From time to time I will revisit this post to update it with whatever new I found related to this topic. If you need to know more about this, you can read this article.

[Development Simply Put] Knockout Datagrid With Sorting, Paging And Searching

Demo: This post shows you how to fully implement a data grid with sorting, paging and searching features. It was taken into consideration while writing the code to separate the business-related code from the core implementation as far as possible without adding too much complexity to the whole solution......

[Development Simply Put] Knockout Advanced Tree Library & Control

Demo: This post shows you how to fully implement a tree control using knockout. This tree control has great features like; input data, node object properties, by node object properties, by node object properties, by like patterns (case sensitive/insensitive) or whole words.......

Bind Boolean And Visibility DPs To Relational Operators/Conditions In WPF/XAML

While working on a WPF/XAML application, if you have needed to enable/disable or show/hide a control based on a conditional logic using relational operators (e.g: =, !=, >, >=, <, <=, .....), this post will help you. I worked on a value converter which enables you to bind boolean and visibility dependency properties to conditional logic using relational operators.


  • Facebook Connected
  • Preferred Freelancer
  • Payment Verified
  • Phone Verified
  • Identity Verified
  • Email Verified

Browse Similar Freelancers