Nathan Glenn

Software Engineer, Linguist, Open Source Enthusiast

Greetings! I'm Nathan. I'm a freelance software engineer with over 10 years of experience specializing in natural language processing. I'm familiar with a wide range of computer technologies as well as human languages. If you'd like a free consultation on NLP or general engineering work, send me an email at nathan.g.glenn@gmail.com.

You can also find me on GitHub or LinkedIn.

Familiar Technologies

  • Java, Spring Boot
  • Python, Flask
  • JavaScript/TypeScript
  • C++
  • MySQL
  • Perl
  • Apache Kafka
  • React/React Native
  • Rust
  • Docker
  • Kubernetes
  • Google Cloud
  • Machine Learning
  • Natural Language Processing

These are only some of the technologies I've used in the past. If you don't see a technology you need me for, feel free to ask anyway! I'm always looking to learn more and add more to my toolkit.

Familiar Human Languages

  • English (native)
  • Japanese (fluent)
  • German (B2)
  • Korean
  • Vietnamese
  • Chinese
  • Thai
  • Cambodian
  • Turkish
  • Latin

Portfolio

Professional Projects

trivago Exposure Algorithms

Screenshot of trivago.com showing the hotel results and advertised prices on each hotel

trivago Exposure Algorithms

As a Java developer and later engineering lead at trivago, my team was responsible for the advertiser auction and hotel ranking for all searches. Our service ran billions of auctions daily, carefully optimizing trivago's revenue while balancing the interests of users, advertisers, and our company.

Japanese Segmenter

A page of Japanese text, shown with and without highlighting of individual words

Japanese Segmenter

Japanese text has no spaces, and being confronted by a wall of text can be really intimidating for learners. For my client's product, I used my extensive knowledge of Japanese grammar to write a segmenter that outputs recognizable words. The result is simpler for learners to digest and understand, improving the product experience.

Car Navigation Assistant

A car navigation screen

Car Navigation Assistant

I built an NLU agent used in Japanese cars sold in the US. The agent would respond to spoken commands such as, "take me to John's house" and "where can I buy a Coke?".

Japanese ⇄ Turkish Machine Translation System

A freshly formed tire coming out of a factory machine, still steaming

Japanese ⇄ Turkish Machine Translation System

I built a custom translation system used in a Japanese rubber factory located in Turkey. The system handled the complex morphology of Turkish better than other state-of-the-art translation systems.


Open Source


Rust Ray Tracer

A render of two shiny marbles, one red and one blue, with a reflection of a square light on their surfaces and their fuzzy shadows receding in the background

Rust Ray Tracer

Following Jamis Buck's excellent Ray Tracer Challenge, I wrote a CPU ray tracer with features including soft shadows, texture mapping, and constructive solid geometry.

View Source

Analogical Modeling Weka Plugin

A screenshot showing the output of the analogical modeling plugin in the Weka toolkit

Analogical Modeling Weka Plugin

The state-of-the-art implementation of analogical modeling, an exemplar-based machine learning algorithm. Higher-cardinality data is processed in parallel via Java's fork/join framework and Monte Carlo simulation.

View Source

Algorithm::AM

A diagram of pointers between contexts, the central calculation of analogical modeling

Algorithm::AM

A Perl library for analogical modeling, an exemplar-based machine learning algorithm. I rewrote the Perl code and modernized the C code of AM::Parallel, fixing tricky bugs and adding complete unit test coverage along the way.

View Source

Tree::BK

A diagram of a BK tree containing the words wit, with, whit, white, side, wind, sink and lisp

Tree::BK

Perl module implementing a Burkhard-Keller, or BK tree, a structure for efficiently performing fuzzy searches in a large collection of strings.

View Source

LeXiTron Mac

LeXiTron Mac

A distribution of the Thai Government's LEXiTRON Thai/English dictionary for use on Macintosh computers (three-finger click, dictionary.app, etc.).

View Source

Soar Cognitive Architecture

The Soar logo
©️SoarGroup 2020, BSD-2

Soar Cognitive Architecture

Soar is a general cognitive architecture for intelligent behavior. As a consultant for the Center for Integrated Cognition, I performed extensive maintenance, bug-fixing and modernization tasks to release version 9.6.1.

View Source

Sublime Soar Tools

Slanted photo of Soar code with syntax highlighting in Sublime Text

Sublime Soar Tools

A Sublime Text package for developing Soar code. Includes support for syntax highlighting, snippets, and unit testing with SoarUnit.

View Source

🚧 Current Projects 👷‍♂️


Uniunihan-DB

A chalkboard covered in Japanese vocabulary, mostly kanji

Uniunihan-DB

This project started as a method for finding classical Chinese cognates, and morphed into a learners' dictionary of Chinese, Japanese, Korean and Vietnamese.

View Source

Kengdic

1850's painting of petite burgeoisie Korean men gathering with papers and writing utensils.

Kengdic

A 130,000 entry Korean/English dictionary originally created by Joe Speigle. After the author's passing, I located the original data and retrofitted it with QA scripts and automated tests to help clean and validate it. I hope to make it a high quality, full-coverage, living dictionary.

View Source

Modern Algorithmic Toolbox Assignments

The Jupyter project logo

Modern Algorithmic Toolbox Assignments

Highly detailed Jupyter notebooks exploring the asignments of the wunderbar Stanford course, The Modern Algorithm Toolbox. The notebooks explore topics in randomized algorithms and data analysis.

View Source