About Me


I'm Maximilian Golub, a Data & Applied Scientist at Microsoft AI & Advanced Architecture

I'm currently working on secret projects that are cool and neat, but can't be talked about publicly, still...

Previously, I was a Master's student at UBC under the supervision of Mieszko Lis and Guy Lemieux, where I researched ways to prune neural networks while training, enabling future accelerator that can train with reduced memory.

In the past I published a paper in SYSML 2018: Full deep neural network training on a pruned weight budget An older version is available on arXiv. This pruning technique - DropBack - achieves state of the art results in weight pruning WRN-28-10 on CIFAR-10 during training.

Things I love include field programmable gate arrays, Neural Networks, Python, automation, photography, skiing, and cars.

Right now, I'm working on learning more about efficient DNN training methods.

Field Programmable Gate Arrays

Field programmable gate arrays are cool. Really cool. If you don't know, they are devices filled with blank digital logic that can be configured with software to perform computations. Why is this cool? It can be much, much faster than using a general purpose device.

My Graduate research at UBC has focused on accerating the training of deep neural networks by reducing the memory required during training, with the aim that external memory is accessed as little as possible. The techinque for doing so is generally applicable to any device used for training deep neural networks. Watch this space for more details in the future.

My undergraduate research utilizes field programmable gate arrays to control and record data from high energy particle sensors.

In my coursework, I built a simple piplined MIPS CPU.


At Silicon Mechanics I used Python to automate the server production line at with tools to provision, stress test, and validate servers.

The entire backend stack is based around Python, with RethinkDB as a database, Cobbler to manage PXE, Logbook to track exceptions in production, and RabbitMQ to stream logs from servers currently undergoing stress testing.

On the frontend, a Bootstrap based webpage displays stats about active servers on the network, and provides an interface to control an individual server or a group of servers.

Outside of work, my graduate research was conducted with Python as well, using Chainer. Chainer is extremely easy to extend, making it a perfect choice to test wild ideas on cutting edge DNNs.

Now at Microsoft, I'm using Python everyday as a Data and Applied Scientist.


When not in front of a computer, I enjoy exploring the Pacific Northwest and taking the occasional photo.

Photography, like programming and computer architecture, relies on good composition. I have done portrait, product, and stage photography in a semi-professional capacity.

Check them out!