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 Aachen, Germany.

B A

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

Writing

(TODO: This section still needs styling!)

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.

Projects

Academic

Projects

Talks

Hobby

Libraries

Applications

Contributions

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

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 now, my small list of publications is hosted on my lab's webpage, not here.

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, Theano (Python), ROS (Python and C++), 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

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.
  • 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.