About Me


I'm Maximilian Golub, an associate software engineer at Mercedes-Benz Research and Development

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

Previously, I was a Master's student at UBC under the supervision of Mieszko Lis and Guy Lemieux, where I researched ways to accelerate the training and inference of reduced precision neural networks using FPGAs while reducing memory requirements by up to 10x.

I recently submitted a paper to SYSML 2018 called "DropBack: Continuous Pruning During Training", which can reduce the runtime memory consumption of deep neural networks while training, you can find it here, or on arXiv. Using DropBack, I achieved state of the art results in pruning WRN-28-10 on CIFAR-10.

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 Generative Adversarial Networks and Long Term Short Term Networks.

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.


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 is conducted in Python as well, using Chainer. Chainer is extremely easy to extend, making it a perfect choice to test wild ideas on cutting edge DNNs.


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!