Django Chat

PathAI - Robby Grodin

Episode Summary

An interview with Robby Grodin from PathAI, a medical startup using Django to transform the field of pathology. We discuss switching from Java, microservices vs monoliths, and the challenges of hiring Django developers.

Episode Notes

SHAMELESS PLUGS

Episode Transcription

Will Vincent  0:06  

Hello, and welcome to another episode of Django chat. I'm Will, Vincent. This week, I'm joined by Robbie Grodin of path AI to talk about how they're using Django at scale. Hi, Robbie. Hey, thanks for having me on. So let's talk about your background how you got into programming, why don't we start there?

 

Robby Grodin  0:20  

Sure, that sounds great. So, um, you know, I grew up in New Jersey, and I went to school at Northeastern here in Boston, for music technology, which is electronic music composition and synthesis, and, you know, all kinds of, you know, just focusing on using technology to make an analyze music. So different background, then you're typically going to hear in these types of cases. But um, while I was working with those tools, and also I gotten a really cool part time job at a company nearby called cakewalk that makes music technology software. I was able to get really close to the tools that I was using to make music and I thought, wow, this is really cool. How do people make this stuff and I took a summer class in supercollider which is a lisp derivative that you use to generate music. And I kind of just picked up really quickly and was like, oh, cool, I want to learn more about this. added another major and I just kind of took off from there was immediately getting involved in projects like the Java music specification language, adding XML parsers to that and started working. I did Co Op Northeastern as a great Co Op system. I got to work at blackberry for six months. And, you know, back was this back when blackberry was a real thing or they started the decline. This was actually like, this is in 2010 when they were rim. And nowadays, I have to say blackberry because everyone's like, what's rim? But this was actually when everything exploded. This is when all the layoffs happened, right and

 

Will Vincent  1:39  

right, because the iPhone came out in what 2007 I think Yeah,

 

Robby Grodin  1:42  

so yeah, finally it was this up in Canada, right? No, actually Um, so they have a had I don't know if they still have a satellite office in Andover about like 3040 people so it was never mass.

 

Yeah, Andover mass. So I was on part of the core MMS SMS team, which is just located there. So random

 

Will Vincent  1:58  

team to be located Yeah. Very interesting to work at a company on at that stage though. Yeah, it was it was interesting. I, I didn't.

 

Robby Grodin  2:07  

So I didn't really learn a whole lot of positive things, I would say I learned a lot of things that I want to avoid and mistakes that can be made. But it was, it was definitely a cool anecdote to have early on in my career that

 

has followed me. Mm hmm.

 

Will Vincent  2:19  

So I want to focus as much as we can on you know, path AI we are now and how using Django but I think you've also worked on a couple other really interesting companies, I think box as

 

Robby Grodin  2:28  

well. So um, after I graduated, I moved out to San Francisco. I went to music tech startup that literally a month after I got there folded, which was a weird situation for me as a new college grad whose girlfriend moved out with him as well. And then I ended up at visa for a short period of time. You know, corporate environments don't i don't last long there. So I did go to box for a year, which was really cool. That was my first experience of getting to work on API's at scale,

 

Will Vincent  2:53  

and what languages and frameworks were using,

 

Robby Grodin  2:55  

yeah, so it was PHP, you know, the dirty

 

PHP and It was great though I got to learn a lot of really cool things about reliability. I was a code reliability engineer on their Content API team. So I got to learn what happens when things fail catastrophic. Lee so to this day, every time I'm kicking off a project with someone, I always ask them, well, but what happens when this fails catastrophic? Lee?

 

Will Vincent  3:15  

Well, and that's great, because it's hard to get that experience unless you are already at scale exam. That's what we're gonna focus on today. There's so many things that until you've blown up a huge database or had these problems, it's hard to mimic it.

 

Robby Grodin  3:26  

Yeah, it's the abstract. It's hard to see around the corner if you've never been there,

 

Will Vincent  3:30  

right. So we're recording this here in Boston. And you know, like you I used to live in the bay and now I'm back in Boston. So I always like to ask people what brought you back?

 

Robby Grodin  3:38  

That's actually a very nuanced question. You know, I'll be honest, and it the culture out there professional culture is really not for everyone. So it really just was not for me. I think, you know, I kind of went out there with this goal in mind of I want to spend a year or two here and I want to really try to like jumpstart my career work it difficult Companies, you know, get a lot of experience. It just, it didn't. I don't know, it's just something about the environment was a little bit too much too much tech all the time. So I remember like, yeah,

 

Will Vincent  4:11  

that's a very East Coast attitude. But I agree with it. It's it because even here in Boston, I mean, there's a lot of tech, but there's a lot of medicine. There's a lot of other things out there. I mean, it's amazing, especially at first, but it is really all tech all the time. It is I just I recall, because Live Music is my biggest passion. And I remember going to a concert and not being able to hear the band over people talking about their startups in my ear. Every every Cafe is Yeah, it's not you know, okay, good. Can't escape it. So now the path AI so you've, you've been here what a year now? No, six months? Yeah. Closer to six months. Yeah. And then what's the quick pitch for listeners? What is what is path AI? So Pat,

 

Robby Grodin  4:47  

the AI's goal is to be the world's computational pathologist. So we look at pathology as the ground truth in medicine, right. Can you explain what pathology is? Absolutely. So let's say you've got some concern or your doctor has some concern about a mole on your body. lump etc, you go and you get a biopsy. So that's just a bunch of matter taken out of your body a small amount of matter really, and placed onto slides. So, historically speaking, to make a diagnosis and if there is a diagnosis then to discuss or recommend treatment, when a pathologist would do is look at that glass slide through a microscope and that is the same way it's been for hundreds of years. And it's incredibly error prone. The what

 

Will Vincent  5:25  

kind of levels

 

Robby Grodin  5:26  

like for a, so discordance amongst pathologists, for some of the more common diagnoses you're looking at like a 6% discordance rate, but now if you're talking about some of the more difficult, you know, small tumors or some of the more rare diseases, this could get upwards of 30 to even 45 close to 50% discordance which means you might as well be flipping a coin. Wow. It's a very brutal process. And, you know, pathologists they, they look at hundreds of slides a day and they only really get a few minutes each. So looking through a microscope when you realize you could have about a quarter million cells on it. Slide. It's like trying to find all the blue cars in Boston, you know, from a satellite view. Yes, that's a bad parallel that we like to make. So what we're doing is we're offering a GPS to pathologists. We're showing them where to look at the slide. We're giving them some quantitative analysis on the slide that the computer does. We're not replacing the pathologist, but we're trying to augment their ability to to affect a diagnosis. And to properly treat the patient right now, though, so we're pretty young company been around for like three years officially. I mean, the first year was like two guys in a basement, of course, as most good startup stories go. And as most Boston startup stories go, one founder was from Harvard Medical School, or Harvard. One was from MIT. That's just the way it works, right? But So right now, we're only effectively being used in pharmacology research. But we are building out and this is really exciting for me. So I'm on this team. And just because it's a really cool first step for this company and a great opportunity in the tech space. We are building out a medical device software as a medical device that's called again later, which will be able to, you know, we're going to put through the FDA process. And when we're complete with that, we'll be able to actually affect patient diagnosis and treatment. So really impacting the lives of patients everywhere. Wow. And it's interesting that you guys from the get go, you're trying to enhance the pathologist, you're not trying to replace them. I mean, that's my personal philosophy on technology is that good technology should always augment a human not replace them. So an analytical tool should surface information to an analyst,

 

Will Vincent  7:24  

rather than just output a decision that we just take for granted as being true. And is that the same? And because I think radiology is the other medical space where there's a lot of excitement around using Yeah, computers, is it a similar thing there? Or is it the thought more that they can totally replace radiologists?

 

Robby Grodin  7:42  

I wish I could actually give you a more informed opinion. But I actually don't really know much about radiology. Okay. In fact, like so this is my first job in the health tech space. Yeah. And we don't expect anyone coming in as an engineer especially or any other role that's not directly related to the biology or pathology to know these things, but they've been doing a really The phenomenal job of upskilling all the employees here and kind of teaching us about the different concepts of the past pathology. I'm still like, a baby brain pathologists, you know, yeah. But I'm sure as Moses and you're working with it every day, so totally, but I have been hearing from people like who are in the radiology space that they're equally as excited. And that's, that's something that I think is really worth looking into.

 

Will Vincent  8:20  

Very cool. So you said you joined about six months ago? Why did path AI choose Django? Is it was it all? Always Django from the beginning? Like, what was it about that journey?

 

Robby Grodin  8:31  

Yes. So originally, the application was built in java using the play framework. So the first stage of the pathology or sorry, the path AI product was more of a service based business. So it wasn't really so much a product so much as a means to help our partners conduct this research. So it's very hard very much like, Oh, you need this feature. Cool. Let me go throw that into the codebase. Real quick. Close the contractors thing they have money

 

Will Vincent  8:59  

to fund I guess starting out is to be Yeah.

 

Robby Grodin  9:02  

Yeah. And that's Yeah, exactly. So our original pricing was, you know, very ala carte.

 

So we hired a

 

VP of product design engineering, Jackson Wilkinson from Kara calm. And he came over with a wealth of experience and a lot of things, including building Django applications. So he, in my opinion, correctly identified a move to Python as being the ideal solution for some of the engineering issues we'd had. So one of the issues that you have whenever you have a Java platform is hiring engineers. It is very hard to hire job engineers I've done in the past. And you run up against this problem where either they are not very experienced in Java, which is fine, but it can be a bit of a beast to wrap your head around if you've never worked with it. Yeah. Or they're really good at Java, which means they're happily employed. Yeah, there's

 

Will Vincent  9:46  

less of that middle ground. Precisely. And I

 

Robby Grodin  9:48  

just I feel like as an educator, it's, it's I've taught people Java, and I've taught people Python. And for me, getting somebody to learn Java is very difficult because it feels very alien, very foreign, especially if you're used to something like Ruby or Python. That feels more natural.

 

Will Vincent  10:01  

Yeah, I mean, for me, I started with Python and JavaScript. And I only several years in looked at Java and I did a couple undergrad courses and just, you know, like walking to the fridge on my hands, like, I could do it. But why would I do it? Yeah, not everyone shares that point of view. But you really, you just just the print statement? I think it's something like 12 lines in Java versus Yeah. So it seems like, you know, there's value in learning, you know, just the structure and you know, that being static typing and all that, but yeah, hard to hard to go to it when, you know, there's something like Python. And then actually, I don't know the play framework very well. But Django in particular is pretty nice to use.

 

Robby Grodin  10:39  

Yeah, no, I mean, the play frameworks, not bad. I would say like, not like, terrible, it works. It's worked for us. It made us a very profitable company. So you know, not to diss it at all. But I think that for where we want to be a year from now, as far as size scale, and the types of problems won't be solving, Python just makes more sense. You know, when I Teach Python. One of the things I do is I say, Well, why are we learning Python today? Because I'm really here to teach you how to code. But I really want to teach you Python. And I pull up. There's a website. I'm not sure what the URL is, but it's um, it has hello world in every language. Yeah. Now I see 100

 

Will Vincent  11:13  

different languages. To it in the notes.

 

Robby Grodin  11:15  

Yeah. So I always show them. Here's Java

 

lines. Yeah, here's Python one line. And then for fun, I show them brain fog or law code or, you know, all the fun ones. Yeah, yeah.

 

Will Vincent  11:23  

Yeah. Yeah. No, no, that's, that's a it's a great way. I mean, it's slightly unfair comparison. But there's some truth to it.

 

Robby Grodin  11:29  

Yeah. But for a beginner, at least, I mean, you know, sure. Every tool has its use. But if your goal is to learn a language, starting with Java just feels unfair.

 

Will Vincent  11:39  

So then, and I know this is before your time, but do you have a sense of what that transition was? Like? I mean, you know, because we've been on the podcast talking about new Django projects, but in the real world, often you are migrating, you know, from something else. Yeah,

 

Robby Grodin  11:51  

no, actually. So I joined at a really exciting time. So when I had joined pathi I had just really was just like a few things. A few months into that transition. So the first step of that transition for patho was to transition from MySQL to Postgres for various reasons. So that had been completed. And then the first attempt at spinning up a new Java or sorry, new Django application was made. Now the goal was not necessarily to just port everything over Jango. The goal and I think this is the right way to work with legacy code, in my opinion, is to support a Java application. Do not do any new vo new development in Java, those start all that new development in Django. And as you know, technical debt arises new features that have to touch other areas of the code change. You start porting things over slowly, or like, you know, what I did was create a laundry list of these, you know, API endpoints with the help of my co workers that we can then pick the easy one support over and every time we hire a new Dev, their first task is just create a crud endpoint in Django and sunset, the Java endpoint.

 

Will Vincent  12:52  

Nice. And I assume that's Java Django rest framework we're using.

 

Robby Grodin  12:56  

Yeah, so we use DRF. So that so that first attempt was actually microservices. So we have two main squads here now three. So those two main squads are clinical and pharma. And pharma builds our customer facing application for the pharma research partners, whereas contributors, they build a consumer app for the contributors, the pathologists that help us train our models. So this is just pathologists giving, you know, real pathologists giving data on they would normally have to add into your preceptors. Yeah, so we send them stuff, they send us stuff, and we use that to train our algorithms.

 

Will Vincent  13:34  

And is that gonna always be the case or at some point, you'll build up enough of a data set that you can

 

Robby Grodin  13:38  

I have a friend that would always be the case, because the goal here is not just to impact one or one type of disease or, you know, a small subset of diseases, eventually, we want any diseases or treatments that will go through some sort of pathology, so it's not just cancer, liver disease, you know, all kinds of fun stuff. I won't get into it right now because there's a laundry list, but we're always gonna be adding new words. types of research to our platform. So we're always going to need new types of data. As far as what that's going to scale to and look like I'm not I'm not on that squad, but I'm actually really excited cuz I think that's really the special sauce here. Got Um, but yeah, so anyway, the the original attempt was to create those as separate micro services, we ran into this. A few issues there, though we didn't have a lot of engineers were like five or six engineers. So every new microservice that spun up, we, you know, was another micro service that someone had to own. So we had people owning multiple services, and it just got a little messy. Also, we wanted to share code between the two we're between

 

Will Vincent  14:32  

right, what can you just so what does it mean to spin up a micro service with Django?

 

Robby Grodin  14:37  

So, you know, we,

 

so that was kind of one of the issues, we didn't really fully define that, right. Some, you know, everyone's kind of building their own services in their own way. So, you know, we use Docker and to kind of create that virtual environment to set up our applications. So we kind of had like, what we thought was a standardized Docker file, but we didn't realize that Services had kind of diverged

 

pretty quickly. So, you know,

 

things were just not really consistent. And we found that people wanting to contribute code to some sort of sorry, share code across those two services to two main services because we had a lot of other smaller services. It just got a little arduous, we realized we'd end up having all these repositor GitHub repositories with like core utilities that would have to be like PIP installed. And it just didn't quite make sense.

 

Will Vincent  15:27  

So is each one like a Django like a self defined Django project? restart, okay, everything yeah, you start, you run the Django start project, got it, you get it set up in Docker, and then just kind of get going, and how it was just not to get too off track. But I'm working a lot with Docker and my new book and how are you finding Docker or Django because I find it's a little bit of a wild west still. Yeah. So this was actually using Pip, Pip or sorry, we use a pen exam. Okay. Yeah, he's, yeah, we should talk about that.

 

Robby Grodin  15:58  

Yeah, definitely. So This was actually my first real attempt at using Docker. I've used it in the past, but not I say realism, like first scaled application with Docker and one where I've actually had to really get in there and edit like the Docker compose and everything.

 

Yeah, I think with Django, we've found a way that works. But there are definitely

 

occasional gotchas.

 

Yeah. You know, we have to kind of think about versus like, Pip. Yeah, versus just like using Pip. But I think, you know, given that we have, like a front end team that, you know, sometimes they can hit staging, but sometimes they can't, just because our environments are still in their infancy, being able to quickly spin up a Docker container on a front end devs computer and not having them worry about what's inside of it is actually a huge benefit.

 

Will Vincent  16:47  

Yeah. Well in a team setting to to, you know, to be on the same image. Yeah. Is Yeah,

 

Robby Grodin  16:54  

I think it's good because you know, as somebody so I'm, I'm an application engineer, I don't want to think about the infrastructure. As more than I have to, that's just the way that I am as a person. So, it for me, I find it a great source of comfort knowing that like we've vetted these Docker compose commands, we know that we're going to be able to set up the environment the same way locally and on each other's computers and on prod and staging.

 

Yeah, it just, I don't know, it just gives me a sense of ease that I haven't had before.

 

Will Vincent  17:19  

And, I mean, I found the main, the the challenge of Docker is you want to kind of just use it and, you know, someone gives you a recipe and it works until it doesn't and then you have to really learn Docker and you know, things like, containers are ephemeral rebuilding images. I mean, that's a big one with PIP M is when you Where do you generate the lock file?

 

Robby Grodin  17:40  

Yeah, so we generate locally and check in the lock file. And we have had, you know, merge conflicts and a lock file. stink.

 

Will Vincent  17:48  

Yeah, there's, I mean, there's two ways to do I mean, yeah, you I mean, the problem, right is you create the lock file locally. And sometimes if it's in the container, you, you get conflicts. I mean, what I've, what I've done is I've found If I do it within Docker, and then through the volumes, it'll be the, it'll be copied over. And then I spin down the container, and then I rebuild it with the build flag to force rebuild. That kind of works for me. But it sort of it doesn't matter which one you do as long as you're consistent, but you get some really nasty bugs with, you know, the lock file in particular. Oh, yeah, we, um,

 

Robby Grodin  18:24  

I, at least I personally been most, I think most devs here, do everything inside of the Docker container.

 

Will Vincent  18:29  

I try to do everything I can inside of it. And but I think the fact that the files automatically sync but the database doesn't,

 

Robby Grodin  18:36  

yeah, that's a real that takes a while to internalize. Well, we also put our databases into a Docker container. So for local development, we have a and this is mainly used for something like a self contained environment. So we have some repos where everything is all in the same repo. And that's mainly for clinical purposes, that it's just better to have even and I know it sounds kind of gross. But like having the front end and back end in the same repo, we've been able to make it work with Docker. It's not desirable, but it's easier again, for the regulatory affairs process.

 

Will Vincent  19:11  

We've.

 

Robby Grodin  19:14  

So for that, we'll have the database that just gets spun up as its own, you know, command, it'll be like, you know, just, we'll have the database image, and then we'll just use the relies on keyword to make sure that get spun up. But for other purposes, when we have multiple services that need to hit the same database, yeah, we'll just have a separate, we have this repo called local dev Docker. And what it is, is it just you spin it up, it has the database there, and we use a local internal network. So all of our applications can talk to it. The idea being like, you shouldn't be using a local database to connect to a, you know, a container that's supposed to replicate what's happening on prod, because your local database won't be the whole point is to keep everything consistent.

 

Will Vincent  19:51  

Yeah, yeah.

 

Robby Grodin  19:52  

Yeah, that's Yeah, your mileage may vary on this. And also, this is like my, again, my first time really getting into this, but I think it's been it's been really cool to get to learn that

 

Will Vincent  20:00  

Yeah, I mean, when you work on stuff at scale, you realize things like production databases, massive. And how do you? I mean, at Quizlet, we had, I think we took like a 10th of all the files. So we had a version that we could use locally

 

Robby Grodin  20:12  

as a whole separate episode we could do on that. Yeah, well, for us, I mean, there's also considerations about data, because the data that we have on prod cannot live on our laptops. It's patient data,

 

Will Vincent  20:21  

right? You've got all right, all those additional concerns, but in

 

Robby Grodin  20:23  

our in this space, because you know, this isn't new,

 

like health tech is I think it's a really exciting time for health tech, because a lot of other people have made a lot of strides, we there is an open source data set the TCGA data set that people in this space can use. And that way we can have slide images and metadata about those slides locally, but we're not breaking any rules. Oh, that's

 

Will Vincent  20:45  

Yeah, I see. That solves a lot of problems. It does. It's very helpful. So something that we've talked about previously is that, you know, many Django applications are you've got a lot of users a little bit of data, but in your case, you have a small number of users and like can you talk about that The sizes of data you're dealing with. Yeah, totally. So um, we have

 

Robby Grodin  21:05  

hundreds of thousands of images of slides,

 

right, let's say and how and how big is an image? An image of a slide can be anywhere from two gigabytes to 20 gigabytes.

 

Will Vincent  21:11  

Wow. Okay, so but two gigabytes on the small size

 

Robby Grodin  21:15  

two gigabytes on spot, let's say it, let's call it 10 gigabytes, right, roughly. So you figure like, if I got like a phone with 64 gigs of memory, you get six images on your phone. And that's, yeah, massive data. But like, not so when I was at wayfair. So I spent three and a half years working at wayfarer. When I talked about big data, it was just a lot of information, lots of rows. I mean, I was working with clickstream data on one of the world's biggest e commerce websites. So like that was like run a query even though it's on vertica. You still got to go walk to Starbucks and then come back and get the results

 

Will Vincent  21:47  

right. Or

 

Robby Grodin  21:48  

you get a modern my code is compiling exactly like my query is completing or like you come back and you've got a few messages from one of the DBAs like, dude, I hate you. I killed Yeah, I'm guilty. But yeah, so The data that we have it's not massive quantities of data. It's just that it's a large amount of data. And we you know, if you think about what our main product is, we're replacing a microscope. So when you log into our platform, you've got things like asset management, project management, personnel management for users within your org. But mainly, we have slide management. And when you have slides, you click on a slide, you got to be able to view that slide. And we use a tile server much like Google Maps, you can zoom in and out to crazy like depths we have a deep zoom image tile server that we've built up. And each of those tiles can be a few Meg's if we're talking lossless here, and so is a modern pathologist just looking at a computer screen then. That's our goal. Yeah, is to not yet but maybe soon. So now, and this is also again, I'm coming up against the limits of my customer knowledge. But you know, there are, I think I believe that there are more forward thinking, you know, environments where currently that is, you know, slide scanners do exist. They're out in the wild. digitizing a slide image is not unheard of. So it is happening now. And I think, especially in the research area, but again, you go to those, you know, you go to any local hospital, you go in the basement to the farmer, it's

 

Will Vincent  23:11  

always in the basement. Yeah, sorry. They're their pathology lab.

 

Robby Grodin  23:13  

Yeah, they're gonna be looking through microscopes. Wow, you know, the goal is to replace that.

 

Will Vincent  23:17  

Yeah. Well, because I know the radiology world just a little bit through some friends really. And I know, in their case, they have $10,000 screens, because needs to be super sharp. And I would assume it's the same thing. Or this will be nice if you have these gigabyte size images. You hope you have a nice screen though. I you know, you'd think so? Or is it more about the all the levels that you can go through? So that's what

 

Robby Grodin  23:40  

yeah, it's really about being able to like zoom in to like a super high amount of just really getting in there and seeing it at a high fidelity. I think, again, you know, based on the data that's starting to come in from the partners that we're working with on the clinical side, we're finding that some of their technologies are a little bit more outdated than we would want To be, but you know, luckily it's like, nobody's like running like IE five or anything. Okay. But we have heard from pathologists who've come into the office to talk to us that they're running Windows seven. So they come in in the morning, they start up their computer, they go get coffee, they come back, and maybe it's

 

Will Vincent  24:17  

ready to go. So they're in Internet Explorer. Yes, something. So they're an IE. And wow. Yeah. So

 

Robby Grodin  24:25  

there's a lot to support. Now, we as on the pharma side, on the platform, we don't go back that far. As far as versions. I know, the front end team, I think supports I want to say don't quote me on this the last two major releases of each browser. I want to say that, but on the clinical side, we might have to be a little more

 

Will Vincent  24:41  

forgiving. Got it. So now something else you and I have talked about. So you We both have backgrounds teaching in hiring actually is hiring Django developers, right. There's an industry wide problem of no one wants to hire junior developers. And you have some thoughts on this. Oh, yeah. You guys are actively you're hiring and in You're doing a lot of people right now. Absolutely.

 

Robby Grodin  25:01  

Yeah, we are. So we're not doing the like, hyper growth thing. hyper growth is just like it sounds gross. And so we are scaling up though we're high. So right now we're at 58 employees, by the end of the year, we want to be at 100. employees, I want to say like maybe roughly 20%, or 20 to 40% of that is engineering, or what's the other person? So we have ml engineers as well. When I say engineering, sorry, I'm thinking more like product engineering, because obviously our product as well. So if ml engineering we have, you know, people who work in Regulatory Affairs, we've got it. We've got, you know, various HR related roles and we have a pathologist will probably be adding more to that team, hopefully.

 

Will Vincent  25:41  

And as so the machine learning is that like PhDs or can you come in and work on that out of college?

 

Robby Grodin  25:46  

Yeah, so that's PhD. So that's like, machine vision. That's like PhDs that's that's a really heady stuff that like my background as a quote unquote data scientist working in pandas and doing time series analysis is meaningless.

 

Will Vincent  26:01  

Okay, but on the website anyways, so what number Did you say for? So I think we currently have, well, how many you're trying to hire? Oh, we have. I'm curious, like, just to show you through like, what is the process of hiring? You know, is it 2030? People? So yeah, we have about like,

 

Robby Grodin  26:15  

yeah, for the rest of you, we're gonna hire about 15 to 20 people, I think for engineering,

 

and that's not even counting like Co Op and or interns, right. And even in Boston, which has a good engineering culture, it's, it's hard. It's very hard. It's also very hard. We're a young company that knows what it wants, but is not. We're not typical. We are a very a typical company. Yeah. So I think when I hear the word Junior, it's like, what does that word even mean? I don't really like that. We're like, the idea is that we're trying to hire people with a high upside with high potential. This is a long play. This is again, not hyper growth. We're not going to churn and burn our customers. We're not going to churn and burn our employees either. So I don't want to hire an engineer. Burn them out in six to 12 months and then get another one. That's not the goal. We want to hire people. People who are going to be a part of this company for the long haul, they're going to learn a lot, and they're going to grow a lot within what we're doing. So we're not looking for Django engineers granted if we get a Django engineer really exciting, because there's not a lot of them, right? Like, there's not a lot of people who dedicate themselves to Django.

 

Will Vincent  27:14  

It doesn't feel like there is I often have this conversation with people as big as Django is, I feel like it's not. Sometimes it feels like a very small world.

 

Robby Grodin  27:22  

Yeah. But I mean, you can, with the exceptions of like, you know, Pinterest, and I think

 

Instagrams on Django as well.

 

Will Vincent  27:28  

Yeah. Well,

 

Robby Grodin  27:29  

yeah. You don't have a lot of huge Django apps out there like massive scale. Django ads, just discuss, discuss, yes, there's what edX here in Boston, there's this sort of mid level? Yeah. So there's, they're out there. But it's not like a stone throw can hit five companies using Django, I think, from my experience at flask tends to be the more popular web framework in these types of companies. And that's, you know, I built dozens of web frameworks in flask working at companies like wayfarer and solaria. And it just is that more

 

Will Vincent  27:57  

is that more because it's just easier to do. something small and flask or microservices or what do you think that is? I think it's partially that but

 

Robby Grodin  28:03  

I think, you know, the fact the matter is when you work at a large company that is scaling, you have a lot of opinions. Yeah. And Django has its own opinions. That's it. Yeah. And one of the reasons that I tend to prefer hiring less experienced, you know, engineers, is because they have less opinions, or at least, that's not true. I don't think that they should have less opinions. I want my engineers to have opinions, but I want them to be loosely held genuine opinions are not loosely held. No. And we brought it up. So we had a big misstep that I think we made, which was, let me rephrase that as a big learning opportunity that we had early on was splitting up our date our Postgres database into two separate schemas, not using the public schema, which Django doesn't support. Because Django that's, that's a Postgres specific concept, and Django is meant to be while it is, you know, obviously Postgres is the first class, you know, citizen of Jango. It's meant to be database agnostic. Yeah. So I myself and another platform engineer. We sat in a room for two, three days straight. It was a, it was an interesting three days trying to hack Python into being okay with our setup, and we got to set it would work in prod, it was fine. But being able to spin up a test database with multiple schemas. It just, we had we could do it. It's just the length at which we had to go felt gross.

 

Will Vincent  29:20  

Yeah. And I see a lot of companies have this issue where there's, you know, Django isn't quite what they want. And then they, at some point, they customize it, and then they're kind of off the train of updates. And it's like, Why are using Django? Yeah, that's it. Yeah, that makes more sense with flask. I mean, cuz Yeah, once you're off, it's really hard to get back on. But as you say, I mean, I'm biased towards. There's something nice about guardrails.

 

Robby Grodin  29:45  

I agree. I mean, look, I've I've done some low level flask hacking, and it's fun in the way that driving down the highway 120 miles an hour's fun, but at the end of the day, it's not sustainable.

 

Will Vincent  29:58  

Yeah. Well, it's, it's Yeah, this isn't a, you know, attacking flask.

 

Robby Grodin  30:01  

No, I love flask. But it's it's good to have these use cases and talk about, you know, maybe some of the reasons why Django isn't at as common in huge companies just because you have, as you said, lots of opinions, lots of things you need to do. And if Django doesn't fully fit it, you might be tempted to. But for us, like we have, again, we have a very simple product that we're building. Like, at the end of the day, what my team is building is not revolutionary, in that many ways, like the machine learning team. They're building a state of the art cutting edge technology that is going to take us us being the human race into a really interesting time, where we can actually have more effective diagnoses. And this is a problem that I myself, as a consumer, you know, have seen my loved ones sit across from doctors and get a diagnosis that the doctor was not confident in. Yeah, so that's amazing. But all we're doing is taking data and moving it back and forth. Like we're showing slides to users. We're taking They're, you know, annotations and comments and storing them in our database and displaying them. We're not really again, with scale, we're not trying to build something that's a highly available web service that knows everything about every user and uses bid stream data and does this. It's not marketing tech. It's not right. You know, it's not high speed transactions for like, you know, trading it.

 

Will Vincent  31:17  

Yeah.

 

Robby Grodin  31:18  

So um, I think Django works great for us. I've, again, I've built a lot of tools in flask, I love flask, I teach flask often to, you know, people who want to learn how to build their first API, because you can do it in a matter of minutes. I remember I taught a 10 week long class at General Assembly on Python web development. And about halfway through is when we actually focus on flask. So we mean, these are this is meant to be people who have never coded before. So the first like five weeks are like, how, what is Python? What is Python? What's a print statement? You know, what is this weird terminal thing you're using? Yeah, it's weird. And when we hit flask, everyone's like, Alright, buckle up. And I'm like, okay, we do this. We do this. We do this. And we have an API and they're like, Oh, it is very magical. It is. And Django is the same thing though I remember the first API built in Django was a an API that was meant to be used for an interview case where if for front end, developers can build the API, and they would build the front end. Oh, yeah. So that's when I interviewed at Solari, we actually did practical interviews only where you had to build something. So as a back end, Dev, I had to build a chat bot in two hours. And I did it using flask and WebSockets. So I remember when I did this in Django, because my boss at the time was a really big Django fan. And I remember creating the models. I remember creating the serializers and then seeing Alright, so now what how do I get routes? And he's like, or no, and then create views, of course. So right now how do I get the routes? He's like, no, you're done. What do you mean like so he's like, just just run it and hit this endpoint is like, but I didn't find that the get or the post. what it was, it was mind blowing to me as a flask developer.

 

Will Vincent  32:54  

Yeah. Yeah. What this is what the view sets on you're using,

 

Robby Grodin  32:58  

or sorry, yeah, view sets. Yeah, yeah. So

 

created it was all generics. I mean, this was like three models and like nothing interesting at all. No, no function based anything

 

Will Vincent  33:05  

that makes sense in an interview setting. It's true. Yeah, I mean view sets are, I think we'll we'll dive deep into Carlson, I'll dive deep into them at some point. They're, they're, they're very powerful, and they can work great. If you have standard needs. I think a lot of times you need to do something a little bit more. And you can absolutely to just like get up and going. It's like, Oh, yeah, that's everything I like they read my mind.

 

Robby Grodin  33:26  

Yeah. And I mean, that's been a big thing here. Like, just kind of through education. You know, mentoring people who haven't used Django before is like, let's start with view sets. And then, but like, don't forget to also then follow up with the front end team, because oftentimes, the front end team doesn't know that things can be better. So for example, to create, you know, projects in our database for partners, you have to create, you know, five or six or seven different models on a single API call. And originally was being done with like six or seven API's calls because it was all

 

Will Vincent  33:52  

restful. It was all transient. You guys do nested nested API calls and I mean at the time,

 

Robby Grodin  33:57  

like, yes, But they were kind of hacked, they weren't exactly like, formatted in a restful way. And then, at the time, we didn't though it was Sorry, sorry, at the time that this project had started, no, it was all transactional, nothing nested. And now we do properly restful nested calls, but we also on the back end are like, Alright, we don't need to all be transactional, we can, you know, take this one big blob of JSON and, you know, override the serializer class to create all the different models that we need, or whatever. So kind of just like showing around that, like, we have these guide rails, but we can also be creative.

 

Will Vincent  34:34  

Yeah, we Carlton and I recorded an episode, which probably come up before this talking about Django rest framework and graph QL. And, you know, because graph qL is fantastic, but a lot of people maybe don't realize that you can do a lot with RESTful API structure and minimize a lot of the overhead. Yeah, without needing to go to graph QL.

 

Robby Grodin  34:54  

And that's one of the cool things about working on a smaller team is that we sit right next to you know, all the engineers and I can Just shout over at my friend, buddy. Hey, yeah, you only make this easier on you.

 

Will Vincent  35:05  

Yeah, well, so let's let's on the hiring friend. So you mentioned how does someone get hired with Django? What is the profile of say someone coming out of college or coming out of a boot camp? What? Should they have side projects? Should they be better stronger in Python and Django? Like what? Like, what's some advice? So they, they walk into the interview, you can say, Oh, this is a person with upside.

 

Robby Grodin  35:24  

So I think.

 

So first off, I focus a lot on communication. Because I can hire an amazing developer who can build the world's greatest application. But if he can't communicate with anyone else sitting around him, then who cares? And how do you evaluate that? And how I evaluate that as I give them painfully easy interview questions, which sounds backwards, right. So sometimes I will give like an algorithms question. That is like everyone can get, at least to the naive solution. Almost everyone can get to a better solution and most people can make it today. The ideal solution. And the goal is I don't care about your code, I hand you the marker. And I literally say to them, I'm here to judge your communication. I want to know what you're thinking about. I want to know how you know what, what your considerations are. And then simply based on whether or not they actually follow through, because sometimes they'll say things like, okay, cool, great, thanks for letting me know. And then they just pick up the marker and start coding and they don't say a word. And I'm like, I get you're nervous. You know, and one of the things that I like to do is, even if I always like to point out something that's wrong, even if it's not wrong, I

 

Will Vincent  36:29  

don't know if that'll work the way you think it does, does it just to force them to,

 

Robby Grodin  36:33  

but also to frustrate them, because that's the thing is like, at the end of the day, the coworkers that you want to work with are the ones who can separate themselves and their ego from the code and the work being done. That's the important thing. So that's one way that I judge that another thing that we do at path AI that I think is really unique. Every single person that works here has given a presentation, I think maybe except for like the first three or four employees. So part of your interviews you give a half hour presentation, the first five to 10 minutes of that is introducing yourself and most important Telling us why you want to interview appathurai why you want to work here. Right?

 

Will Vincent  37:03  

That's so important startups. Oh, yeah. You know, we found it's hard to sell someone on the idea of startups, if they're, you know, thinking about Google and startups, that's sort of hard thing to win. If they've narrowed it. You know, I think a lot of times people think they should they feel bad about saying, Oh, I'm interviewing with your competitors, when in fact, if someone comes in and says, I'm interviewing at all these other medical startups, or just all startups, that's a great thing. No, because then, you know, you just have to sell against them. You don't have to worry about, you know, a big company or something. Yeah.

 

Robby Grodin  37:32  

Well, I think to the point that you made when we were chatting previously was that like, if somebody comes in here, and they're interviewing at Google, Amazon, Facebook, it's like, do you want to work at a startup? Or do you want to work at a massive Corporation, which is fine, but like, if you want to be at Google, you're not going to have fun here.

 

Will Vincent  37:49  

That's what we that's what I found at Quizlet because I worked a lot on hiring that really team and you know, a lot of really smart kids, not kids, young adults coming out of top schools and if they were considering one of the big Companies, nine times out of 10, they're going to go there. Yeah. So it was a good pre screen to say, why don't you figure that out on your own. And then once you're sure about startups, then I can tell you why this is the one for you,

 

Robby Grodin  38:11  

which I think is you're doing, you should always be trying to do a service to the person that's interviewing, give them something to grow from, if they're not the ideal candidate already.

 

Will Vincent  38:19  

And sometimes, if you're, you know, the interview seat, you can tell what someone wants better than they can. Like, they may be trying to convince themselves of something, but totally, you know, there are just certain personality types that are better suited to bigger or smaller companies.

 

Robby Grodin  38:32  

Yeah, I mean, I'm guilty of that myself as well, in the past. We all have been, but I think that's a great learning experience. You know, for people.

 

Will Vincent  38:38  

Yeah. Alright, so t up and easy. algorithm questions. One of the things 20 minute presentation. Yes, it's

 

Robby Grodin  38:46  

a small tissue a small sorry, yeah. So the presentation, we invite everyone in the company. So again, everyone in the company or every candidate for every candidate. Now not everyone shows up now. We got 58 people here and I think you know, some of those are remote, so maybe you'll have like 40 to 50 people in the office at any given day, and Maybe like, you know, 10 to 20 will show up, especially based on the role. So for example, our front end, our front desk associate, gave a presentation. I think a lot of people showed up to that, cuz that's someone who, you know, affects

 

Will Vincent  39:10  

everyone's gonna interact. Yeah,

 

Robby Grodin  39:11  

absolutely. Whereas like, you know, engineers will get some front end engineers, some back end engineers, some, you know, will usually get some PMS and designers in there as well. And maybe even like it or anyone really that's interested sometimes, you know, regulatory comes in, because why not? Right.

 

Will Vincent  39:26  

And this is like a first round like, Is this like the early rounds, or this is like, right off the bat. So

 

Robby Grodin  39:30  

this is the first step of you're on site. So for engineers, we do. Okay, so to make it on site, okay. Yeah. So we have a, we have a phone call with a recruiter, we have a hacker rank, and then you come on site, the first thing you do is you give us 30 minute presentation, and like it's at the beginning of this, you tell us about yourself, tell us why you want to be here. And you know a little bit about your background, but then the rest of the presentation is about a particularly thorny problem that you have solved in the past, whatever that might mean. So for me, you know, I alluded earlier to some low level flask hacking that I did at wayfair actually got to prison. Then on that, and I think that was a really cool project, where we were trying to, we had essentially pickle files that held weights for a given recommendation algorithm. And we wanted to retrain that every day. So that meant we needed to swap out that pickle file without any downtime, which was like actually an interesting, yeah,

 

Will Vincent  40:17  

yeah.

 

Robby Grodin  40:18  

And I had to really get deep down into like, the, the server hooks and everything to make that work. And I mean, we were serving it from a samba share. So that was, yeah, yeah, that was fun. But so you know, you get to present on this problem. And And again, it's about communication. It's not always about Okay, is this the hardest problem on earth? Granted, obviously, choosing a good problem is part of the interview. Really? Yeah. It's like your decision making process, but it's really about how do you like tell us about the problem set it up so that we know what what the issue is? Explain it to your audience properly, because we're everyone This company is hands on. So we're all moderately technical. But if you have a you know, a UX designer in there, you don't want to start throwing around a you know, a bunch of hacks decimal values and not explain why you're doing so. So I think, you know, one of the things that I took to heart after presenting my presentation was one of the designers said to me, you know, for backend presentations usually understand 30 to 40%. You were able to explain this in a way that I understood like 85 90% of what you're talking about. And when she told me that, I was like, okay, that probably means I did well. And that's really you'd already been teaching for a number of years to write to us a little bit, like a huge advantage. Yeah, no, totally. Like, and that's, I mean, but you know, that's just the way it is really, I mean, having an advantage of something though. I am a public speaker. I know that for most engineers, that's not their design. Oh, I mean, even a blog post is is frightening for a lot of people. But

 

Will Vincent  41:37  

yeah, but I you know, I'm, I'm biased towards feeling that communication is important, and practices important. And, ultimately, you know, I always think attitude over aptitude once you hit a base aptitude. It's really attitude. I mean, the when I think of the people who haven't worked out in companies I've been in it's almost always attitude. It's not aptitude, and often they have high level of aptitude, which has gotten them to the point where they can get away with an attitude for a little bit. But, you know, if no one wants to work with the brilliant jerk, no, no. And I mean, that's why we, you know, the DB factor? How much of a DB are you? You know how much you know, and like, How nice of a person are you? It's really meaningful. And I usually, again, so communication is massive, but really, the most important thing that I look for, especially in less experienced candidates is coachability.

 

Robby Grodin  42:26  

Mm hmm. So can I teach you something? Can anyone teach you something? Can you teach yourself, you know, independence, like the ability to sit down for a few hours, try to work through a really difficult issue. You know, look through the documentation, look through StackOverflow and then know when you have to say, all right, I need help. I'm going to go and ask somebody for help. Yeah, that's important to me. Massively.

 

Will Vincent  42:48  

I agree. Well, I think we're getting near our time. Is there any other points you wanted to get in on there on path AI Django?

 

Robby Grodin  42:55  

Yeah. So I mean, we're, we're scaling up in a massive way and we're building something that is massive. be useful. And I think it's just really exciting to get to be a part of a team that has a problem that we all can actually wake up in the morning and be like, I know why I'm going to work today. And I think it's great that we get to use Python doing this. Before I joined path AI. I was going through like a severe identity crisis as a developer so much so that I actually was looking through culinary school programs to be like, I don't want to write code anymore.

 

Will Vincent  43:22  

Well, you were probably what five something years in professionally, professionally, I was

 

Robby Grodin  43:27  

where were you at? Geez, I was like six or seven years in.

 

Will Vincent  43:30  

I think that's not uncommon though. That somewhere I've seen like five to seven years and you to have this sort of like midlife crisis where you know, it's you have the confidence to know you can build anything but you realize how hard things are. And it's a little bit less shiny, and there's a there's a little bit of a gut check on like, okay, and a lot of times it becomes doing things like mentoring or other things to kind of keep you interested. Yeah, in coding. I think it's pretty. A lot of disciplines, especially coding. Yeah, that's I think that's not uncommon. Well, teaching keeps me humble. It reminds me like there's There are no stupid questions because anyone who asks me a question is Oh, this, this is maybe a stupid question. I say,

 

Robby Grodin  44:05  

six or seven years ago, I had the same question. So no, there's there's no stupid questions that there's only stupid people. And those are people who don't ask questions. And, you know, so I think like, given that, and having the teaching, you know, was something I was passionate about. And I wanted to keep doing that, even though if I didn't want to keep coding. But you know, I took a, I took a solo trip, I spent a week out in like Europe, just because I was lucky enough to do that I was between jobs. And I, I wanted to just kind of get my head straight, and figure out what I want to do my life and I came back. And there were just two things that stuck in my mind, which is number one, I want to be writing web services in Python, because I'd gone back to Java for a brief period of time. It was like nope, nope, nope, that clarifies it, you know, back to and I used to be a polyglot I thought of myself as but now I'm pretty confident that I'm a Python Isa, as much as I hate that word. But, you know, I also knew that I wanted to be in health technology because at the end of the day, I've worked 70 hour weeks, week after week after week, building something that I didn't feel was a net positive to myself for the world. And if I have any opportunity of doing that, I feel like it's going to be in the space. And I'm about six months in, and I still pinch myself every day. Because I get to work at this company with insanely smart, insanely passionate people building really cool technology, and also doing it in like a less stressful environment. I can do all these amazing things in 40 hours a week, which is like, I don't know, I, I'm really lucky to be a part of path AI. And I'm really glad that this exists. And that as time goes on, more and more companies like this are going to be cropping up. And we're actually going to be living better lives through technology.

 

Will Vincent  45:34  

Yeah, I think to for developers who have some experience who see who maybe want that extra meaning and realize that they can be more productive at 40 whatever hours a week instead of 80. I think that's a growing trend. I hope so. I think the time

 

Robby Grodin  45:47  

of being you know, a developer and being miserable being intertwined is is slowly ending.

 

And I'm glad for that.

 

Will Vincent  45:55  

Well, thanks for so much for coming on the show and we'll see everyone next time. Thanks for having me. This was great.