Hassan Nasser, Software Engineering Developer in Beirut, Beirut Governorate, Lebanon
Hassan Nasser

Software Engineering Developer in Beirut, Beirut Governorate, Lebanon

Member since June 23, 2020
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.
Hassan is now available for hire

Portfolio

Experience

Location

Beirut, Beirut Governorate, Lebanon

Availability

Part-time

Preferred Environment

C#, Microsoft Power BI, Microsoft SQL Server, C++, 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.

Employment

  • 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
  • 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: 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++, 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++, 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#

Experience

  • 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.

Skills

  • Languages

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

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

    Parallel Programming, Database Design, Database Development
  • Platforms

    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, Database Query, Data Queries, MCSA, Robotics
  • Libraries/APIs

    ODBC, OpenCV

Education

  • Master's Degree in Computer Engineering
    2016 - 2018
    American University of Beirut - Lebanon
  • Master's Degree in Computational Science
    2014 - 2016
    American University of Beirut - Lebanon
  • Bachelor's Degree in Computer Engineering
    1989 - 1994
    American University of Beirut - Lebanon

Certifications

  • MCSA: SQL 2016 Database Development - Certified 2021
    JANUARY 2021 - PRESENT
    Microsoft
  • Exam 70-762: Developing SQL Databases
    JANUARY 2021 - PRESENT
    Microsoft
  • Exam 70-761: Querying Data with Transact-SQL
    DECEMBER 2020 - PRESENT
    Microsoft
  • LinkedIn Skill Assessment (C#, T-SQL, .NET Framework, C++, C, and VBA)
    OCTOBER 2020 - OCTOBER 2021
    LinkedIn Corporation
  • Diploma in C Programming
    SEPTEMBER 2020 - PRESENT
    Alison
  • Diploma in Databases and T-SQL
    JULY 2020 - PRESENT
    Alison
  • Diploma in C# Programming
    JULY 2020 - PRESENT
    Alison

To view more profiles

Join Toptal
Share it with others