Brief Bio


a screencap of IBM Cassette BASIC
pictured: IBM Cassette BASIC (source)

I’m a product of the generation where home PCs didn’t have hard-drives yet, couldn’t run very many games, and, when you turned them on without inserting a diskette (lol), they booted into an instance of IBM Cassette BASIC that was built into their ROM. So out of what must have been truly mind-bending levels of boredom, I started teaching myself to program when I was about 8 years old.

I got my first job as a software developer straight out of high school, in 1994, at Intel. I ended up working in the industry for a little over a decade, until around 2005. During that time span, I developed primarily in C, C++, Java, and Python.

In 2005, I left the industry for academia, where I worked as a theoretical linguist. I earned my PhD in 2011, and served as a faculty member from 2012 to 2022, most recently as an Associate Professor (with tenure) at the University of Maryland, from 2017 to 2022.

What’s perhaps less obvious from this description is that, even during my time in academia, I continued to hone my programming skills, mostly by concocting a nearly endless stream of software projects for myself to do for fun, and by keeping up with new programming languages & technologies as they emerged. I never really stopped being a programmer. I just acquired a second profession for a while :-)


As far as formal education goes: I have a Bachelors degree from Tel Aviv University (2004), where I double-majored in Computer Science and in Linguistics; a Masters degree in Linguistics from Tel Aviv University (2006); and a PhD in Linguistics from the Massachusetts Institute of Technology (2011).