Yotam's Corner of the Web

PhD candidate, Deep Learning enthusiast, experienced software engineer, parent, and functional programming geek.


I'm a Computer Science PhD candidate at The Johns Hopkins University.

I've been spending most of my time recently working on different deep learning projects: GANs (Generative Adversarial Networks), Reinforcement Learning, auto-encoders, and just general convolutional networks. I'm currently studying under Dr. Austin Reiter.

I tolerate Keras but I really love PyTorch! Tensorboard is cool though.

Earlier in my PhD journey, I focused on distributed systems and programming languages. I helped build a unique, distributed programming language, with which I proceeded to create a highly efficient, specialized, distributed data-processing framework. This was also when I fell in love with functional programming languages such as OCaml and Haskell. I spent many a night poring over the internals of the OCaml compiler, looking for ways to improve my own work.

Going even further back, I worked for several years as a software engineer on embedded systems, both at low-level drivers and at the application level. I therefore have plenty of experience with design, dealing with large codebases, etc.

Though my current focus is on machine learning, reading the above should have made it clear that I'm interested in the intersection, but perhaps more accurately, the union of machine learning, systems design and programming languages. I would love to do machine learning in a typed functional language like OCaml (see the Owl library for a good start) rather than in the untyped chaos of python. I'm also fascinated by Garbage Collection in functional languages.

I was a part of the Data Management Systems Lab (DaMSL).

I can be reached at ybarnoy1(at)cs.jhu.edu, or just yotambarnoy(at)gmail.com.

You can take a look at my résumé, my Github account, or my LinkedIn page

I taught 3 semesters of CS120 Intermediate Programming, developing curriculum and homework assignments. The class taught C and C++ with a focus on good software engineering practices. Teaching these classes has been one of the most pleasurable experiences of my PhD.

While teaching CS120, I developed a simple web app to assist with teaching and receiving feedback from a class of shy people. The app was developed using the Eliom framework in OCaml.

I also TAed many classes, including computer vision, artificial intelligence, database system internals, parallel programming, and security vulnerability analysis.

Computer vision in particular involved the introduction of a new deep learning assignment to the curriculum. I helped design the assignment and helped every student run it using GPU resources on Google Cloud.

I'm currently working on a deep learning project with Dr. Austin Reiter.

I worked on the Mosaic project with Dr. Yanif Ahmad.

Before my PhD, I contributed to the open source ScummVM project, specifically working on ports to mobile devices.