Habibur Rahman

Habibur Rahman

I currently serve as a Machine Learning Developer at Awele Technologies Inc. Before joining Awele, I earned my Master's degree in Computer Science from the University of Alberta, where I had the privilege of working alongside Dr. Levi Lelis. My professional journey includes roles as a Software Engineer at Samsung R&D Institute Bangladesh Limited (SRBD) in Dhaka, a Lecturer in the Department of Computer Science and Engineering at the University of Information Technology and Sciences (UITS), and a Programming Contest Mentor for the UITS Computer Club. I proudly hold a Bachelor's degree in Computer Science and Engineering, which I obtained in 2017 from Rajshahi University of Engineering and Technology (RUET) in Rajshahi, Bangladesh.
My research passion centers around Program Synthesis and Machine Learning.

Notice I am always open to work as a Machine Learning Engineer or Data Scientist.

Recent
  • Feb 2024 Published a Cheatsheet on "C++ STL" for technical interviews.
  • Sep 2023 Defended my MSc thesis titled "Two Irons in the Fire: Synthesizing Libraries of Programs by Optimizing an Auxiliary Function while Solving Problems".
  • May 2023 Commenced Fulltime role as a Machine Learning Developer with Awele Technologies Inc.
  • Jul 2023 Attended the Deep Learning + Reinforcement Learning Summer School 2023.
  • Feb 2023 Commenced internship as a Machine Learning Developer with Awele Technologies Inc.
  • Jan 2023 Paper "FineDeb: A Debiasing Framework for Language Models" accepted for the Workshop on Artificial Intelligence for Social Good (AI4SG) at the 2023 AAAI Conference on Artificial Intelligence (AAAI-23).
  • Mar 2022 4th place at advanced category in University of Alberta Programming Contest (UAPC).
  • Sep 2021 6th place among 69 participants at A Perfect Fit: HackerEarth ML Challenge.

  • Experiences


    Awele Technologies Inc.
    Machine Learning Developer May 2023 -- Present

    Awele Technologies Inc. Edmonton, Alberta, Canada

    • Developed a recommendation-based algorithm to predict the best possible shipping routes with the highest customer satisfaction, improving route accuracy by 50% and reducing shipping costs by optimizing cost, service time and carrier ratings.
    • Implemented core quotes API in NodeJS to CRUD databases and generate shipping options. Worked on the ReactJS frontend for presenting the quotes in a user-friendly format.
    • Created the ML API on Django and deployed it on Heroku, ensuring high availability and scalability.
    • Language: Python, JavaScript Tool/Tech: PyTorch, Heroku, Django, ReactJS, NodeJS, Scrum

    Awele Technologies Inc.
    Machine Learning Developer (Internship) February 2023 -- April 2023

    Awele Technologies Inc. Edmonton, Alberta, Canada

    • Modelling, simulating and implementing route optimization using a decision tree algorithm for cross-border shipping.

    Alberta Machine Intelligence Institute (amii)
    Graduate Research Assistant FellowMay 2021 -- Present

    Supervisor: Dr. Levi Lelis Dr. Elham Parhizkar
    Alberta Machine Intelligence Institute | University of AlbertaEdmonton, Alberta, Canada

    • Introduced a novel variant of the simulated annealing algorithm for addressing program synthesis tasks that leverage a Graph Neural Network (GNN) for sampling a node from the Abstract Syntax Tree (AST), which is then mutated to generate a new program.

    University of Alberta
    Graduate Teaching AssistantWinter 2021 and Fall 2021

    Course: CMPUT 201
    Instructor: Dr. Sarah Nadi Dr. Ildar Akhmetov Dr. Guohui Lin
    University of AlbertaEdmonton, Alberta, Canada

    • Led an undergrad lab section for the Practical Programming Methodology course by preparing lab marking scripts, evaluating submissions, and helping students solve exercise problems

    Samsung
    Software EngineerJuly 2019 - Dec 2020

    Windows Team
    Samsung R&D Institute (SRBD)Dhaka, Bangladesh

    • Developed an internal automation tool to convert the Android localization strings for the Windows platform that reduced the string processing time from 120 minutes to 120 seconds
    • Developed the new tag feature for Samsung Notes V3.X and up from concept

    UITS
    • Redesigned the courses by including programming problems to improve their problem-solving skills

    UITS Computer Club
    Programming Contest MentorJanurary 2018 - June 2019

    UITS Computer Club
    University of Information Technology and Sciences (UITS)Dhaka, Bangladesh

    • Prepared the university teams to attend national and international level programming contests conducting sessions and hosting programming contests.

    Projects


    Synthesizing Libraries of Programs by Optimizing an Auxiliary Function Dec 2021 -- Present
    • Implemented a novel approach to augmenting DSL to generate high - quality programs to ensure efficient computation time and minimize memory consumption.
    • Implemented a novel approach of guiding bottom - up search to synthesize code for revese drawing.

    Debiasing Multiclass Demographics in Language ModelsSep 2021 -- Dec 2021
    • Implemented a new regularizer to debias multiclass demographics in language models which reduced the biases by 3% for several individual classes within a demographic.
    • Contributed a word list for 4 demographics where each of the single demographics consists of 6 classes to evaluate the fairness of language models.

    How is Testing Related to Single Statement Bugs? Jan 2021 -- Apr 2021
    • Predicted a weak to moderate correlation (r-value 0.40) between test coverage and single statement bugs by evaluating 25 open-source maven based java projects.
    • Suggested adding more unit tests and increasing the test coverage to mitigate the single statement bugs by at least 10%.

    Data Augmentation in NMT: A Case-study for English to Portuguese TranslationJan 2021 -- Apr 2021
    • Developed a new method for data augmentation in translation tasks by evaluating its performance on Recurrent Neural Network with LSTM and Transformer.

    Java Repo Miner2018
    • Developed a tool to detect java method signature after and before a commit and to make a report of changing frequencies of Methods, Classes, Libraries, and Loops in a git repository

    Publications


    Technical Skills


    • Skills & Tools: Problem Solving, Data Structure & Algorithm Design, OOP, CI/CD, Git, Scrum, Jira, Jupyter, Cluster, Linux
    • Languages: C/C++ , Python, R, C#, Java, HTML, CSS, PHP, Bash, SQL
    • Libraries: Numpy, Scikitlearn, Matplotlib, Pandas, TensorFlow, PyTorch, UWP, BootStrap, Tableau