benschwemlein.com

Ben Schwemlein

Senior Software Engineer

Can a local model match Claude at analyzing code? Part 3

A local model given a simple search loop over the code comes close to a Claude agent at finding the right files, and a change to its prompt made it twice as fast on a large code base.

Can a local model match Claude at analyzing code? Part 2

The standard ways of improving a RAG system, tried one at a time on code and measured against the baseline from part 1. None of them moved the private benchmark, and the one that looked like a win came from the model's memory of a public project.

Can a local model match Claude at analyzing code? Part 1

I built a local AI tool for analyzing code and measured it against Claude on a private benchmark. Part 1 covers the tool, the test and the first results.

My thoughts on the anniversary of Challenger

Thirty years after the Challenger disaster, what a fourth grader remembers about that morning, and what Christa McAuliffe still stands for.

The Teacher in Space mission patch, an embroidered NASA patch with the shuttle rising over Earth
The Teacher in Space mission patch.

Thirty years ago this week, on January 28, the Challenger shuttle disintegrated in a disaster that shocked most people in a way that those who were not around to experience it may not fully appreciate. The loss of the shuttle and the first teacher in space, Christa McAuliffe, was more painful than other disasters such as airline crashes. The space shuttle represented the pinnacle of American technology in a time before the internet, when high tech meant big engineering, and when our nation was competing against the Soviet Union for dominance. Christa McAuliffe, chosen out of ten thousand teachers, had an infectious enthusiasm for learning and a hope for the future that seemed to represent the positive essence of 1980s United States. The space shuttle had been marketed as an airliner to space that would open the final frontier to common Americans, and Christa was the first civilian, the first one of us, who was going for the ride. Her personality was magnetic and she captivated us with her journey. My fourth grade teacher had a poster of her in our classroom.

I first learned of the disaster when my teacher walked into the room in tears. She said she had some sad news, and told us, with the deliberate sensitivity with which one announces death to children, that the space shuttle had exploded and the Teacher in Space had died. As a nine year old I tried to comprehend what I had been told. But I knew my teacher was hurt because another teacher, one of her own, had died. Later we watched the explosion on TV. The sky was a clear brilliant blue up to which the shuttle's cotton white exhaust climbed like a Greek column. The white column climbed and climbed like Jack's beanstalk and then crumbled in an eerie silent tangerine colored puff. That puff was hard to watch because we witnessed the instant loss of Christa and the crew. In a broader sense it represented the crumbling of some of the hope that was part of the 80s.

Even after all these years Christa's energy reminds me how central education, teachers, and technology are to building a hopeful future. I think of her and am reminded of how wonderful my children's teachers are. I think of her journey into space and am inspired to use technology for a better future. I think of how my teachers nurtured my happy childhood in the 80s. I am reminded how much I respect and am humbled by my friends who are teachers or professors.

If you haven't yet, watch Christa talk on YouTube. See if you're inspired as others were.

Originally posted on LinkedIn.

99 Problems in Scala

99 Problems teaches Scala by solving common problems, mostly with a functional approach. Problem 8 shows off pattern matching.

99 Problems teaches Scala through solving common problems, mostly using a functional approach. Give them a try.

The solution to problem 8 illustrates Scala's pattern matching by using its case syntax.

// P08 (**) Eliminate consecutive duplicates of list elements.
//     If a list contains repeated elements they should be replaced with a
//     single copy of the element. The order of the elements should not be
//     changed.
//
//     Example:
//     scala> compress(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e))
//     res0: List[Symbol] = List('a, 'b, 'c, 'a, 'd, 'e)

object P08 {
  // Standard recursive.
  def compressRecursive[A](ls: List[A]): List[A] = ls match {
    case Nil       => Nil
    case h :: tail => h :: compressRecursive(tail.dropWhile(_ == h))
  }
}

Originally posted on benschwem.wordpress.com.

SS Cygni, my favorite (binary) star

A variable binary star 400 light years away that erupts in a dwarf nova about every 50 days, and the amateurs who keep watch on it.

Before the birth of my four children, I spent many relaxing evenings observing an interesting star system through my telescope. SS Cygni is a variable binary star system approximately 400 light years from Earth. It is composed of two stars swinging around each other in a close mutual orbit, with one gravitationally pulling hot gas off the other's surface. This hot gas forms an accretion disc of plasma around the heavier star, which erupts in a tremendous explosion, called a dwarf nova, about every 50 days. The heavier star, a white dwarf, has a much smaller diameter and is much more dense than its companion red dwarf.

Artist's view of a cataclysmic binary star with an accretion disc
A cataclysmic binary similar to SS Cygni. The denser primary and its accretion disc are on the right, the secondary on the left.

At 400 light years, SS Cygni appears as a barely detectable dim dot in a telescope, which pushes your eyes to their limits. With a little patience and practice you can witness the eruption as a 40 fold increase in the brightness of that dot. Its brightness is measured by comparing it to nearby stars. Since the eruptions are unpredictable, professional astronomers rely on amateurs, such as myself, to post these measurements to the American Association of Variable Star Observers. The aggregate measurements from around the world form a plot of the star's brightness over time.

Light curve of SS Cygni from 2005 with sharp spikes at each eruption
The magnitude over time of SS Cygni in 2005. The spikes are eruptions of the accretion disc.

Taking measurements is tedious and lugging a 12 inch telescope is back breaking, but there was a spirituality in having my daily routine synchronized with events over 400 light years away, with energies dwarfing anything we experience on Earth. Like our awe at Old Faithful, SS Cygni is a pleasure of creation that only we humans truly appreciate experiencing. Of all life's pleasures, the curiosity that draws us to places like SS Cygni reminds me that the unique experience of being human is wonderful.

Originally posted on benschwem.wordpress.com.

Ben, rendered as a cyan hologram on a curved CRT screen
Name
Title
Location
Industries
Skills
Certified
Education
Hobbies
LocalScope
Local AI code intelligence. Semantic search and question answering over any codebase with Ollama and ChromaDB, nothing leaves your machine.
radio_telescope
Hobby radio telescope: an RTL-SDR dongle, a Raspberry Pi, and a PyQt6 planning app, aiming at a hydrogen line map of the Milky Way.
oblivion-landscape-viewer
Renders Oblivion landscape meshes in 3D. The same viewer written in Rust, Python, Kotlin, and two flavors of Java, as a language comparison.
library-catalog-app
A Spring Boot and Angular library catalog, kept as a sample app and a test bed for LLM coding tools.
Naive-Bayes-Text-Classifier
Naive Bayes document classifier from my machine learning course at DePaul.

All of it on GitHub.

Senior software engineer with 15 years building Java and full-stack systems. Eight of those as a consultant, delivering for clients across healthcare, retail, food service, and logistics, including leading a development team and owning the architecture on a greenfield platform. An early adopter of AI-assisted development. AWS Certified Developer with an M.S. in Computer Science from DePaul University.

Skills

  • Java
  • Spring Boot
  • Angular
  • TypeScript
  • Python
  • AWS
  • Google Cloud
  • Microservices
  • Kafka
  • Docker
  • SQL and NoSQL
  • AI assisted development
  • Tech lead

Experience

Leading EDJEFeb 2018 – Aug 2026 Senior Software Engineer. Consultant delivering full-stack and cloud solutions for clients. Clients included Jumpmind, Safelite, Donatos Pizza, Crown Equipment Corporation, Cardinal Health, DSW / Designer Brands, Wendy's International.
Nationwide Insurance2015 – 2018Senior Java Developer on enterprise applications for the retirement-plan business.
OCLC2013 – 2015Software Engineer on OCLC.org and its content-management system.
Nationwide Insurance2011 – 2013Senior Java Developer on the Affinity program web service and a call-center application for insurance policy inquiries.

Education

DePaul UniversityChicago, IL M.S. Computer Science, with honors (independent study: machine learning & NLP research). Upsilon Pi Epsilon.
Ohio Wesleyan UniversityDelaware, OH B.A. Economics.

Certification

AWS Certified Developer – Associate (2024)

AWS Certified Developer Associate badge

Open to senior engineering roles, remote or around Columbus. Email is the fastest way to reach me.

Sign in to view

Loading the resume…

Sign in to view

Loading the resume…

Sign in to view

Loading the resume…

Sign in to view

Loading the resume…

Sign in to view

Loading the resume…

Drag to turn, arrow keys work too. F fills the screen with a face.
Home Resume