Pages

Friday, 8 June 2018

Podcast interview with Jeffrey Miller, ICC

Here's a podcast episode that I have been wanting/needing to publish for a long time .Jeffrey A. Miller works as a Senior Consultant in Columbus, Ohio as a consultant in effective software development practices with lots of organisations. Jeffrey has delivered presentations at regional technical conferences and user groups on topics including Neo4j technology, knowledge management, and humanitarian healthcare projects - and that of course became a great setup for our conversation.

Also - I found this really interesting: Jeffrey and his wife, Brandy, are aspiring adoptive parents and have written a fun children’s book called “Skeeters” with proceeds supporting adoption. Learn more about the project at http://skeeterbooks.com/.

Here's the transcript of our conversation:

RVB: 00:00:33.687 Hello, everyone. My name is Rik, Rik Van Bruggen from Neo4j, and here I am again recording our Neo4j podcast. And tonight I'm joined by someone from Columbus, Ohio, in the US, and that's Jeffrey Miller. Jeffrey, you work for ICC, but you've been doing lots of interesting work with Neo4j and I'd love to have you introduce yourself to our audience if that's okay.

JM: 00:01:01.890 Sure. I'm Jeffrey Miller. I'm an IT consultant in Columbus, Ohio. I've been developing business software for clients for over 20 years now, and I work for Information Control Company, or ICC, and I really enjoy working with Neo4j and exploring its possibilities.

RVB: 00:01:21.317 Yeah. Jeffrey, can you tell us a little bit about how you got into Neo4j? What's your history there? I know you were looking at graphs even before you knew what they were called, right?

JM: 00:01:31.466 Yeah. Yeah, I had been really interested in knowledge management for a long time and capturing organizational knowledge that seems to fall through the cracks when someone leaves a company or gets reassigned to another group or all the stuff that doesn't get written down. And I had been journaling about a system that could possibly model all of these things, or the system dependencies and how they relate to other parts of the system, or information and content. And so through the course of many years of imagining and building prototypes, unfortunately, some of the prototypes were in crude tools like Microsoft Access, if you can imagine that. Very painful. But when I found out about Neo4j and how it can model the relationships between anything you want, I was very excited. And so in 2014, I downloaded it and began experimenting with it, and was able to apply it at a client that I was at just a few months later and to model dependencies in their systems to facilitate some changes that needed to have that information available.

RVB: 00:02:46.581 What was the original use case that attracted you? Do you remember?

JM: 00:02:51.137 Well, the system was a web application, and we had lots of developers working on it and it was kind of a hectic pace to get it delivered. And at the last minute, the tech lead team decided to bring in a designer to fix all of the styles that we developers had been mangling for months, and in order to make it easier for the designer, I said, "Hey, if we throw all this in the graph database, I can tell you what users, which style sheets, and those kinds of things." And then I expanded that further to model the rest of the system as well, all the different web applications assets and how they all work to together. And I even spoke at a conference or two on that topic. I called it Six Degrees of Dev'n: How Graph Databases Can Save Your Bacon.

RVB: 00:03:51.391 That's a great title. Fantastic. And it's really the dependency management within a software system, is that what I'm hearing?

JM: 00:03:59.444 Well, there's that, and I've also used it to model relationships between accounts. At a client that I work at presently, a couple of years ago we were given a set of accounts that were thought to be duplicates, and as I explored the relationships within the data, I saw that it wasn't just one to one, it was one to many oftentimes. And in order to really understand it, I imported that into Neo4j and found some cases where it was more of a false positive on it being a duplicate because one example that I found was a burial vault had been matched up with a hair salon. And I said in both cases you're getting your hair done, but in one case you'd really don't care at all, so [laughter].

RVB: 00:04:45.741 That's so funny. I love that example. Really, really great. So what attracted you and why did you get into this then, Jeffrey? I mean, I think I kind of get why the use cases that you just mentioned would benefit from it, but was there anything that really sort of sparked your imagination when you first heard about this type of technology?

JM: 00:05:07.879 Yeah. Like I said, I'd been interested in knowledge management and I really wanted a system that could model connections between anything and anything else. I had a product idea, and Neo4j is way better than anything I imagined, but I wanted to describe just about anything. I came up with a new term for a particle of knowledge. I called a noton. So before I knew about nodes, they were notons in my journal. So it was just a way to describe something that you could connect to anything else. And eventually I discovered graphs and graph databases and it all clicked.

RVB: 00:05:48.179 Fantastic. And then was there a particular set of tools that you then used with Neo4j? Was it more .NET focus? Or what type of environment have you been using Neo4j in?

JM: 00:06:02.762 Well, I really enjoy using the browser. I use it quite a bit. And by the browser, I mean the Neo4j browser. It's very well done. And I've also integrated it with some Wiki tools. I use JavaScript and some hacks to integrate a single page wiki, which is TiddlyWiki, with the Neo4j browser so I can define content in the wiki and then push it into the graph model in Neo4j. And that's been a really fun experiment. I've also used it with C#, the C# interface, with tools like LINQPad, which gives me the ability to quickly input whatever data I want because you've got the power of C# and the LINQ libraries to look at text files or databases or anything that you really want to digest.

RVB: 00:06:57.208 Cool. Well, we should put some links to those tools in the transcription of the podcast, Jeffrey. That will be great if that's at all possible.

JM: 00:07:05.702 Sure.

RVB: 00:07:06.647 Absolutely. So where do you see this going, Jeffrey? What does the future hold in your mind for yourself, for the industry, for Neo4j? What do you think is around the corner?

JM: 00:07:23.084 Well, the thing that really excites me about graph-based systems is that it allows you to model things that normally would be closed off from each other. For example, in the software development process, you have quality assurance teams, you have development teams, you have the project management of all of that. And I see Neo4j as being a great integrator of all these concepts that never talk to each other under normal circumstances. I think even organizationally within a company - you have large enterprises like big banks, big companies - you've got so many people that they don't even know who knows what else they need to know. There's a big gap between the knowledge that is possessed within the company, subject matter experts, and then getting in contact with other people that could benefit from their knowledge and have a good exchange in the community. So I think Neo4j, in my mind, what it really inspires me is being able to cross boundaries that normally wouldn't be crossed. You see that with recommendation systems. I think you see that with connecting new data sources for fraud detection, those kind of things. But I think really, Neo4j excels at just modeling flexibly anything that you want to pull together. And that's always challenging when you have groups that don't normally talk to each other, and now they have to talk each other and kind of cough up their data. But when you start to see that put into a single system, then it's really a powerful concept.

RVB: 00:09:03.482 I couldn't agree more. It's like linking the missing links, right? The links between different silos that we always suspected they were there, but now we actually are able to kind of make them explicit and understandable, isn't it?

JM: 00:09:18.738 Yes. And I modeled that in a GraphGist. It's been posted on Neo4j's website. I was really thrilled with that. It's called the Software Development Process Model. So I took a topic that I'm familiar with, which is software development, and my experiences with that, and created a small model to demonstrate what benefit can be had.

RVB: 00:09:42.983 Yeah, fantastic. We'll put links to that one as well as in the transcription for sure, right? Hey Jeffrey, I want to thank you so much for coming online and taking the time to talk to me about all this. It's been great chatting to you, and I hope that we'll get an opportunity to meet someday and to talk more about this stuff in real life.

JM: 00:10:07.159 Yeah. I'd be thrilled to get to a GraphConnect in an upcoming future and meet you and Michael Hunger and some of the other folks that I've been able to talk to over the time.

RVB: 00:10:17.593 Yeah, that would be great. It's actually September 20th, right? We're doing the New York GraphConnect just after summer, so mark your calendars.

JM: 00:10:25.427 Great, I'll put that on my calendar [laughter].

RVB: 00:10:27.310 Exactly. Exactly. Thank you so much, Jeffrey. It's been great talking to you.