Daniel Lemire receives the research achievement award from the University of Quebec for his work on simdjson.
I like crazily fast code.
Daniel Lemire is a computer science professor at the Université du Québec (TELUQ). He has also been a research officer at the National Research Council of Canada and an entrepreneur. He has written over 75 peer-reviewed publications, including more than 45 journal articles. He has held competitive research grants for the last 20 years. He serves on the program committees of leading computer science conferences (e.g., ACM CIKM, WWW, ACM WSDM, ACM SIGIR, ACM RecSys). His software is used by major corporations like Google and Facebook. During the 2016-2017 NSERC Discovery Grant competition, he received a rating of outstanding for the excellence of the researcher. In 2020, Daniel Lemire was co-chair of the NSERC computer science committee. He received the University of Quebec’s 2020 Award of Excellence for Achievement in Research (all fields) for his work on the acceleration of JSON parsing.
He programs in C, C++, Java, JavaScript, Python, Swift and Go. He works primarily in an open-source setting. You can find his software in Git, Apache Hive, Druid, Apache Kylin, Netflix Atlas, LinkedIn Pinot, Microsoft Visual Studio Team Services and so forth. Some of his compression software is used by Apache Arrow, Apache Kudu and Apache Impala. In 2012, he was rewarded by the Google Open Source Peer Bonus Program. In February 2019, he was ranked in second position among the most popular developers on GitHub and most popular in C++ (ahead of Microsoft, Google and Facebook); GitHub has 28 million developers.
He is a long-time social media user: his blog has thousands of readers and was featured on Slashdot, Reddit and Hacker News. He was one of the first Twitter users: @lemire.
He is an adjunct professor at UQAM within the computer science department where he is a member of the LATECE laboratory. He is also an adjunct professor at the University of New Brunswick within the computer science department.
He organizes regular talks open to the public in Montreal (typically in French): tribalab and technolab. He is department chair.
We offer scholarships for graduate studies in software performance for data engineering (in French).
PhD in Engineering Mathematics, 1998
École Polytechnique and Université de Montréal
MSc in Mathematics, 1995
University of Toronto
BSc in Mathematics (High Distinction), 1994
University of Toronto
I take the production of software seriously. You can find most of my software on GitHub.

Some noteworthy contributions:
Some of my blog posts and articles lead to improvements in widely used software. Here are some examples:
Techniques to measure memory-level parallelism developed on my blog have been adopted by tech journalists at sites such as anandtech.com.
Our StreamVByte compression algorithm from the article Stream VByte: Faster Byte-Oriented Integer Compression is used by Facebook Thrift and RedisLabs’ RediSeach.
The algorithm described in my article Fast Random Integer Generation in an Interval was adopted to accelerate random number generation
The algorithm described in our article Faster Base64 Encoding and Decoding using AVX2 Instructions is used within PHP (as of version 7.4).
The algorithm described in our paper Faster Population Counts using AVX2 Instructions is used by the Windows Terminal by Microsoft.
The algorithm described in our article Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries is used within the C# standard library to accelerate the Dictionary class.
You can find my work on arXiv, on Google Scholar, on DBLP, on the ACM Portal, on R Libre and elsewhere.
I regularly give industrial talks; they are often well received. My QCon San Francisco 2019 talk was outlined as a “best voted” talk with 98% of the audience giving it thumbs up; this is much higher than the average.
Mon, Oct 7, 2019, Performance Summit III (Facebook)
Mon, Oct 7, 2019, QCon San Francisco 2019
Wed, Feb 7, 2018, ODSC East 2018
Tue, Feb 7, 2017, Spark Summit East 2017
Tue, Feb 7, 2017, Spark Summit East 2017
Tue, May 10, 2016, Discoverability Summit
Parsing gigabytes of JSON per second
MaskedVByte: SIMD-accelerated VByte
Fast compressed bitmaps, widely used. (picture: Edge Earth)
We are lucky to have a fully equipped laboratory with a dedicated technician. We have a server farm that has been used worldwide for experiments in software performance (e.g., by researchers such as Agner Fog). Some of our machines have the following specifications:
We also have several workstations and space in our laboratory to explore virtual reality as a tool in data science.
I teach primarily in French and online since 2004.
Undergraduate courses:
Graduate courses:
I’m recruiting students and postdoctoral fellows for my lab. If you love writing crazily fast software and want to come to Montreal, drop me a line. Link to an impressive GitHub profile is an asset. Speaking French is an asset if you want to pursue an academic program with me. Some of my best students are women. We offer scholarships for graduate studies in software performance for data engineering (in French).
If you are a Canadian undergraduate student with at least a B average, you might be interested in coming to work with me under an NSERC Undergraduate Student Research Awards. The awards help pay for a full-time research project in our Montreal labs. The application deadlines are:
It is an ongoing competition: I can receive applications for every term. Please allow at least a week to put together an application with my help. Email me if you are interested.
If you are interested in pursuing a master in information technology full-time under my supervision in Montreal and you know some French, I take applications for NSERC Graduate Scholarships. You need to have a strong academic profile to apply. You should be a Canadian citizen or permanent resident of Canada. The deadline is December first of each year. You must plan ahead. I take applications every year. Please get in touch by email if you are interested.
If you are interested in pursuing a Ph.D. in cognitive computing full-time under my supervision in Montreal and you know some French, I take applications for NSERC graduate scholarships. You need to have a strong academic profile to apply. You should be a Canadian citizen or permanent resident of Canada. The deadline is November 1st of each year. You must plan ahead. I take applications every year. Please get in touch by email if you are interested.
I supervise graduate students at the University of Quebec (TÉLUQ and UQAM). I also co-supervise students the University of New Brunswick, at the École Polytechnique and at Concordia University.
Recent graduates:
Some alumni:
Current Ph.D. students:
Current M.Sc. students:
Recent research assistants (undergraduate):
Mentoring
Daniel Lemire receives the research achievement award from the University of Quebec for his work on simdjson.
Daniel Lemire was admitted to the Circle of Excellence of the University of Quebec
Benoît Potvin successfully defended his Ph.D. thesis.
I organize in Montreal ongoing series of workshops open to the public: the technolab workshops and the tribalab workshops.
I have served in the program committee of several international conferences such as
In 2019, I was the chair of EDA 2019 (Business Intelligence & Big Data) held in October at Montpellier, France.
In 2018, I was recognized by the journal Software: Practice and Experience as a distinguished referee for my “insightful, careful, constructive and timely reviews”.
In June 2018, I participated to the Dagstuhl Seminar 18251: Database Architectures for Modern Hardware.
I recently served on the following program committees:
I was an external referee for the following Ph.D. students:
I served as a committee member for several funding bodies:
Click on the picture for a high resolution version.