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

SLAB-RS, Part 7: The Textbook Wins the Benchmark, and Loses the Trade

10 minute read

Published:

Retail is the first dataset in the project with real graded labels — so it is the first place the classical retail-search toolkit gets a fair audition. Field weighting stayed dormant. Learning-to-rank finally woke up, and then relearned the hybrid it was supposed to beat. The full textbook cascade won the benchmark — by +0.13% over the lean stack that was already shipped. Measure everything, ship almost nothing.

SLAB-RS, Part 6: The Agent Meets a Million Real Products

11 minute read

Published:

Five parts of a retail search series, and the documents were never products. Phase 3 changes that: 1.2 million real Amazon products, graded Exact/Substitute/Complement/Irrelevant labels, and one question — does the academic stack survive contact with real retail? It does. The BGE hybrid lands at parity with the published single-model baseline, at production latency, and int8 quantization makes a live million-vector index fit on a free-tier box, losslessly.

MS-SBN, Part 3: My Ten-Year-Old Built a Video Game From Four-Word Prompts

13 minute read

Published:

I typed two sentences into a coding agent, asked it to write a plan, and handed the laptop to my ten-year-old son. Over four weeks Mathai built a real, playable 2D game without writing a line of code. It was a deliberate experiment: proof that when every step has to verify it works, the software keeps working — whoever is driving. That is the core of Mission-Driven Engineering.

SLAB-RS, Part 5: How the Agents Discovered Hybrid Search

14 minute read

Published:

The agents took their Phase 1 wins to fifteen new domains — and discovered hybrid search: the one method that improved every single one, by up to 64%. The keyword tricks that looked brilliant on aeronautics turned out to be aeronautics-shaped, and even the cleverest ranker got demoted by Occam’s razor.

SLAB-RS, Interlude: Why the Agent Is Not in a Store Yet

16 minute read

Published:

Four articles into a series called retail search and there is not a single product — only aeronautics abstracts. Here is the map: what BEIR is, why the same BM25 scores 0.158 on one dataset and 0.789 on another, why I was wrong to call Phase 2 a filter, and what has to happen before the agent reaches real products.

SLAB-RS, Part 4: The Agent Breaks Its Ceiling with Embeddings

10 minute read

Published:

Embeddings from a chat model scored five times worse than random vectors. A purpose-built retrieval model beat the keyword ceiling by 8.4%. The agent’s three embedding attempts, a machine-learned ranking detour, and a live OpenSearch vector index.

SLAB-RS, Part 3: The Agent Climbs Keyword Search to Its Ceiling

11 minute read

Published:

An AI agent ran five ranking experiments on a live OpenSearch baseline in six days — work that would have taken a core search team months. This article shows the process, the failures, and how a rarely-shipped old technique won the keyword round.

MS-SBN, Part 2: Amy Turned a High-School Dream Into a Website

7 minute read

Published:

Amy Givens owned the MyAmy Designs domain since high school, but the website stayed a dream for years. With ChatGPT and Codex, she finally turned that domain into a real business website for MyAmy Designs & Remodeling.

Is Agile Failing in the Age of AI?

6 minute read

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?

The End of Software Scarcity, Part 2: Rosa’s Story

3 minute read

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.

Teaching Philosophy as a Part-Time Teacher

3 minute read

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

1 minute read

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.

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

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.