Personal Resume
Skills and Achievements
- Languages: Java, Ruby, C, Python, Haskell
- Natural Language Processing
- Machine Learning
- Agile Programming
- 12 Years of Linux Experience
- Emacs/Elisp Experience
Education
University of Maryland, College Park - College Park, MD2010-2014
B.S. Computer Science, B.A. Linguistics Double Degree
Yeshivat Kerem B'Yavneh - Kvutzat Yavneh, Israel2009-2010
Completed one-year intensive Judaic study program with international students.
Work Experience
Independent ConsultantJanuary 2023-Present
Consultant specializing in complex refactoring projects. Think you have a problem I can help with? Let's talk!
Full Stack EngineerOctober 2020 - May 2022
Responsible for designing anddeveloping new features across the stack, including complex work with FFMpeg. Also responsible for maintenance of a complex legacy codebase, involving work in SQL, Python, Ruby/RoR, HTML, CSS, and Javascript, and tracking bugs down across repositories and languages, and without documentation.
NLP Engineer - ColaboMay 2018 - October 2020
Natural Language Processing engineer responsible for redesigning core sections of the codebase, as well as developing algorithms to process and understand domain-specific short sentences. Also took responsibility for mentoring new employees in how to use Linux, as well as more generally.
Programmer – Israeli Air ForceJuly 2017 - January 2018
Volunteer for the Israeli Air Force responsible for a wide variety of tasks including signals processing, low-level drone work, and website design, including OSD customization for a drone. I also took initiative and created and taught several classes on aspects of professional programming and computer science theory.
Software Engineer - Driveway SoftwareDecember 2016 - May, 2017
At Driveway, I was a backend engineer responsible for several aspects of the data pipeline, working in Python. In addition to maintaining the API, I was responsible for building automated FTP import solutions for our data, as well as integrating with third party APIs. I also built and maintained SQL queries, both within an ORM framework and in raw SQL when that framework fell short. I left Driveway when my draft date arrived.
Software Consultant - Vane, IncJanuary, 2016 - December 2016
I built a machine learning prediction system for natural language data. I was also responsible for improving the data sanitization process, including using Python/spacy to semantically analyze sentences and extract relevant parts. I also used web.py to build a QA webpage, and built and workerized a part of the data extraction process using supervisor, a Python module designed for workerization.
Software Developer - Jibe, IncJune, 2014 - December, 2015
Straight ruby hacking with an emphasis on reading, understanding, and refactoring others' code. I built client systems at Jibe using a design philosophy revolving around functional programming and extensibility. Later I switched to maintaining and upgrading a diverse set of codebases while balancing code improvements and client needs. This included finding and fixing silently failing systems as well as complete refactors of our oldest and most complex codebases.
Other Experience
UMD Fencing ClubFall 2015 - Spring 2016
Volunteer epee coach, responsible for individual and group lesson plan design, mid-tournament coaching, and general student advising.
Personal Projects
Autohighlight
Autohighlight is a program I wrote in Ruby to extract 10-second clips of scoring actions from a full day's stream footage. It uses ffmpeg to convert the stream into individual frames, then tesseract to identify when the score changes, and to extract other metadata. Then it takes these clips and combines them together into a single video that just contains the ten seconds before every touch scored in the tournament.
Fencing Database
I also take the clips, along with their metadata, and upload them to gfycat. The frontend to this database is The Fencing Database, where you can view the clips and associated stats, both automatically generated and crowd-sourced.