Latest / Agentic Conversations (formally mlops.community) / All Data Scientists Should Learn Software Engineering Principles // Catherine Nelson // #245
Transcript
- 0:01I'm Catherine Nelson. I'm the author of Software
- 0:04Engineering for Data Scientists and freelance Data Science Was
- 0:09and I make my coffee in a fancy espresso machine and I like a
- 0:14latte. What is our MLA's community?
- 0:17We are back with another podcast episode.
- 0:19I'm your host Demetrios, and today we're talking with
- 0:22Catherine all about software engineering for data scientists.
- 0:25This is an episode where we break down what is going on when
- 0:30it comes to data scientists levelling up and understanding
- 0:34how systems work, not just their little piece of the puzzle.
- 0:39So if you are a data scientist and you're looking to expand
- 0:43your skills, this is a great one for you.
- 0:45And in addition to this, I would highly recommend that you get
- 0:48Catherine's book that just came out with the title Software
- 0:52Engineering for Data Scientist. And if you're not a data
- 0:55scientist and you're listening to this, hopefully it will give
- 0:58you a little more empathy for the data scientists out there
- 1:00because lots been put on their back.
- 1:03One thing that I was thinking about after we got off this call
- 1:06and after I talked with Catherine, is just how vague a
- 1:10data scientist job description is and their roles in one
- 1:15company it could mean one thing and another company it.
- 1:18The tasks that you are expected to undertake can be completely
- 1:23different. And because of that, because
- 1:25there's not that standardised understanding of what a data
- 1:30scientist actually does and should know and should be able
- 1:34to accomplish. Well, get a bit of everything.
- 1:39And so you may have that data scientist that knows how to
- 1:44write in YAML or that is able to take ownership of the model and
- 1:50the model they create, they put it into production.
- 1:54They don't just throw it over the wall.
- 1:55Or you might have the complete opposite where there's a data
- 1:57scientist who doesn't understand git.
- 1:59So this is an episode to go into the cultural aspect of that.
- 2:06And if you are data scientist, give you a bit of direction on
- 2:11what you should be known and also why you don't know these
- 2:15things. Let's get into it with
- 2:17Catherine. And as always, if you like, this
- 2:21episode would mean the world to me if you can share it with just
- 2:25one friend and get Catherine's book.
- 2:28If links in the description talk to you later, I have to mention
- 2:39to start your first book because I think you wrote it with a
- 2:43friend. Honest, right?
- 2:45That's correct. Yeah.
- 2:46Yeah. That was my entry into the world
- 2:49of writing books. And yeah, I was really glad to
- 2:53have that opportunity to write with Hannah.
- 2:55That was a tonne of fun and yeah, really enjoyed that.
- 3:00Yeah. And so the other thing that I
- 3:03wanted to mention before we really get into the meat and
- 3:05bones of software engineering for data scientists and that
- 3:09whole discussion is the idea of meeting in person more often.
- 3:14And I know that you just got back from ICON.
- 3:17Yeah, that's right. Yeah.
- 3:19How was it? It reminded me how good meeting
- 3:23in person is. It was because it's not the
- 3:27thing. It's not the meetings that you
- 3:29expect to happen. That other really about really
- 3:35made that special and worthwhile.
- 3:37It was the unexpected things like the dinner with an old
- 3:41friend where we just discussed anything and everything and all
- 3:46our thoughts on the rise of AI and what we were doing in our
- 3:50careers and all these kinds of things.
- 3:53And you just don't get that kind of thing when you have to pre
- 3:57plan meetings. So yeah, honestly, it felt
- 4:03intimidating going to a big conference, Thousands of people.
- 4:10I work remote. I don't spend time in places
- 4:14where there's thousands of people, but it was good to
- 4:15remember just how worthwhile it is.
- 4:19So I had almost the same situation happened because I
- 4:23just got back from the data and AI Summit and it's so funny.
- 4:29You cross paths with people and you realise, hey, I didn't know
- 4:34you were going to be here. Ohh yeah, You know, And then all
- 4:37of a sudden some people that I've only been talking to online
- 4:40for the past four years, now I get to see them in person and we
- 4:45have coffee or we have dinner or we have lunch, whatever it may
- 4:48be. And you can't get that if it's
- 4:51like, hey, are you free? Yeah, send over my calendly link
- 4:54and then it's blocked off. It's like those serendipitous
- 4:59moments. It's very hard to get virtually,
- 5:02yes. And so I feel you 100%.
- 5:06And that's also, I mean, we're doing the AI quality conference.
- 5:09I am thinking about that so much right now is how to make the
- 5:13attendee experience just top notch and provide for those
- 5:18serendipitous experiences. Because I imagine there's going
- 5:21to be a lot of people that are going to know others at the
- 5:25event, but they don't realise that the other person is going
- 5:28until they get there and they're waiting in line for coffee or to
- 5:31register with them. And then it's like, hey, let's
- 5:33hang out. And so how do you have all of
- 5:37the cool talks, but also how do you have the spaces for people
- 5:40to hang out and have those moments?
- 5:43Well, I have one suggestion for you which which I heard at a
- 5:46conference a while ago, and they actually announced in the sort
- 5:51of intro keynote talk, but if you were standing in a circle
- 5:56with a bunch of people talking to each other, they encouraged
- 5:59you to leave a gap in that circle if someone knew you could
- 6:03join in. Like if you don't know a bunch
- 6:06of people to get started with and there's a bunch of people
- 6:09hanging around talking, it feels intimidating to like step into
- 6:12that. But if you leave the gap to
- 6:14encourage new people to join, that just makes more space for
- 6:19those serendipitous get togethers.
- 6:21Yes, it's much more welcoming. I know we didn't come here to
- 6:24just talk about in person tech conferences all day.
- 6:29I really want to know about your new book which is all around
- 6:36software engineering for data scientists, right?
- 6:38Yep, that's, that's the title. That's what it's all about,
- 6:41yeah. Yep, you you can't get anymore
- 6:44clear than that. I think.
- 6:46It is a topic that has come up so many times in the last four
- 6:51years doing this podcast. And whether it is like, I think
- 6:56one of the huge champions for this is Matt Sharp talking about
- 7:03clean code for data scientists or we have Lazlo in the
- 7:07community who is gung ho about like production code and what
- 7:12you need to know if you're data scientists.
- 7:14And so there's a lot of threads we can pull on.
- 7:18Let's just start like, why did you feel inspired to write this
- 7:22book? Yeah, so it's something that
- 7:24gets so much bad press. You see all these Reddit threads
- 7:28about like, data scientists write terrible code.
- 7:32What is going on? I'm ashamed of birth, but then
- 7:37my experience when I was early in my data science career, I was
- 7:42the only data science on a team of designers and engineers and
- 7:48product people. I nothing in my background in my
- 7:53the courses I've taken had prepared me for that.
- 7:58They'd given me the language to work on a software team.
- 8:02So I had questions like what is an API?
- 8:07What is the test? How do I write a test?
- 8:10And I wanted to learn more about this and I started looking at.
- 8:15I asked people for recommendations for books or
- 8:18whatever, and the the books and the examples, they were all
- 8:23aimed at web developers or the examples were in Java or similar
- 8:28things. That it wasn't.
- 8:31There's a whole load of extra knowledge that I needed to be
- 8:35able to get all the good stuff about what is clean code that
- 8:39weren't that wasn't really useful to me as a data
- 8:42scientist. It wasn't approachable because
- 8:46all of a sudden now you're like, wait, C.
- 8:49What? Is that Java?
- 8:51Whatever. Yeah, maybe.
- 8:52Do I need to like learn this language well enough to
- 8:55understand the examples so you learn what it should be?
- 8:59Ohh yeah. So that can be very painful.
- 9:03And then later on I had a mentees who I saw having exactly
- 9:09the same problem. So round about middle of 2021, I
- 9:13was just thinking this should be a book.
- 9:16I didn't think I was going to write it, but I was like this,
- 9:19this really shouldn't exist. There should be a guy that's
- 9:23aimed at people who are writing code in Python, who are not
- 9:28particularly developing for the web, but they want to write good
- 9:30code. Because as data scientists, we
- 9:35don't want to write bad code. We're not writing sprawling
- 9:38Jupyter notebooks just to be perverse or anything.
- 9:41There are good reasons for this, like.
- 9:44I thought it was, yeah. I thought they were into S&M and
- 9:47that was the reason why. You had it right, And just like
- 9:53the exploratory nature of a lot of data science projects does
- 9:58lead you to write long scripts and do that quickly, just to
- 10:02kind of try out your ideas and go through that process.
- 10:08It's useful to explore data in a Jupiter notebook where you can
- 10:11see examples of it easily. But then as data science has
- 10:17become more mature, then you start to need to put that code
- 10:22into production. And that just needs a completely
- 10:25different way of thinking about things.
- 10:27Yeah. So actually the bar, it becomes
- 10:30a lot higher there. They designs because you have to
- 10:32know how to explore your ideas quickly, but then also turn it
- 10:37into solid, robust production code.
- 10:40Yeah. So it's funny, you mentioned the
- 10:43idea around wanting to explore as fast as possible.
- 10:46And basically there the code is the least of your worries.
- 10:51Yeah. So you're just trying to see
- 10:52like, hey, is this assumption that I have actually valid?
- 10:55Is there something there? And you're figuring out where
- 11:00you're going to go with things and what you're going to invest
- 11:02time into. And so the last thing that you
- 11:06want to be investing time into is making sure that your code
- 11:10looks nice, because that's the least of your worries.
- 11:13Yeah, you just gotta hack it together as quickly as possible.
- 11:16But what I wanted to equip people with in my book was to
- 11:20know the difference between the code that you just hacked
- 11:23together as quickly as possible and what good code is.
- 11:29Yeah. And take a whole chapter.
- 11:31I just to like explore the various ways that could.
- 11:36The chapter is called What is Good code?
- 11:38And I just explore that idea and why you might want to do this
- 11:43because it helps you scale out, but it helps you avoid technical
- 11:47debt when you get into production systems and so on.
- 11:50Yeah, it does feel like the wise data scientists understands that
- 11:56difference and say, no, all right, I'm doing this now just
- 12:00to move fast. But once I have something and
- 12:05once I'm ready, I'm not going to just say this is OK to send over
- 12:12to someone else on the team. I need to take the time and
- 12:16really format it or just put put in those hours.
- 12:19Yes, to make sure that people understand where I'm coming from
- 12:25and it's not just spaghetti code.
- 12:28And as you get more experienced, you start to develop a sense for
- 12:33when pieces of that code might be useful for another project or
- 12:37similar projects, and develop a library of things that you can
- 12:41use. And that because you're going to
- 12:44run it repeatedly, you want that.
- 12:46You want to be sure that works well, you want it to be
- 12:49efficient, you want it to be tested, and so on.
- 12:52Yeah. So there is a few things that
- 12:55you mentioned that you feel like there's a disconnect, right?
- 12:59And I've heard it a lot on here where people will say, wow, I've
- 13:04worked with a data scientist and they didn't even understand Git.
- 13:08And so that was like the that's like the meme, like you were
- 13:11saying on Reddit, you hear a lot.
- 13:13I've been guilty of it. Yeah.
- 13:15And it's so easy to throw data scientists under the bus.
- 13:19Sorry for all the listening and out there, but I feel like it's
- 13:24getting better. And books like yours and just
- 13:27like movements, people talking about it, it's understandable
- 13:31now that you shouldn't be doing that or it's not the best.
- 13:36Where else do you feel like there is a disconnect because
- 13:39you mentioned the APIs you you hadn't understood from all of
- 13:45your training to become a data scientist things like APIs or
- 13:50like code review, imagine was foreign concepts.
- 13:54What else is there that you you're like, OK, let's, let's
- 13:59build a bridge into more software engineering practises
- 14:03that data scientists can follow. Security was definitely another
- 14:07one. That's something that isn't
- 14:10talked about in data science courses because you're like,
- 14:13ohh, let's go download this data set from the web.
- 14:16We don't need to. We don't need to take any care
- 14:19with that. We don't need to treat that
- 14:22securely. Or the Pypi packages.
- 14:25It's like, yeah, we'll just download any of these part by
- 14:28packages. Right.
- 14:29Yeah, well, just save our models and pickle and outplay them
- 14:33everywhere and yeah, ohh. Classic.
- 14:35But if you're just dealing with open data, open source software,
- 14:40like most of the data science training, then why would you
- 14:45know any of any of those aspects of things?
- 14:49That's just not relevant. But then suddenly you're working
- 14:53in a software team, you're working with real people's real
- 14:57data. It becomes really important.
- 15:00And are there specific ways that you've found basically just to
- 15:04level U? Let's take the security one for
- 15:07example, like me not knowing anything to me at least having a
- 15:11grip on it. Should I just familiarise myself
- 15:14with the terms or should I familiarise myself with like all
- 15:17the different ways that there are vulnerabilities?
- 15:19Or should I just know don't download open data sets off
- 15:22hogging face? In, in my book, the tapped
- 15:26around security. It's just like, hey, security is
- 15:29a thing you should think about. This is what the risk means.
- 15:32This is what the threat means. This is what the vulnerability
- 15:34is. Here's where you can go and find
- 15:37ones that might be relevant to the work that you're doing.
- 15:40And some basic stuff aren't just like physical security and so
- 15:46and some details about the consequences of when people
- 15:49don't. So I put in some details on like
- 15:52high level, high profile security breaches and just how
- 15:56big a deal that is. Security for machine learning is
- 15:58this whole new thing as well an adversarial attacks on machine
- 16:03learning models. That is absolutely something
- 16:06that they'd find for some machine learning engineers
- 16:08should be aware of and thinking about just the possible methods
- 16:14of attack and what they can be doing to mitigate those.
- 16:18It was funny, I saw a LinkedIn post.
- 16:21You know how LinkedIn now will like prompt you to answer?
- 16:25It's like you're an expert and you should answer this question.
- 16:28Somebody just I'm pretty sure they're trying to like train the
- 16:31model off of all those answers. And I saw something that I
- 16:36thought was hilarious because I saw somebody's answer pop up on
- 16:40my feed. It had nothing to do with the
- 16:43question, and it was obvious, like just data poisoning.
- 16:46And so I can only imagine that person.
- 16:50'S. Writing a whole lot of answers
- 16:53or potentially like just prompting chat TBT to be, hey,
- 16:56I'm angry grumpy coder who doesn't like this answer these
- 17:0110 questions for me and then they go and answer them.
- 17:03And now you have to think about data poisoning.
- 17:06So hopefully people also are keeping that and they account,
- 17:10but that I would imagine is more in the realm of a data
- 17:13scientist, like they understand that much more than they
- 17:15understand Kubernetes. Death, definitely, and a lot of
- 17:21what you can do about that comes down to careful monitoring and
- 17:25analysis of your model and how it's performing.
- 17:27So that is absolutely in the realm of the data scientist or
- 17:30the machine learning engineer. Yeah, yeah.
- 17:34We would always ask, I think in the beginning of the community,
- 17:37because when basically 2020 when things were very unclear on who
- 17:45owns what, what is a data scientist, what is an ML
- 17:48engineer? Not that I'm saying like it's
- 17:50super clear now, especially with the rise of an AI engineer and
- 17:53what's the difference between that and a mill engineer?
- 17:56But I remember we would constantly kind of be asking one
- 18:01another, who gets the ping at 3:00 AM when the model's gone
- 18:05rogue, who's owning it? What is the ownership look like?
- 18:10And nine times out of 10, it's not the data scientist because
- 18:13they don't they're not able to be like, ohh, rollback.
- 18:17And. They.
- 18:18Can ones? They're the ones taking the big
- 18:20picture of you rather than the like, immediate production
- 18:24monitoring, I should think. Exactly.
- 18:27And so that kind that that dovetails nicely into the next
- 18:32question that I wanted to ask was, yeah, from data scientists
- 18:36to machine learning engineer, If we loosely just describe like a
- 18:42data scientist being someone who is very much about the modelling
- 18:47and playing in there almost like statistics and analysts and
- 18:53creating models, but less on the infrastructure side.
- 18:57And the mill engineer being someone who maybe is more on the
- 19:01platform side supporting the data scientists and less on the
- 19:06modelling and definitely less in the Jupiter notebooks realm of
- 19:10things. How have you seen people
- 19:14successfully transitioned from a data scientist to a machine
- 19:18learning engineer? I think the biggest thing is a
- 19:24change of mindset because you're moving from someone who's
- 19:28focused on exploration and uncertainty and oh, I've got
- 19:34this big problem to solve, but I don't know how I'm going to do
- 19:37it. And I'm completely happy with
- 19:40that and exploring that space to someone who's saying I'm gonna
- 19:45make this run repeatedly, I'm gonna make this scale up, I'm
- 19:49gonna make sure it's running well.
- 19:52So you moving from that very open and exploratory type of a
- 19:58job to something where you're very focused on standardisation
- 20:03and making sure that everything is efficient and robust and
- 20:10tested. So you might still be running
- 20:14some experiments, but it's in a, it's in a narrower field.
- 20:19So yeah, I think that's the that's the main thing.
- 20:23That's what I've seen people do. And a lot of the ways that
- 20:27they've gone about that is more getting really interested in the
- 20:31code that you're writing and letting how to write that well
- 20:35so that you're less focused on the project direction and the
- 20:39science and more interested in like, ohh, how am I actually
- 20:42doing this task? How do I do that efficiently?
- 20:47And thinking about how to scale things up.
- 20:50Thinking how to make each piece more efficient and fit together
- 20:54better. Yeah, It does feel like it's
- 20:57going from the ad hoc nature to the reliability piece and saying
- 21:05we've done this once and now we're going to do this N plus
- 21:10one. Yes, yeah.
- 21:13So you have to figure out how to do it and scalability, all these
- 21:17questions that are kind of for lack of creativity.
- 21:25It's what the software engineers bread and butter is, right?
- 21:28And so it is more I do understand the idea of changing
- 21:32the mentality from being that exploratory nature to being more
- 21:37software engineering focused. Where you've kind of established
- 21:41that The thing is possible and that you know you're gonna do
- 21:44it. You have a good idea of what the
- 21:46outcome of the project is going to be at the start, and you know
- 21:50that you need to build that. Mm-hmm.
- 21:53And so have you seen those POC's be hacked together and just
- 22:01really try and move as fast as possible to get something out
- 22:07and then we can iterate on making it better?
- 22:11Is that how you generally would go about the projects or do you
- 22:15still want to focus on making sure things are tip top before
- 22:20they get pushed out, even if it is going to take longer?
- 22:26It's going to be a balance, right?
- 22:27And this, this is something that I feel is not particularly,
- 22:32there's not a good established process for moving from that POC
- 22:38to something in production. There's always, there's been
- 22:43talk for a long time of do you put notebooks in production?
- 22:48So you try and find some way of just taking that exploratory
- 22:52code and justice running with it?
- 22:55Or do you sit down and do a big refactor into something that is
- 22:59more usable by the rest of the production system?
- 23:03And I'm firmly in the second camp.
- 23:05I think taking that messy code and then refactoring it is
- 23:10absolutely the way to go. But that requires a lot of
- 23:15skills that might not be the bad and butter that data scientist.
- 23:20And it's something that I don't really, I don't often see as
- 23:23baked into like the project lifecycle data science project.
- 23:28You kind of need to set that time aside to do that instead.
- 23:33How many story points? Right, quite a few actually.
- 23:39Yeah, exactly that. That is so funny that you
- 23:44mentioned it and it is almost like with your book, data
- 23:50scientists don't have the excuse to just throw it over to
- 23:53somebody else. Because now hopefully any
- 23:57software engineers or data engineers or anybody out there
- 24:00working with a data scientist who says, hey, well, I don't
- 24:03know how to make this better out, then just let us know and
- 24:08we can send them a copy of your book and they can read it and
- 24:14have a few story points for that one.
- 24:18I mean, there might be situations where it is a good
- 24:20idea to hand that code over if you have some like particular
- 24:25requirements if the data scientist needs to move on to
- 24:28another project. But then that kind of that
- 24:33causes, that means there's a gap between the intention of what
- 24:37the data scientist is aiming for that model.
- 24:39You don't. You lose that insight into why
- 24:43that particular model was chosen if that if they're no longer
- 24:49responsible for that code. So it makes it a little harder
- 24:54to then update the model in the future.
- 24:57If updating the model needs the data scientist to go back to
- 25:01their exploratory code and then train a new model and then had
- 25:06that over and have someone else write the code to actually put
- 25:10that new model into production. That doesn't seem like a smooth
- 25:15workflow to me. No, yeah, that's not scalable.
- 25:20What is a better way? I think if the data scientist is
- 25:22able to own that model to a certain extent, it's helpful.
- 25:28Um, I don't want the data scientist to end up doing
- 25:32everything. Uh-huh.
- 25:34But at least being able to work together with the software
- 25:38engineer on that production code so that they have an
- 25:42understanding of what's gone into it, being able to
- 25:46communicate better rather than just throwing it over the wall
- 25:50and thinking their jobs down. Well, because the pushback that
- 25:54I've heard from quite a few people is that you wanna have
- 26:00everyone working in their zone of greatness.
- 26:04And so if you do have a data scientist whose zone of
- 26:07greatness is more that exploratory and being able to
- 26:11spot trends or anomalies or whatever it may be, understand
- 26:15the data and have a very intimate relationship with that
- 26:20data, that's where their zone of greatness is.
- 26:22And then any moment that they're not doing that, you're really
- 26:25missing out on someone that you're paying a lot of money to
- 26:29do that. That thanks a lot of sense,
- 26:32yeah. Have you thought about that
- 26:34other side of it and what the, I guess what the pushback would be
- 26:41if that was it? Because I do, I intuitively I
- 26:45know what you're saying is a better route because you don't
- 26:51have these hang ups. But I I also see the side where
- 26:55you have that problem when people are saying, well, you
- 26:58know, I'm good at this. I'm not good at refactoring
- 27:01code, or I'm not good at all this other stuff that comes
- 27:04along with it. If I'm if I was a data scientist
- 27:09who's specialisation was in that his own of greatness was the
- 27:14exploration, I would still want to be able to read and
- 27:18understand the production code that is based on that work.
- 27:22So I think that's what I'm aiming.
- 27:25That's one of the things I'm aiming for with my book, is to
- 27:28equip people with the language and the terminology so that they
- 27:35can understand more complex code, even if they're not
- 27:40writing it themselves. O What are some of these keys to
- 27:44being able to work with software engineers or data engineers or
- 27:49just data scientists? If you're the lone data
- 27:51scientist on a team, how have you seen that be successful?
- 27:56I think one of the big things is just understanding the
- 28:00incentives of the software engineers, and this is common to
- 28:04anyone in a different discipline that you're going to work with.
- 28:06Like what is their background? What makes them tick?
- 28:12What are they trying to achieve? And hopefully they do the same
- 28:16with you so that, you know, like we're all working on this
- 28:19towards this one thing in a different ways.
- 28:23But yeah, understanding how important things like
- 28:27standardisation are to software engineering and why that might
- 28:30be important because that's what makes code easier to maintain.
- 28:36That's what makes it easier to get started on someone else's
- 28:40code. All these things and more
- 28:44specifically if I'm thinking about trying to understand more
- 28:47complex code then things, having a having some knowledge of
- 28:53things like object oriented programming, what that is, what
- 28:57that looks like and say to tests look like, What is a unit test?
- 29:02What is in integration test so that you just have some better
- 29:06expectations around what a bigger code base might look
- 29:10like? Bad understanding the CI CD
- 29:14pipeline, understanding how to push things to get that makes a
- 29:17lot of sense. What even is the ICD?
- 29:21Yeah, correct. Yeah.
- 29:23Yeah, and you would hope that most people understand it, or at
- 29:28least these days are aware of the the different terms.
- 29:34But sadly, I guess it's not always the case.
- 29:39No. And I think even if you're
- 29:41coming from a peer, even if you're coming from like a
- 29:45computer science degree, you might not, you might not get
- 29:49that exposure. You're into the theoretical side
- 29:51of things. And I'm thinking about the the
- 29:55Genia data scientist, Genia avalanche there who is like
- 30:00fresh out for boot camp, fresh out of a masters degree.
- 30:06They're probably just not going to have had exposure to a lot of
- 30:09these terms. And it it only makes sense once
- 30:13you. Once you have a basic idea of
- 30:16what's going on, then you can start to read the documentation.
- 30:19But there's this period where your you don't, even though
- 30:24enough to learn more from the more complex documentation.
- 30:29Yeah, it's funny because I was going to mention even just
- 30:32seeing some. Well, no, let me take that back.
- 30:38The junior data scientist who has only played on Kaggle and
- 30:43only used the Titanic data sets, and now they're thrown into a
- 30:48job where, yeah, you've got I to worry about.
- 30:51You've also, you've got all the, like you said, like maybe you're
- 30:55working with a UX designer, maybe you're working with data
- 30:59engineers or software engineers, DeVos folks.
- 31:02And they all have to be conscientious about different
- 31:09parts of the system. Yeah.
- 31:11And so they're going to be coming to you asking you about
- 31:13certain parts of the system. And if you have that common
- 31:15language and that common understanding of what things
- 31:18are, you're going to be able to go much further.
- 31:21And ideally, you'd have a great mentor in your team who would be
- 31:25able to explain these things to you and change all your
- 31:28questions. Yeah.
- 31:29Thank you. True.
- 31:32The amazing prompt there is, yeah, you're a software
- 31:36engineering mentor and I have lots of questions for you.
- 31:40Ohh, that's yeah. But even understanding how to
- 31:45help you with the code and how to help you think about things
- 31:49differently and look at the system design documents, and so
- 31:55I understand the desire for different data scientists to
- 32:01want to be able to understand the system as a whole as opposed
- 32:06to just their little piece. You don't need to be an expert
- 32:10on the whole, but just knowing what's there is I think is key.
- 32:16Yeah. And knowing the different, I
- 32:18find it super helpful too, just to know the different tools that
- 32:24are out there and what they do. Like, yes, me learning even
- 32:27though I'm not, it's not like it's my bread and butter, but I
- 32:31do understand what Kafka does, right?
- 32:34Or I do understand, OK, what's the difference between why do I
- 32:38always see Kafka and Flink together?
- 32:41And now I'm seeing, I'm starting to see lots of design diagrams
- 32:44with Apache Arrow. What does that do?
- 32:47And the more that you can get into those types of things and
- 32:52and that's probably a lot of reading of different engineering
- 32:55blogs that will help you see like, OK, what design principles
- 32:58are they taking and what are they actually doing?
- 33:01What's the design decisions they made and the systems that they
- 33:05created? That can help a tonne too.
- 33:09Yeah, definitely. Yeah.
- 33:11I think just reading around what's going on, what's, what's
- 33:17the new trends are, has been something that's been really
- 33:20helpful to me by all career. When you think about data
- 33:23scientists like interacting with larger code bases.
- 33:28How can this be done well and not pushing problems?
- 33:35Hopefully there's redundancies in place so that nothing can
- 33:38actually escape, but you can imagine that someone who is
- 33:42fairly new at this can mess up a few times.
- 33:49Yeah, I think for starters, like adding software system, you want
- 33:55to be really clear about what the requirements are for that
- 33:58code and like how is it going to interface with the rest of the
- 34:03system? So designing that well from the
- 34:06start and making sure that that's clear to the data science
- 34:09team who's working on their bit code, it's going to help a lot.
- 34:14And so if the system needs to return an answer in some
- 34:18specific amount of time, then make that clear and make that
- 34:22something that needs to make that something that's baked into
- 34:26the requirements. And then, yeah, if you got
- 34:30incentives like this, then that puts the, you know, that that
- 34:37makes people want to build that system so that it fits those
- 34:43requirements. So then you start needing to
- 34:46make each piece of code run well so that the whole system runs
- 34:54well, and also setting up tooling that works with data
- 35:01scientists rather than against them.
- 35:04O when you talk about that, it reminds me of, it's just when I
- 35:10was at the Data and AI Summit, there is a company whose whole
- 35:15thing is built around making sure you have the right
- 35:19permissions in place for all the data.
- 35:22And I was like, wow, this makes a lot of sense because I've
- 35:25heard horror stories of people who join a company and then
- 35:29three to six months later, they still don't have access to the
- 35:32right data to get their models running or they're getting,
- 35:36they're getting dummy data and it looks nothing like what is
- 35:39actually in production. And so any model that they try
- 35:42and push is failing horribly and.
- 35:46Yes, it was like, ohh, this, yeah.
- 35:49Super cool to think about as a as that, but I just wanted to
- 35:53interject on what you were saying with the provisions
- 35:56provisioning access and the the other piece to that when it
- 36:02comes to like the data scientist working with larger code bases,
- 36:11I think the biggest question that we had over the span of two
- 36:19to three years basically before transcript was released and
- 36:23everybody's attention shifted the constant discussions that
- 36:28would come up probably once every other month in the MO
- 36:31community, we're putting Jupiter notebooks into production.
- 36:34And then the other side was should a data scientist learn
- 36:37Kubernetes? And so I'm wondering from your
- 36:42side of things, how far is like too far?
- 36:47Well, First off, maybe, and I've seen it a lot, there's a lot of
- 36:52people that have come through the community and there's one
- 36:55that is absolutely hilarious. Somebody introduced themselves
- 36:58in the MLS community, Slack, and they said, I used to be a happy
- 37:03data scientist and then I had to push my code to production.
- 37:06And now I'm like having to learn Kubernetes and I'm having to
- 37:10learn all this stuff because they didn't have the support
- 37:12from a team and the software team was like not able to give
- 37:18them what they needed. So you do hear those stories of
- 37:23when a data scientist will level up and learn Kubernetes.
- 37:26I think for 90% of the data scientists, it's way too
- 37:30cumbersome to ask that of them. And so I guess the the question
- 37:37I have is when is it taking it too far?
- 37:41Yeah, Yeah. That's a great point because I
- 37:44can imagine that if you're responsible for everything to do
- 37:50with the model and that includes the Kubernetes side of things,
- 37:54even just the Kubernetes piece could be a full time job.
- 37:59It makes me wonder why there isn't a team supporting that
- 38:03model if you're taking it that far.
- 38:08But then if there isn't the need to be exploring new models so
- 38:14much, then that might be the way that you end up going.
- 38:20It's a it's a real problem with just data science being this
- 38:23very vague job description that could mean pretty much anything.
- 38:30Yes, yes, the data. I remember I was talking to
- 38:34someone in Amsterdam where we had a meet up and they were
- 38:37saying how they were hiring a data scientist and I was like,
- 38:41oh, So what does a data scientist mean to you?
- 38:43And they said, you know, like they can do anything and
- 38:47everything from data pipeline to CID to Kubernetes to monitoring
- 38:53it and working with data dog. And I'm like, ohh, so you're
- 38:57looking for a Unicorn. You're not looking for a data
- 38:59scientist. They're like, yeah, but unicorns
- 39:01exist. I know, I I've done it.
- 39:03And I'm like, man, that is just really hard to expect of
- 39:08someone. And I guess it's more, it's more
- 39:14common these days and you've probably undoubtedly heard about
- 39:19like the T shape where you can be understanding the whole life
- 39:24cycle, but you go deep on one aspect.
- 39:26Of it, yeah, absolutely. It is unfair to expect someone
- 39:30to learn all these things. But I can also see how it
- 39:32happens because data scientists. Data science does attract people
- 39:37who like to learn new things. So I can see that once people
- 39:44get into the data science job, they're like, oh, I need to
- 39:47learn this thing to make that happen.
- 39:49I need to learn this, and they are able to learn all these new
- 39:54things when they're interested in them, and then suddenly that
- 39:57sets a precedent for being able to do everything.
- 40:01Totally. It's like, OK, you're analytics
- 40:04engineer, your data engineer, your DevOps, your data
- 40:08scientists, machine learning engineers all wrapped up into
- 40:11one. So yes, hopefully you're getting
- 40:15paid like two people, not one, because with all that knowledge
- 40:21that is incredible, but. And if you're having a good time
- 40:24learning all these new things and you're excited about it,
- 40:27that that's fine. Yeah, yeah.
- 40:30And then one of our one of the original Co hosts of this
- 40:34podcast, David Aponte, he started as a data scientist and
- 40:37then he moved into machine learning engineering and he
- 40:40started learning Kubernetes. And then he really enjoyed that
- 40:43for a while he was doing more like DevOps as RE stuff.
- 40:46And then he started going a little bit further down the
- 40:49stack. And now he's just optimising
- 40:52GPUs. And he's very much like he's
- 40:56doing the research side of machine learning, but to make
- 40:59sure that the these LM's or just foundational models can work
- 41:05fast on whatever GPU or CPU is coming out-of-the-box with the
- 41:11computer. And so it's, it's like what you
- 41:15just said, since he enjoyed learning stuff, he just kind of
- 41:20kept going and kept learning. And next thing you know, he's
- 41:23got a PhD. And he is, yeah, way beyond
- 41:29whatever the ever expected, right?
- 41:31But that's how it works. Alright, real quick, let's talk
- 41:34for a minute about our sponsors of this episode Making It All
- 41:38happen, Lattice Flow AI. Are you grappling with stagnant
- 41:42model performance? Gartner reveals a staggering
- 41:45statistic that 85% of models never make it into production.
- 41:48Why? Well, reasons can include poor
- 41:51data quality, labelling issues, overfitting, underfitting and
- 41:55more. But the real challenge eyes and
- 41:57uncovering blind spots that lurk around until models hit
- 42:01production. Even with an impressive
- 42:03aggregate performance of 90%, models can plateau.
- 42:07Sadly, many companies optimise for prioritising model
- 42:12performance for perfect scenarios while leaving safety
- 42:16as an afterthought. Introducing Lattice Flow AI, the
- 42:20pioneer in delivering robust and reliable AI models at scale.
- 42:25They are here to help you mitigate these risks head on
- 42:28during the AI development stage, preventing any unwanted
- 42:31surprises in the real world. Their platform empowers your
- 42:35data scientists and ML engineers to systematically pinpoint and
- 42:38rectify data and model errors, enhancing predictive performance
- 42:43at scale. With Lattice Flow AI, you can
- 42:46accelerate time to production with a reliable and trustworthy
- 42:49models at scale. Don't let your model stall.
- 42:54Visit Lattice Flow Dot AI and book a call with the folks over
- 42:58there right now. Let them know you heard about it
- 43:01from the MO OPS Community podcast.
- 43:02Let's get back into the show. So on that note, I think there's
- 43:10probably an interesting topic to cover, which is the future of
- 43:16data science and how you feel things are moving, Especially
- 43:21because no, a lot of people are just able to grab a model off
- 43:27the shelf, get it running, and it's better than spending six
- 43:31months trying to get their their model going, right?
- 43:38Yeah. And I was asked this question at
- 43:42a conference I did a talk at a few weeks ago and my answer is
- 43:47completely changed from then to now.
- 43:51I'll, I'll explain this. So three weeks ago I said that I
- 43:55was pretty certain that data science was kind of diverging
- 44:00into more analytic side and more machine learning engineering
- 44:04side. So you either got interested in
- 44:08the statistics side and you went deep in the analytics side or
- 44:13you are training models and experimenting with those and
- 44:17then maybe moving to deploying the models into production.
- 44:20But then I recently started consulting for Jedi I startup
- 44:26and started playing around with LMS. And for me this this brings
- 44:32an extra dimension because evaluating LM's is hard.
- 44:38It's really uncertain how you do this at the moment, but I think
- 44:44that working out whether lines are doing the task that you want
- 44:49them to be doing is absolutely in the data science set of
- 44:53skills, but it needs both statistics knowledge and
- 44:58knowledge of the internal workings of the machine learning
- 45:01model. So I think it brings both those
- 45:04divergent skill sets back together again.
- 45:07Ohh fascinating. So the people that are primed to
- 45:11take on these kind of hairy problems of evaluating the
- 45:17output of the models, our data scientists.
- 45:20Yes. That makes 100% sense to me, and
- 45:27especially when you start looking at the output as a
- 45:31corpus of data as opposed to like 1 to one like is this this
- 45:36one answer what we thought was going to come out?
- 45:39It's like no. Are these 1500 answers?
- 45:43How do we look at those as a data set?
- 45:46Yeah, yeah. I was listening to a podcast
- 45:50with which interviewed Christopher Manning at Stanford,
- 45:55and he made the point really well that machine learning has
- 45:58changed from you collect the data set that's aimed at your
- 46:03problem and then you train a model and you have this model
- 46:07that's suited to that problem. And then it's relatively easy to
- 46:12evaluate because one mobile, one problem.
- 46:16But now with aliens, you're expecting them to do all these
- 46:20different tasks. So that means that if you change
- 46:24something about the model, there's tradeoffs all over the
- 46:28place. It might get better one place,
- 46:31it might be worse on another, just because you've changed the
- 46:34prompt a little bit, so evaluating whether the change
- 46:39you've made is a good thing or not suddenly becomes super hard.
- 46:44Yeah. You know what, another piece
- 46:47that I, this is a little bit not related, but it sparked this
- 46:51idea, yeah, that I've been thinking about quite a bit is
- 46:55how a lot of these tools, especially when it comes to
- 47:00prompting and prompt tracking, they're not built for the people
- 47:05that are actually doing a tonne of the work.
- 47:07Like the person that is there iterating on lots and lots of
- 47:12prompts can be anybody. It can be a data scientist, it
- 47:16can be a marketer, it can be a sales person.
- 47:19And a lot of the tools that are out there right now are like the
- 47:22weights and biases that are specifically geared towards data
- 47:27scientists. And so a marketer or a
- 47:30salesperson isn't going to be like, all right, now let me just
- 47:32go open up weights and biases to track my prongs, right?
- 47:36So it's a little bit tangential, but I was thinking about that a
- 47:40tonne and thinking how I sit I and generally against advising
- 47:49people to start something in this space because it's just so
- 47:53crowded and there's so many different tools out there.
- 47:56But that feels like something that might need to happen,
- 48:01especially for the for the random marketers who are getting
- 48:05a tonne of value by running a bunch of their marketing copy
- 48:09through chatbot. Yeah, I, I feel like the
- 48:13community hasn't even settled on a process for how you do these
- 48:18evaluations, let alone turn that into any kind of tool.
- 48:22There's there's no consensus yet, so it's going to be
- 48:27fascinating to see that evolved to see that.
- 48:31Yeah. And evaluations, the tools that
- 48:33are out there on evaluation, I have a document that eventually
- 48:40I imagine I'll make public, but it's just like a Notion database
- 48:43and it's called same, same, but different.
- 48:46And it's all the tools that are out there that I've seen or come
- 48:51across that are in the mill OPS or like the LMAI infrastructure
- 48:56space. And one thing is for sure,
- 49:00there's a lot of evaluation tools out there.
- 49:03Yeah, that's right. Yeah.
- 49:05And it, I guess it makes sense because like you're saying,
- 49:07it's, it's a hard problem that has not been cracked yet.
- 49:10So everybody's trying to take a swing and saying, hey, well, we
- 49:14did this at XY, our last company.
- 49:17We kind of got it figured out. So here's how you can do it.
- 49:22But yeah, we we probably will be standardising around a how in a
- 49:31year or two hopefully, but judging by how fast.
- 49:34Things move, Yeah, because it feels like it's.
- 49:37It's very easy to make something that works well in a few cases
- 49:43and kind of eyeball it right some write some tests.
- 49:48But how do you scale that up that that's hard?
- 49:51Yeah, exactly. And yeah, predictably, being
- 49:55able to just trust the output, I mean, honestly, that's kind of
- 50:00the whole reason that we are doing the AI quality conference
- 50:03because it's like, well, we're all a little bit confused at how
- 50:07to go about this. Let's talk to each other and see
- 50:10if anybody if we can surface some of these practises where
- 50:15people have figured out different chips and tips on what
- 50:19to do and how to make it more reliable.
- 50:21Because like you said, getting 80% of the way there is great.
- 50:25And then, yeah, it could take you double, triple the amount of
- 50:28time to get 90% of the way there.
- 50:30Absolutely, yes. Yeah, it sounds like it's going
- 50:34to be a great event. Yeah, yeah, I'm looking forward
- 50:37to it. And you're able to make it
- 50:38right. Yes, yeah, that's.
- 50:40Right. Yes.
- 50:41Ohh. I'm so excited.
- 50:42Yeah yeah, me too. Well this has been really really
- 50:48thought provoking talking to you.
- 50:49I am 100% in the camp of data scientists need to learn how to
- 50:56at least understand what the system does.
- 51:00And it will be immensely valuable for any data scientists
- 51:03out there to learn the jargon at the very least and understand
- 51:08what APIs do, understand how to work with git, understand what
- 51:13security limitations there are or what's good, practise what's
- 51:17bad practise when it comes to security and all that fun stuff.
- 51:22So it's really cool to see that your book is out there.
- 51:25For anybody that wants to get a copy of your book, we're going
- 51:30to leave a link in the description, but it is called
- 51:34done, done, done, done. As we mentioned before, software
- 51:37engineering for data scientists. That's great, yeah.
- 51:41And thanks for writing it. I know that there's a tonne of
- 51:44people out there that are going to be better engineers because
- 51:49of it. That's fantastic, and I had a
- 51:51lot of fun writing it as well, so I'm excited to see it get out
- 51:54into the world and start hearing what people think of it.
- 51:57So. What was one thing that you
- 52:00learned while writing it that stays with you still?
- 52:05How much time I can save by automating things?
- 52:08Because there's there's an initial setup cost to setting up
- 52:12tools and to automate processes that you do repeatedly.
- 52:19But once you've done that and you can just press a button and
- 52:24run your test and lynch your code and run the formatting,
- 52:27it's great and save you so much time.
- 52:30Yeah, it's it's heavy on the front end, but then you will
- 52:37think your future self will be thanking you.
- 52:39Yes, absolutely.