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
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
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
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
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
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 SourceAnalogical Modeling Weka Plugin
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 SourceAlgorithm::AM
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 SourceTree::BK
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 SourceLeXiTron 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 SourceSoar Cognitive Architecture
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 SourceSublime Soar Tools
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
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 SourceKengdic
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 SourceModern Algorithmic Toolbox Assignments
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