Thursday, 24 December 2015

Podcast Interview with Andreas B. Kolleger, Neo Technology

Yey! The festive season is upon us! And: here's the 50th (!!!) podcast episode in the Graphistania recordings. What a journey it has been! To celebrate, I got to talk to my friend and colleague Andreas B. Kollegger. Andreas was probably one of the first people that I talked to when I met the Neo4j team for the first time in the summer of 2012, and he always impressed me with his calm and creative mindset. To give you an example, here's a short demo that Andreas created showing how you can create the essence of a recommendation engine in Neo4j in 2 minutes:

Super sweet. Nowadays, "ABK" is part of the product management team at Neo4j, and he has plenty of interesting things to talk about when it comes to past, present and future of Neo4j. So let's listen to the episode:

Here's the transcript of our conversation:
RVB: 00:02 Hello everyone. My name is Rik, Rik Van Bruggen from Neo Technology. Tonight, I am going to record a podcast episode that I've been looking forward to for a very long time, with my dear friend in dark, rainy, beautiful Portland, Andreas Kollegger. Hi Andreas? 
ABK: 00:20 Hello, Rik. Thank you for having me on the podcast today. 
RVB: 00:23 Yeah, I know. It's such a joy, thanks for coming on. I am going to call you ABK for short, if you don't mind, lots people know you as ABK. Why don't you introduce yourself Andreas? You've been part of the new Neo4j ecosystem for a very long time but maybe some people don't know you yet. 
ABK: 00:42 Sure. My name is Andreas B. Kollegger. I'll let the B be a mystery for the moment. I work for Neo Technology and I've been a part of the Neo4j community for-- it feels like as long as I can remember from at least as long back as back is the epic 0.9 release of Neo4j. 
RVB: 01:01 Oh no way. 
ABK: 01:03 Yeah, it's been quite awhile and I've grown from community member all the way through to now being a product manager or product designer depending on who you talk to and the time of day. 
RVB: 01:14 [laughter] That's very funny. And you've been a great stimulator of the Neo4j community. I remember talking to people on the East coast, West coast, South, wherever, that said, ABK made me start up a community over here or meet up over here. You've been part of it for such a long time, right? 
ABK: 01:34 Yeah that's right. From when we were truly just trying to get things going and get excitement through meet-ups and lots of advance and actually trying to continue that trend. When I was on the east coast it was my duty and honor and pleasure to travel up and down almost all the way from Boston down to around Washington, having meet ups, meeting people, talking whenever I could about Neo4j and spreading the great love of crafts that I'd found. And I'm doing the same now here in Portland. Actually tonight will be my very first community meet up in Portland. I'm very excited about that. 
RVB: 02:11 Super cool, super cool. When you say product manager, product designer, what does that mean? What do you do as a day job? 
ABK: 02:21 Yeah, that's why the sort of manager verse designer split is interesting. When I moved into like this role, it was thought of more as doing product design, which I guess is certainly a bit of a vague term if you we were building physical products like phones or something then I would very clearly be doing like graphic design for the phones like in 3D or something, sculpting physical objects would be part of the product design. But as they involved in the software project, product design ranges a bit more obviously from the front-end user experience elements of the product. But also we thought about it as paying a bit more attention to sort of the experience generally of using Neo4j. Any of the parts that you touch of Neo4j whether it's an API or the documentation on to the website. It would be good to have somebody just to try and connect all the different parts, and have them all make sense so that when you read something on the website it reflected how that part actually behaved, messages and things had the same voice and tone as maybe some of our blog posts. Obviously, that was only really something that when we were a smaller organization made sense. Now that we've grown substantially, we have people who are superb at each one of these things. I've been doing less and less of that focus and thinking much more in terms of just purely product management type of stuff which is take on different features of Neo4j. Taking a look, I guess, at the giant list of things we would love for your Neo4j to become, and what it is today, and where we think we are going, and figuring out what to do next, and how much of it do next. 
RVB: 04:03 But you're figuring more big things, right and yes I mean you're the movie star in the Neo4j trainings, right? 

ABK: 04:11 [laughter] I suppose that's true. I do forget that, and every now and again, I'll still meet people and they'll look at me and they'll say, "Wait I know you. Aren’t you the guy from the videos?" "[laughter] That's right. That is me." So, if you’ve had the pleasure of using our online tutorials and watching the short video clips, that is me in the video clips. 
RVB: 04:30 Exactly, in a beautiful tie and [laughter]... So why graphs, ABK? What attracted you to the graphs in the first place? And what fires you up every morning to keep on working on this stuff? 
ABK: 04:48 I have to say that my motivation hasn't changed since the early days of when I first went and tracked down Neo4j. I was in that generation of people who started looking for a graph before we knew we were looking for a graph. I've been doing international non-profit work. Actually, with this wonderful organization doing work in sub-Saharan Africa, and effectively use medical informatics work, right? We were doing patient care and disease surveillance and things like that and so many of the data models we were working with, we have the sort of classic realization that our sort of traditional, good old relational database models were either, really perfect and awesome for the reporting we needed to do. But maybe, not so great for actually doing any analysis and trying to understand public health concerns like, why did this pattern of disease progress in the way that it did? And, sort of collectively I think, we had an understanding that what we were doing was a graph problem. We didn't think about it, I think, in that way. Except that, I happen to be lucky enough to be, at the time, living in Baltimore and one of my neighbors was heavy into ontology databases. And, I was looking at his database and I thought, "Oh wow, that's brilliant. That's maybe exactly what I want I want." He talked to me about it, he said, "Well, maybe, but this may be more than you actually need. There could be something in between that has the flexibility and expressiveness of an ontology database but without being entirely prescriptive, so it could be a bit more flexible for the application and easy to use. And he actually introduced me to Neo4j. He said, "Why don't you go check out this project. It looks like it might be perfect for what you're trying to get done." And I fell in love. It was exactly what I wanted. It thought about data the way that I want it to think about data. And so, I used for few projects, I tried to you know get involved with community and make some contributions of my own to the code base and that's what began my life long sort of journey with Neo4j and the organisation and community. 
RVB: 06:56 Do you remember what was the killer feature that attracted you to sort of get started with it, what was that? Was it the domain model? Or what was it exactly that attracted you so much? 
ABK: 07:07 Honestly, it was this whole-- the simple to say the thing like that, it's all about relationships [chuckles]. It's almost trife, but like, that simple shift in thinking from looking at the, and caring about the individual records but to thinking about how these records relate. That's where all the value was and all the data modeling I was doing, all the applications I was doing. That was so much more powerful than the individual records themselves because that's where you see patterns and progressions of things and Neo4j elevated it and it made it an actual concern you dealt with as part of normal modeling, rather than maybe later on you add in some foreign key constraints or something. 
RVB: 07:51 Yeah, totally. Is that something that you still think is a core thing to the product? This relationship-centric view on things, is that still one of the core things? 
ABK: 08:03 I do think that it really is-- I think that's really were with the long term relationship with their graph model is, that's where the power is, is in the relationships. One of the near term challenges we had and startup challenge is that one of the getting started and introducing Neo4j. I happen to have my own epiphany. I realized that this is what I want until it felt perfect and it was awesome. But until you think in that way, it can seem weird, right? I feel like we were in this place where we've done a really great job with making graphs awesome, but we can actually do a little bit more to make grass easy to use as well. As it is right now, maybe you have to do. It's great that you think about relationships, but if you're always thinking about relationships, then some amount of structuring and just for getting started, it's like you have to think too much. And we'd like find a nice balance between, you will have to think only a little bit. If you're doing something simple then you don't have to think too much. The simple things you're really easier to do, but you don't get caught into a corner where, because we've made it too simple it's hard to do the more expressive and richer things. So, that's the balance I think that we're trying to move towards in the next-- actually certainly in  the next release as well. We're starting to put in some bits of capabilities, that will make that, I think a nicer interaction. 
RVB: 09:31 You know what, you're setting yourself up for my final question [laughter]. Where is it all going in this? Where do you see the industry, but also the product, a couple of years from now? What does the future hold? 
ABK: 09:48 Yeah, I think that certainly in the industry - that's the broader data base industry - and soon we're part of the NoSQL segment of it, which I think people finally realized like, isn't really a separate segment. It's just people, trying to deal with lots of data and figure out what the best way is to work with all that data. And from each of our different starting points, whether it's graph databases, the column stores, the key values, or anything else, that we're all, of course, iterating on our world view and slowly progressing towards a common understanding that we want to be able to do all the things really well. Of course, I still think that in the end of the day, that graphs of course, are going to be the best way always to think about everything, but as I was saying I guess, like maybe they have a little bit of extra thinking you've got to do just before you start structuring things. So there's things we can do to improve that, but I feel like within the next couple of years we'll see other databases realize that they want to do graph stuff and they'll start adding graph features, and you'll see us making it easier to do stuff that isn't strictly graph stuff. Simple things like let's say my favorite is always to say if you want to manage a list of things, it's very easy to conceive of but you've got to do a little bit of work if what you're doing is always managing relationships, connecting and disconnecting things. That should be dead simple to do and I think you're going to see in the next couple years that we have an easy way of entrusting that as well. 
RVB: 11:22 So what's your favorite feature in Neo4j 3.0? Sorry, trick question [laughter]. 
ABK: 11:36 So there are two things I'm excited about in Neo4j 3.0. One is actually just a very simple change to how we present what's currently called Neo4j browser, are the user client for accessing the database. We're taking just some practical steps there to actually separate development to that, from development of the database. And coupling that with the new protocol that we have, this BOLT protocol for connecting with Neo4j gives us the opportunity to do something that was awkward to, previously, which is that you can run Neo4j client, separate from Neo4j, and it can connect to any Neo4j database that happens to be out. It doesn't have to be tied to the database that started up, right? 
RVB: 12:17 Yup. 
ABK: 12:18 I think that's going to be brilliant. For just day to day use of the Neo4j, it will make much more pleasurable, and also we'll be able to deliver the clients separately from the browser and have an up surf from the database and have more frequent updates and feature requests going in. So, that'll be pretty exciting. 
RVB: 12:36 You know, I think there's so many nice things we could talk about. But as you know, I want to keep these podcasts digestible and short, so that people can listen to it on their commute, so I'm going to thank you so much for coming online Andreas. It's been a very nice conversation. I really appreciate it. Thanks again, and I look forward to seeing you soon. 
ABK: 13:00 Thank you Rik this is great fun, we'll have a beer soon. 
RVB: 13:02 Absolutely, no doubt. Cheers bye bye. 
ABK: 13:05 Cheers.
Subscribing to the podcast is easy: just add the rss feed or add us in iTunes! Hope you'll enjoy it!

All the best


No comments:

Post a Comment