Nick Greenquist
Senior Software Engineer @ Google · Machine Learning · Recommender Systems
Hello! I'm a Senior Software Engineer at Google, working on the Google Play Store Personalization team — building and scaling the recommender systems that help billions of Android users discover their next favorite app or game.
The road here was a bit winding: six summers as a New Jersey ocean lifeguard (my Baywatch career), an undergrad in Game Design at RIT (where, on top of my academics, I wrestled four years for the NCAA D3 program and was team captain), software engineering internships across frontend, backend, and data engineering roles at eHealth Technologies, GeekHive, Enigma Technologies, and Bluecore, and a Masters in CS at NYU focused on Machine Learning and AI.
Outside of work I'm into reading, fitness, travelling, photography, and being a dad.
At the Keyboard
A body of work in production-grade recommender systems — built from scratch in PyTorch, all deployed live on Streamlit.
Note: These demos run on Streamlit’s free tier and sleep after a few hours of inactivity. If you land on a “Wake up” screen, just click the button — the app will be ready in about 15–30 seconds.
Retrieval · Two-Tower
Two towers — one for the user, one for the item — embed into a shared space where a dot product retrieves top recommendations. Users are represented by the features of what they’ve enjoyed, not a user ID, so anyone gets recommendations from just a few examples. Both represent the user by pooling their interaction history through several behavior-partitioned pools, and both train with a full softmax over the entire catalog — with a logit adjustment from Menon et al. (2021) added just before the loss to debias popular items.
Movie Recommender
→Trained on MovieLens 32M · 9,375 movies · ~50k users
↑ 8.7× MRR over the MSE baseline (0.115 vs 0.013)
GitHub ↗Book Recommender
→Trained on Goodreads · 14,753 books · 229k users
↑ 3.4× Hit@10 over the MSE baseline (16.0% vs 4.7%)
GitHub ↗Two-Stage · Retrieve → Rank
Same two-tower retriever as above for candidate generation — but paired with an entirely new model that is not two-tower: a Wide & Deep ranker. The ranker rescores the retriever’s top candidates, unlocking the power of user×item cross-features that a dot product can’t capture (at more than 10× the training cost). Retrieve-then-rank is the two-stage design used in industry-scale recommenders.
Steam Game Recommender
→Trained on Steam · 5,437 games · 66k users
↑ Wide & Deep ranker: +16% NDCG@10 over retrieval-only
GitHub ↗Sequential · Transformer
An ablation study isolating sequence modeling itself. A three-stage progression — bag-of-items baseline → causal attention without positional embeddings → full SASRec — measures what each architectural piece contributes, on a deliberately minimal feature set (item-ID embeddings only, no item metadata) so the gains come from the sequence model rather than side features. The user tower is purely the ordered sequence of item IDs encoded by a causal Transformer, and final sampled NDCG@10 (0.519) lands within 3.2% — relative — of the published SASRec baseline (0.536).
Amazon Games Recommender
→Trained on Amazon Video Games · 16,882 games · 50,626 users
↑ Sampled NDCG@10 0.519 — within 3.2% (relative) of published SASRec’s 0.536
GitHub ↗Publications
Peer-reviewed research in recommendation systems.
Pyrorank: A Novel Nature-Inspired Algorithm to Promote Diversity in Recommender Systems
→Doruk Kilitcioglu, Nicholas Greenquist & Anasse Bari · ICSI 2023 · Jul 2023
GPU Accelerated Matrix Factorization for Recommender Systems
→Doruk Kilitcioglu, Nicholas Greenquist, Mohamed Zahran & Anasse Bari · ICBDA · Apr 2021
GKB: A Predictive Analytics Framework to Generate Online Product Recommendations
→Nicholas Greenquist, Doruk Kilitcioglu & Anasse Bari · ICBDA · Mar 2019
Away from the Keyboard
What's keeping me busy in the real world.
New Dad — I became a dad this past year — easily the most important thing that's happened in my life. Most of my time and energy these days goes into being the best father I can be.
Photography — Whenever I have a free moment I'm out with my camera. Best work lives on my portfolio; I also post more frequently to Instagram.
Travel — We've kept traveling even as new parents — our son has already been to Cancun, Mexico and to Campo Grande, Brazil for his first birthday and to meet his Brazilian family. Next up is a summer camping trip with our towable trailer. I keep my travel map up to date here.
Books — I'm always reading or listening to audiobooks. Check out my Goodreads to see what I've recently finished and what I'm currently reading — I keep it up to date.
Pokémon — Having a kid sent me straight back to my childhood: I've gotten back into collecting Pokémon cards with the hope of passing the hobby on to my son when he's ready. My goal is to complete the Pokédex — one card for every one of the 1000+ Pokémon — and you can follow my progress in this live tracker.
Links
GitHub
→Personal projects — recommender systems and ML.
Professional and career details.
Photography
→Wildlife and travel photography portfolio.
Blog
→Thoughts on machine learning, systems, and projects.
Travel Map
→Everywhere I've been on Earth.
Wrestling
→What it took, what it gave back.
Education
→Every course I've taken — NYU, RIT, and online.
Resume
→PDF, kept current.
Reading
→My reading list on Goodreads
Contact
→Send me a message.