About me

Name: Daniel Lemire
Location: Montreal, Canada
Occupation: Computer Scientist (full professor)
Home page: http://lemire.me/en/
My Setup: http://daniel.lemire.usesthis.com/ (2013)
Research papers: Google Scholar profile, arXiv, DBLP
Affiliation: LICEF, TELUQ, Université du Québec
Email: lemire at gmail dot com
Headshot: web and print
Keywords: Data Science, Indexing and Software Performance.

I’ve been an entrepreneur, a government researcher and a university professor. I once designed, built and sold software for a living. As a researcher, I have worked on many problems: from medical diagnostic to collaborative data processing. My Slope One recommender algorithm is a standard reference in the field of recommender systems. My work on bitmap indexes is used by companies like Facebook and Netflix to accelerate their data processing, within platforms such as Apache Hive, Druid, Apache Spark and Apache Kylin. The version control system Git is also accelerated by the same compressed bitmaps. Some of my techniques have been adopted by Apache Lucene, the search engine behind sites such as Wikipedia or platforms such as Solr and Elastic. I love to write: my blog has been featured on Reddit, Hacker News and Slashdot (1, 2). My blog is blocked in several countries including China and South Korea.

I also have two sons, two cats and a beautiful wife. My dog has its own YouTube channel. I make my own bread (every week), my own yogurt (every week), my own beer, my own wine, my own port, my own furniture. I build robots, radio control sailboats and trucks. I grow my own vegetables in the summer using square gardening. I love scifi, both in book and TV format.

Recent public appearance : Algorithms, how content finds ‘you’ (Discoverability Summit, Toronto, 2016)

Twitter-style bio

My 140-character bio:

Computer science professor at the University of Quebec, contributor to major data-science open-source projects, and long-time blogger.

Formal bio

When requested to provide a formal bio, I use this paragraph:

Daniel Lemire has a B.Sc. and a M.Sc. in Mathematics from the University of Toronto, and a Ph.D. in Engineering Mathematics from the Ecole Polytechnique and the Université de Montréal. He 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 50 peer-reviewed publications, including more than 30 journal articles. He has held competitive research grants for the last 15 years. He serves on the program committees of leading computer science conferences (e.g., ACM CIKM, WWW, ACM WSDM, ACM SIGIR, ACM RecSys). His open source software has been used by major corporations such as Google and Facebook. His research interests include databases, information retrieval, and high-performance programming. He blogs regularly on computer science at http://lemire.me/blog/.


For academic correspondence, you can use the following address:

Prof. Daniel Lemire
LICEF Research Center
TELUQ, Université du Québec
5800 Saint-Denis
Office 1105
Montreal (Quebec)
H2S 3L5 Canada

Office number: 12.166 (if you come visit)
Email: lemire (at) gmail (dot) com

Favorite quotes

  • Corruptissima re publica plurimae leges. (Tacitus)
    (“The more corrupt the state, the more laws.”)
  • Science is the belief in the ignorance of experts. (Richard Feynman)
  • A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. (John Gall)
  • Don’t ever make the mistake [of thinking] that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That’s giving your intelligence much too much credit. (Linus Torvalds)
  • Never do anything that bores you. (James D. Watson)
  • It’s not that I’m so smart, it’s just that I stay with problems longer (Albert Einstein)
  • Someone younger at heart should replace you, and that should be you. (George Church)
  • Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in. (…) Only through experimentation can you get real invention. The most important inventions come from trial and error with lots of failure. (Jeff Bezos)

Odd facts about me

  • I never memorized multiplication tables. I never memorized the quadratic formula. I never memorized most trigonometric identities. I do not know my office door number or phone number. In general, I avoid memorizing facts, I prefer to write them down where I and others will find them.
  • I have never owned a cell phone. I have never placed a call using a cell phone. Evidently, I have never owned a smartphone.
  • I failed kindergarten and was put in a class for students with learning disabilities in first grade.
  • I lost all the electronic copies of my Ph.D. thesis the same day I sent the second revised version to the printer. Though I had backups, I overwrote all the backups with an empty file, by accident.
  • Academically, I consider myself almost entirely self-taught. I am an autodidact with a Ph.D. Though I have been a tenured college professor in computer science for over a decade, with continuous research funding (in computer science) provided by the federal government through competitive grants, I have never taken a computer science class in college. I once attended a first-year computer college course for a couple of weeks, but I gave up quickly. I was once formally offered a job as a business professor in a good college, despite the fact that I never took a business class in college. I have three degrees in Mathematics (B.Sc., M.Sc., Ph.D.), but I derived very little use of all the classes I took. It should be said that I skipped class on every occasion.

Social networks

You can find me on Facebook, LinkedIn, GitHub, Twitter, and Google Plus.

3 thoughts on “About me”

  1. Hi there, do you have any guideline to creating a function template that work in a similar way to the STL vector class.

Comments are closed.