Hi there, my name is

Lucas Beyer

I'm a self-taught hacker and studied scientist dedicated to the creation of awesomeness
currently living, working, loving and playing in Zürich, Switzerland.
Awesomeness: noun (a) Helping robots understand the world (b) Helping humans understand deep learning.

B A

«Les études, l'arme standard du pays qu'on a du mal à faire tirer, donc on s'éduque seul.» - Alonzo

Projects

Academic

Projects

Talks

Hobby

Libraries

Applications

Contributions

I also try to contribute back to most Open-Source projects that I use.

Writing

(TODO: This is all quite old!)

Articles

Articles are lengthy writeups supposed to teach you something if you take the time to fully read them.

Snips

Snips are short, roughly screen-sized solutions to problems I encountered which I share in the hope they'll save someone time.

Curriculum Vitae

This is a modern CV: click on any section of my life to learn more about it, or expand all sections now.
For an always up-to-date list of publications, see my Google Scholar page. I also have a slightly more brief classic CV, feel free to export it as PDF.

Education

PhD Student in Computer Vision

  • Subject: Deep Learning for Computer Vision on mobile robots, focus on low annotation effort.
  • Supervised by Prof. Dr. Bastian Leibe at the VCI, RWTH Aachen University.
  • Research projects: STRANDS and SPENCER.
  • Key technologies: Deep Learning in PyTorch, Theano, Tensorflow; ROS (Python and C++), LateX, OpenCV.

PhD Student in High-Performance Computing

  • Subject: High-performance Density Functional Theory.
  • Jointly supervised by Prof. Paolo Bientinesi, PhD and Prof. Dr. Stefan Bluegel at the AICES, RWTH Aachen University and the PGI-1/IAS-1, Forschungszentrum Jülich.
  • The aim was to implement a flexible DFT simulation system which allows researchers to quickly prototype new simulations on their laptop and then run those on a supercomputer without much additional overhead.
  • I didn't finish this PhD and changed into the field of computer vision, simply because quantum physics weren't fun to me.

Dipl.Ing. Student in Computational Engineering Science

  • At RWTH Aachen University (Germany)
  • Graduated as a Dipl.Ing. with a grade of 1.3.
  • Obtained state-scholarship in the years 2010 — 2011.
  • Project thesis: Data-based modelling of protein-protein interaction, graded 1.3.
    • This involved highly optimized brute-force search for patterns as well as optimization based on genetic-algorithms.
  • Final thesis: Exploiting Graphics Accelerators for Computational Biology, graded 1.0.
    • This was about solving a generalized least-squares problem (ANOVA) for huge amounts of data on the GPU.
    • This necessitates tricks such as triple-buffered processing and making use of multiple GPUs.

Schoolkid at Athénée César Franck (Belgium)

Employment History

Intern doing research at Google, Venice, Los Angeles

  • Worked is currently ongoing, more info to follow.

AI Intern at Kindred, Toronto

  • Worked on robots learning to autonomously solve a task demonstrated by a human.
  • Got my hands dirty at all of robotics, data gathering, and learning deep models.
  • Since the startup is very secretive, there's not more to say.

Intern doing research at Google, Venice, Los Angeles

  • Worked on image-gaze: determining what people in an image are looking at.
  • Gathered and orchestrated annotation of a huge amount of data.
  • Designed, implemented and trained a complex deep network using TensorFlow.
  • Internally disseminated result and pipeline to be used in many applications.
  • Googlers can view the impressive results at go/image-gaze.

Student research assistant at AICES, RWTH Aachen University

  • Took care of a virtual reality 3D projector with glasses, sensors and 3D interaction devices.
  • Key technologies: C++, modern OpenGL, ZeroMQ, Python, Solaris.
  • The setup consisted of 8 workstations, each projecting a screen and controlled by a 9th master.
  • Wrote a library (from scratch) facilitating the use of plain OpenGL for virtual-reality.
  • Got headache whenever my math wasn't correct ☺
  • Wrote a multi-head video player.

Intern programmer at Mint medical GmbH, Heidelberg

  • Key technologies: C++, Qt, MITK (includes ITK and VTK), CMake.
  • Implemented state-of-the-art segmentation algorithm for volumetric data such as CT and MRI.
  • Incorporated into the mint Lesion™ product.

Student research assistant at LFB, RWTH Aachen University

  • Computer-assisted diagnosis for early stage pleural mesothelioma.
  • Key technologies: C++, Qt, MITK (includes ITK and VTK), OpenCL.
  • Turned research prototypes into a robust user-friendly application for oncologists.
  • See the project's website, though at time of writing the screenshots posted there are of the old research prototype, not of the end-user application!

Coach of the RWTH Aachen University ice-hockey team

  • Coached the University's competitive ice-hockey team.
  • Successfully managed up to 25 people.

Programmer at Digatron Power Electronics GmbH, Aachen

  • Worked on control systems for test and formation equipment for all kinds of batteries, ranging from batteries for mobile phones to automotive batteries to huge submarine batteries.
  • Key technologies: C++, MFC, RogueWave Stingray, .Net and MSSQL.
  • Designed and implemented an application from the ground up to the final deployment phase.
  • Designed and implemented new features in the core product.
  • Designed and implemented internal tooling.

Summer camp counselor, La Calamine

Awards

Skills and Qualifications

Programming Languages

  • Proficient in C++: more than 15 years of experience in open-source, industry and academia. In-depth knowledge of the STL, object-oriented concepts, design patterns, template metaprogramming, …
  • Proficient in Python: almost 10 years of experience in open-source and academia. Deep understanding of the LISP-y parts and, of course, duck-typing.
  • Very good knowledge of Julia, {Java|Coffee}script and HTML+CSS.
  • Past practical experience with Go, PHP, D, Clojure, Mathematica, Prolog, Matlab, C# and unfortunately Java and M[Sy]SQL.

Frameworks and Tools

These are tools, libraries and frameworks I have extensive practical experience using and actually enjoy(ed) using, grouped by domain. The many tools I've used only once or found painful are not listed.

  • Tooling: Vim, Git, SVN, CMake, Make, gcc, msvc++, valgrind, bash, fish, tmux, …
  • Gamedev: OpenGL (modern, GLSL), SDL, SFML, OpenAL, Löve, blender.
  • Number crunching: BLAS, LAPACK, OpenMP, CUDA, OpenCL, NumPy, Theano, TensorFlow, PyTorch.
  • Application development: Qt, MFC, .Net.
  • Webdev: Docker, CherryPy, MongoDB, MySQL (MariaDB), Nginx, Apache.
  • Most awesomest: Jupyter (ex IPython notebook).

Natural Languages

  • French and German: Mother tongues.
  • English: Proficient (RWTH Aachen University, CEFR level C1, Grade 1.7).
  • Dutch: Basic spoken and written knowledge.
  • Thai: Basic spoken knowledge.

Teaching

Teaching Assistant for "Advanced Machine Learning."

  • At RWTH Aachen University, Germany.
  • Employed by the Computer Vision research group, part of VCI.
  • Co-designed the deep-learning part from scratch.

Seminar Organizer for "Image Processing."

  • At RWTH Aachen University, Germany.
  • Employed by the Computer Vision research group, part of VCI.
  • Guided students through understanding and presenting the basics of image processing and computer vision.
  • With the help of Alexander Hermans.

Seminar Co-organizer for "3D Computer Vision with Kinect."

  • At RWTH Aachen University, Germany.
  • Employed by the Computer Vision research group, part of VCI.
  • Guided students through a wide variety of recent research papers about the usage of 3D cameras.
  • Together with Alexander Hermans and Umer Rafi.

Seminar Co-organizer for "Topics in High-Performance and Scientific Computing."

  • At RWTH Aachen University, Germany.
  • Employed by the HPAC research group, part of AICES.
  • Chose seminar topics and guided students together with Prof. Paolo Bientinesi, PhD.

Teaching Assistant for "Languages for Scientific Computing."

  • At RWTH Aachen University, Germany.
  • Employed by the HPAC research group, part of AICES.
  • Taught students about:
    • Prototyping numerical matrix-computations in MATLAB.
    • Symbolic, functional and logic programming in Mathematica.
    • Python and NumPy as an open alternative to MATLAB.
    • Number-crunching in C, including the low-level details of floating-points.

Tutor for "Systematic Software Engineering."

  • At RWTH Aachen University, Germany.
  • Employed by the SWC research group.
  • Taught students how to design and implement robust and maintainable software.
  • Topics ranged from requirements analysis (use-case diagrams) to modelling UML class-diagrams to various kinds of testing, down to actually writing the code.

Tutor for "Simulation technology for mechanical engineers."

  • At RWTH Aachen University, Germany.
  • Employed by both the AVT and the CATS research groups.
  • Taught students to describe the dynamics of mechanical and flow systems.
  • Taught students to simulate those in both MATLAB and OpenFOAM.

Tutor for "Simulation technology 2."

  • At RWTH Aachen University, Germany.
  • Employed by the AVT research group.
  • Taught students to obtain partial differential equations describing the dynamics of physical systems.
  • Taught students to implement those PDEs in both MATLAB and Simulink.

Tutor for "Datastructures and algorithms."

  • At RWTH Aachen University, Germany.
  • Employed by the Computer Graphics and Multimedia research group.
  • Explained all kinds of, well, datastructures and algorithms to students.
  • Topics ranged from lists/trees/graphs to geometric algorithms like convex hulls and segment intersections.

Tutor for "Introduction to programming."

  • At RWTH Aachen University, Germany.
  • Employed by the Programming Languages and Verification research group.
  • Taught programming to students using Java☹ and C++.
  • Topics covered basics as well as object-oriented and functional programming and recursion.

Contact

You can contact me by appending gmail's domain to this hostname, or running the following Julia statement:

join(["lucasb", "eyer", "be", join(["gmail", "com"], '.')], '.', '\u40')

Or, if you're more of a Pythonista (or just lazy), the following one is pretty similar:

'.'.join(['lucasb', 'eyer', '\x40'.join(['be', 'gmail']), 'com'])

In case you wonder what I look like, so we can sit down for a (Belgian) beer should we ever encounter, this is me.