Marcus Holland-Moritz

Freelance Consultant Software & Hardware, formerly Meta, Last.fm

Berlin, Berlin, Germany

About

I am an experienced software and hardware engineer with a broad range of knowledge covering embedded systems to large distributed systems. With over 25 years of experience in C, more than 20 years in C++, more than 10 years in Python, and as a former Perl core developer, I bring a wealth of experience to any project. I am a passionate code reviewer and mentor and have interviewed over 100 candidates for coding, architecture/design, and behavioural skills. I am highly skilled with performance analysis and debugging tools, including gdb, asan, tsan, ubsan, compiler explorer, perf, valgrind, and jemalloc. I have designed and implemented services that handle tens of billions of non-trivial queries per day, running on hundreds of machines across multiple data centres. I am also the creator of one of the fastest and best compressing read-only file systems with over 1000 stars on Github. I thrive in environments where I can share my experience, apply my skills to new challenges, and learn from those around me on a daily basis.

Experience

  • Freelance Consultant at Freelance
    Jan 2019 - Present · 7 yrs 7 mos

    • Supported clients with a wide range of software development tasks, from embedded bootloaders to cross-platform UI tools • Hardware development from the initial requirements, providing schematics, PCB layouts and tested/calibrated prototypes • Regular code and design reviews • Provided designs for secure authentication/communication in embedded systems • Most of the software development was done in C++ and Python

  • Perl Module Author at CPAN
    Aug 2001 - Present · 25 yrs

    • Wrote and maintain several Perl modules, two of which ship with the Perl core distribution • Convert::Binary::C allows for very fast and highly configurable packing and unpacking of data based on C type definitions directly from C source code; it has in the past helped people to things like recovering data from old mainframes and porting the data to a new architecture See https://metacpan.org/author/MHX for details.

  • Perl Core Developer at The Perl Foundation
    Jun 2003 - Oct 2021 · 18 yrs 5 mos

    • Closely followed and contributed to Perl core development • Implemented byte-order modifiers for pack/unpack in Perl 5.10 • Maintained two core modules (Devel::PPPort and IPC::SysV) for several years • Grant manager for the TPF from 2010 until 2021

  • Software Engineer at Facebook
    Feb 2013 - Aug 2018 · 5 yrs 7 mos

    • One of the first external engineering hires for Facebook's London office • Worked on search infrastructure, spell correction and testing frameworks • Conceived a performance/latency testing framework for the spell correction algorithm and dramatically reduced query latency while not degrading performance • Designed, implemented and shipped a spell correction service that would ultimately handle tens of billions of queries per day • Designed, implemented and shipped infrastructure for personalized spell corrections for billions of users without degrading latency, but significantly improving both precision and recall • Led the infrastructure side of an effort to internationalize spell correction and language models used for posts search, successfully moving from English only to supporting more than 100 languages • Replaced the language model data structure used for prefix search, reducing memory usage by more than 20x, improving multi-threaded performance by up to 4x, and reducing model load time from tens of seconds to basically zero • Contributed to Facebook's open source folly and thrift libraries • Gave talks on infrastructure and C++ to both new hires and experienced engineers • Mentored both new hires and junior engineers • Interviewed more than 100 candidates for coding, architecture/design, and behavioral skills • On-call for search infrastructure

  • C++ Software Engineer at Last.fm
    Jan 2011 - Jan 2013 · 2 yrs 1 mo

    • Maintained C++ backend services for personalised radio, playlisting and recommendations • Designed and implemented a multi-language build system in Python and an object-orient service framework in C++, both of which were eventually used by most of Last.fm's backend services • Designed and implemented a high-performance multi-threaded C++ service for real-time event stream analysis, capable of handling hundreds of thousands of simultaneous client connections on a single server • Designed and implemented a playlisting service for personal music collections