
Hussein Alrubaye- Doctor of Philosophy
- Senior Software Engineer at Microsoft
Hussein Alrubaye
- Doctor of Philosophy
- Senior Software Engineer at Microsoft
About
17
Publications
6,293
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
240
Citations
Introduction
Hussein Alrubaye working as a Senior Software Engineer at Microsoft Corporation. I am working on research in machine learning and AI to build tools and algorithms that automate the process of API Migration. I have 8 successful apps in Google and iOS stores with millions of users who are using my apps. Also, I am working as software developer for 9 years with .NET, C++, and web security, and have a successfully paid tutorial in Udemy. Also, I got Microsoft Most Valuable Professional.
Current institution
Publications
Publications (17)
Modern code review is a common and essential practice employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure conformance with coding standards. During code review, developers may inspect and discuss various changes including refactoring activities before merging code changes in the codebase. To...
The process of migration between different third-party software libraries, while being an typical library reuse practice, is complex, time consuming and error-prone. Typically, during a library migration process, developers opt to replace methods from a retired library with other methods from a new library without altering the software behavior. Ho...
Bug assignment is a burden for projects receiving many bug reports. To automate the process of assigning bug reports to the appropriate developers, several studies have relied on combining natural language processing and information retrieval techniques to extract two categories of features. One of these categories targets developers who have fixed...
Third-party software libraries reuse is becoming a common practice in software engineering. With the exponentially growing number of available and competing libraries in software ecosystems, migrating from one library to another is widely acknowledged to be a complex, time consuming and error prone activity. In this paper, we introduce MigrationMap...
The manual migration between different third-party libraries represents a challenge for software developers. Developers typically need to explore both libraries Application Programming Interfaces, along with reading their documentation, in order to locate the suitable mappings between replacing and replaced methods. In this paper, we introduce RAPI...
The migration process between different third-party software libraries is hard, complex and error-prone. Typically, during a library migration process, developers opt to replace methods from the retired library with other methods from a new library without altering the software behavior. However, the extent to which such a migration process to new...
In this paper we introduce, MigrationMiner, an automated tool that detects code migrations performed between Java third-party library. Given a list of open source projects, the tool detects potential library migration code changes and collects the specific code fragments in which the developer replaces methods from the retired library with methods...
The manual migration between different third-party libraries represents a challenge for software developers. Developers typically need to explore both libraries Application Programming Interfaces, along with reading their documentation, in order to locate the suitable mappings between replacing and replaced methods. In this paper, we introduce RAPI...
The migration process between different third-party libraries is hard, complex and error-prone. Typically, during a library migration, developers need to find methods in the new library that are most adequate in replacing the old methods of the retired library. This process is subjective and time-consuming as developers need to fully understand the...
Teachers face several challenges when presenting the fundamental concepts of programming in the classroom. Several tools are introduced to give a visual dimension to support the learning process. These tools rely on code blocks, easily manipulated in a plug and play fashion, to build a program. These block-based tools intend to familiarize students...
Teachers face several challenges when presenting the fundamental concepts of programming in the classroom. Several tools are introduced to give a visual dimension to support the learning process. These tools rely on code blocks, easily manipulated in a plug and play fashion, to build a program. These block-based tools intend to familiarize students...