Thursday, 3 December 2015

Podcast Interview with Will Lyon, Neo Technology

Last GraphConnect in , I spent some time at the GraphClinic helping lots of interested attendees get the most out of Neo4j. I really enjoyed, also because for a good time, I shared the "clinic" with one of my colleagues, Will Lyon, who is working in our Developer Evangelism team. Will has been working on lots of cool stuff with Neo4j for the longest time, and has plenty of stuff to share and discuss. So we got on a Skype call - and ... chatted away... here's the result:

Here's the transcript of our conversation:
RVB: 00:00 Hello everyone, my name is Rik, Rik Van Bruggen from Neo Technology and here we are again recording a Neo4j graph database podcast. It's been a while since we've been doing recordings, and tonight I'm joined by Will Lyon, all the way from California. Hi Will.
WL: 00:19 Hi Rik, thanks for having me.
RVB: 00:20 Hey, good to have you on the call. I thank you for joining us. Will, I've read a bunch of your blog posts and I've seen a bunch of your work but many people may not have seen it yet, so why don't you introduce yourself to get us going?
WL: 00:36 Sure, thanks. I'm Will Lyon, I'm on the developer relations team at Neo. That means that it's my job to help encourage awareness and drive adoption of Neo4j and also graph databases in general. So, I do this by writing blog post that talk about Neo4j and graph databases, building cool demo apps, integrating with other technologies, proving out new use cases. For example, earlier this week I was at QCon Conference in San Francisco talking to our users there. Tomorrow, I'll be giving a webinar about using Neo4j and MongoDB together.
RVB: 01:18 Wow! Super cool. And then, how long have you been working with Neo, just as a community member, Will? Quite some time, right?
WL: 01:25 Quite some time, I joined the company just in September. So, I have been with Neo Technology for about two months now. Prior to that, I was working as a software developer for a couple of start ups and always trying to work Neo into the job.
RVB: 01:43 That's very cool. Well, that also immediately begs the question, why, right? Why were you trying to work Neo into your job all the time? What attracted you to it, I suppose?
WL: 01:55 Sure. The first time I was exposed to Neo was a few years ago at a hackathon over the weekend, and the team I was working with, we needed a project. We had read a blog post about building recommender systems with Neo4j, this graph database thing. I didn't know anything about graph databases or collaborative filtering recommender systems, but I thought it sounded interesting. So, we tackled this project over the course of the hackathon and we were able to build a GitHub repository recommender system. So, it looked at your previous activity on GitHub as an open source contributor and recommended other repositories that you might be interested in. It was a really fun project to put together, and I was amazed at how sort of easy it was to get going with Neo4j and Cypher, the query language, and actually build this application. At the end of the weekend, it worked and we went on to actually win the hackathon. So, I was sort of--
RVB: 03:02 Wow! That's cool.
WL: 03:03 Yeah. I was hooked from that point on. What I really liked about Neo is the way that you think about the data model with graph data is very close to how we think about data in the real world. So you have this very close mental map. It seems very intuitive when we're thinking about our data model. For example, Rik is my co-worker, I'm at a conference, the conference is in San Francisco. These are all entity nodes and relationships, and so it [crosstalk]-- so, it seems very easy to express very complex data models. We don't have this weird transformation that we have to go through.
RVB: 03:52 Absolutely. What made it so productive then to implement that recommender system? What was it that made-- is it just the model or is it also Cypher? What made it so easy to develop with, in that particular case?
WL: 04:05 Sure, I think, really, Cypher was the biggest thing for us, and just being able to define the problem that we were trying to solve as a traversal to this graph, and being able to very clearly define that pattern in a Cypher query and get that back right away. It was actually very easy to build something that was not quite trivial.
RVB: 04:36 Yeah, I know. I understand. Well I've seen some of you other hackathon works, like for example, that thing that you built to fire multiple Cypher queries and now you're working on something really interesting to import CSVs you told me, right?
WL: 04:51 Sure. So, on the developer relations team, one thing that we're focused on is the new user experience. So, for users seeing Neo4j for the first time, what's the first thing they want to do? Well, a lot of times that's play with their own data. And so, we are trying to make that process of importing your data into Neo4j much easier. So, one of the projects I'm working on is a web application that guides the user through the process of converting their CSV files into a graph data model, and then allows to quick execute those against the Neo4j instance to import your data.
RVB: 05:29 You mean it's going to be even easier than with Load CSV, then?
WL: 05:33 That's right [laughter], exactly.
RVB: 05:34 That's super cool. I mean, I've been with Neo a couple of years now, and when I started it was a brutal experience [chuckles]. It's gotten so much easier, and it's going to get even more easy. So, that's great to hear. Thanks for that.
WL: 05:51 Yeah. Absolutely.
RVB: 05:52 Very cool. So, Will, one of the topics that we always cover on this podcast is, where is it going? What are the big things that you see coming up and you would love to see happen in Graphistania, as we call it sometimes [chuckles]. Where do you see this going? What's your perspective on that?
WL: 06:13 Sure. I think we're at a really interesting time now where we're seeing lots of improvements in the technology - Neo4j, graph databases in general, around performance - but also around the API's that we're using to interact with graph data. So things like Cypher, it's becoming much cleaner, much easier to work with. And I think this investment in the technology is really indicative of a larger trend in applications in general. Users are expecting more from our applications. So, let's take e-commerce as an example. Browsing and searching and filtering are great, but users are really expecting things like personalized recommendations in their e-commerce platform, and a great way to generate those is with a graph database.  Same with things like contents delivery, we expect personalized content recommendations. So, I really think we're seeing the case where going forward, we're going to see graph databases used in more and more applications, used alongside more and more technologies, and it will feel very natural and easy to use Neo4j in your modern application stack.
RVB: 07:31 Does that mean things like availability of Neo4j to other development platforms as well? Not just Java, .NET, and all those types of things as well. Is that part of that?
WL: 07:46 Sure, absolutely. I think with Cypher, that's becoming much easier now. It's very easy to shoot a Cypher script to Neo4j server from a .NET environment, from a Python application. We're really seeing a standardization around the API there.
RVB: 08:06 Well, I'm really looking forward to it, as you are, I imagine [chuckles]. What I'll do is when we write up the podcast and transcribe it, we'll put a bunch of links to some of your work and all the other developer evangelists' work in the article so that people can find the way around even more easily. So, thank you so much Will for coming on the podcast, really appreciate it. I'll wrap up here and I look forward to seeing you at an event very soon.
WL: 08:37 Great. Thanks a lot, Rik.
RVB: 08:38 Thank you. Bye bye.
WL: 08:40 Bye bye.
Subscribing to the podcast is easy: just add the rss feed or add us in iTunes! Hope you'll enjoy it!

All the best

Rik

No comments:

Post a comment