← Back to Show Notes

Transcript: PathAI - Robby Grodin

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?

Sure, that sounds great. So, 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

and analyze music. So different background than you're typically, you know, going to hear in these

types of cases. But while I was working with those tools, and also I got 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 super collider which is a lisp derivative

that you use to generate music and i kind of just picked it 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 a co-op the northeastern has a great co-op system i got to

work at blackberry for six months and um you know back was this back when blackberry was a real

thing or they started the decline this was actually like so 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 layouts happened right and right because the

iphone came out in what 2007 i think yeah so he is finally and was this up in canada right no

actually um so they have a or had i don't know if they still have it um a satellite office in

andover it's about like 30 40 people so it was andover mass yeah andover mass so i was um on

part of the core mms sms team uh which is just located there it's a random 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 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 um it was it was definitely um

a cool anecdote to have early on in my career that has followed me.

So I want to focus as much as we can on, um, you know,

path AI where you are now and how using Django,

but I think you've also worked in a couple other really interesting companies.

I think box as well.

Yeah. So, um, after I graduated, I moved out to San Francisco.

I went to a 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. Um,

and then I ended up at visa for a short period of time. Um, you know,

Corporate environments, 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 APIs at scale.

And in what languages and frameworks were you using?

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 catastrophically.

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 catastrophically?

Well, and that's great because it's hard to get that experience unless you are already

at scale.

Exactly.

And that's what we're going to 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 in the abstract.

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

Right.

So we're recording this here in Boston.

And like you, I used to live out in the Bay, and now I'm back in Boston.

So I always like to ask people, what brought you back?

That's actually a very nuanced question.

You know, I'll be honest, and 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 at 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. It was a little bit too much, too much tech all the time.

Yeah, that's a very East Coast attitude, but I agree with 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 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.

Right, every cafe is, you know, okay, good.

Can't escape it.

so now so path ai so you've you've been here what a year now no um six months yeah closer to six

months yeah and then what's the quick pitch for listeners what is what is path ai so path ai's

goal is to be the world's computational pathologist so we look at pathology as the ground truth in

medicine right um 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 or a 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 um placed

onto slides so historically speaking um to make a diagnosis and um if there is a diagnosis then

to you know discuss or recommend treatment what 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 um like what what kind of levels like um for a so discordance amongst pathologists

for some of the more common uh diagnoses you're looking at like a six percent discordance rate

but now if you're talking about some of the more difficult uh you know small tumors or some of the

more rare diseases this could get upwards of 30 to even 45 close to 50 percent discordance which

means you might as well be flipping a coin wow it's a very brittle 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 a given

slide, it's like trying to find all the blue cars in Boston from a satellite view. That's a 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

affect a diagnosis and to properly treat the patient. Right now though, so we're a 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, because 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. 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 my personal philosophy on

technology is that um good technology should always augment a human not replace them so an

analytical tool should surface information to an analyst 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 i wish i could

actually give you a more informed opinion but um 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 phenomenal job of upskilling

all the employees here and kind of teaching us about the different concepts of the pathology.

I'm still like a baby brain pathologist, you know, but I'm sure osmosis 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. Very cool. So you said you joined about six months ago. Why did Path AI choose

Django? Was it always Django from the beginning? Like what, what do you know about that journey?

Yeah, so originally, the application was built in Java using the Play framework.

So the first stage of 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 was very a la carte, very much like, oh, you need this feature?

Cool, let me go throw that into the code base real quick, close the contract, make the money.

What's a way to fund it, I guess, starting out is to be, yeah.

So we hired a VP of product design and engineering,

Jackson Wilkinson from care.com.

And he came over with a wealth of experience

in 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 Java engineers.

I've done it 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. Or they're really good at Java, which means they're happily employed.

Yeah. There's less of that middle ground.

Yeah, precisely. And I 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.

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 it was just, you know, like walking

to the fridge on my hands.

Like, I could do it, but why would I do it?

Not everyone shares that point of view, but you really, just the print statement, I think

it's something like 12 lines in Java versus, so it's seeing, you know, and there's value

in learning, you know, just the structure and, you know, just being static typing and

all that but uh yeah hard to go to it when you know there's something like python and then and

actually i don't know the play framework very well but django in particular is pretty nice to use

yeah no i i mean the play framework's not bad i would say like it's not like terrible it works

it's worked for us 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 um and the types of problems we want to be solving python

Python just makes more sense.

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.

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 yeah it's like a hundred different languages yeah we'll link to it in the notes

yeah so i always show them here's java 20 lines here's python one line and then for fun i show

them brain fuck or lol code or you know all the fun ones but uh yeah yeah yeah no no that that

is a great way i mean it's slightly unfair comparison but there's some truth to it

yeah um 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 it just feels unfair 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 no actually so i joined at um a really exciting time

so when i had joined um pathai had just really it was just like a few i think a few months into

that transition um so the first step of that transition for pathai was to transition from

my sequel to postgres for various reasons so that had been completed and then the first uh attempt

at um spinning up a new java or sorry new django application was made now the goal was not

necessarily to just port everything over to django 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 nouveau new

development in java though start all that new development in django and as thing you know

technical debt arises new features that have to touch other areas of the code change um you start

porting things over slowly or like you know what i did was create a laundry list of these um you

know api endpoints with the help of my co-workers that we can then pick the easy ones to port 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 nice and i assume that's java uh django rest framework you're using

yeah so we use drf so that so that first attempt was actually microservices we ran into this

a few issues there though we didn't have a lot of engineers we had like five or six engineers

so every new microservice that spun up we you know was another microservice 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 very between right what and can you just so what does it mean to spin up a

microservice with django so you know we so that was kind of one of the issues is we didn't really

fully define that right so some you know everyone's kind of building their own services in their own

way um so you know we use docker and uh to kind of create that virtual environment to set up our

applications so we kind of had like um what we thought was a standardized docker file but we

realized that the services had kind of diverged pretty quickly uh so you know things were just

not really consistent and we found that people wanting to contribute code to some sort of or

sorry share code across those two services two main services because we had a lot of other smaller

services um it just got a little arduous we realized we'd end up having all these reposit

github repositories with like core uh utilities that would have to be like pip installed um and

it just didn't quite make sense so is each one like a django like a self-defined django project

where you start okay everything yeah you start you run the django start project got it you get

it set up in docker um and then just kind of get going and how is um 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 with django because

i find it's a little bit of a wild west still yeah so this was actually um and using pippi's

pip or sorry we use um pipenv pipenv okay yeah yeah i use yeah we should talk about that yeah

definitely um so this was actually my first real uh attempt at using docker i've used it in the

past but not i say real as in 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 um we've found a way that works but there are definitely um occasional gotchas yeah

you know we have to kind of think about versus like pip yeah versus just like using pip but i

think um you know given that we have like a front-end team that you know sometimes they can

hit staging but sometimes they can't um just because our environments are still in their

infancy um being able to quickly spin up a docker container on a front-end devs uh computer and not

having them worry about what's inside of it is actually a huge benefit yeah well and in a team

setting too to you know to be on the same image yeah is yeah 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 um so for me i find it a great

source of comfort knowing that like we've vetted these docker composed 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 and i mean i found the main you know the the challenge with 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 yeah docker and you know things like um containers are ephemeral you know

rebuilding images i mean that's a big one with pip env is when you where do you generate the

lock file yeah so we generate locally and check in the lock file and we have had you know merge

conflicts in a lock file stink yeah there's i mean there's two ways to do it 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 uh 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's 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 i at least i personally

but most i think most devs here do everything inside of the docker container yeah 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 yeah that's a real um that takes a while to internalize well we also put

our databases into a docker container so for local development we have a um and this is mainly used

for so in 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 grody 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 the regulatory

affairs process um we've uh we 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 gets 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 um 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 yeah yeah yeah yeah that's yeah i mean your mileage may vary on this and

also this is like again my first time really getting into this but i think it's been it's

been really cool to get to learn that yeah i mean when you work on stuff at scale you realize things

like a production database is massive and how do you uh i mean at quizlet we had i think we took

like a tenth of all the files so we had a version that we could use locally um there's 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 right you've got right all

those additional concerns but in our in this space because you know this isn't new like health tech

is i think this is 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 yeah i see that solves a lot of problems it does it's

very helpful um 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 the sizes of data you're dealing with yeah

an image of a slide could be anywhere from two gigabytes to 20 gigabytes wow okay so but two

gigabytes on the small size two gigabytes on small let's say let's call it 10 gigabytes right

roughly so you figure like if i've got like a phone with 64 gigs of memory you get six images

on your phone and that's it yeah massive data but like not so when i was at wayfair so i spent

three and a half years working at wayfair and when i 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 your results right or it's like the 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 your query. 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 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 so 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

megs if we're talking lossless here and so is a modern pathologist just looking at a computer

screen then um that's our goal yeah is to not yet but maybe soon um so now and this is also again

i'm coming up against the limits of my customer knowledge um 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. Um, so it is happening now. Um, 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 farm.

It's always in the basement. Yeah. Sorry. They're, um, they're pathology lab. Yeah. They're going to

be looking through microscopes. Yeah. Well, cause 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 it needs to be super sharp.

And I would assume it's the same thing, or it will be.

Because if you have these gigabyte-sized images,

you hope you have a nice screen to...

You know, you'd think so.

Or is it more about all the levels that you can go through?

Yeah, it's really about being able to zoom in

to a super high amount of...

Just really getting in there and seeing it at a high fidelity.

Got it.

So now something else you and I have talked about,

so we both have backgrounds teaching and hiring, actually,

is hiring Django developers.

Because there's an industry-wide problem of no one wants to hire junior developers.

And you have some thoughts on this matter.

Oh, yeah.

Because you guys are actively hiring and interviewing a lot of people right now, right?

Absolutely, yeah.

So we're not doing the hyper-growth thing.

Hyper-growth is just like, it sounds gross, and therefore it is.

So we are scaling up, though.

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 maybe roughly 20% or 20% to 40% of that is engineering.

And what's the other percent?

So we have ML engineers as well.

When I say engineering, sorry, I'm thinking more like product engineering.

ML is obviously our product as well.

So we have 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.

We'll probably be adding more to that team, hopefully.

And so the machine learning, is that like PhDs or can you come in and work on that at a college?

Yeah, so that's PhDs.

So that's like machine vision.

That's like PhDs.

That's the really heady stuff that like my background as a quote unquote data scientist

where I was working in pandas and doing time series analysis is meaningless.

Okay.

But on the website anyways.

So what number did you say for?

So I think we currently have.

Well, how many are you trying to hire?

Oh, we have.

Because I'm curious, like just to walk through, like what is the process of hiring, you know,

is it 20, 30 people?

yeah we have about like yeah for the rest of the year we want to 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 um it's also very hard when you're

a young company that um knows what it wants but is not we're not typical we are a very atypical

company yeah um so i think when i hear the word junior it's like why what does that word even mean

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 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 it doesn't feel like there is i often have this

conversation with people as big as django is i i feel like it's not sometimes it feels like a very

small world yeah but i mean you can with the exceptions of like you know pinterest and um i

think instagram's on django as well yeah um well yeah you don't have a lot of huge django apps out

there like massive scale django apps discus discus i guess there's what edX here in boston there's

they're 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 that 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 wayfair and solaria and it just is that more

is that more because it's just easier to do something small in flask or microservices or

what do you think that is i think it's partially that but i think you know the fact of 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 oh 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 engineers to have opinions but

i want them to be loosely held django's opinions are not loosely held no and we butted 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 uh early on was um splitting up our date our postgres database into two separate

schemas not using the public schema oh which django doesn't support because 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 django 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 it so 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 lengths at which we had to go felt gross yeah and i i see a lot of

companies have this issue where there's you know yeah 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

it's like, why are you using Django? Yeah, that's, yeah, that makes more sense with flask. I mean,

because 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. 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 at 120 miles an hour is

fun. But at the end of the day, it's not sustainable. Yeah. Well, it's Yeah, this isn't a,

know attacking flask no i love flask but it's it's good to have these use cases and talk about

you know you know maybe some of the reasons why django isn't at ascom at huge companies just

because you have as you said lots of opinions lots of you things you need to do and if django

doesn't fully fit it you might be tempted to but for us like we have a 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 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 their you know annotations and comments

and storing them in our database and displaying them we're not really again with the 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 yeah yeah so um i think

django works great for us um i've again i've built a lot of tools in flask i love flask i teach flask

often to uh you know people who want to learn how to build their first api because you can do it in

a matter of minutes um 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 i 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 yeah what is python what's a print statement you know what is this weird

terminal thing you're using yeah it's weird uh and um when we hit flask everyone's like

all right 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 oh it is very magical it is and and django is the same thing though i remember

the first api i built in django was a um an api that was meant to be used for an interview case

where if for front-end developers we build the api and they would build the front end oh yeah

okay so 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 web sockets yeah so um i remember when i did this in django because my boss at the time

was a really big django fan and um i remember creating the models i remember creating the

serializers and then saying all right so now what how do i get routes and he's like oh no and then

i create the views of course and i say okay now how do i get the routes he's like no no you're

done i was like what do you mean he's like just just run it and hit this endpoint i was like but

i didn't define that the get or the post what it was it was mind-blowing to me as a as a flask

developer yeah yeah there's a lot of what the view sets then you're using i'm sorry yeah view

sets yeah yeah create it it was all generics i mean this was like three models and like

nothing interesting at all no no function based anything 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 carlton and 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 um i think a lot of times you need to do something a little bit more and you can

but certainly to just like get up and going it's like oh yeah it's everything i it's like they read

my mind 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 um you know projects in

our database for our partners you have to create you know five or six or seven different models

on a single api call and originally it was being done with like six or seven apis calls because

it was all restful it was all transactional you guys do nested nested api calls and i mean at the

time like yes but they were kind of hacked they weren't exactly like formatted in a restful way

um and 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 all right we don't need it 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 yeah we carlton and i recorded an episode which probably

come up before this talking about Django REST framework and GraphQL. And, you know, because

GraphQL 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 without needing to go to GraphQL.

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, you want me to make this easier on you?

Yeah.

Well, so let's, on the hiring front.

So you mentioned, how does someone get hired with Django?

a profile of say someone coming out of college or coming out of a boot camp what you know should

they have side projects so they'd be better stronger in python than django like what like

what's some advice so that when they walk into the interview you can say oh this is a person with

upside so i think um so the 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

is i give them painfully easy interview questions which sounds backwards right um so sometimes i

will give like an algorithms question um 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 to 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 i'll say they're 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 um 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 don't know if that'll work the

way you think it does does it just to force them to but also to frustrate them because that's the

thing is like at the end of the day the co-workers 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 um 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 interview is you give a half hour presentation

the first five to ten minutes of that is introducing yourself and most importantly

telling us why you want to interview at pathai why you want to work here right that's so important

in startups oh yeah especially for us 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 a 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 well 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

oh 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 well i think to a 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

that's what we that's what i found at quizlet because i worked a lot on hiring the early 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 ten they were 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 which

i think is you're doing you should always be trying to do a service to the person that's

interviewing right give them something to grow from if they're not the ideal candidate already

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 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 um you know for people yeah all right so tee up an easy algorithm question

is one of the things it's already made a presentation yes it's a small presentation

oh sorry yeah so the presentation we invite everyone in the company so again everyone in

the company for 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 i'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 because that's someone who you know affects

everyone's going to interact yeah absolutely whereas like you know engineers will get some

front-end engineers some back-end engineers some um you know we'll usually get some pms and designers

in there as well um and maybe even like it or anyone really that's interested sometimes you

know regulatory comes in because why not right and this is like a first round like is this like the

they pass the early rounds or this is like right off the bat so this is the first step of your

on-site so for engineers we do okay so if they make it to 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 this 30 minute presentation. And like I said, the beginning of this, you tell

us about yourself, you 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, I actually got to present 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 problem yeah yeah and uh 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 um 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 um it's like your decision

making process but um 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 uh you know a bunch of hexadecimal values and not

explain why you're doing so um so i think you know one of the things that i took to heart after

presenting my presentation was um one of the designers said to me you know for back-end

presentations usually i understand 30 to 40 you were able to explain this in a way that i understood

like 85 90 of what you were talking about and when she told me that i was like okay that probably

means i did well and that's really what you've already been teaching for a number of years too

right so you have a little bit of 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 and i know that for most engineers that's not their desire no i mean even a blog post

is is frightening for a lot of people but yeah but i i you know i'm i'm biased towards feeling

that communication is important and practice is 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 a 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 how nice of a person are you is really meaningful and

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 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 uh stack overflow 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 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?

Yeah, so I mean, we're, we're scaling up in a massive way. And we're building something that is massively 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.

Well, you were probably what, five something years in professionally?

Professionally, I was like six or seven years in.

I think that's not uncommon, though, that somewhere I've seen like five to seven years

in 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 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 might be a stupid question i say six or seven years ago i had the

same question so no there's there's no stupid questions the 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 that 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 i took a i took a solo trip um

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 in 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 yeah back to and i used to be a polyglot i thought of myself as but

now i'm pretty confident that i'm a pythonista as much as i hate that word um 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 or the world. And if I have any opportunity of doing that, I feel like it's

going to be in this 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,

which is like, I don't know. 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.

Yeah. Well, I think too, for developers who have some experience, 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 of being a developer and

being miserable being intertwined is is is slowly ending and i'm glad for that well thanks for so

much for coming on the show and uh we'll see everyone next time thanks for having me this is

great