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
Software Is Getting Cheaper. But By How Much?
Published:
I’ve spent months arguing AI is making software cheaper. So I went looking for the evidence, applied my own rule, and found something more interesting than a percentage: software purchasing power.
CPU vs GPU battle, Round 1: leave the laptop, the ceiling comes with you
Published:
Three rounds of this experiment lived on a 16 GB laptop and nothing broke 0.5 QWK - a lexical floor at 0.222, and every learned or prompted arm crowded between 0.24 and 0.49. So we left the machine: the same prompt, the same parser, the same 3,000 held-out pairs, handed to a 7B judge on a datacenter GPU. It scored ESCI QWK 0.361 and WANDS 0.354 - better than the 3B it scaled up from, and still inside the same band. The ceiling is the task, not the model size. The result is now a poster at SCD 2026.
CPU vs GPU battle, Round 1: adapt the generalist, read the logits
Published:
Part 2 trained a specialist cross-encoder that won in-domain but leaned on its training data. This round we take the generative Llama-3.2-3B, LoRA-tune it on the laptop GPU with MLX, and grade by reading the label-token logits instead of prompting for JSON. In-domain it lands about even with the specialist (ESCI QWK 0.353), but it is the only arm that does not degrade out of domain - WANDS QWK 0.486, up from its own ESCI, while every other arm falls.
CPU vs GPU battle, Round 1: train the judge, don’t prompt it
Published:
In Part 1 we prompted a general model to grade e-commerce search relevance and watched it miscalibrate. This round we stop prompting and train a specialist - a bge-reranker cross-encoder fine-tuned on Amazon ESCI, on the laptop’s own Apple-Metal GPU. It becomes the first arm to beat the shipped on-device judge on both test sets (ESCI QWK 0.360, WANDS 0.299) at ~28 ms/pair in ~1 GB of RAM.
CPU vs GPU battle, Round 1: the agents brought the GPU
Published:
How well does a small prompted LLM grade e-commerce search relevance on a 0-3 scale, entirely on a laptop? We start the CPU-vs-GPU battle with the two easy arms - BM25 and a prompted local model - and find the honest surprise is not accuracy but calibration and circularity.
SLAB-RS, Part 8: The Word the Embeddings Couldn’t Read
Published:
Phase 3 measured the whole classical toolkit and shipped almost none of it. One thing did ship — and it didn’t come from a bigger model. It came from reading a thousand failures and noticing that a million-vector embedding model cannot read the word ‘without’. The fix was a single linguistic rule. +4.8 nDCG on negation queries, live.
SLAB-RS, Part 7: The Textbook Wins the Benchmark, and Loses the Trade
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
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
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
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
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
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
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.
Self-Learning Agent-Based Retail Search, Part 2: The Baseline Before the Agents
Published:
Before search agents tune anything, the system needs a measurable baseline. This article shows Phase 1 of the project: an out-of-box OpenSearch BM25 baseline on Cranfield, the live relevance numbers, and the failures agents will need to improve.
MS-SBN, Part 2: Amy Turned a High-School Dream Into a Website
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.
Self-Learning Agent-Based Retail Search, Part 1: Why Retail Search Is Harder Than It Looks
Published:
Retail search is not just about returning relevant products. The hard part is deciding which relevant product should come first when customer needs, business goals, inventory, promotions, trust, and mobile behavior all compete.
Modern Software for Small Businesses and Nonprofits, Part 1: The Website Is Becoming the Software
Published:
AI agents and inexpensive hosted services are making the old static-versus-dynamic website distinction less important for small businesses and nonprofits. A website can now become the first useful custom workflow.
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.
Turning Digital Dreams into Working Software: How Software Is Changing Small Business
Published:
Two months into Northvalley Intelligence, I shared what those first months taught me: small businesses often run on paid but siloed systems — a spreadsheet here, a notebook there, a POS that never talks to the calendar — and the real win isn’t a new website, it’s connecting them around how the business actually works. I walked through three client stories: an insurance agency’s manual carrier checks became an automated retention board that surfaces the policies to work; a mortgage broker’s dream that had lived in an Excel sheet became a live app and site with instant pre-approval; and a tea shop’s website that already hosted and sold her events gained scan-to-reserve seating.
The Quality Ceiling Is the Task, Not the Model Size: A Reproducible CPU/GPU Benchmark of Search-Relevance Judges
Published:
A 3-minute lightning talk with Jiho Noh (Kennesaw State University) accompanying our accepted poster, presenting a reproducible CPU/GPU benchmark of search-relevance judges: one framework, five judges, two datasets, run identically on a laptop CPU and a GPU. The finding — nothing breaks 0.5 QWK, on a laptop or a GPU — suggests the quality ceiling for judging search relevance is set by the task itself, not the size of the model or the hardware behind it. This talk continues the CPU vs GPU Battle series on this site.
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.
