I am a largely self-taught software engineer, who majored in Linguistics, and is based in New York City. Lately, I hack mostly in Python, either on backend web development, or more recently big data on Hadoop. After learning the Flask web microframework I have developed a love of web development that borders on obsession. I love to do my server-side scripting in Python, using Apache and and Linux, but I am always eager to learn new languages. I also have a passion for jQuery and Backbone.js, and newfound love of MySQL, SQLite3 and most especially the concept of database ORMs. When I'm not busy optimizing my .vimrc or swinging from git branch to git branch like a linux monkey, I also enjoy typical post-hipster millennial pastimes, like craft beers, NPR and New York City.
Besides programming, I am also interested in linguistics and foreign languages. I am particularly interested in Syntax, Semantics, Computational Linguistics and Natural Language Processing.
Setback is a card game my friends and I used to play a bunch, and while trying to think of a good idea for a single page application I could make, and in the process teach myself to use Backbone.js and SQLAlchemy, Setback seemed like the obvious choice. I developed it on a Python backend, using the Flask microframework. I think the main thing I learned from this experiment is that it is time to try out Django to kick up my web apps.
This is the first game I tried to create when I had only just begun to learn the principles of web development. A year of learning passed between this checkers game and Setback, in which I discovered everything from RESTful principles to how the heck a database works, and other super important basics of the trade. It is not currently playable, because I would like to retool it before I put it back online.
This was my first web application, and boy does it feel like it when I look at it now. This is the one that got me interested initially though, and taught me the power of the internet, and the magical things that I might be able to do once I learned to harness it. I created it while working as an intern at Carnegie-Mellon University's Language Technologies Institute. Its function is ridiculously obscure, but basically it is an interface for linguistic annotators, and allows them to input syntactic annotations in the Graph Fragment Language, which is then parsed into an image (this code is not mine) and shown to the user to allow them to correct their annotation. I haven't taken great care of the code, and a lack of understanding of Git when I first started caused me to lose a lot of progress, move too fast and break too much. We learn from mistakes.
I wrote my first program, ever, in January 2013. Having majored in linguistics, and learned to program in a Computational Linguistics course, I decided to make a GUI application over that Summer to test my skills. This was the first application I ever wrote. It uses the Tkinter module of the Python standard library, to create a GUI for some really basic Computational Linguistics operations. Looking back it all seems rather poorly made, I have since learned a lot about Object-Oriented Programming, and databases, and optimization of code... but hey, it works!