Azim Afroozeh successfully defended his Ph.D. thesis.
I like crazily fast code.
Daniel Lemire ranks in the top 2% of scientists worldwide according to the Stanford University/Elsevier’s 2025 ranking. He is also editor of the journal Software: Practice and Experience, a long-established (1971) journal where many crucial results were published (e.g., articles by Knuth and Bentley). Daniel Lemire’s blog is one of the top 50 most popular blogs on Hacker News, the standard tech news aggregation site. He wrote several books. He serves on the program committees of leading computer science conferences.
You can find his software in the major Web browsers, in Git, in the standard libraries of major programming languages, and so forth. 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). He is among the 0.0006% most followed programmers in the world on GitHub; GitHub has over 100 million developers.
In 2020 and 2021, 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 was admitted twice to the circle of excellence of the University of Quebec.
Interests
- Data Indexing
- Data Engineering
- Software Performance
- Vectorization (SIMD)
Education
-
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 (St. Michael's college)
Software
“Most Computer Science professors are not good programmers. There are exceptions, like Daniel Lemire, but they are rare.” (Casey Muratori)
I take the production of software seriously. You can find most of my software on GitHub.

Some noteworthy contributions:
- The Ada library might be the fastest URL parser in the world. Ada has improved the performance of the popular JavaScript environment Node.js: Since Node.js 18, a new URL parser dependency was added to Node.js — Ada. This addition bumped the Node.js performance when parsing URLs to a new level. Some results could reach up to an improvement of 400%. As a regular user, you may not use it directly. But if you use an HTTP server then it’s very likely to be affected by this performance improvement. (State of Node.js Performance 2023) Our parsing library was also adopted by Cloudflare: It delivers a significantly faster implementation of not only URL but URLPattern and makes even more improvements on spec compliance. It is also part of Redpanda, Zoom, Telegram, and other important systems. The library has advanced features such as support for URLPattern.
- simdutf: Unicode operations several times faster than conventional functions.
- fast_float: parse floating-point numbers four times faster than conventional functions (strtod).
- simdjson: the first JSON parser to run at speeds of gigabytes per second with full validation using a single core on a commodity processor. The simdjson library is used by Facebook, by Shopify, by Intel, by Microsoft, by Apache Doris and by several other important systems such as Node.js. The results of this work are used to speed up the Blink HTML engine which powers the Google Chrome and Microsoft Edge browsers as well as the WebKit engine which powers the Safari browser. The parsing JSON strategy was adopted by the Bun JavaScript engine at Anthropic in 2026 and later by the Deno JavaScript engine.
- Our binary fuse filters are used by the X platform for fast filtering.
- Roaring bitmaps have been widely adopted: Google Procella (YouTube’s database engine), Apache Lucene, Solr, Elasticsearch, Metamarkets’ Druid, Apache Spark, Apache Hive, Apache Tez, Apache CarbonData, Netflix Atlas, LinkedIn Pinot, Pilosa, Microsoft Visual Studio Team Services (VSTS), eBay’s Apache Kylin, and so forth. Companies like Quantcast and Seek have chosen Roaring bitmaps for their performance needs. When Uber switched to Apache Pinot and its Roaring indexes, it saved 2 million dollars per year in infrastructure cost, and improved by a factor of three the page load delay.
- JavaFastPFOR and FastPFor have been included in Terrier, Apache Parquet, Apache Lucene, and Apache NiFi.
- EWAHBoolArray and JavaEWAH have been included in Git (i.e., GitHub), jGit, Apache Hive, and so forth. JavaEWAH is part of standard Linux distributions like Ubuntu and Red Hat. GitHub engineers wrote several articles on their application of EWAH bitmaps to accelerate the processing of code archives. The Git documentation covers the EWAH format.
Some of my blog posts led to improvements in widely used software.
- My blog post Accelerating PHP hashing by “unoptimizing” it led to an optimization of the PHP hash function (starting with PHP 7.4).
- My blog post A fast alternative to the modulo reduction describes a technique used by TensorFlow, by Facebook RocksDB, by Google netstack and by the Bitcoin core.
- My blog post Computing the number of digits of an integer even faster has helped optimize Oracle TruffleRuby and Microsoft .NET.
- My blog post Visiting all values in an array exactly once in random order is quoted in the source code of the Swift compiler.
- Techniques to measure memory-level parallelism developed on my blog have been adopted by tech journalists at sites such as anandtech.com.
- My blog post Fastest way to compute the greatest common divisor motivated a substantial improvement to the LLVM std::gcd function.
- In 2025, we multiplied the base64 encoding speed in the popular OpenSSL library for AVX2 capable processors by three to four times.
Some of our research articles have also had notable impacts.
- Our accelerated number parser from the article Number Parsing at a Gigabyte per Second has been adopted by the C#, Go and Rust programming languages, Apache Arrow, Yandex ClickHouse, Microsoft LightGBM, FasterXML’s Jackson and other major projects where it multiplied the number-parsing speed. The Go 1.16 release notes state that “ParseFloat now uses the Eisel-Lemire algorithm, improving performance by up to a factor of 2. This can also speed up decoding textual formats like encoding/json.” The Rust 1.55 release notes state that the “standard library’s implementation of float parsing has been updated to use the Eisel-Lemire algorithm, which brings both speed improvements and improved correctness”. It is part of the LLVM libc standard library. It has also been adopted by Microsoft in C# as of .NET7. It is part of the standard C++ library under Linux (as of GCC 12). It is part of the standard Mojo library. The Google Abseil library also adopted our approach. It is also part of WebKit, the engine of Safari, Apple’s web browser. It was also adopted by Chromium, the engine behind Google Chrome and Microsoft Edge. The popular in-memory database engine Redis also adopted our approach which improved the tail latency by 30% in some cases. It is also part of MySQL, Boost JSON, Blender, etc.
- Our StreamVByte compression algorithm from the article Stream VByte: Faster Byte-Oriented Integer Compression is used by Facebook Thrift, StarRocks and RedisLabs’ RediSearch.
- The algorithm described in my article Fast Random Integer Generation in an Interval was adopted to accelerate random number generation
- by the standard C++ Linux library (GNU libstdc++) to accelerate the std::uniform_int_distribution function (as of GNU GCC 11),
- by the Microsoft standard C++ library,
- by Apache Commons,
- by the Linux kernel,
- by the FreeBSD libc library,
- by Google’s Abseil C++ Common Libraries,
- by the Swift standard library,
- by the Go language,
- by the Julia language,
- by the C# runtime,
- by the Zig language,
- and by Numpy (Python).
- The algorithm described in our article Faster Base64 Encoding and Decoding using AVX2 Instructions is used within PHP (as of version 7.4) and in the C# standard library. The algorithm described in our article Base64 encoding and decoding at almost the speed of a memory copy is used within OpenJDK (Java) to accelerate java/util/Base64, in the C# standard library, in the Mojo standard library and in the Safari browser. OpenSSL’s base64 encoder relies on our work.
- The algorithm described in our paper Faster Population Counts using AVX2 Instructions is used by the Windows Terminal.
- 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
Dictionaryclass and to accelerate virtual function calls. - Our innovative approach is also used within the Go runtime: it reportedly made several Go programs run 1.5% faster.
- It is also used in the unordered map Boost implementation where it contributes to the high performance.
- The algorithm described in our article Validating UTF-8 In Less Than One Instruction Per Byte is used by the PHP interpreter, in Oracle GraalVM and Google Fuchsia, and in many important systems. Our C++ library simdutf which contains this algorithm as well as many others is part of major systems such as Node.js, Bun and WebKit (the web engine behind Safari). The adoption of the simdutf library by the popular Node.js JavaScript runtime led to a significant performance gain: Decoding and Encoding becomes considerably faster than in Node.js 18. With the addition of simdutf for UTF-8 parsing the observed benchmark, results improved by 364% (an extremely impressive leap) when decoding in comparison to Node.js 16. (State of Node.js Performance 2023) It is also part of the Mojo programming language runtime library where it made UTF-8 validation 10 times faster.
- The GitHub search team has identified my work as fundamental to their own.
- The article On-demand JSON: A better way to parse documents? was the most read article of the last 5 years at Software: Practice and Experience (2024).
- The algorithm from the article Batched Ranged Random Integer Generation has been adopted by the Apache Commons RNG library. It is also under consideration for the Microsoft standard C++ library, where it would multiply by a factor of five the speed of the function
std::shuffle.
Recent Publications
You can find my work on arXiv, on Google Scholar, on DBLP, on the ACM Portal, on R Libre and elsewhere.
-
Robert Clausecker, Daniel LemireFixing ill-formed UTF-16 strings with SIMD instructionsSoftware: Practice and Experience, 2026
Details — Fixing ill-formed UTF-16 strings with SIMD instructions PDF (arXiv) — Fixing ill-formed UTF-16 strings with SIMD instructions DOI — Fixing ill-formed UTF-16 strings with SIMD instructions
-
Jaël Champagne Gareau, Daniel LemireConverting an Integer to a Decimal String in Under Two NanosecondsSoftware: Practice and Experience 56 (8), 2026
Details — Converting an Integer to a Decimal String in Under Two Nanoseconds PDF (arXiv) — Converting an Integer to a Decimal String in Under Two Nanoseconds Code — Converting an Integer to a Decimal String in Under Two Nanoseconds
-
Jaël Champagne Gareau, Daniel LemireConverting Binary Floating-Point Numbers to Shortest Decimal Strings: An Experimental ReviewSoftware: Practice and Experience 56 (4), 2026
Details — Converting Binary Floating-Point Numbers to Shortest Decimal Strings: An Experimental Review PDF — Converting Binary Floating-Point Numbers to Shortest Decimal Strings: An Experimental Review Code — Converting Binary Floating-Point Numbers to Shortest Decimal Strings: An Experimental Review
-
Robert Clausecker, Daniel Lemire, Florian SchintkeFaster Positional-Population Counts for AVX2, AVX-512, and ASIMDConcurrency and Computation: Practice and Experience 37 (27-28), 2025
Details — Faster Positional-Population Counts for AVX2, AVX-512, and ASIMD PDF (arXiv) — Faster Positional-Population Counts for AVX2, AVX-512, and ASIMD Code — Faster Positional-Population Counts for AVX2, AVX-512, and ASIMD
-
Daniel LemireScanning HTML at Tens of Gigabytes per Second on ARM ProcessorsSoftware: Practice and Experience 55 (7), 2025
Details — Scanning HTML at Tens of Gigabytes per Second on ARM Processors PDF (arXiv) — Scanning HTML at Tens of Gigabytes per Second on ARM Processors Code — Scanning HTML at Tens of Gigabytes per Second on ARM Processors
-
Jeroen Koekkoek, Daniel LemireParsing Millions of DNS Records per SecondSoftware: Practice and Experience 55 (4), 2025
Details — Parsing Millions of DNS Records per Second PDF (arXiv) — Parsing Millions of DNS Records per Second Code — Parsing Millions of DNS Records per Second
-
Nevin Brackett-Rozinsky, Daniel LemireBatched Ranged Random Integer GenerationSoftware: Practice and Experience 55 (1), 2025
Details — Batched Ranged Random Integer Generation PDF (arXiv) — Batched Ranged Random Integer Generation Code — Batched Ranged Random Integer Generation
-
John Keiser, Daniel LemireOn-Demand JSON: A Better Way to Parse Documents?Software: Practice and Experience 54 (6), 2024
Details — On-Demand JSON: A Better Way to Parse Documents? PDF (arXiv) — On-Demand JSON: A Better Way to Parse Documents? Code — On-Demand JSON: A Better Way to Parse Documents?
-
Yagiz Nizipli, Daniel LemireParsing Millions of URLs per SecondSoftware: Practice and Experience 54 (5), 2024
Details — Parsing Millions of URLs per Second PDF (arXiv) — Parsing Millions of URLs per Second Code — Parsing Millions of URLs per Second
-
Daniel LemireExact Short Products From Truncated MultipliersComputer Journal 67 (4), 2024
Details — Exact Short Products From Truncated Multipliers PDF (arXiv) — Exact Short Products From Truncated Multipliers Code — Exact Short Products From Truncated Multipliers
-
Robert Clausecker, Daniel LemireTranscoding Unicode Characters with AVX-512 InstructionsSoftware: Practice and Experience 53 (12), 2023.
Details — Transcoding Unicode Characters with AVX-512 Instructions PDF (arXiv) — Transcoding Unicode Characters with AVX-512 Instructions Code — Transcoding Unicode Characters with AVX-512 Instructions
-
Noble Mushtak, Daniel LemireFast Number Parsing Without FallbackSoftware: Practice and Experience 53 (7), 2023
Details — Fast Number Parsing Without Fallback PDF (arXiv) — Fast Number Parsing Without Fallback
-
Thomas Mueller Graf, Daniel LemireBinary Fuse Filters: Fast and Smaller Than Xor FiltersJournal of Experimental Algorithmics 27, 2022
Details — Binary Fuse Filters: Fast and Smaller Than Xor Filters PDF (arXiv) — Binary Fuse Filters: Fast and Smaller Than Xor Filters Code — Binary Fuse Filters: Fast and Smaller Than Xor Filters
-
Daniel Lemire, Wojciech MułaTranscoding Billions of Unicode Characters per Second with SIMD InstructionsSoftware: Practice and Experience 52 (2), 2022
Details — Transcoding Billions of Unicode Characters per Second with SIMD Instructions PDF (arXiv) — Transcoding Billions of Unicode Characters per Second with SIMD Instructions Code — Transcoding Billions of Unicode Characters per Second with SIMD Instructions
-
Daniel LemireUnicode at Gigabytes per SecondSPIRE 2021: String Processing and Information Retrieval
Details — Unicode at Gigabytes per Second PDF (arXiv) — Unicode at Gigabytes per Second Code — Unicode at Gigabytes per Second
-
Daniel Lemire, Colin Bartlett, Owen KaserInteger Division by Constants: Optimal BoundsHeliyon 7 (6), 2021
Details — Integer Division by Constants: Optimal Bounds PDF (arXiv) — Integer Division by Constants: Optimal Bounds
-
Marcus D. R. Klarqvist, Wojciech Muła, Daniel LemireEfficient Computation of Positional Population Counts Using SIMD InstructionsConcurrency and Computation: Practice and Experience 33 (17), 2021
Details — Efficient Computation of Positional Population Counts Using SIMD Instructions PDF (arXiv) — Efficient Computation of Positional Population Counts Using SIMD Instructions Code — Efficient Computation of Positional Population Counts Using SIMD Instructions
-
Daniel LemireNumber Parsing at a Gigabyte per SecondSoftware: Practice and Experience 51 (8), 2021
Details — Number Parsing at a Gigabyte per Second PDF (arXiv) — Number Parsing at a Gigabyte per Second Code — Number Parsing at a Gigabyte per Second
-
John Keiser, Daniel LemireValidating UTF-8 In Less Than One Instruction Per ByteSoftware: Practice and Experience 51 (5), 2021
Details — Validating UTF-8 In Less Than One Instruction Per Byte PDF (arXiv) — Validating UTF-8 In Less Than One Instruction Per Byte Code — Validating UTF-8 In Less Than One Instruction Per Byte
-
Thomas Mueller Graf, Daniel LemireXor Filters: Faster and Smaller Than Bloom and Cuckoo FiltersJournal of Experimental Algorithmics 25 (1), 2020
Details — Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters PDF (arXiv) — Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters Code — Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters
-
Wojciech Muła, Daniel LemireBase64 encoding and decoding at almost the speed of a memory copySoftware: Practice and Experience 50 (2), 2020
Details — Base64 encoding and decoding at almost the speed of a memory copy PDF (arXiv) — Base64 encoding and decoding at almost the speed of a memory copy Code — Base64 encoding and decoding at almost the speed of a memory copy
-
Geoff Langdale, Daniel LemireParsing Gigabytes of JSON per SecondVLDB Journal 28 (6), 2019
Details — Parsing Gigabytes of JSON per Second PDF (arXiv) — Parsing Gigabytes of JSON per Second Code — Parsing Gigabytes of JSON per Second
-
Daniel LemireFast Random Integer Generation in an IntervalACM Transactions on Modeling and Computer Simulation 29 (1), 2019
Details — Fast Random Integer Generation in an Interval PDF (arXiv) — Fast Random Integer Generation in an Interval Video — Fast Random Integer Generation in an Interval Code — Fast Random Integer Generation in an Interval
-
Daniel Lemire, Owen Kaser, Nathan KurzFaster Remainder by Direct Computation: Applications to Compilers and Software LibrariesSoftware: Practice and Experience 49 (6), 2019
Details — Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries PDF (arXiv) — Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries Code — Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries
-
Daniel Lemire, Melissa E. O’NeillXorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for LinearityComputational and Applied Mathematics 350, 2019
Details — Xorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for Linearity PDF (arXiv) — Xorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for Linearity Code — Xorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for Linearity
-
Wojciech Muła, Daniel LemireFaster Base64 Encoding and Decoding using AVX2 InstructionsACM Transactions on the Web 12 (3), 2018
Details — Faster Base64 Encoding and Decoding using AVX2 Instructions PDF (arXiv) — Faster Base64 Encoding and Decoding using AVX2 Instructions Code — Faster Base64 Encoding and Decoding using AVX2 Instructions
-
Daniel Lemire, Owen Kaser, Nathan Kurz, Luca Deri, Chris O’Hara, François Saint-Jacques, Gregory Ssi-Yan-KaiRoaring Bitmaps: Implementation of an Optimized Software LibrarySoftware: Practice and Experience 48 (4), 2018
Details — Roaring Bitmaps: Implementation of an Optimized Software Library PDF (arXiv) — Roaring Bitmaps: Implementation of an Optimized Software Library Code — Roaring Bitmaps: Implementation of an Optimized Software Library
-
Edmon Begoli, Jesús Camacho Rodríguez, Julian Hyde, Michael J. Mior, Daniel LemireApache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data SourcesSIGMOD'18, 2018
Details — Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources PDF (arXiv) — Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources Code — Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources
-
Wojciech Muła, Nathan Kurz, Daniel LemireFaster Population Counts Using AVX2 InstructionsComputer Journal 61 (1), 2018
Details — Faster Population Counts Using AVX2 Instructions PDF (arXiv) — Faster Population Counts Using AVX2 Instructions Code — Faster Population Counts Using AVX2 Instructions
-
Antonio Badia, Daniel LemireOn Desirable Semantics of Functional Dependencies over Databases with Incomplete InformationFundamenta Informaticae 158 (4), 2018
Details — On Desirable Semantics of Functional Dependencies over Databases with Incomplete Information PDF (arXiv) — On Desirable Semantics of Functional Dependencies over Databases with Incomplete Information
-
Daniel Lemire, Nathan Kurz, Christoph RuppStream VByte: Faster Byte-Oriented Integer CompressionInformation Processing Letters 130, 2018
Details — Stream VByte: Faster Byte-Oriented Integer Compression PDF (arXiv) — Stream VByte: Faster Byte-Oriented Integer Compression Code — Stream VByte: Faster Byte-Oriented Integer Compression
-
Daniel Lemire, Christoph RuppEfficient Integer-Key Compression in a Key-Value Store using SIMD InstructionsInformation Systems 66, 2017
Details — Efficient Integer-Key Compression in a Key-Value Store using SIMD Instructions PDF (arXiv) — Efficient Integer-Key Compression in a Key-Value Store using SIMD Instructions Code — Efficient Integer-Key Compression in a Key-Value Store using SIMD Instructions
-
Dmytro Ivanchykhin, Sergey Ignatchenko, Daniel LemireRegular and almost universal hashing: an efficient implementationSoftware: Practice and Experience 47 (10), 2017
Details — Regular and almost universal hashing: an efficient implementation PDF (arXiv) — Regular and almost universal hashing: an efficient implementation Code — Regular and almost universal hashing: an efficient implementation
-
Samy Chambi, Daniel Lemire, Owen Kaser, Robert GodinBetter bitmap performance with Roaring bitmapsSoftware: Practice and Experience 46 (5), 2016
Details — Better bitmap performance with Roaring bitmaps PDF (arXiv) — Better bitmap performance with Roaring bitmaps Slides — Better bitmap performance with Roaring bitmaps Code — Better bitmap performance with Roaring bitmaps Project — Better bitmap performance with Roaring bitmaps
-
Owen Kaser, Daniel LemireCompressed bitmap indexes: beyond unions and intersectionsSoftware: Practice and Experience 46 (2), 2016
Details — Compressed bitmap indexes: beyond unions and intersections PDF (arXiv) — Compressed bitmap indexes: beyond unions and intersections Code — Compressed bitmap indexes: beyond unions and intersections
-
Daniel Lemire, Gregory Ssi-Yan-Kai, Owen KaserConsistently faster and smaller compressed bitmaps with RoaringSoftware: Practice and Experience 46 (11), 2016
Details — Consistently faster and smaller compressed bitmaps with Roaring PDF (arXiv) — Consistently faster and smaller compressed bitmaps with Roaring Slides — Consistently faster and smaller compressed bitmaps with Roaring Code — Consistently faster and smaller compressed bitmaps with Roaring Project — Consistently faster and smaller compressed bitmaps with Roaring
-
Daniel Lemire, Owen KaserFaster 64-bit universal hashing using carry-less multiplicationsJournal of Cryptographic Engineering 6(3), 2016
Details — Faster 64-bit universal hashing using carry-less multiplications PDF (arXiv) — Faster 64-bit universal hashing using carry-less multiplications Code — Faster 64-bit universal hashing using carry-less multiplications
-
Daniel Lemire, Leonid Boytsov, Nathan KurzSIMD Compression and the Intersection of Sorted IntegersSoftware: Practice and Experience 46 (6), 2016
Details — SIMD Compression and the Intersection of Sorted Integers PDF (arXiv) — SIMD Compression and the Intersection of Sorted Integers Slides — SIMD Compression and the Intersection of Sorted Integers Code — SIMD Compression and the Intersection of Sorted Integers
-
Wayne Xin Zhao, Xudong Zhang, Daniel Lemire, Dongdong Shan, Jian-Yun Nie, Hongfei Yan, Ji-Rong WenA General SIMD-based Approach to Accelerating Compression AlgorithmsACM Transactions on Information Systems 33 (3), 2015
Details — A General SIMD-based Approach to Accelerating Compression Algorithms PDF (arXiv) — A General SIMD-based Approach to Accelerating Compression Algorithms
-
Adina Crainiceanu, Daniel LemireBloofi: Multidimensional Bloom FiltersInformation Systems 54, 2015
Details — Bloofi: Multidimensional Bloom Filters PDF (arXiv) — Bloofi: Multidimensional Bloom Filters Code — Bloofi: Multidimensional Bloom Filters
-
Daniel Lemire, Leonid BoytsovDecoding billions of integers per second through vectorizationSoftware: Practice & Experience 45 (1), 2015
Details — Decoding billions of integers per second through vectorization PDF (arXiv) — Decoding billions of integers per second through vectorization Slides — Decoding billions of integers per second through vectorization Code — Decoding billions of integers per second through vectorization
-
Antonio Badia, Daniel LemireFunctional dependencies with null markersComputer Journal 58 (5), 2015
Details — Functional dependencies with null markers PDF (arXiv) — Functional dependencies with null markers
-
Xiaodan Zhu, Peter Turney, Daniel Lemire, Andre VellinoMeasuring academic influence: Not all citations are equalJournal of the Association for Information Science and Technology 66 (2), 2015
Details — Measuring academic influence: Not all citations are equal PDF (arXiv) — Measuring academic influence: Not all citations are equal Dataset — Measuring academic influence: Not all citations are equal
-
Jeff Plaisance, Nathan Kurz, Daniel LemireVectorized VByte DecodingInternational Symposium on Web Algorithms 2015, 2015
Details — Vectorized VByte Decoding PDF (arXiv) — Vectorized VByte Decoding Slides — Vectorized VByte Decoding Code — Vectorized VByte Decoding
-
Owen Kaser, Daniel LemireStrongly universal string hashing is fastComputer Journal 57 (11), 2014
Details — Strongly universal string hashing is fast PDF (arXiv) — Strongly universal string hashing is fast Code — Strongly universal string hashing is fast
-
Hazel Webb, Owen Kaser, Daniel LemireDiamond DicingData & Knowledge Engineering 86, 2013
-
Daniel Lemire, Owen Kaser, Eduardo GutarraReordering Rows for Better Compression: Beyond the Lexicographic OrderACM Transactions on Database Systems 37 (3), 2012
Details — Reordering Rows for Better Compression: Beyond the Lexicographic Order PDF (arXiv) — Reordering Rows for Better Compression: Beyond the Lexicographic Order Slides — Reordering Rows for Better Compression: Beyond the Lexicographic Order Code — Reordering Rows for Better Compression: Beyond the Lexicographic Order Code 2 — Reordering Rows for Better Compression: Beyond the Lexicographic Order Code 3 — Reordering Rows for Better Compression: Beyond the Lexicographic Order
-
Daniel LemireThe universality of iterated hashing over variable-length stringsDiscrete Applied Mathematics 160 (4-5), 2012
Details — The universality of iterated hashing over variable-length strings PDF (arXiv) — The universality of iterated hashing over variable-length strings
-
Zoltán Prekopcsák, Daniel LemireTime Series Classification by Class-Specific Mahalanobis DistancesAdvances in Data Analysis and Classification 6 (3), 2012
Details — Time Series Classification by Class-Specific Mahalanobis Distances PDF (arXiv) — Time Series Classification by Class-Specific Mahalanobis Distances
-
Antonio Badia, Daniel LemireA Call to Arms: Revisiting Database DesignSIGMOD Record 40 (3), 2011
Details — A Call to Arms: Revisiting Database Design PDF (arXiv) — A Call to Arms: Revisiting Database Design
-
Daniel Lemire, Andre VellinoExtracting, Transforming and Archiving Scientific DataIn VLDL 2011, Berlin, Germany, 2011
Details — Extracting, Transforming and Archiving Scientific Data PDF (arXiv) — Extracting, Transforming and Archiving Scientific Data
-
Daniel Lemire, Owen KaserReordering Columns for Smaller IndexesInformation Sciences 181 (12), 2011
Details — Reordering Columns for Smaller Indexes PDF (arXiv) — Reordering Columns for Smaller Indexes
-
Daniel Lemire, Owen KaserRecursive n-gram hashing is pairwise independent, at bestComputer Speech & Language 24 (4), pages 698-710, 2010
Details — Recursive n-gram hashing is pairwise independent, at best PDF (arXiv) — Recursive n-gram hashing is pairwise independent, at best Code — Recursive n-gram hashing is pairwise independent, at best
-
Daniel Lemire, Owen Kaser, Kamel AouicheSorting improves word-aligned bitmap indexesData & Knowledge Engineering 69 (1), 2010
Details — Sorting improves word-aligned bitmap indexes PDF (arXiv) — Sorting improves word-aligned bitmap indexes Code — Sorting improves word-aligned bitmap indexes
-
Daniel Lemire, Martin Brooks, Yuhong YanAn Optimal Linear Time Algorithm for Quasi-Monotonic SegmentationInternational Journal of Computer Mathematics 86 (7), 2009
Details — An Optimal Linear Time Algorithm for Quasi-Monotonic Segmentation PDF (arXiv) — An Optimal Linear Time Algorithm for Quasi-Monotonic Segmentation Code — An Optimal Linear Time Algorithm for Quasi-Monotonic Segmentation
-
Daniel LemireFaster retrieval with a two-pass dynamic-time-warping lower boundPattern recognition 42 (9), 2009
Details — Faster retrieval with a two-pass dynamic-time-warping lower bound PDF (arXiv) — Faster retrieval with a two-pass dynamic-time-warping lower bound Code — Faster retrieval with a two-pass dynamic-time-warping lower bound
-
Daniel Lemire, Owen KaserHierarchical Bin Buffering: Online Local Moments for Dynamic External Memory ArraysACM Transactions on Algorithms 4(1): 14 (2008)
Details — Hierarchical Bin Buffering: Online Local Moments for Dynamic External Memory Arrays PDF (arXiv) — Hierarchical Bin Buffering: Online Local Moments for Dynamic External Memory Arrays Code — Hierarchical Bin Buffering: Online Local Moments for Dynamic External Memory Arrays
-
Owen Kaser, Daniel Lemire, Kamel AouicheHistogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap IndexesDOLAP 2008
Details — Histogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap Indexes PDF (arXiv) — Histogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap Indexes Code — Histogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap Indexes
-
Hazel Webb, Owen Kaser, Daniel LemirePruning Attribute Values From Data Cubes with Diamond DicingIDEAS 2008
Details — Pruning Attribute Values From Data Cubes with Diamond Dicing PDF (arXiv) — Pruning Attribute Values From Data Cubes with Diamond Dicing
-
Daniel LemireA Better Alternative to Piecewise Linear Time Series SegmentationSIAM Data Mining 2007
Details — A Better Alternative to Piecewise Linear Time Series Segmentation PDF (arXiv) — A Better Alternative to Piecewise Linear Time Series Segmentation Code — A Better Alternative to Piecewise Linear Time Series Segmentation
-
Kamel Aouiche, Daniel LemireA Comparison of Five Probabilistic View-Size Estimation Techniques in OLAPDOLAP 2007, pp. 17-24, 2007
Details — A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP PDF (arXiv) — A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP Slides — A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP Code — A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP
-
Dan Kucerovsky, Daniel LemireMonotonicity Analysis over Chains and CurvesIn Curves and Surfaces 2006, Saint-Malo, France, 2007
Details — Monotonicity Analysis over Chains and Curves PDF (arXiv) — Monotonicity Analysis over Chains and Curves
-
Owen Kaser, Daniel LemireRemoving Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-BooksCASCON 2007
Details — Removing Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-Books PDF (arXiv) — Removing Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-Books Code — Removing Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-Books
-
Owen Kaser, Daniel LemireTag-Cloud Drawing: Algorithms for Cloud VisualizationTagging and Metadata for Social Information Organization (WWW 2007)
Details — Tag-Cloud Drawing: Algorithms for Cloud Visualization PDF (arXiv) — Tag-Cloud Drawing: Algorithms for Cloud Visualization Slides — Tag-Cloud Drawing: Algorithms for Cloud Visualization Code — Tag-Cloud Drawing: Algorithms for Cloud Visualization Dataset — Tag-Cloud Drawing: Algorithms for Cloud Visualization
-
Owen Kaser, Daniel LemireAttribute Value Reordering For Efficient Hybrid OLAPInformation Sciences 176 (16) 2006
Details — Attribute Value Reordering For Efficient Hybrid OLAP PDF (arXiv) — Attribute Value Reordering For Efficient Hybrid OLAP
-
Daniel LemireStreaming Maximum-Minimum Filter Using No More than Three Comparisons per ElementNordic Journal of Computing 13 (4), pages 328-339, 2006
Details — Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element PDF (arXiv) — Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element Code — Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element Code 2 — Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element
-
Daniel Lemire, Harold Boley, Sean McGrath, Marcel BallCollaborative filtering and inference rules for context‐aware learning object recommendationInteractive Technology and Smart Education 2 (3), 2005
Details — Collaborative filtering and inference rules for context‐aware learning object recommendation PDF — Collaborative filtering and inference rules for context‐aware learning object recommendation
-
Daniel LemireScale and Translation Invariant Collaborative Filtering SystemsInformation Retrieval 8 (1), 2005
Details — Scale and Translation Invariant Collaborative Filtering Systems PDF — Scale and Translation Invariant Collaborative Filtering Systems
-
Daniel Lemire, Anna MaclachlanSlope One Predictors for Online Rating-Based Collaborative FilteringIn SIAM Data Mining (SDM 2005), Newport Beach, California, April 21-23, 2005
Details — Slope One Predictors for Online Rating-Based Collaborative Filtering PDF (arXiv) — Slope One Predictors for Online Rating-Based Collaborative Filtering
-
Daniel LemireA family of 4-point dyadic high resolution subdivision schemesIn Curves and Surfaces 2002, Saint-Malo, France, 2003
Details — A family of 4-point dyadic high resolution subdivision schemes PDF — A family of 4-point dyadic high resolution subdivision schemes Code — A family of 4-point dyadic high resolution subdivision schemes
-
Serge Dubuc, Daniel Lemire, Jean-Louis MerrienFourier analysis of 2-point Hermite interpolatory subdivision schemesJournal of Fourier Analysis and Applications 7 (5), 2001
Details — Fourier analysis of 2-point Hermite interpolatory subdivision schemes PDF — Fourier analysis of 2-point Hermite interpolatory subdivision schemes
-
Daniel Lemire, Chantal Pharand, Jean-Claude Rajaonah, Benoît Dubé, A.-Robert LeBlancWavelet time entropy, T wave morphology and myocardial ischemiaIEEE Transactions on Biomedical Engineering 47 (7), 2000
Details — Wavelet time entropy, T wave morphology and myocardial ischemia PDF — Wavelet time entropy, T wave morphology and myocardial ischemia
-
Gilles Deslauriers, Serge Dubuc, Daniel LemireUne famille d'ondelettes biorthogonales sur l'intervalle obtenue par un schéma d'interpolation itérativeAnnales des Sciences Mathématiques du Québec 23 (1), 1999
Details — Une famille d'ondelettes biorthogonales sur l'intervalle obtenue par un schéma d'interpolation itérative PDF — Une famille d'ondelettes biorthogonales sur l'intervalle obtenue par un schéma d'interpolation itérative
Talks
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.
-
SIMD-Accelerated Data Processing
Sat, May 9, 2026, SIMD-Accelerated Data Processing
-
C++26 Reflection for JSON Serialization - A Practical Journey
Fri, Sep 19, 2025, CppCon 2025
-
Ada: Parsing Millions of URLs per Second
Sat, Nov 11, 2023, NodeConf EU 2023
-
Binary Fuse Filters: Fast and Tiny Immutable Filters
Fri, Jun 16, 2023, Invited talk at the Filter Workshop, Workshop held in conjunction with SPAA 2023 (June 16, 2023 - Orlando, USA)
-
Accurate and efficient software microbenchmarks
Sat, Feb 25, 2023, Invited talk at the SIGPLAN BID 2023, Benchmarking in the Data Center: Expanding to the Cloud, Workshop held in conjunction with PPoPP 2023: Principles and Practice of Parallel Programming 2023 (February 25, 2023 - Montreal, Canada)
-
Unicode at gigabytes per second
Fri, Oct 1, 2021, Invited talk at SPIRE 2021, 28th International Symposium on String Processing and Information Retrieval (October 4-6th, 2021 - Lille, France)
-
Parsing numbers at a gigabyte per second
Wed, May 12, 2021, MIT Fast Code Seminar
-
Floating-point Number Parsing with Perfect Accuracy at GB/s
Wed, Oct 7, 2020, Go Systems
-
Data Engineering at the Speed of Your Disk
Tue, Jun 16, 2020, Performance Summit III (Facebook)
-
Parsing JSON Really Quickly: Lessons Learned
Mon, Oct 7, 2019, QCon San Francisco 2019
Projects
fastfloat
Fast routines for reading floating-point numbers
SIMDJSON
Parsing gigabytes of JSON per second
SIMDUTF
Unicode routines: billions of characters per second.
Roaring Bitmaps
Fast compressed bitmaps, widely used. (picture: Edge Earth)
Laboratory
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). We also have several powerful workstations and beautiful white boards!
Teaching
Undergraduate courses:
- INF 1220 - Introduction à la programmation
- INF 2007 - Programmation avancée
- INF 2020 - Programmation d’applications avec Python : des jeux au Web
- INF 4450 - Programmation orientée-données
- INF 6460 - Recherche et filtrage d’informations
- INF 9004 - Informatique des entrepôts de données
Graduate courses:
- INF 6104 - Recherche d’informations et Web
- INF 6107 - Web social
Programs:
Students
Some recent graduates, by degree and from most to least recent:
Ph.D.
| Year | Graduate | Thesis |
|---|---|---|
| 2025 | Fatma Miladi supervised with Valéry Psyché · dblp |
Agents conversationnels pédagogiques basés sur l’IA générative pour améliorer l’apprentissage en ligne Generative-AI pedagogical conversational agents for improving online learning |
| 2024 | François Lewis supervised with Patrick Plante |
Pertinence de l’ajout d’une composante sérieuse personnalisée à un jeu vidéo dédié à la rééducation en lecture d’élèves ayant des difficultés On adding a personalized serious component to a video game for reading rehabilitation in students with learning difficulties |
| 2023 | Pierre Marie Ntang supervised with Serge Robert · dblp |
Visualiser pour comprendre : application à la programmation vectorielle Visualizing to understand: an application to vector programming |
| 2022 | Gary Germeil supervised with Richard Hotte |
La crédibilité du comportement d’un personnage non-joueur dans un jeu de type cartes à collectionner The credibility of non-player character behaviour in a collectible card game |
| 2020 | Tarek Khei supervised with Richard Hotte; Director of AI and Software at Iristel |
Établir les correspondances entre les artéfacts d’un système d’information Establishing correspondences between the artifacts of an information system |
| 2019 | Xueping Dai supervised with Li Zhen Cheng and Jean-Claude Mareschal |
Caractérisation du bruit électromagnétique dans les tunnels miniers profonds et application de la méthode de débruitage Characterizing electromagnetic noise in deep mining tunnels and applying a denoising method |
| 2018 | Erick Aokou Koffi Data Architect at Metro |
Approche systémique de la conscience de la situation pour la réduction des erreurs de décision en environnement complexe : cas des projets informatiques A systemic approach to situation awareness for reducing decision errors in complex environments: the case of software projects |
| 2018 | Badis Merdaoui supervised with Richard Hotte; IT Architect at Saputo |
Simulation probabilistique d’acquisition des langues secondes Probabilistic simulation of second-language acquisition |
| 2017 | Samy Chambi supervised with Robert Godin; Software Engineer at Collective-i · dblp |
Les index bitmap compressés Compressed bitmap indexes |
| 2016 | Jing Li supervised with Yuhong Yan · dblp |
Full Solution Indexing and Efficient Compressed Graph Representation for Web Service Composition |
| 2010 | Hazel Webb supervised with Owen Kaser; Instructor at UNB · dblp |
Properties and Applications of Diamond Cubes |
M.Sc. with thesis
M.Sc. without thesis
A selection of students.
| Year | Graduate |
|---|---|
| 2025 | Antoine Tohme |
| 2024 | Ernso Decelien |
| 2023 | Zakia Chaibeddra Alexander-Graham-Bell scholarship |
| 2022 | Nicolas Boulet-Lavoie |
| 2020 | Achille Alain Kamdem Djoko developer at Bell Canada |
| 2020 | Hakim Berraki Solution Designer at Société de transport de Montréal |
| 2020 | Abdelkader Kaddour Brahim |
| 2018 | Massamba Fall Senior Analyst at Promutuel · GitHub |
| 2017 | Maxime Boisvert Production Engineering Manager at Shopify |
| 2017 | Shany Carle Computer Science Professor at cégep de Victoriaville |

Some alumni:
- Luis Garcia Vargas
- Shira Smith is an engineer at Discord in California.
- Dara Aghamirkarimi teaches Computer Science at LaSalle College.
- Geneviève Lefebvre (died of cancer during her master’s)
Current Ph.D. students:
- Guy Jobin (supervised with Dragos Vieru)
- Khargou Jalal
- Sofiane Faïdi
- Faten Slama
- William Ouedraogo
- Jean-Vincent Bogui
- Aubrey Trask
- Ali Lienaux
Current M.Sc. students:
- Isaac Hurtubise
- Juan Hernandez
- Nicolas Irep
- Emna Ben Hamouda
- Aaron Rivera
- Khalid Bouraki
- Yan Levasseur
Recent postdocs:
- Jaël Champagne-Gareau (2025–2027) dblp
Recent research assistants (undergraduate):
- Nick Nuon, Summer 2023 and 2024, recipient of an NSERC Undergraduate Student Research Award.
- Nicolas Boyer, Summer 2021 and 2022, recipient of an NSERC Undergraduate Student Research Award. Nicolas is a software developer at Avid.
- David Favreau, Fall 2021.
- Yoann Le Rouzic, Summer 2020. GitHub
- Io Andes Daza-Dillon, Summer 2019, recipient of an NSERC Undergraduate Student Research Award. Io is consultant at Savoir-faire Linux. GitHub
- Jérémie Piotte, Fall 2018 and 2019, recipient of an NSERC Undergraduate Student Research Award. Jérémie is Senior Manager (Machine Learning Engineering) at Unity Technologies. GitHub
- Niko Girardelli, Winter 2018. GitHub
Recent research guests:
Mentoring
- Homma Kazutaka, Google Summer of Code, Summer 2018 (co-mentor with Harlan Haskins at Apple)
News
Bérenger Bramas passed his HDR!
Bérenger Bramas passed his HDR.
Guy Carlos Tamkodjou Tchio is a new doctor!
Guy Carlos Tamkodjou Tchio is a new doctor!
CONTINUE READING — Guy Carlos Tamkodjou Tchio is a new doctor!
Lockman Saleh is a new doctor!
Lockman Saleh successfully defended his Ph.D. thesis.
Fatma Miladi is a new doctor!
Fatma Miladi successfully defended her Ph.D. thesis.
Services
I am editor of the Software: Practice and Experience journal (Wiley) since 2021. This journal was founded in 1971 and it published many central results in computer science.
Prior to the 2020 events, I was the organizer of an ongoing series of workshops open to the public: the technolab workshops and the tribalab workshops. 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 in the Dagstuhl Seminar 18251: Database Architectures for Modern Hardware. I was an associate editor of the computer science section of the Heliyon journal (Elsevier) from 2015 to 2020.
I recently served on the following program committees:
- WSDM 2027: The 20th International Conference on Web Search and Data Mining (February 15-17, 2027, in Hong Kong, China) – Senior Member
- CIKM 2026: 34th ACM International Conference on Information and Knowledge (November 7-11, 2026 in Rome Italy) – Senior Member
- ECMLPKDD 2026: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (September 7-11, 2026 in Naples Italy)
- WSDM 2026: The Nineteenth International Conference on Web Search and Data Mining (March 10-14, 2026, in Boise, Idaho, USA) – Senior Member
- CIKM 2025: 33rd ACM International Conference on Information and Knowledge (October 21-25, 2025 in Boise, Idaho) – Senior Member
- BIGDACI 2025: 10th International Conference on Big Data Analytics, Data Mining and Computational Intelligence (23-25 July 2025 in Lisbon, Portugal)
- SIGIR 2025: The 48th International ACM SIGIR Conference on Research and Development in Information Retrieval (13-18 July 2025 in Padua, Italy)
- ECMLPKDD 2025: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (15-19 September 2025, in Oporto, Portugal)
- WSDM 2025: The Eighteenth International Conference on Web Search and Data Mining (March 10-14, 2025, in Hannover, Germany) – Senior Member
- ECMLPKDD 2024: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (September 9-13, 2023, in Vilnius, Lithuania)
- SIGIR 2024: The 47th International ACM SIGIR Conference on Research and Development in Information Retrieval (Washington D.C., USA, 14-18 July, 2024).
- ECMLPKDD 2023: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (September 18-22, 2023, in Turin, Italy)
- SIGKDD 2023: 29th SIGKDD Conference on Knowledge Discovery and Data Mining (Long Beach, California, August 6 2023)
- SIGIR 2023: The 46th International ACM SIGIR Conference on Research and Development in Information Retrieval (Taiwan, July 23rd to 27th, 2023).
- EDA 2022: 18e journées EDA Business Intelligence and Big Data (Clermont-Ferrand, France, October 27-28 2022)
- SIGIR 2022: The 45th International ACM SIGIR Conference on Research and Development in Information Retrieval (Madrid, Spain, July 11-15, 2022)
- DOLAP 2022: 24th International Workshop on Design, Optimization, Languages and Analytical Processing of Big Data
- WSDM 2022 15th ACM International WSDM Conference (Phoenix, AZ, USA, Feb. 2nd to March 4th, 2022)
- ASD 2021: 13th edition of the Conference on Advances in the Science of Data (Blida, Algeria, 24-25 October 2021)
- CIKM 2021: 30th ACM International Conference on Information and Knowledge (Gold Coast, Queensland, Australia, 1-5 November 2021)
- ECML/PKDD 21: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (Bilbao, Spain, 13-17 September)
- EDA 2021: 17e journées EDA Business Intelligence and Big Data (1-2 July 2021)
- SIGKDD 2021: 27th International Conference on Knowledge Discovery and Data Mining (Singapore, Aug 14-18, 2021)
- SIGIR 2021: 44th International ACM SIGIR Conference on Research and Development in Information Retrieval
- DOLAP 2021: 23rd International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data
- WSDM 2021: 14th ACM International WSDM Conference (Jerusalem, Israel, March 8-12, 2021)
- EDML20: Second Workshop on Evaluation and Experimental Design
- RecSys 2020: 14th ACM Recommender Systems Conference (Rio de Janeiro, Brazil)
- BBIGAP'2020: Second International Workshop for Business Intelligence & Big Data Applications
- ECML-PKDD 2020: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (Area Chair)
- CIKM 2020: 29th ACM International Conference on Information and Knowledge
- DaWak 2020: 22nd International Conference on Big Data Analytics and Knowledge Discovery
- SIGIR 2020: 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval
- DOLAP 2020: 22nd International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data
- ADBIS 2020: 24th European Conference on Advances in Databases and Information Systems (August 25-28: Lyon, France)
- CIKM 2019: 28th ACM International Conference on Information and Knowledge Management (Nov 3-7, 2019: Beijing, China)
- RecSys 2019: 13th ACM Recommender Systems Conference (September 2019; Copenhagen, Denmark)
- BBigAP 2019: 1st International Workshop on BI & Big Data applications, In conjunction with the 23rd European Conference on Advances in Databases and Information Systems (ADBIS 2019) (September 8, 2019; Bled, Slovenia)
- DOLAP 2019 - 21st International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data (March 26, 2019; Lisbon, Portugal)
- CIKM 2018 - Twenty-Seventh ACM International Conference on Information and Knowledge Management (October 22-26, 2018; Turin, Italy)
- ASD 2018 - 12th edition of the Conference on Advances of Decisional Systems : Big data & Applications (May 2018; Marrakech, Morocco)
- WABiD* 2018 - 1st International Workshop on Advances on Big Data Management, Analytics and Security (September 2018; Budapest, Hungary)
- RecSys 2018 - 12th ACM Recommender Systems Conference (October 2018; Vancouver, Canada)
- WWW 2018 - Twenty-seventh International WWW Conference (April 23-27 2018; Lyon, France)
- DOLAP 2018 - 20th International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data (March 26–29, 2018; Vienna, Austria)
- CIKM 2017 - Twenty-Sixth ACM International Conference on Information and Knowledge Management (November 6-10, 2017; Singapore)
- SPIRE 2017 - 24th International Symposium on String Processing and Information Retrieval (September 26-29, 2017; Palermo, Italy)
I was an external referee for the following Ph.D. students:
- Azim Afroozeh at Vrije Universiteit Amsterdam (2026) – supervised by Peter Boncz.
- Lockman Saleh at UQAM (2025) - supervised by Hafedh Mili and Mounir Boukadoum.
- Jaël Champagne Gareau at UQAM (2024) - supervised by Éric Beaudry.
- Nathan Maurice at la Sorbonne, France (2024) - supervised by Lionel Lacassagne.
- Nigel Medforth at Simon Fraser University (2022) - supervised by Robert Cameron.
- Luca Versari at Pisa University (2021) - supervised by Roberto Grossi.
- Kareem El Gebaly at Waterloo University (2018) - supervised by Jimmy Lin, Lukasz Golab and Ashraf Aboulnaga.
- Mohammed Shaaban at Université Pierre et Marie Curie (2017) - supervised by Patrick Garda.
- Mehdi Boukhechba at UQAC (2016) - supervised by Abdenour Bouzouane and Charles Gouin-Vallerand.
- Hicham Assoudi at UQAM (2016) - supervised by Hakim Lounis.
- Khaled Dehdouh at Lyon 2 (2015) - supervised by Omar Boussaid.
- Martin Leginus at Aalborg University (2015) - supervised by Peter Dolog.
- Ahmad Taleb at Université Concordia (2011) - supervised by Todd Eavis.
I was an external referee for the following M.Sc. students:
- Benjamin Lapointe-Pinel from UQAR, Canada (2024) - supervised by Steven Pigeon.
In 2020, I was one of two external reviewers for the M.Sc. in computer science program assessment at UQAC.
I served as a committee member for several funding bodies:
- FRQNT: review committee 03F (theoretical computer science) since 2007.
- FRQNT: review committee 309 (team projects in computer science) since 2006.
- NSERC: Research Tools and Instruments Grants Program (2012-2015)
- NSERC: Computer Science Evaluation Group (EG 1507) for the Discovery Grants Program, comité 1507 (2018-2021), co-chair in 2019-2020 and 2020-2021.
- NSERC: Program Fit Advisor for Discovery Horizons (2022)
In 2022, I was a member of the university sub-committee on engineering and information technologies, within the committee on the implementation of the measures of the Quebec government’s Operation Manpower.
Books
English
Mastering Programming: From Testing to Performance in Go
Faster Than You Think: Essays on Thinking Better and Building Faster
French
Java pas à pas
Programmation avec Python: des jeux au Web
La science des données: Théorie et applications avec R et Python
Maîtriser la programmation: Des tests à la performance en Go
Curriculum vitae
Media
Articles and interviews
- Algorithmes et réseaux sociaux, CHOI FM 93 (Radio X), 9 February 2026.
- Des milliards pour les éoliennes au Québec: pourquoi et pour qui?, Libre Média, 15 September 2025.
- Pour un Québec prospère et une approche équilibrée en environnement, Libre Média, June 3 2025.
- Trump, nouvel alibi des Libéraux pour gouverner par la peur, Libre Média, April 2 2025.
- On SIMD, cache and CPU internals with the expert Daniel Lemire!, Game Engineering Podcast, February 21 2025.
- Avenir de la science (entrevue), Libre Média, February 18 2025.
- Les géants du numérique raffolent des algorithmes de ce prof québécois, Journal de Montréal, October 19 2024.
- Artificial Intelligence Is the Crisis We Need, Communications of the ACM (blog), June 6 2024.
- The Service of Dissent, Brownstone Institute, May 3 2024.
- Les universités de Québec ont « l’oreille tendue » vers la recherche sur l’IA, Radio-Canada, April 23 2024.
- L’intelligence artificielle à l’Université TÉLUQ, Téléjournal ICI Québec, April 23 2024.
- Un robot conversationnel dans certains cours de la TÉLUQ comme outil d’aide pédagogique, Journal de Québec, February 28 2024.
- Making Parsing I/O Bound with Daniel Lemire, Software Unscripted, August 17 2023.
- ¿Supone ChatGPT el fin de los programadores? “Los hará más eficientes en lugar de reemplazarlos”, El País, June 9 2023.
- ChatGPT is Not a Technological Singularity, Communications of the ACM (blog), June 5 2023. (One of the most read ACM posts of 2023.)
- Identité numérique: Une solution, mille interrogations, La Presse, November 21st 2022.
- Liberté académique: l’Université Laval doit s’excuser et réparer ses torts, letter in Le Soleil, 15 août 2022.
- L’identité numérique: quels enjeux et quels risques?, letter in Le Journal de Montréal, June 10th 2022.
- Ajouter sa brique à l’édifice de Microsoft, Radio-Canada (Moteur de recherche), May 6th 2022.
- Microsoft utilise le mémoire universitaire d’un étudiant pour améliorer ses fonctionnalités, Figaro, March 11th 2022.
- Microsoft va utiliser les travaux d’un étudiant à la maîtrise, Les Affaires, March 9th 2022.
- Qu’attendez-vous pour adopter le «no-code»?, Les Affaires, January 31st 2022.
- Protéger et promouvoir les libertés académiques pour tous, opinion letter in Le Soleil (newspaper), September 25th 2021.
- Quebec parliamentary commission on academic freedom (CTV News), short clip, August 24th 2021.
- TwitterSpaces with Daniel Lemire (interview), Denis Bakhalov, May 3rd 2021.
- Memorandum addressed to the independent scientific and technical commission on the recognition of academic freedom in the university environment, June 2021 (English at the end).
- Frontiers of Performance with Daniel Lemire (interview), Corecursive, December 1st 2020.
- The research paper should NOT be the final product (interview), A.I. Socratic Circles, March 3 2020.
- Optimizations in C++ Compilers by Godbolt (quotes my blog). Communications of the ACM, February 2020.
- Des serveurs informatiques plus rapides et moins énergivores (interview), Les années lumières, Radio-Canada, December 13th 2019.
- Des langues découpées en bits pour comparer leur efficacité (interview), Les années lumières, Radio-Canada, September 15th 2019.
- L’intelligence artificielle pour rendre les logiciels plus rapides (magazine article on Daniel Lemire’s work), Québec Science, March 28th 2019.
- Défendre la liberté académique, opinion letter in Le Soleil, January 29th 2019.
- Open Source Powers Supercomputing by Shein (quotes my views). Communications of the ACM, February 2018.
Click on the picture for a high resolution version.
Consulting
I have worked as a consultant since 1998. As a consultant, I built custom mission-critical software, I have solved deep performance issues, I have offered specialized training sessions, I designed novel algorithms. I love working with industry on important problems. I offer the following commercial services.
- Conferences. I am happy to speak to your team about recent advances in software or other relevant topics. My conferences are well received. My rates vary from $5,000 to $15,000 per engagement, depending on the duration, format (virtual or in person), and travel expenses, which are generally covered separately.
- Training. I provide exclusive and high-quality advanced training for your team. For corporate training sessions in software engineering, my rates are between $3,000 and $5,000 per day, depending on customization, duration (half-day or full day), and the number of participants.
- Consultation. If you have specific problems in your company, I will be happy to come and help you. My consulting fees are $400 per hour, with additional fees for travel. When possible, I prefer to offer flat fee services (e.g., $5,000).
- Sponsored open-source software. Some of my open-source work has been sponsored by private companies and developed according to their needs. Sponsorships for open-source projects can be structured in monthly levels (for example, $100 for bronze, $500 for gold) or in one-time contributions for specific features, ranging from $1,000 to $10,000 or more, depending on the scope. I encourage businesses to sponsor me on GitHub especially if they benefit from my work. The top sponsorship tiers on GitHub are meant for businesses and come with specific benefits.
Contact
- [email protected]
- University of Quebec (TELUQ), 5800 Saint-Denis, Office 1105, Montreal (Quebec) H2S 3L5 Canada
- email for appointment









