# Howdy!

I currently work as an AI engineer at ThirdAI, where we are building an in-house sparse machine learning engine from scratch. At ThirdAI, I am lucky to be able to combine my passions for building algorithms and for implementing high performance systems.

While at ThirdAI, and earlier in Rice University's Sketching and Hashing Lab, I have investigated randomized algorithms, group testing, and locality sensitive hashing. This work has resulting in efficient data structures that use these techniques to speed up high dimensional near neighbor search (FLINNG) and set-of-vector search (DESSERT).

Broadly, I am interested in building algorithms that solve real-world problems in a wide variety of domains, including machine learning, near neighbor search, streaming, and AI alignment.

## Papers

DESSERT: An Efficient Algorithm for Vector Set Search with Vector Set Queries.
Joshua Engels, Benjamin Coleman, Vihan Lakshman, and Anshumali Shrivastava
Under submission
Preprint | Code | Blog Post

Practical Near Neighbor Search via Group Testing.
Joshua Engels*, Benjamin Coleman*, and Anshumali Shrivastava
NeurIPS 2021: Spotlight talk - top 3%
* indicates equal contribution
Paper | Talk | Code

Missed one! How ballot layout and visual task strategy can interact to produce voting errors.
Joshua Engels, Xianni Wang, Michael D. Byrne
International Conference on Cognitive Modeling 2020.
Paper | Talk | Code | Blog Post

## Blog Posts

Bananagrams is NP-complete
Have you ever wondered if Bananagrams is NP-complete? No? Well I think it is, and I’ll prove it!...

What is Set-of-Vector Search?
In the traditional near neighbor problem, we are given a dataset $$D$$ of $$N$$ $$d$$-dimensional vectors. Our goal...

Simulating Voter Errors with ACT-R
Badly designed ballots may not seem like a pressing problem, but they have already swung multiple elections. For...