Talks and presentations

See a map of all the places I've given a talk!

ChatGPT and Search

June 19, 2023

Talk, NSF REU SITE: Non-Invasive Deep Brain-Computed Interfaces, Kennesaw, GA

Most students who enroll in computer science courses aspire to pursue careers in software development. As a software engineer myself, I strive to help them understand core concepts through an application-oriented perspective.

Full-time software engineer and Part-time Instructor

June 19, 2019

Talk, Space Symbosium, Atlanta, GA

Most students who enroll in computer science courses aspire to pursue careers in software development. As a software engineer myself, I strive to help them understand core concepts through an application-oriented perspective.

Deep Learning with Python: from Theory to Application

April 19, 2019

Tutorial, Annual Southeast Regional Conferenc, Kennesaw, GA

This tutorial gave a comprehensive overview of the deep learning. The goal was to make deep learning accessible to engineers who seek to apply deep learning to problems they are trying to solve both in industry and academia.

Machine Learning Techniques in Java

May 17, 2016

Talk, Atlanta Java Users Group, Atlanta, GA

In the field of Artificial Intelligence (AI), several reliable open-source tools and libraries are implemented in Java. At The Home Depot, many projects leverage these Java-based frameworks to implement state-of-the-art machine learning techniques that drive innovation across retail and home improvement domains.

WebScalding: A Framework for Big Data Web Services

April 02, 2015

Conference proceedings talk, International Conference on Big Data Computing Service and Applications, Redwood City, CA

CareerBuilder (CB) manages over 50 million active résumés and 2 million active job postings, driving a continuous need to match the most relevant jobs for seekers and the most qualified candidates for employers. Achieving this at scale naturally presents significant Big Data challenges.

sCooL: A System for Academic Institution Name Normalization

May 19, 2014

Conference proceedings talk, International Conference on Collaboration Technologies and Systems, Minneapolis, MN

Named Entity Normalization (NEN) refers to the process of linking recognized entities to concrete, unambiguous real-world references. In the context of the online job posting domain, accurate normalization of academic institution names offers significant value for performing advanced labor market analysis.

Domain-specific languages for composing signature discovery workflows

October 22, 2012

Conference proceedings talk, Software for Humanity (SPLASH), Tucson, AZ

Domain-agnostic signature discovery involves research that spans multiple scientific disciplines. The cross-disciplinary scope and complexity of this work require that existing executable applications be integrated with new capabilities into unified workflows representing diverse user tasks.

A Platform-Independent Tool for Modeling Parallel Programs

March 24, 2011

Conference proceedings talk, Annual Southeast Regional Conference, Kennesaw, GA

Programming languages that utilize underlying parallel architectures—including shared memory, distributed memory, and Graphics Processing Units (GPUs)—are widely used for solving scientific problems. However, our study of multiple parallel programs across various domains revealed that these programs often contain a substantial amount of sequential code intermixed with parallel code.

CUDACL: A Tool for CUDA and OpenCL Programmers

December 19, 2010

Conference proceedings talk, International Conference On High Performance Computing, Goa, India

Graphical Processing Unit (GPU) programming languages are increasingly used for general-purpose computing, but their low-level abstractions make them accessible primarily to expert parallel programmers. This project introduces a novel approach that enables C and Java developers to harness GPU computing power without delving into the technical complexities of CUDA or OpenCL.

Extending Abstract GPU APIs to Shared Memory

October 19, 2010

Conference proceedings talk, Software for Humanity (SPLASH), Reno,NV

Parallel programming is widely used for general-purpose computations, but the performance of different parallel APIs often varies depending on the problem type and hardware architecture. This variation creates a need for an abstract representation to express parallel problems independently of specific platforms.

Raising the Level of Abstraction for GPU Programming

July 13, 2010

Conference proceedings talk, Parallel and Distributed Processing Techniques and Applications Conference, Las Vegas, NV

Programming GPUs presents several challenges, particularly the significant effort required to integrate kernel functionality with the parallel programming constructs provided by APIs such as CUDA and OpenCL. This project introduces an approach that raises the level of abstraction in GPU programming by implementing an abstract API compatible with both CUDA and OpenCL frameworks.

CSeR (Code Segment Reuse)

May 20, 2010

Conference proceedings talk, International Workshop on Software Clones, Cape Town, South Africa

Tool support for managing code clones plays a crucial role in improving software quality and maintainability. While extensive research has focused on detecting clones in existing source code, there has been comparatively less attention on proactively tracking and supporting copy–paste–modify operations, even though such actions are a major source of clone creation and evolution.

Code Template Inference Using Language Models

April 17, 2010

Conference proceedings talk, Annual Southeast Regional Conference, Oxford, MS

This work project explores the use of natural language processing (NLP) techniques to automatically identify project-specific code templates—frequently used code blocks that can assist developers within an integrated development environment (IDE). During software development, programmers often, sometimes unknowingly, rewrite similar code fragments that implement common functionality. Recognizing these recurring patterns can inform the creation of reusable code templates.