Hassan Nasser, Developer in Beirut, Beirut Governorate, Lebanon
Hassan is available for hire
Hire Hassan

Hassan Nasser

Verified Expert  in Engineering

Software Engineering Developer

Beirut, Beirut Governorate, Lebanon

Toptal member since November 24, 2020

Bio

Hassan has twenty years of experience as a software engineer and database architect. With two master's degrees in computer engineering and computational science from the American University of Beirut, he has the skills to build most software related to finance, management, statistics, data science, computer vision, and artificial intelligence. Hassan can design software on GPUs for high computation complexity issues. He greatly enjoys handling challenging software for maximum client benefit.

Portfolio

Freelance
C#, Microsoft Access, T-SQL (Transact-SQL)

Experience

  • Software Engineering - 20 years
  • Microsoft Access - 20 years
  • Database Architecture - 20 years
  • Microsoft SQL Server - 14 years
  • Database Optimization - 14 years
  • C++ - 12 years
  • Microsoft Power BI - 1 year

Availability

Part-time

Preferred Environment

C#, Microsoft Power BI, Microsoft SQL Server, C++, NVIDIA CUDA, Computer Vision, Robotics

The most amazing...

...thing I've made is a stock and accounting software that makes life easy for many institutions and parallel programming on GPUs where the challenge is maximum.

Work Experience

Software Engineer | Database Architect

1995 - PRESENT
Freelance
  • Developed accounting software that includes most details for general accounting for establishments. Included the archive data and developed reports from customer or supplier statement and trial balance. The system has multi-currency features.
  • Built stock software with a multi-warehousing feature. The reports included item movement, item value summation, gross profit per item, item category, customer, customer category, and date period.
  • Developed building construction software that computes the cost of a building and follows apartment sales and vouchers of customers for installment payment. Created numerous printable reports.
  • Created and implemented dental lab software that followed each patient case for accounting data and clinical data. Developed many printable reports per account, doctor, or patient.
  • Developed a billing system for central using C# and T-SQL to keep track of call data like call duration, dialing extension, or dialed number.
Technologies: C#, Microsoft Access, T-SQL (Transact-SQL)

Research Assistant

2018 - 2019
American University of Beirut
  • Implemented research using GPU and compared it to a Matlab implementation of near-optimal control of fuel cell hybrid electric vehicles using single-step dynamic programming.
  • Leveraged multi-core processing to implement the algorithm quickly enough to be considered real-time results.
  • Compared results between the CUDA and Matlab versions to ensure that they were exact.
Technologies: NVIDIA CUDA, C++

MATLAB Lab Instructor

2016 - 2018
American University of Beirut
  • Assisted the students in using the MATLAB engineering tool to successfully finish their lab assignments. Supervised the class and explained given assignments.
  • Helped students by answering all questions and encouraging them to understand the objective of the lab.
  • Programmed my own solution of the assignment to correct all the students' assignments.
Technologies: MATLAB

C++ Lab Instructor

2016 - 2018
American University of Beirut
  • Explained the assignments and supervised the class.
  • Helped students when needed and answered all lab-related questions.
  • Corrected submitted assignments after implementing my own version.
Technologies: C++

Software Developer | Research Assistant

2016 - 2018
Freelance
  • Developed a parallel programming software using CUDA for the NVIDIA GPU that implements the Canny edge detector.
  • Combined multiple stages of the Canny edge detector in one kernel to achieve better speed up, compared to other parallel programming software.
  • Developed a parallel kernel for the last stage. The task was particularly challenging and time-consuming.
Technologies: C++, NVIDIA CUDA

CUDA Lab Instructor

2016 - 2018
American University of Beirut
  • Supervised the lab and helped the students implement their lab assignments that included parallel programming using CUDA, NVIDIA's GPU programming language. It was a graduate course lab.
  • Studied and optimized the architecture of GPU to make the software performance faster.
  • Used different CUDA tools that reflect memory and CPU usage to achieve better performance.
Technologies: C++, NVIDIA CUDA

Software Developer

2015 - 2016
Freelance
  • Implemented billing software for Panasonic Phone Centrals using C# as an interface language and Microsoft SQL Server as the database language.
Technologies: SQL Server 2012, C#

Software Developer

2012 - 2014
Freelance
  • Implemented a SQL Server database that implemented views, stored procedures, and functions built on an old COBOL system of a hospital.
Technologies: SQL Server 2012, C#

Lidar DSP Computations

Complex computations to get a high-resolution view through Lidar were done on GPU with more than 10,000 cores. Implemented a parallel programming language for NVIDIA GPUs and C++ in CUDA on Windows and Linux.

Results were precise and real-time. Some software parts speed up from 8,000 to 420,000 frames per second. The bottleneck of good speed up was taking GPU architecture into account. The software was tested to run more than 24 hours without stopping. In fact, it could run as long as the hardware is ok.

Canny Edge Detector Using CUDA on GPU

Canny edge detector and Computer Vision were implemented using parallel programming. Every frame took around one millisecond to do other processing in real-time without any significant delay.

Development was done with the CUDA language for the NVIDIA GPU cards. Knowing the GPU structure helped a lot in creating an efficient design. Combining many stages of the Canny edge detector to one kernel was the main reason for the speed. If the users don't combine stages, they would have to write a lot of data to RAM, which can cause slowness. Meanwhile, combining stages is enough to write to the shared memory, which is much faster than RAM.

Transfer Entropy Calculations Using GPUs for Determining Epilepsy Focus

Developed using CUDA on NVIDIA graphic cards and parallel programming to determine the epilepsy focus. The smallest part of the brain causing epilepsy is removed when the surgical process is done. In this manner, side effects are minimal. The execution time was around one hour. Meanwhile, other software took many days.

McCluskey Optimization Using CUDA on GPU

Applied McCluskey in parallel programming using CUDA on GPUs to minimize digital machines and achieve a faster and less costly design. A 256-bit input is acceptable and could achieve a larger number of bits with minor modification where the response is less than one second.

Warehouse and Accounting Software

Built a software that helps institutions organize their purchases, sales, journal vouchers, receipts, payments, or warehouse transfers. It also creates reports like item movement, item and warehouse statistics, account statements, and trial balances. The clients can view their gross or net profit anytime during the year.

Main characteristics:

• Easy to use—The user can browse between different screens easily. For example, if the user is on the customer statement screen, they can go to the corresponding invoice to view its detail with only one click. They could also print it or even modify it if they have permission.

• Multiple criteria—Every report could be computed based on different criteria. The user may compute gross profit for any given period, customer category, item, and item category in the same report.

• Inter-related vouchers—For a given invoice, the user may attach as many journal vouchers as needed. This software will deduce the additional cost for every item in the invoice. If the user is importing from China, they will know the item value in China and item value in their country automatically after adding import cost.

• Barcode system—Enter the item through the barcode scanner and print labels directly.

Insurance Broker

This tool enables users to follow all insurance policies and compute net commissions. The reports can be generated to view insurance policies per customer, period of days, or issuer.

There is also a feature to make reminders that report the customers who should renew their insurance policies or give any account statement, including issuer and customer.

Building Construction Database

The goal was to enable following up on every project and apartment for the construction companies. This tool has the following features:

• Statement of every project per date or transaction type
• Statement of any account per date, project, and apartment (if there are many)
• A simple drawing of the building, showing every stage in a row and all apartments, including the owner's name (if sold)
• A sale contract that is automatically posted to reports. It may include all payment types like the first payment, monthly or yearly payments, or any exceptional payment
• Printing is supported for all reports
• Users get a trial balance per period or project

Phone Billing System

The computer needs to be connected to the phone central for this system to work. This phone billing software collects data automatically and generates all the statistics per phone extension, usually room or employee, phone line, dialed number, date, time, or the dialed country. All reports are printable. Some extensions or phone lines can be hidden to avoid monitoring. The software is intuitive and easy to use.
2016 - 2018

Master's Degree in Computer Engineering

American University of Beirut - Lebanon

2014 - 2016

Master's Degree in Computational Science

American University of Beirut - Lebanon

1989 - 1994

Bachelor's Degree in Computer Engineering

American University of Beirut - Lebanon

JANUARY 2021 - PRESENT

MCSA: SQL 2016 Database Development - Certified 2021

Microsoft

JANUARY 2021 - PRESENT

Exam 70-762: Developing SQL Databases

Microsoft

DECEMBER 2020 - PRESENT

Exam 70-761: Querying Data with Transact-SQL

Microsoft

OCTOBER 2020 - OCTOBER 2021

LinkedIn Skill Assessment (C#, T-SQL, .NET Framework, C++, C, and VBA)

LinkedIn Corporation

SEPTEMBER 2020 - PRESENT

Diploma in C Programming

Alison

JULY 2020 - PRESENT

Diploma in Databases and T-SQL

Alison

JULY 2020 - PRESENT

Diploma in C# Programming

Alison

Libraries/APIs

ODBC, OpenCV

Tools

Microsoft Access, C#.NET WinForms, Visual Studio .NET, MATLAB, Microsoft Power BI, Visual Studio 2019, Microsoft Excel

Languages

C++, T-SQL (Transact-SQL), C#, C, Visual Basic for Applications (VBA), C++14, SQL, C#.NET, VB.NET, Java

Paradigms

Parallel Programming, Database Design, Database Development

Platforms

NVIDIA CUDA, Windows, Linux

Storage

Database Architecture, Database Modeling, Microsoft SQL Server, Databases, Database Administration (DBA), SQL Server DBA, ANSI SQL, SQL Server 2012, SQL Server 2008 R2, Microsoft DBA, SQL Server 2016, SQL Server Configuration Manager

Other

Software Engineering, Database Optimization, Data Migration, Data Engineering, C# Operators, Data Visualization, Reporting, Reports, Data Modeling, Image Processing, Computer Vision, Data Mining, Frameworks, Neural Networks, Optimization, Data Queries, MCSA, Robotics

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring