I found out about Erik Bernhardsson’s Twitter profile by chance a few years back and was immediately fascinated by his experience and achievements. His website is one of the few that I read on a regular basis.
I contacted Erik because I wanted to know more about who he is and his story. He was extremely generous to give me the time of day, given his many responsibilities. I hope you enjoy reading this interview.
Many technical people would say that they’ve always been inquisitive ever since their childhood. Can you recall your earliest memory of cracking a hard problem in your life?
My memory is terrible but I remember learning to “code” (putting it in quotation marks since it was HyperCard, if you ever heard of it) and I figured out how to use cosine and sine to draw stuff around the time I was maybe 11? For a while I was more comfortable with radians than degrees because we hadn’t started learning angles in school yet.
Oddly I never really “identified” with being a math person. It was just something I liked to do. It wasn’t until I was maybe 15 that I realized that I had a knack for it.
For many young people and more so adults, finding a career path seems like a hard task. At what age did you discover your interest for mathematics, physics and engineering? And what would you say were the major turning points that drew you to pursue a career in these areas?
I was always interested in these things. It’s weird because you don’t realize you can make a good living from it when you’re little, you just do it because you like it.
I liked to figure things out because I was always trying to write code for stuff. A weird thing is that I was rarely interested in math for math’s sake. It was always in the context of trying to write code to do something.
There’s a (maybe) unfounded belief in society that you’re either good at math or not. How difficult was it for you to master the subjects you understand today? What would you say are the most effective paths to learning topics like statistics, machine learning and software engineering for a complete beginner?
Well, I actually think it’s somewhat predetermined. I find it unfair to say that “anyone can become a math genius” because it means that if you don’t succeed you only have yourself to blame. (I’m) pretty sure we have a huge diversity in how our brains work.
But that being said, I think motivation and grit trumps ability in the long run. Machine learning is not a very hard subject, it just takes a lot of practice. In the same way as learning a second language isn’t very “difficult” (billions of people have mastered it) but it takes a LOT of time (and people often underestimate this).
People often say they want to learn X when in reality they want to have learned X. I don’t think you can ever become a great piano player if you don’t like playing piano. So if you want to master statistics, find a way to make it fun to learn it. Pick some dumb side projects and play around with it. In my case trying to write silly blog posts was a great way to learn deep learning, for instance.
I see the same thing when I recruit. Many people don’t know anything about machine learning and hope to find a job where they can learn it. I’m not sure if it works that way. I think you have to show motivation and skill by doing it yourself for a while.
Another thing is that ML seemed super huge and intimidating to me for the first couple of years, but then I realized it all just fits together into a handful of principles. It takes a while to get to that point.
You seem to be always learning new technologies and topics. What attitude would you say is most conducive to internalizing new scientifical and technical material (especially as one gets older)? Also, what is your personal process for learning new complicated things?
I guess I answered most of that above.
Another thing I do is follow 500+ blogs and read about a lot of stuff. It’s something I just always did. I never had a TV, I just like to read about stuff in my free time. There’s so many great blogs out there worth reading.
Your blog contains very interesting articles, like the one on NYC Subway Math. Pose that someone doesn’t understand your content, what subjects should they be familiar with in order to grasp the content on your blog?
Not sure. Quite honestly, I just like to blog random stuff, I never really thought deeply about the audience. Maybe I should :)
There’s lots of (questionable) content about data on the Internet right now. You wrote an article on the matter: When Machine Learning Matters. What are your views on the current discussion about Big Data, Machine Learning and Artificial Intelligence? What are the biggest misconceptions that you see being spread around?
Feels like Big Data is mostly a “solved problem”. Partly because HW (Hardware) performance has grown much faster than data. I guess it’s at the “plateau of productivity” (referring to the Gartner hype cycle).
“Artificial Intelligence” is a really annoying term to me. There was never a clear definition. Feels like over the last 50 years people usually use it to refer to things that seem hard or slightly too hard for today’s computers. So it’s a moving target. I also think that there’s a massive hype and that it’s not really going to change that much. It’s going to make a lot of products 10% better, but there’s few new things that it will enable.
Andrew Ng summarized the state of AI as that it’s great at doing a lot of stuff that humans can do at less than 500 ms. I also don’t think that it’s a huge threat to jobs in the next 20 years. A lot of jobs right now require absolutely no AI to displace (think about the financial sector).
But of course there are some things that we’ll definitely see. I wouldn’t encourage my daughter to become a truck driver, for instance.
Your two projects Luigi and Annoy became extremely popular. Could you explain what they are in layman terms? What problem(s) were you trying to solve at that time and how did those projects address them?
Luigi was meant to automate a lot of complex batch processing. It’s a bit hard to explain how it fits in but, once you have the problem, you usually see the need for it. Check out the Github repo for some more explanation :)
Annoy is arguably even more abstract. It’s a library to do high dimensional nearest neighbor search. Which is great if you need it, and there’s probably less than a 1000 people in the world who will ever need it, but for them it’s something that’s really useful.
What does Better do and what does an average day look like for you?
Better is fixing the $15T mortgage industry. It’s a terrible industry right now, basically a racket.
It takes 60 days to get a mortgage and the cost of originating a mortgage is about $8k. We’re taking the entire process online and cutting out the human middleman that is usually paid commission. Commission incentives are terrible for consumers. Look at what happened at Wells Fargo recently. It’s like what happened with travel agents and stock brokers 10–20 years ago. Financial advisors right now as well. Hopefully real estate and buying cars will be next.
No one really expects to end up in the mortgage industry and I certainly didn’t. But I love it because there’s just such an opportunity to build an enormously successful company at the same time as we solve a consumer problem. I spent 6 years at Spotify and I think it’s fair to say we transformed the music industry. Well, the mortgage industry is at least 100 times larger.
You also run a Machine Learning meetup in NYC. What pushed you to start this community and what are your hopes for it?
I actually ended up doing it mostly by chance. I spoke twice at that meetup and had organized a few things myself. So I was asked to join as co-organizer. It’s just been a few months so we’ll see what happens. One thing I want to do is to mix up some intro-level talks with more advanced stuff.
You’re Head of Engineering today. What technical and personal qualities are you looking for in a hire and why? Also, how would you advise someone who’d like to meet your requirements to get about doing that if they were starting today, from scratch?
Well, I hire for a startup, and it’s a bit different than hiring for a big company. I also don’t think there’s a single factor that stands out. But if I had to pick out a few things I’d say:
Diversity of skills: someone with experience in many languages, who knows a little about a lot of things, generally curious about tech.
Autonomy: someone who can take a project and work on it for months if needed with little or no direction.
Programming fluency: has this person built huge code bases from scratch, can they think about the high level system design, etc.?
But there’re 100+ other factors that matter as well.
You’ve worked for successful companies throughout your career. What would you say denotes successful or soon to be successful companies? What are some of the most important lessons you’ve learned on company culture and team development throughout the years?
The most important thing is (a) quality of hires (b) business idea.
Culturally the most important thing is to establish a performance culture early. It’s contagious when you get really hard-working, smart, dedicated people to constantly challenge each other.
Many companies try to solve culture by throwing ping pong tables at the problem. That’s treating the symptom of an underlying lack of culture.
Silly analogy but John Coltrane and Miles Davis didn’t enjoy working together because a record executive got them a bunch of nerf guns. They enjoyed challenging each other to play more complex melodies and new innovative chord changes and stuff like that.
The first 10 people will hire the next 100 people who will hire the next 1000 so you really need a core of high quality people.
There are 100+ other things I learned at Spotify/Better (both positive and negative learnings) and it’s probably going to be a long blog post one day. 😄