a screencap of IBM Cassette BASIC
pictured: IBM Cassette BASIC

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 at Intel in 1994. In total, I ended up working in the industry for a little over a decade, developing primarily in C, Java, and Python at the time.

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 therefore 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 in Computer Science & Linguistics from Tel Aviv University (2004), a Masters degree in Linguistics from Tel Aviv University (2006), and a PhD in Linguistics from the Massachusetts Institute of Technology (2011).