Sitemap
A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.
Pages
Teaching
Courses taught by Ferosh Jacob in computer science, software engineering, data science, artificial intelligence, and mathematics.
Posts
From Code Generation to Application Generation, Part 8: If Agents Are Doing the Coding, What Am I Doing?
Published:
If coding agents handle more implementation, the human role does not disappear. It moves toward mission, judgment, validation, integration, accountability, and helping more organizations use software well.
From Code Generation to Application Generation, Part 7: How Mission-Driven Engineering Happened
Published:
Mission-Driven Engineering did not start as a framework. It started when I realized I was using coding agents to manage UI screens, data layers, and implementation artifacts instead of asking them to satisfy the outcome I actually cared about.
From Code Generation to Application Generation, Part 6: Inside Mission-Driven Engineering
Published:
A practical walk-through of Mission-Driven Engineering: how missions, validations, generations, learning loops, and shared MDE memory turn AI coding agents into application-generation systems.
From Code Generation to Application Generation, Part 5: Why I Ended Up Looking Back at Model-Driven Engineering
Published:
AI application generation feels new, but it echoes Model-Driven Engineering: humans describe intent, machines generate implementation, and independent validation decides whether the result actually works.
From Code Generation to Application Generation, Part 4: My Coding Agents Are Productive. I Am Exhausted.
Published:
AI coding agents can make implementation dramatically faster, but they also create a new bottleneck: the human cost of managing context, attention, and learning across many parallel projects.
The End of Software Scarcity, Part 4: Rosa’s Story — Lead Workflow
Published:
A website is only the front door. In this article, I explore how an AI-enabled conversation becomes part of a small operations system for leads, clients, jobs, reviews, videos, and ads.
From Code Generation to Application Generation, Part 3: Why I Stopped Looking at Generated Code
Published:
As AI coding agents improved, the generated code became less interesting than the final application outcome. The question shifted from whether the code looked right to whether the application solved the problem.
From Code Generation to Application Generation, Part 2: I Knew How to Fix It, But Wasn’t Sure You Wanted It Fixed
Published:
Most of my interaction with coding agents became copying error messages from build systems and asking the agent to fix them. That raised an uncomfortable question: why was I in the loop at all?
From Code Generation to Application Generation, Part 1: When Does the Agent Stop?
Published:
I initially trusted AI through code generation because code could be validated. What surprised me was discovering that the hardest problem was no longer implementation, but defining when the work was actually complete.
The End of Software Scarcity, Part 3: Rosa’s Story — Website & AI Chat
Published:
Building the website was easy. The more interesting question was whether a small business could afford an AI-powered customer experience with virtually no recurring software costs.
Is Agile Failing in the Age of AI?
Published:
Agile transformed software development by adapting to changing requirements. But what happens when AI dramatically reduces the cost of implementation? Are we still optimizing for the right bottleneck?
AI Doesn’t Have a Coding Problem. Enterprises Have a Permission Problem.
Published:
What if the biggest obstacle to AI transformation isn’t the technology, but the way we’ve organized our companies?
The End of Software Scarcity, Part 2: Rosa’s Story
Published:
In my previous article, I argued that AI-assisted development may be bringing an end to software scarcity. This article tests that idea through a real-world project with a local small business owner.
The End of Software Scarcity, Part 1: Why Software Can Adapt to the Business
Published:
For decades, organizations adapted themselves to software because software was expensive to build and maintain. AI-assisted development may reverse that relationship, making it practical for software to adapt to the unique needs of individual organizations.
Artificial Intelligent Retail Search is here!-In Progress
Published:
In this article, I explore the evolution of retail search and attempt to predict the future of retail search
Artificial Intelligent Retail Search is here! (2) - The Data Science Era
Published:
Moving beyond simple keyword matching. How the industry transitioned to hybrid systems, query understanding, and the “Builder’s Era” of search relevance.
Artificial Intelligent Retail Search is here! (1) - The Legacy & The Problem
Published:
A look back at the “Black Box” era of retail search, why we moved away from it, and the fundamental tension between finding products and making money.
Teaching Philosophy as a Part-Time Teacher
Published:
Between 2017 and 2025, I consistently taught undergraduate or graduate courses in most semesters while balancing my teaching responsibilities with a full-time position in industry.
Teaching philosophy
Published:
Teaching methods should be flexible, evolving based on the students, course content, and learning environment.
publications
talks
Code Template Inference Using Language Models
Published:
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.
CSeR (Code Segment Reuse)
Published:
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.
Raising the Level of Abstraction for GPU Programming
Published:
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.
Extending Abstract GPU APIs to Shared Memory
Published:
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.
CUDACL: A Tool for CUDA and OpenCL Programmers
Published:
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.
A Platform-Independent Tool for Modeling Parallel Programs
Published:
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.
Domain-specific languages for composing signature discovery workflows
Published:
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.
sCooL: A System for Academic Institution Name Normalization
Published:
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.
WebScalding: A Framework for Big Data Web Services
Published:
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.
Machine Learning Techniques in Java
Published:
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.
Ontology-based semantic search
Published:
Two key factors determine the effectiveness of any document search:
Deep Learning with Python: from Theory to Application
Published:
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.
Full-time software engineer and Part-time Instructor
Published:
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.
ChatGPT and Search
Published:
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.
teaching
Teaching Assistant at Clarkson (Mathematics)
undergraduate courses, Clarkson University, Department of Mathematics, 2008
During my masters, I worked as an instructor for Mathematic department.
Part-Time Assistant Professor (Computer Science)
graduate courses, Kennesaw State University, Department of Computer Science, 2017
Dr. Dan Lo invited me to teach at Kennesaw State University when I met him during a conference.
Part-Time Assistant Professor (Software Engineering)
graduate courses, Kennesaw State University, Department of Computer Science, 2017
Dr. Dan Lo invited me to teach at Kennesaw State University when I met him during a conference.
Part-Time Assistant Professor (Computer Science)
graduate courses, Kennesaw State University, Department of Computer Science, 2017
Dr. Dan Lo invited me to teach at Kennesaw State University when I met him during a conference.
thesis
Ph.D. Dissertation
My Ph.D. dissertation explored the application of software modeling techniques to computation-intensive problems, enabling efficient heterogeneous computing and enhanced source code maintenance.
Masters Thesis
My Master’s thesis focused on developing tool support for detecting and managing software code clones.
