Michael Kennedy: AI has changed how we write code and data science is right in the blast radius.
Michael Kennedy: Today we move past autocomplete to systems that file PRs, comment in Slack, and even police our CI.
Michael Kennedy: Hugo Bown Anderson is back to map the new stack.
Michael Kennedy: When classic PyData still wins, where small local models beat the cloud, and how tests become your specs.
Michael Kennedy: We dig into cursor and copilot, proactive agents, and practical patterns you can ship this week.
Michael Kennedy: This episode is all about leveling up your data science workflow, not replacing it.
Michael Kennedy: This is Talk Python To Me, episode 526, recorded October 7th, 2025.
Michael Kennedy: Welcome to Talk Python To Me, the number one podcast for Python developers and data scientists.
Michael Kennedy: This is your host, Michael Kennedy. I'm a PSF fellow who's been coding for over 25 years.
Michael Kennedy: Let's connect on social media. You'll find me and Talk Python on Mastodon, BlueSky, and X.
Michael Kennedy: The social links are all in the show notes. You can find over 10 years of past episodes at
Michael Kennedy: Talk Python.fm. And if you want to be part of the show, you can join our recording live streams.
Michael Kennedy: That's right. We live streamed the raw uncut version of each episode on YouTube.
Michael Kennedy: Just visit talkpython.fm/youtube to see the schedule of upcoming events.
Michael Kennedy: And be sure to subscribe and press the bell so you'll get notified anytime we're recording.
Michael Kennedy: This episode is sponsored by Posit Connect from the makers of Shiny.
Michael Kennedy: Publish, share, and deploy all of your data projects that you're creating using Python.
Michael Kennedy: Streamlit, Dash, Shiny, Bokeh, FastAPI, Flask, Quarto, Reports, Dashboards, and APIs.
Michael Kennedy: Posit Connect supports all of them.
Michael Kennedy: Try Posit Connect for free by going to talkpython.fm/posit, P-O-S-I-T.
Michael Kennedy: And it's brought to you by Nordstellar.
Michael Kennedy: Nordstellar is a threat exposure management platform from the Nord security family,
Michael Kennedy: the folks behind NordVPN, that combines dark web intelligence, session hijacking prevention,
Michael Kennedy: brand and domain abuse detection, and external attack surface management.
Michael Kennedy: Learn more and get started keeping your team safe at talkpython.fm/nordstellar.
Michael Kennedy: Hey, I want to take just a minute and talk to you guys.
Michael Kennedy: I just released a really cool new course called
Michael Kennedy: Agentic AI Programming for Python Developers and Data Scientists.
Michael Kennedy: You've heard me mention a couple times on the podcast
Michael Kennedy: how I've had some incredible success with some of these agentic AI coding tools.
Michael Kennedy: I hear people talking about how they're not really working for them.
Michael Kennedy: And then I look at the results that I'm getting and think, wow, that's something that would
Michael Kennedy: have taken two weeks.
Michael Kennedy: It's built in two hours and it's well factored and good looking code.
Michael Kennedy: What gives?
Michael Kennedy: Why is this difference here?
Michael Kennedy: Well, I decided to create this course to share all the things that I'm doing with these agentic
Michael Kennedy: coding tools with the idea of making you as successful and productive as well.
Michael Kennedy: Yes, I know we're all tired about hearing about how AI is going to change everything for software developers.
Michael Kennedy: But there are some tools here that will give you truly difference-making levels of productivity.
Michael Kennedy: And that's what this course is about.
Michael Kennedy: So check it out at talkpython.fm/agentic AI.
Michael Kennedy: The link's in your podcast player show notes.
Michael Kennedy: Let's get to the interview.
Michael Kennedy: Hey, Hugo. Welcome to Talk Python.
Hugo Bowne-Anderson: Awesome to have you, man.
Hugo Bowne-Anderson: Such a pleasure to be here and to be back.
Hugo Bowne-Anderson: I think this is my third time over the years on Talk Python.
Michael Kennedy: I do think it is your third time.
Michael Kennedy: It's been a lot of fun data science things.
Michael Kennedy: And I think people will see that our conversation,
Michael Kennedy: the thing that we're going to really focus on this time,
Michael Kennedy: will have evolved a little bit as the times have changed.
Michael Kennedy: Since the last couple of years,
Michael Kennedy: the data science and the entirety of programming has gotten a little different.
Hugo Bowne-Anderson: Actually, just our conversations over the years,
Hugo Bowne-Anderson: like kind of art can be a symbol of the trajectory
Hugo Bowne-Anderson: from like early days of data science,
Hugo Bowne-Anderson: PyDataStack, all of these amazing things
Hugo Bowne-Anderson: as it went from academia to industry.
Hugo Bowne-Anderson: then to, you know, large-scale distributed compute
Hugo Bowne-Anderson: when I came and talked about Dask and Coiled.
Hugo Bowne-Anderson: And now a couple of years after our quote-unquote GPT moment
Hugo Bowne-Anderson: and our ChatGPT moment and our stable diffusion moment
Hugo Bowne-Anderson: here to talk about LLM's foundation models meet data science.
Michael Kennedy: That's right.
Michael Kennedy: We've gone from local machine to cloud, AI.
Michael Kennedy: Wow.
Michael Kennedy: I do see that we'll actually maybe be back.
Michael Kennedy: I see a world where we build together smaller models
Michael Kennedy: that maybe run locally, doing other things,
Michael Kennedy: Maybe some servers, connect MCP servers, connecting all these things, like little special agents.
Michael Kennedy: That's going to be something we can potentially dive into.
Michael Kennedy: We'll see.
Michael Kennedy: But I think the arc is not done.
Hugo Bowne-Anderson: The other thing that comes to mind is I do, and we'll get into this with AI-assisted programming,
Hugo Bowne-Anderson: which I think superpowers people who know what they're doing, but may not be great for beginners.
Hugo Bowne-Anderson: I do imagine we might have boot camps or classes where you're in a cave and no access to AI
Hugo Bowne-Anderson: or the internet and you learn, you actually learn to code on a laptop without any of this stuff.
Michael Kennedy: Yeah. There's going to be a local PyPI and be a local set of docs. You know, there was this really
Michael Kennedy: cool app. Gosh, I've covered on Python bytes, the news podcast I do. And I wish I could remember,
Michael Kennedy: but what it would do is it had like hundreds, maybe thousands of different projects like Flask
Michael Kennedy: or Tailwind or whatever, Span Technologies. And you could click it and say, I want to have Flask
Michael Kennedy: 3.1 offline, get me the docs.
Michael Kennedy: And you could create like a catalog
Michael Kennedy: of all these different projects you're using,
Michael Kennedy: all offline searchable docs across.
Michael Kennedy: Amazing.
Michael Kennedy: I feel like something like that might come back.
Michael Kennedy: You know what I mean?
Hugo Bowne-Anderson: It's funny you mentioned that
Hugo Bowne-Anderson: because I was chatting with Innes Montani
Hugo Bowne-Anderson: of spaCy and Prodigy fame the other night.
Hugo Bowne-Anderson: She's here in Sydney.
Hugo Bowne-Anderson: And she reminded me that Sebastian Ramirez
Hugo Bowne-Anderson: of FastAPI,
Hugo Bowne-Anderson: when he was building FastAPI originally,
Hugo Bowne-Anderson: I think what she reminded me was
Hugo Bowne-Anderson: they didn't have great internet access
Hugo Bowne-Anderson: where they were.
Hugo Bowne-Anderson: So they did download a lot of things at very slow speeds, then build everything locally.
Michael Kennedy: I'm reliving that, by the way, in a very weird way.
Michael Kennedy: My fiber modem died.
Michael Kennedy: And if anybody watches the video, they'll see that I'm actually in the library here, which is great.
Michael Kennedy: I preserve a little private room.
Michael Kennedy: I got high speed internet here.
Michael Kennedy: But at home, I'm tethered with one bar of LTE.
Michael Kennedy: So anything I do is at like 30 kilobits.
Michael Kennedy: And it brings me back to my youth.
Michael Kennedy: But boy, you got to decide what you want to do next.
Michael Kennedy: That's it.
Michael Kennedy: Yeah.
Michael Kennedy: So I do, circling back and closing this up,
Michael Kennedy: I do think this true learning the code thing is both,
Michael Kennedy: it's going to be something that comes back around.
Michael Kennedy: I think it's actually a challenge with all the tools and cheats.
Michael Kennedy: I don't consider them bad cheats, but the things that can do the work for you,
Michael Kennedy: it requires a lot of willpower to stay focused.
Michael Kennedy: And I do think it's going to be kind of a kobold moment as well,
Michael Kennedy: where somewhere down the line, people are going to be like,
Michael Kennedy: we need to just get some people that used to type this stuff in by hand.
Michael Kennedy: And we need them to look at it and figure out why this doesn't work.
Hugo Bowne-Anderson: Without a doubt.
Hugo Bowne-Anderson: And, you know, learn Python the hard way.
Hugo Bowne-Anderson: Learn X the hard way.
Hugo Bowne-Anderson: Like sometimes most things you got to do the work, right?
Michael Kennedy: You definitely do.
Michael Kennedy: Well, Hugo, before we get into the topic too much, quick introduction on yourself.
Michael Kennedy: Who are you?
Michael Kennedy: I know you've been on the show a few times, but it's spanned many years and I say it often,
Michael Kennedy: but it's always worth repeating.
Michael Kennedy: And like 50% of the people in the Python community are new over the last two years.
Michael Kennedy: Like they've only been here two years or less, which blows my mind.
Michael Kennedy: So those people probably want to listen to the podcast before they got into Python.
Michael Kennedy: Who are you?
Hugo Bowne-Anderson: So firstly, what is up Python community?
Hugo Bowne-Anderson: Clearly, I'm a huge fan of Python.
Hugo Bowne-Anderson: Used it for many years.
Hugo Bowne-Anderson: Love it.
Hugo Bowne-Anderson: Background many moons ago in scientific research, biology, math, physics.
Hugo Bowne-Anderson: Was working in academic research at Yale University, New Haven, Connecticut.
Hugo Bowne-Anderson: Living in New York City just over a decade ago.
Hugo Bowne-Anderson: The data science ML meetups, hackathons there blew my mind so much.
Hugo Bowne-Anderson: Moved to industry, a small startup at the time, Datacamp.
Hugo Bowne-Anderson: Worked on curriculum, education, internal data science product.
Hugo Bowne-Anderson: Wore many hats, as you do.
Hugo Bowne-Anderson: And worked a lot on Pythonic education there.
Hugo Bowne-Anderson: Since then, I've been working in a mixture of DevRel, marketing, product.
Hugo Bowne-Anderson: A year and a half ago on wonderful projects, such as Dask at Coiled with Matt Rocklin,
Hugo Bowne-Anderson: then Metaflow out of Netflix with the wonderful team at Outer Bounds.
Hugo Bowne-Anderson: A year and a half ago or so, space was so exciting, man.
Hugo Bowne-Anderson: I decided to go freelance.
Hugo Bowne-Anderson: And so I mixed my time, essentially helping people build, ship, and maintain AI, LLM, ML, data-powered products more generally.
Hugo Bowne-Anderson: I do this through consulting.
Hugo Bowne-Anderson: I do it through advising.
Hugo Bowne-Anderson: I do it through education and developer relations.
Hugo Bowne-Anderson: So helping open source frameworks and products reach developers and getting material that
Hugo Bowne-Anderson: helps them.
Hugo Bowne-Anderson: My former colleague and boss at Outer Bounds, Vilay, who really gets developer relations,
Hugo Bowne-Anderson: refers to DevRel as the wisdom layer.
Hugo Bowne-Anderson: And he puts it firmly beside product as a pillar.
Hugo Bowne-Anderson: And I love that because I think a lot of the time we consider education or DevRel as a
Hugo Bowne-Anderson: necessary thing you have to do as opposed to being at a foundational pillar. And once again,
Hugo Bowne-Anderson: that's why I'm in such admiration of the work you do in bringing so many resources to the community
Michael Kennedy: at large. Thank you. And foreshadowing a little bit, I would like to kind of reinforce that quote
Michael Kennedy: you just said. It's the wisdom layer. Like as data scientists, your job is to provide insight
Michael Kennedy: and knowledge and trends, forecasting. Developers, our job is to provide solutions and things that
Michael Kennedy: that we can use apps and tools and whatnot. And I think a lot of us, myself included,
Michael Kennedy: get tied down and like, oh, I'm really good at coding and I'm good at this library.
Michael Kennedy: And we can kind of forget that like the real first tier job of ours is to provide answers
Michael Kennedy: and solutions and apps. And I think a lot of the pushback on AI is like, it's taken my coding.
Hugo Bowne-Anderson: One way I think about it is it has taken my coding in some ways, but as we'll get to,
Hugo Bowne-Anderson: I never particularly enjoyed writing, love Pandas, never particularly enjoyed writing
Hugo Bowne-Anderson: Pandas code, for example, incredible tool.
Hugo Bowne-Anderson: But if I can help me write my Pandas code, I read it, make sure it's all good in the
Hugo Bowne-Anderson: hood.
Hugo Bowne-Anderson: And then I get to focus on building systems.
Michael Kennedy: I think that's a huge win.
Michael Kennedy: 100%.
Michael Kennedy: I would be remiss to not give a little shout out to a couple of things that you have done
Michael Kennedy: or are doing.
Michael Kennedy: Take it chronologically.
Michael Kennedy: A while ago, you worked on the fundamentals of Dask, high performance data science course
Michael Kennedy: over at Talk Python.
Michael Kennedy: This course is 100% free.
Michael Kennedy: People want to dive into it and learn from you.
Michael Kennedy: They can absolutely take it.
Hugo Bowne-Anderson: I might even take it now.
Hugo Bowne-Anderson: It's free.
Michael Kennedy: It's just over an hour.
Michael Kennedy: Yeah, people can drop in and I'll be sure to put a link in the show notes for that.
Michael Kennedy: So that's awesome.
Hugo Bowne-Anderson: That was really fun to build with you as well, Michael.
Hugo Bowne-Anderson: That was during the early days of COVID we were working on that.
Hugo Bowne-Anderson: So, you know.
Michael Kennedy: What else do we have to do?
Michael Kennedy: No, it was really great working on it with you as well.
Michael Kennedy: I appreciate that tons.
Michael Kennedy: And then you since then have started a data podcast called Vanishing Gradients.
Hugo Bowne-Anderson: Exactly.
Michael Kennedy: Tell people about that.
Hugo Bowne-Anderson: So this is a podcast and I still call it a data podcast.
Hugo Bowne-Anderson: Although a lot of people like you have to call it AI, Hugo.
Hugo Bowne-Anderson: And AI is data.
Hugo Bowne-Anderson: And as we'll get to a lot of the principles in building AI powered products are the same.
Hugo Bowne-Anderson: Modulo implementation details of building data powered products.
Hugo Bowne-Anderson: It's a podcast where I talk with industry practitioners and builders about what they're
Hugo Bowne-Anderson: doing in the space, how they're building, and essentially trying to help propagate knowledge
Hugo Bowne-Anderson: from the bleeding edge back to builders and leaders in the space. So recently had a conversation
Hugo Bowne-Anderson: with Hamil Hussain there, who he's the evals guy, among other things, but all about the eval space
Hugo Bowne-Anderson: and how you can use evaluation in the LLM powered software development lifecycle to improve your
Hugo Bowne-Anderson: product. I've spoken with Shell Genteman at NASA, conversations with Jeremy Howard. So one of the
Hugo Bowne-Anderson: things, as I'm sure you do, I love about podcasting is I get to invite people I admire and who I think
Hugo Bowne-Anderson: are awesome to chat about stuff and then share it with the public. So that's the rationale there.
Hugo Bowne-Anderson: But it's really to help people propagate knowledge, wisdom, and skills back the adoption curve.
Michael Kennedy: Along the adoption curve. That's good work. Who should listen to it? Beginners, experts,
Michael Kennedy: data people, programmers? Everyone should listen to it. Everyone who's interested in building and
Hugo Bowne-Anderson: shipping data-powered stuff. And the way I actually chat about it with guests is the first third of
Hugo Bowne-Anderson: any conversation, I want everyone to understand, everyone who's somewhat technical. The middle,
Hugo Bowne-Anderson: we can go a bit deeper. And the third is a free-for-all. I definitely encourage everyone to
Hugo Bowne-Anderson: jump in. And we've got specific episodes on evals, of course, and that type of stuff.
Hugo Bowne-Anderson: But we also have industry-specific episodes, such as chatting about what was happening in the
Hugo Bowne-Anderson: early days of shipping LLM-powered software at Honeycomb or at NASA and these types of places.
Michael Kennedy: That is one of the little secrets of being podcast hosts is you get to talk to people about
Michael Kennedy: amazing stuff. You're like, huh, it'd be really cool to talk to the people that made that
Michael Kennedy: Fusion breakthrough. They did Python. Why don't we invite them? And don't draw by,
Hugo Bowne-Anderson: you know, that's amazing. And I get like a lot of my friends who work in the space connect me
Hugo Bowne-Anderson: with other people. So I'm actually chatting with a data leader at Mozilla and then the VP of
Hugo Bowne-Anderson: learning at Duolingo. So we're going to have a lot of really fun episodes coming up. What's up with
Michael Kennedy: the name, Vanishing Gradients? Where'd that come from? There's the Vanishing Gradient problem
Hugo Bowne-Anderson: in deep learning. So when you do stochastic gradient descent, you compute gradients and
Hugo Bowne-Anderson: climb down in order to optimize neural networks. And there's a challenge that sometimes gradients
Hugo Bowne-Anderson: vanish and you stop learning. So the rationale was, what happens when you stop learning? And
Hugo Bowne-Anderson: let's bring back the idea of learning in this space. The opposite, of course, is the exploding
Hugo Bowne-Anderson: gradients problem, which I also considered calling it, where the gradients just explode, of course,
Hugo Bowne-Anderson: But we went with vanishing for that reason.
Michael Kennedy: I like that.
Michael Kennedy: That's a very clever, very subtle.
Michael Kennedy: Nice.
Michael Kennedy: So let's talk data science in 2025.
Michael Kennedy: And to be clear, I didn't ask,
Michael Kennedy: let's talk using AI for data science.
Michael Kennedy: Let's talk data science in 2025.
Michael Kennedy: And surely, I think there's two things here.
Michael Kennedy: I think there's some really interesting,
Michael Kennedy: what I don't know how we want to think about,
Michael Kennedy: like pure programming libraries and tools
Michael Kennedy: that are super powerful.
Michael Kennedy: And we could give a quick shout out to some of them.
Michael Kennedy: But then also, anytime you're exploring data, using some of these LLMs, especially the agentic
Michael Kennedy: tooling, it's a game changer.
Michael Kennedy: So let's start with the first one.
Michael Kennedy: What tools, you know, things like polars maybe or whatever is like jumping out at you over
Michael Kennedy: the last year or so that's like, wow.
Hugo Bowne-Anderson: I chatted about this on Vanishing Gradients with Akshay Agrawal, who built Marimo and
Hugo Bowne-Anderson: develops Marimo, which I encourage everyone to check out.
Hugo Bowne-Anderson: So let's actually rewind slightly and think about what we've been using over the past decade,
Hugo Bowne-Anderson: plus plus.
Hugo Bowne-Anderson: And it's the PyData stack, Jupyter Notebooks, Pandas, SQL, SQLite databases, and in production,
Hugo Bowne-Anderson: maybe Postgres and these types of things.
Hugo Bowne-Anderson: And how has this evolved now?
Hugo Bowne-Anderson: What are modern, really cutting edge tools that we use in similar ways?
Hugo Bowne-Anderson: You mentioned polars.
Hugo Bowne-Anderson: I totally agree that this is something we're seeing a lot of activity on and a lot of use
Hugo Bowne-Anderson: on.
Hugo Bowne-Anderson: On the database side, we've got DuckDB, right?
Michael Kennedy: DuckDB is making a huge impact.
Hugo Bowne-Anderson: Beautiful to use, but it's so fast as well, right?
Hugo Bowne-Anderson: And I mean, and that's what you want there.
Hugo Bowne-Anderson: And then on the literate programming side,
Hugo Bowne-Anderson: you've got Marimo, which I'm a huge fan of.
Michael Kennedy: This portion of Talk Python To Me
Michael Kennedy: is brought to you by the folks at Posit.
Michael Kennedy: Posit has made a huge investment
Michael Kennedy: in the Python community lately.
Michael Kennedy: Known originally for RStudio,
Michael Kennedy: they've been building out a suite of tools
Michael Kennedy: and services for Team Python.
Michael Kennedy: Over the past few years, we've all learned some pretty scary terms.
Michael Kennedy: Hypersquatting, supply chain attack, obfuscated code, and more.
Michael Kennedy: These all orbit around the idea that when you install Python packages,
Michael Kennedy: you're effectively running arbitrary code off the internet on your dev machine,
Michael Kennedy: and usually even on your servers.
Michael Kennedy: The thought alone makes me shudder,
Michael Kennedy: and this doesn't even touch the reproducibility issues surrounding external packages.
Michael Kennedy: But there are tools to help.
Michael Kennedy: Posit Package Manager can solve both problems for you.
Michael Kennedy: Think of Posit Package Manager as your personal package concierge.
Michael Kennedy: You use it to build your own package repositories within your firewall that keep your project safe.
Michael Kennedy: You can upload your own internal packages to share or import packages directly from PyPI.
Michael Kennedy: Your team members can install from these repos in normal ways using tools like pip, Poetry, and uv.
Michael Kennedy: Posit Package Manager can help you manage updates,
Michael Kennedy: ensuring you're using the latest,
Michael Kennedy: most secure versions of your packages.
Michael Kennedy: But it also takes point-in-time snapshots of your repos,
Michael Kennedy: which you can use to rerun your code
Michael Kennedy: reproducibly in the future.
Michael Kennedy: Posit Package Manager reports on packages
Michael Kennedy: with known CVEs and other vulnerabilities
Michael Kennedy: so you can keep ahead of threats.
Michael Kennedy: And if you need the highest level of security,
Michael Kennedy: you can even run Posit Package Manager
Michael Kennedy: in air-gapped environments.
Michael Kennedy: If you work on a data science team
Michael Kennedy: where security matters,
Michael Kennedy: You owe it to you and your org to check out Posit Package Manager.
Michael Kennedy: Visit talkpython.fm/ppm today and get a three-month free trial to see if it's a good fit.
Michael Kennedy: That's talkpython.fm/ppm.
Michael Kennedy: The link is in your podcast player's show notes.
Michael Kennedy: Thank you to Posit for supporting the show.
Hugo Bowne-Anderson: I still use Jupyter Notebooks, but one thing Marimo affords me,
Hugo Bowne-Anderson: because it's actually a.py file as well, you can convert them.
Hugo Bowne-Anderson: Well, they're essentially scripts as well.
Hugo Bowne-Anderson: So the notebook to production story is really interesting there.
Michael Kennedy: I think Marimo is super interesting.
Michael Kennedy: I think when I look at it, when I see people working with it or when I work with it, the
Michael Kennedy: limited extent to which I have, it just looks smooth and polished and modern.
Michael Kennedy: And I don't know, I just, when I use it, I feel, feel like it's something great.
Michael Kennedy: It also solves the problem that while JupyterNetbooks or JupyterNetbooks, JupyterLab, whatever,
Michael Kennedy: in general is like an incredible tool for data exploration and presenting data. It has this,
Michael Kennedy: this crazy implicit go-to sort of sequence, right? Like if you don't just go run all cells
Michael Kennedy: and you start bouncing around, you end up potentially running stuff out of order or
Michael Kennedy: skipping a step that would have made a different answer, the step below. And that's, that's real
Michael Kennedy: dangerous. And so Marimo uses the abstract syntax tree to look at dependencies across
Michael Kennedy: cells and make sure they run in order, which I think is an underappreciated benefit.
Michael Kennedy: It's like, oh, that's kind of nice.
Michael Kennedy: Like, no, like, do you want the wrong answer or the right answer?
Michael Kennedy: This is really important in data science and science in general.
Hugo Bowne-Anderson: You're right.
Hugo Bowne-Anderson: My understanding is it uses the AST to build a DAG of cells and execute some.
Hugo Bowne-Anderson: And what that means is, yeah, and it means you can't redefine something in a cell below,
Hugo Bowne-Anderson: but it'll give you a scratch pad to do so if you want to.
Hugo Bowne-Anderson: Now, I just want to say that's fantastic for a lot of cases.
Hugo Bowne-Anderson: There are cases when you just want to explore an experiment where Jupyter notebooks like
Hugo Bowne-Anderson: absolutely excel.
Hugo Bowne-Anderson: So it's not an either or here as well.
Hugo Bowne-Anderson: And I do want to say Jupyter notebooks, in all honesty, like get a bunch of hate for that.
Hugo Bowne-Anderson: And neither you nor I feel that way.
Hugo Bowne-Anderson: But I just want to be very explicit that that's not what we're saying here at all.
Michael Kennedy: Yeah, I have a lot of reverence for notebooks.
Michael Kennedy: Not only did they change the game for data science in general, but they changed it for
Michael Kennedy: Python.
Michael Kennedy: So if you look at the popularity and the people participating in Python,
Michael Kennedy: like one of its really powerful aspects is people are coming from all these different angles
Michael Kennedy: with different ideas and perspectives and different tools they want to build and so on.
Michael Kennedy: That's made it so rich.
Michael Kennedy: And that started basically in 2012 with the PyData stack with notebooks and all of that.
Hugo Bowne-Anderson: Yeah, I remember the first notebook I opened was called an IPython notebook,
Hugo Bowne-Anderson: not even a Jupyter notebook.
Hugo Bowne-Anderson: And of course, it's all based around an IPython also.
Hugo Bowne-Anderson: So we got to give a shout out to that.
Hugo Bowne-Anderson: And as I said, I was actually working biology in research at the time.
Hugo Bowne-Anderson: And in biology, we have notebooks, right?
Hugo Bowne-Anderson: Like you write, you put your PCR gel, you put your figures there, you write things.
Hugo Bowne-Anderson: This idea of literate programming is exactly that.
Hugo Bowne-Anderson: And what it does is it brings experimentation.
Hugo Bowne-Anderson: It brings scientific rigor and scientific research into computation.
Hugo Bowne-Anderson: And very important for this space where we are, really what we're talking about in data
Hugo Bowne-Anderson: science, ML, AI is the convergence of software meeting data and experimentation. So we need new
Michael Kennedy: tools for this. And notebooks are one of the most awesome examples of that. Okay. I took us down a
Michael Kennedy: bit of a hole with the Marimo stuff because it is cool. Anything else that jumps out to you? I have
Michael Kennedy: one at the end that I want to riff on before we get off this topic, but what else jumps out to you?
Michael Kennedy: Schools 2024, 2025, that's kind of like, oh, that's different. To step back a bit, we are talking
Hugo Bowne-Anderson: about like data science with AI and that type of stuff. And this works both ways, right? Like data
Hugo Bowne-Anderson: science plays into AI and building with foundation models, but I'd have to fire myself if I didn't
Hugo Bowne-Anderson: talk about the other way, which is AI helping us do data science. And the tools are AI assisted.
Hugo Bowne-Anderson: The biggest tool is AI assisted programming for data science, which is revolutionary. I think
Hugo Bowne-Anderson: maybe isn't even as big a term as we need for this. Absolutely groundbreaking.
Michael Kennedy: It's easy to get frustrated saying it's bad for the environment.
Michael Kennedy: I'm a good data science, good developer.
Michael Kennedy: I don't need this stuff.
Michael Kennedy: But for the most part, I feel like the cat is out of the bag.
Michael Kennedy: The Pandora's box is open, whatever analogy you want to use here.
Michael Kennedy: And it's made such a difference.
Hugo Bowne-Anderson: Without a doubt.
Hugo Bowne-Anderson: And I definitely agree on climate concerns.
Hugo Bowne-Anderson: We should be having larger conversations around this.
Hugo Bowne-Anderson: You can start using smaller models and local models for AI-assisted programming.
Hugo Bowne-Anderson: They won't superpower you as much.
Hugo Bowne-Anderson: there are, you know, to say all, and this is to say all of AI is very bad for the climate is,
Hugo Bowne-Anderson: I suppose, like saying both hummers and electric cars in the same bucket, right? So, but I totally
Hugo Bowne-Anderson: agree that that's a concern we need. And the other thing though, man, if we're talking about like,
Hugo Bowne-Anderson: you know, software's writing the software, AI's writing the software, vibe coding, I don't
Hugo Bowne-Anderson: necessarily understand it. Guess what? We were all copy and pasting from Stack Overflow. We've
Hugo Bowne-Anderson: been doing that for a long time, right? And I don't necessarily understand all that code. So
Hugo Bowne-Anderson: in some ways scaling and superpowering that behavior.
Michael Kennedy: It's on you.
Michael Kennedy: It's on me.
Michael Kennedy: It's on everyone who uses it to either, and we're going to get into this more in detail
Michael Kennedy: later, use that as a learning experience or as a, well, I don't need to know that.
Michael Kennedy: I'll just, whatever it says, right?
Michael Kennedy: That was true with Stack Overflow as well.
Michael Kennedy: Like you would go to Stack Overflow and you would just copy something.
Michael Kennedy: And the knock on people who would take stuff from Stack Overflow and paste it was they
Michael Kennedy: had no idea what it meant.
Michael Kennedy: They just saw that it solved the problem.
Michael Kennedy: there was even that joke keyboard that Stack Overflow created. All it had was like a control
Michael Kennedy: and a C and a V and they had a Stack Overflow logo. It's like, this is all you need, right?
Hugo Bowne-Anderson: It was hilarious, right? I'd like to system prompt ChatGBT to not be so sycophantic
Hugo Bowne-Anderson: and treat me like people on Stack Overflow used to treat people sometimes as well.
Michael Kennedy: My ego is doing way too well today. I need to be beat down. But the thing is like,
Michael Kennedy: you could go to Stack Overflow and you could go, wow, okay, I didn't know that. And then you learn
Michael Kennedy: it and you don't need to go back to Stack Overflow and copy that thing because now you've understood
Michael Kennedy: something deep and that's different that's on you when you're copying my stack overflow and it's
Michael Kennedy: it's on you a hundred times over if you use these tools right because a lot of times especially the
Michael Kennedy: agentic stuff it explains what it does like here's what it was here's why i changed it it could let
Michael Kennedy: that scroll by or you can go slow and study it and become smarter not more brain dead you know what
Hugo Bowne-Anderson: i mean if i was getting like pandas or scikit-learn code from stack overflow i'd really like
Hugo Bowne-Anderson: want to understand it because that was my bread and butter whereas if it was front end stuff
Hugo Bowne-Anderson: Like I'd probably go and find the same issue question time and time again.
Hugo Bowne-Anderson: Same with like environment stuff, like getting environments working in Jupyter notebooks or
Hugo Bowne-Anderson: something.
Hugo Bowne-Anderson: I just, I still can't grok that stuff.
Michael Kennedy: I know.
Michael Kennedy: I was just thinking of bash scripts, like shell scripts.
Michael Kennedy: I'm like, you know what?
Michael Kennedy: This is just, I don't need to, I don't need to remember this.
Michael Kennedy: I just bookmark that puppy.
Michael Kennedy: And long as it doesn't have RMRF or something destructive in it, I'm just right.
Michael Kennedy: Incredible.
Michael Kennedy: Okay, one more thing before we move on to like the AI depths that I think is, we got to talk about it.
Michael Kennedy: Because today is October 7th, 2025, as we record this, not as I release it.
Michael Kennedy: So I'll have to be a bit nostalgic for a few weeks.
Michael Kennedy: But today is Python Pi Day.
Michael Kennedy: Python 3.14 came out today, right?
Michael Kennedy: And one of the main features of Python 3.14 is the free threaded aspect being sort of officially taken in.
Michael Kennedy: And I know one of the big challenges that's been solved with C extensions and Rust and other stuff, but it's still a bit of a challenge is like, I've got a ton of data.
Michael Kennedy: I want to process it in my codes in Python.
Michael Kennedy: How do I take advantage of the 32 cores I got?
Michael Kennedy: Or do I get one 32nd of a computer, right?
Michael Kennedy: And so I think starting to think about parallel programming a little bit, it's going to take on whatever significance it takes, it's going to take on more than it has traditionally.
Michael Kennedy: Totally agree.
Michael Kennedy: And I think it's the data scientists who are going to need it more than anyone.
Michael Kennedy: Yeah.
Michael Kennedy: Our web frameworks handle that kind of stuff for us.
Michael Kennedy: They fan that out into processes and other things.
Michael Kennedy: But when you've got real computational stuff, there's no IO blocking that you can work around,
Michael Kennedy: right, to leverage async, right?
Michael Kennedy: You've got to do the CPU stuff.
Hugo Bowne-Anderson: Exactly.
Hugo Bowne-Anderson: And it's a really good question because I would have a trillion percent agreed with you.
Hugo Bowne-Anderson: And I 100%, but I would have a trillion percent agreed with you pre our chat GBT moment when
Hugo Bowne-Anderson: data scientists, ML engineers, all of these types of people weren't only building products,
Hugo Bowne-Anderson: serving models, that type of stuff, but they were responsible for training as well.
Hugo Bowne-Anderson: And I think you're totally right with large-scale analytics. Think about Dask and geospatial,
Hugo Bowne-Anderson: large-scale, multidimensional, geospatial, atmospheric data, these types of things,
Hugo Bowne-Anderson: and basic analytics. I'm not even talking about machine learning there, but we have entered
Hugo Bowne-Anderson: a regime now where you can build ml and ai powered products by pinging apis or hosting your own models
Hugo Bowne-Anderson: and that type of stuff whether it's hugging face from hugging face or wherever it may be
Hugo Bowne-Anderson: or you know using olama locally and in that case i think because you're not doing the training
Hugo Bowne-Anderson: yourself you're able to do a lot of things without requiring massive massive compute yeah there is a
Michael Kennedy: bit of a it seems like a big area but it's a bit of a thin area because you've got the regular
Michael Kennedy: programming you can do then you need that async you need that parallelism for higher compute but
Michael Kennedy: just you don't go very far until someone says fine i'm doing it in rust i'm doing a C++ or it's an
Michael Kennedy: api and then you don't need it again you know what i mean there's like a little stratosphere sort of
Michael Kennedy: bit of it and happy python pi day yes happy python pi day that's pretty cool i've not even installed
Michael Kennedy: it yet today because uv has not shipped their support for it yet and that's when i mentioned
Hugo Bowne-Anderson: new modern tools like marimo and polars and duck db uv has has to be in there as well also very
Hugo Bowne-Anderson: excited about other package management but plus plus for lack of a better term tools like
Hugo Bowne-Anderson: pixie that uh wolf olprecht and his his team who i know have been on the show and you know who
Hugo Bowne-Anderson: people may know from mamba which helped us with conda so much so uv is not the only only story
Michael Kennedy: out there solving these working to solve these problems i do think it's really interesting
Michael Kennedy: especially for the data science crowd, because things have gotten better for those of us that
Michael Kennedy: use pip exclusively. It's like faster, a little bit better resolution, a little bit better workflow.
Michael Kennedy: Like some of the tools are brought together, like pip-tools plus just regular pip. But I think it's
Michael Kennedy: a bigger consideration for your side of the fence in that there's Conda. And now do you stick with
Michael Kennedy: Conda or do you use UV? Like that's, they kind of compete more than pip did with uv, I think,
Michael Kennedy: actually. I use uv. I agree. I think uv is pushed it over the edge. And then the pyx
Michael Kennedy: that charlie's released if you're like an org where they help with building like the layers of
Hugo Bowne-Anderson: machine models and pytorch and stuff is it's pretty interesting i also just want to say on python pi
Hugo Bowne-Anderson: day that is so geeky and i i would want to i do want to say show my geeky t-shirt to everyone which
Hugo Bowne-Anderson: says schrodinger's cat wanted dead and alive it's a wanted poster so speaking of geeky stuff that's
Michael Kennedy: perfect that's perfect i i just have a sweater i'm sorry i didn't i didn't prepare yeah that's true
Michael Kennedy: i'm in a library it's full of books so i can i'm sure something geeky is behind me all right so
Michael Kennedy: We've talked about maybe some of the other not so necessarily AI focused tools is like what people should focus on.
Michael Kennedy: But like we both said, it's so transformative.
Michael Kennedy: And if people haven't actually tried it and seen it in action, you got to see it to believe it.
Michael Kennedy: Because I was a skeptic until my friend's like, no, let's sit down and let me show you.
Michael Kennedy: I'm like, oh, OK, I get it.
Michael Kennedy: And so let's talk about some of the AI tools.
Hugo Bowne-Anderson: I've done an initial slicing into different levels, which may be useful thinking through the evolution of these tools.
Hugo Bowne-Anderson: And how do we use AI to help us code?
Hugo Bowne-Anderson: And I jokingly level zero because we zero index here is copy and pasting from Stack Overflow.
Hugo Bowne-Anderson: Right now, that's not quite using AI, but it is AI is using collective wisdom as opposed
Hugo Bowne-Anderson: to stuff in yourself.
Hugo Bowne-Anderson: Right.
Hugo Bowne-Anderson: So we've got that.
Hugo Bowne-Anderson: Okay.
Hugo Bowne-Anderson: But then after our chat GBT moment, we've people started copy instead of copying and pasting
Hugo Bowne-Anderson: between Stack Overflow and their IDE, VS Code, Jupyter Notebooks, whatever it may be.
Hugo Bowne-Anderson: people started copy and pasting between ChatGPT and the IDE.
Hugo Bowne-Anderson: So you would, you know, let's say you get an error message from your IDE,
Hugo Bowne-Anderson: copy it into ChatGPT, give it a bit more context, whatever it may be.
Hugo Bowne-Anderson: And then such as, you know, give it the code you wrote,
Hugo Bowne-Anderson: plus the error message, plus your environment.
Hugo Bowne-Anderson: And it will be pretty good at helping you,
Hugo Bowne-Anderson: depending on what packages you're using, what framework.
Hugo Bowne-Anderson: If you're working in PyData, absolutely fantastic, right?
Hugo Bowne-Anderson: Of course, it's trained on scikit-learn.
Hugo Bowne-Anderson: It's trained on MapLotlib.
Hugo Bowne-Anderson: It's trained on Seaborn.
Hugo Bowne-Anderson: It's trained on spaCy.
Hugo Bowne-Anderson: One of the biggest frustrations at that point was it wasn't trained on ChatGPT's current
Hugo Bowne-Anderson: API.
Hugo Bowne-Anderson: So it would always give you, even if you corrected it, it would always revert to previous OpenAI
Hugo Bowne-Anderson: API.
Hugo Bowne-Anderson: Okay.
Hugo Bowne-Anderson: So level one, copy and pasting.
Hugo Bowne-Anderson: Level two, code completion in IDE.
Hugo Bowne-Anderson: So you can think co-pilot or whatever.
Hugo Bowne-Anderson: You're writing code and it will start suggesting things, right?
Hugo Bowne-Anderson: So that's just working your IDE.
Hugo Bowne-Anderson: Now, I think these things people probably know about.
Hugo Bowne-Anderson: But then level three is where things get really wild for me, where you actually, you have an
Hugo Bowne-Anderson: agent in your IDE or your terminal.
Hugo Bowne-Anderson: So cursor, which is a VS CodeFork, has an agent and a chat in it where you can have an
Hugo Bowne-Anderson: empty repository and say, hey, I want you to write a program that creates a RAG pipeline
Hugo Bowne-Anderson: over the documents in this subdirectory or something like that.
Hugo Bowne-Anderson: And it will go and do that immediately.
Hugo Bowne-Anderson: It will be, when you do that, it won't be great.
Hugo Bowne-Anderson: It'll do all types of nonsense.
Hugo Bowne-Anderson: It might write lots of directories and subdirectories.
Hugo Bowne-Anderson: So we can talk about some of the gotchas,
Hugo Bowne-Anderson: but this is agentic coding where you're chatting
Hugo Bowne-Anderson: and it just throws stuff in.
Hugo Bowne-Anderson: I will also add,
Hugo Bowne-Anderson: and this is something we mentioned briefly beforehand.
Hugo Bowne-Anderson: I don't like typing that much, to be honest.
Hugo Bowne-Anderson: So I use Super Whisper.
Hugo Bowne-Anderson: There are other tools to do this where I dictate to it.
Hugo Bowne-Anderson: And I also have a stream deck,
Hugo Bowne-Anderson: which is what we mentioned beforehand, which a lot of content creators use this. It's like buttons
Hugo Bowne-Anderson: and knobs that you can assign to macros. And so when I have a button that opens cursor, puts it in
Hugo Bowne-Anderson: agent mode, attaches Claude, Sonnet 4.5 or Gemma 2.5, whatever it may be. Exactly. That's a stream
Hugo Bowne-Anderson: deck. And then I have accept code buttons and reject code and that type of stuff. So I can
Hugo Bowne-Anderson: actually build a not insignificant amount of software with my voice and three buttons,
Michael Kennedy: which is so powerful.
Michael Kennedy: I also find that if I do dictation,
Michael Kennedy: I can be a lot more patient and thorough
Michael Kennedy: in a lot of ways, right?
Michael Kennedy: Like I don't know about you,
Michael Kennedy: but I've had like RSI issues.
Michael Kennedy: So I got to be real cognizant
Michael Kennedy: of like how much typing I do.
Michael Kennedy: I've got my Microsoft Sculpt ergonomic keyboard
Michael Kennedy: that I drag with me everywhere
Michael Kennedy: because square keyboards will destroy me in like a week.
Michael Kennedy: And so it lets me go on without worrying
Michael Kennedy: about those kinds of things.
Michael Kennedy: I use a Mac Whisper,
Michael Kennedy: but it's super similar, I believe, right?
Michael Kennedy: It just uses the same underlying engine.
Michael Kennedy: And it's really nice that you can, I do it for email.
Michael Kennedy: I do it for lots of things.
Hugo Bowne-Anderson: I'll just give that.
Hugo Bowne-Anderson: I love how you mentioned it does help one be more patient because yeah, when typing, well,
Hugo Bowne-Anderson: when chatting with an AI, you can get frustrated and the friction in typing and correcting yourself
Hugo Bowne-Anderson: and that type of stuff, you just don't have when speaking natural language.
Michael Kennedy: Yeah.
Michael Kennedy: And I find people, I don't, I mean, this is not scientific, but my experience has been
Michael Kennedy: that people say like, oh, this stuff is not good.
Michael Kennedy: it always just gives me junk results and so on, is so often there's not enough information given.
Michael Kennedy: It'd be like, create me a graph, not use Plotly to create this type of graph with this type of
Michael Kennedy: focus from this data like I did before. You know what I mean? Those are really different things.
Michael Kennedy: And the more specificity you can give these tools, the better. I use a lot of AI stuff.
Michael Kennedy: And I would say I have plenty of prompts that are pages long. And I was like, here's a file,
Michael Kennedy: Here's four pages of what I want you to do with it.
Michael Kennedy: Let's go.
Michael Kennedy: And it is not always writing.
Michael Kennedy: So but incredible results compared to what if you just say, you know, analyze this or whatever.
Hugo Bowne-Anderson: We'll get to this when we talk about gotchas.
Hugo Bowne-Anderson: But having a conversation with your system before getting it to write anything is incredibly important and productive.
Michael Kennedy: This portion of Talk Python To Me is brought to you by NordStellar.
Michael Kennedy: NordStellar is a threat exposure management platform from the Nord security family,
Michael Kennedy: the folks behind NordVPN that combines dark web intelligence, session hijacking prevention,
Michael Kennedy: brand and abuse detection, and external attack service management. Keeping your team and your
Michael Kennedy: company secure is a daunting challenge. That's why you need NordStellar on your side. It's a
Michael Kennedy: comprehensive set of services, monitoring, and alerts to limit your exposure to breaches and
Michael Kennedy: attacks and act instantly if something does happen. Here's how it works. NordStellar detects
Michael Kennedy: compromised employee and consumer credentials. It detects stolen authentication cookies found in
Michael Kennedy: InfoSteeler logs and dark web sources, then revokes live sessions and flags compromised devices,
Michael Kennedy: reducing MFA bypass ATOs without extra code in your app. Nordstellar scans the dark web for
Michael Kennedy: cyber threats targeting your company. It monitors forums, markets, ransomware blogs, and over 25,000
Michael Kennedy: cybercrime telegram channels with alerting and searchable context you can route to Slack or your
Michael Kennedy: IRR tool. Nordstellar adds brand and domain protection. It detects cyber squats and lookalikes
Michael Kennedy: via visual, content similarity, and search transparency logs, plus broader brand abuse
Michael Kennedy: takedowns across the web, social, and app stores to cut the phishing risk for your users. They
Michael Kennedy: don't just alert you about impersonation, they file and manage the removals. Finally, Nordstellar
Michael Kennedy: is developer-friendly.
Michael Kennedy: It's available as a platform and API
Michael Kennedy: with integrations for Splunk,
Michael Kennedy: QRadar, Datadog, Sentinel,
Michael Kennedy: Elastic, and Cortex.
Michael Kennedy: No agents to install.
Michael Kennedy: If security is important to you
Michael Kennedy: and your organization,
Michael Kennedy: check out Nordstellar.
Michael Kennedy: Visit talkpython.fm/nordstellar.
Michael Kennedy: The link is in your podcast player's
Michael Kennedy: show notes and on the episode page.
Michael Kennedy: Please use our link,
Michael Kennedy: talkpython.fm/nordstellar,
Michael Kennedy: so that they know that you heard
Michael Kennedy: about their service from us.
Michael Kennedy: Thank you to the whole
Michael Kennedy: Nord security team
Michael Kennedy: for supporting Talk Python To Me.
Hugo Bowne-Anderson: Isaac Flath, who he has a wonderful course on Maven called Elite AI Assisted Coding,
Hugo Bowne-Anderson: which I'm actually starting as a student this week. And I may give a guest talk there. He wrote,
Hugo Bowne-Anderson: I don't know whether he came up with it, but it's, it's, he calls it Socratic and dialogue
Hugo Bowne-Anderson: driven development where you essentially pair program with the AI. Don't expect it to do
Hugo Bowne-Anderson: everything, but have, have conversations. So the other thing is a lot of these agentic systems like
Hugo Bowne-Anderson: cursor, which I use daily, probably a bit too much. You can plug into any, you know, state of the art
Hugo Bowne-Anderson: API. So, you know, Sonnet 4.5 came out recently and the day after you could use that in Cursor.
Hugo Bowne-Anderson: Gemini 2.5 came out a while ago, then you couldn't plug it in. GPT-5 and so on. The other thing I
Hugo Bowne-Anderson: just wanted to give a shout out to is Continue. Tyler Dunn, speaking of modern tools and open
Hugo Bowne-Anderson: source tools, it's like an open source cursor of sorts. And I mean, he wouldn't frame it that way,
Hugo Bowne-Anderson: but you can have all your own local models, data preserving, privacy preserving, and use those in
Hugo Bowne-Anderson: in this way. So just going back to this slicing though, level one, copy and paste code, level two,
Hugo Bowne-Anderson: code completion, level three agents in an IDE or terminal. So Claude code, for example, can be in
Hugo Bowne-Anderson: your terminal, cursor, VS Code, fork. Level four is embedded in other tools like Slack or Discord or
Hugo Bowne-Anderson: email. You can tag cursor in Slack to, if you notice a documentation fault, you can tag it in
Hugo Bowne-Anderson: Slack to fix that.
Hugo Bowne-Anderson: Manus, you can tag in email threads now.
Hugo Bowne-Anderson: Level five is more proactive.
Hugo Bowne-Anderson: So all of these are reactive systems.
Hugo Bowne-Anderson: Level five is more proactive.
Hugo Bowne-Anderson: So you can have Cursor, for example,
Hugo Bowne-Anderson: and a lot of these systems,
Hugo Bowne-Anderson: I just use Cursor the most,
Hugo Bowne-Anderson: to do code review in CI,
Hugo Bowne-Anderson: in continuous integration.
Hugo Bowne-Anderson: So whenever I submit a PR,
Hugo Bowne-Anderson: Cursor can come in and do a code review there.
Hugo Bowne-Anderson: Now I'm getting a bit to future music.
Hugo Bowne-Anderson: At level six, we've got async or background agents
Hugo Bowne-Anderson: that just do stuff in the background, essentially,
Hugo Bowne-Anderson: which we're going to see a lot more of.
Hugo Bowne-Anderson: And then level seven,
Hugo Bowne-Anderson: which we haven't seen so much proactive agents.
Hugo Bowne-Anderson: And I think these are going to be huge
Hugo Bowne-Anderson: that will just notice stuff happening in production.
Hugo Bowne-Anderson: Like, hey, we have this outlier here.
Hugo Bowne-Anderson: Oh, this didn't quite work.
Hugo Bowne-Anderson: Or agents that come to me on a Monday morning
Hugo Bowne-Anderson: and be like, hey, check this out.
Hugo Bowne-Anderson: Check that out.
Hugo Bowne-Anderson: Check that.
Hugo Bowne-Anderson: Like a good colleague, right?
Hugo Bowne-Anderson: A team member.
Hugo Bowne-Anderson: Yeah.
Hugo Bowne-Anderson: So, but we're already at, you know, level five and kind of got background agents as well.
Hugo Bowne-Anderson: So we're getting, yeah, to a lot of really exciting places.
Michael Kennedy: Yeah.
Michael Kennedy: So I'm a hundred percent bought in up to level four, probably like certainly the agent decoding
Michael Kennedy: a little bit of the code review, not so much in CI, but like looking at the stuff that
Michael Kennedy: I'm, I might ask it like, Hey, what's going on here?
Michael Kennedy: Why is it like this background agents?
Michael Kennedy: I just haven't, I haven't got there.
Michael Kennedy: They seem, they seem like they don't have enough to work with, right?
Michael Kennedy: they don't have my whole machine and all the setups and all the things they need. But I can
Michael Kennedy: see how they would be useful. Certainly the way you're describing like a good colleague.
Hugo Bowne-Anderson: And so one example is not necessarily in software, but background agents, and I haven't done this,
Hugo Bowne-Anderson: but I've got friends and colleagues who've built background agents that monitor their inbox and
Hugo Bowne-Anderson: will ping them like their email, sorry, and will cluster emails and be like, hey, you really should
Hugo Bowne-Anderson: reply to this one. This is a prospect or a client that really needs your attention right now.
Michael Kennedy: I think that kind of stuff would be really neat. I will throw out there now, this comes from
Michael Kennedy: Sentry, who is a sponsor of the show, just to be fair, but I'm not doing this because they
Michael Kennedy: sponsored it. They added this thing called Seer, S-E-E-R, that when your app collects an exception
Michael Kennedy: or something or doesn't collect it and it gets up there, depending on how you send it up there,
Michael Kennedy: is it'll apply AI to whatever it receives. And it'll look, if you bind it to your GitHub and so
Michael Kennedy: on, it'll like try to understand the project. And maybe by the time you get to look at the bug
Michael Kennedy: report, it actually has a solution suggested as well, which, and it'll do a PR, which that's on
Michael Kennedy: the verge of what you were suggesting as this sort of like proactive buddy that's just hanging out
Hugo Bowne-Anderson: there. As I said, I do want to mention just a few gotchas. Or actually, let me just say some of the
Hugo Bowne-Anderson: really powerful use cases in data science, since we are talking about foundation models for data
Hugo Bowne-Anderson: science, just writing code. I mean, text to seek all these LLMs are trained on now, right? So
Hugo Bowne-Anderson: writing SQL code based on what you say or what you type in natural language. Now, chat with it
Hugo Bowne-Anderson: beforehand so that you make sure it understands your schema. It may not be great at complex joins,
Hugo Bowne-Anderson: this type of stuff. Understand the system you're working with, get a feel for how it works.
Hugo Bowne-Anderson: Actually think of it as like a super excited ADHD-esque, perhaps slightly autistic as well.
Hugo Bowne-Anderson: And I mean that with all the love in terms of, you know, absolute like deep memory, be able to recall
Hugo Bowne-Anderson: a lot of information. And on the ADHD spectrum, in terms of just how it will do, like it will spread
Hugo Bowne-Anderson: its attention over a lot of different places and create lots of different stuff, some of which may
Hugo Bowne-Anderson: not work, but some of which will be incredible. So have empathy for your system in that sense,
Hugo Bowne-Anderson: but writing SQL code, amazing. PyDataStack, incredible. I want to run an idea by you and
Michael Kennedy: just see what you think here with what you just said with like, think of it as this super excited,
Michael Kennedy: somewhat scatterbrain, junior helper, excited friend. If you had hired somebody, even if they
Michael Kennedy: went to Stanford, but they hadn't really done work on any like major data science projects,
Michael Kennedy: and they came to your company and you gave them a job,
Michael Kennedy: would you expect 100%, like absolutely 100% correctness?
Michael Kennedy: And they're, no.
Michael Kennedy: So I don't know why people expect the AI to be literally 100%.
Michael Kennedy: I think I have an idea why,
Michael Kennedy: but expecting the AI to be 100% right,
Michael Kennedy: where it's kind of doing some of this human level type of reason.
Michael Kennedy: I mean, not thinking, I'm not saying that,
Michael Kennedy: but this kind of problem, this creative problem solving,
Michael Kennedy: we should have a little bit of patience for if it gets it wrong,
Michael Kennedy: especially if we give it poor directions.
Michael Kennedy: You know what I mean?
Michael Kennedy: And I just feel like people so often think, well, it's a computer and it's wrong, so it's trash.
Michael Kennedy: It's no good.
Michael Kennedy: Well, was it 95% right?
Michael Kennedy: Because that's really helpful.
Hugo Bowne-Anderson: This is so important.
Hugo Bowne-Anderson: And there are several things in there.
Hugo Bowne-Anderson: Firstly, I think when after our chat champion moment, Jeremy Howard noticed a complaint that people were like, oh, I need to chat with it like it doesn't do the thing the first time and I need to correct it.
Hugo Bowne-Anderson: And Jeremy was like, what type of human don't you need to have a conversation with to learn stuff?
Hugo Bowne-Anderson: The other thing is in nearly all of these systems now, you have memory.
Hugo Bowne-Anderson: And cursor, for example, has cursor rules.
Hugo Bowne-Anderson: Whereas if you notice stuff that it does or doesn't do, put it in the rules.
Hugo Bowne-Anderson: You can have project-specific rules.
Hugo Bowne-Anderson: You can have cursor general rules, this type of stuff.
Hugo Bowne-Anderson: Such as always explain your reasoning.
Hugo Bowne-Anderson: And to your point, I don't think these things think, but they mimic reasoning and thought
Hugo Bowne-Anderson: in pretty sophisticated ways.
Hugo Bowne-Anderson: So I totally agree with that.
Hugo Bowne-Anderson: Also, use these things to not only write code, but to write tests for code producers, right?
Hugo Bowne-Anderson: To debug, to add assertions.
Hugo Bowne-Anderson: Now, also make sure you're always reading the code on average that it writes.
Hugo Bowne-Anderson: If things are really important, it's about your appetite for risk.
Hugo Bowne-Anderson: Maybe if things are really important, make sure you know what the code does and read it.
Hugo Bowne-Anderson: If things aren't as important, maybe you don't need to.
Hugo Bowne-Anderson: And an example I'll give there is one of the biggest wins here is being able to vibe code your own data viewers.
Hugo Bowne-Anderson: So let's say I'm building.
Michael Kennedy: 100% I agree with you on this.
Michael Kennedy: Incredible, right?
Hugo Bowne-Anderson: So if I'm building an LLM powered app where, okay, building an LLM powered app and I've got all these conversations, I can build a vibe code, a custom, a bespoke custom viewer to view that.
Hugo Bowne-Anderson: If it's an agent that writes emails, I can even build a viewer that displays the conversations
Hugo Bowne-Anderson: as emails or whatever it may be, right?
Hugo Bowne-Anderson: Now, I need to make sure that it's displaying the correct information.
Hugo Bowne-Anderson: So I need to make sure that my traces are actually looking correct.
Hugo Bowne-Anderson: So I need to understand that code.
Hugo Bowne-Anderson: But the ins and outs of the front end it's building, not the biggest deal for me.
Hugo Bowne-Anderson: So figure out what's important and what isn't.
Michael Kennedy: There's so many tools like this that are like, it's not me worth taking a week to write that.
Michael Kennedy: But wouldn't it be cool if I had that?
Michael Kennedy: And nothing depends on it.
Michael Kennedy: It's kind of like its own side little utility.
Michael Kennedy: There's no, it's not a building block
Michael Kennedy: that's going to become an important foundational thing.
Michael Kennedy: It just, if it works, you're like, that's awesome.
Michael Kennedy: I have that.
Michael Kennedy: People got to take advantage of just going like,
Michael Kennedy: oh, I need a utility that does X
Michael Kennedy: or I need a view in our admin section of the web app
Michael Kennedy: that does this.
Michael Kennedy: Nothing depends on it.
Michael Kennedy: If it works, amazing.
Michael Kennedy: If it doesn't, well, it didn't exist anyway.
Michael Kennedy: So whatever.
Michael Kennedy: And there's so many opportunities.
Hugo Bowne-Anderson: I love this so much. And I want to take a slight detour because it's so important. I actually think the surface area of what software is, is expanding and changing completely. So let's just look at, take a bit of a sociological big picture look at history where software, classically, you've, has been very expensive to build, right?
Hugo Bowne-Anderson: You've needed to pay a lot of not inexpensive engineers to build out a sophisticated product.
Hugo Bowne-Anderson: For that reason, you've had to get a lot of demand.
Hugo Bowne-Anderson: You've had to have a lot of service area of the market.
Hugo Bowne-Anderson: What that's meant is that you've needed to cover a lot of edge cases to satisfy a large
Hugo Bowne-Anderson: market so that you can make revenue based on the costs that you're accruing, right?
Hugo Bowne-Anderson: Now, with the ability to even vibe code or use AI-assisted coding to build this type
Hugo Bowne-Anderson: stuff, it changes what we can build and what it needs, what type of people it needs to satisfy.
Hugo Bowne-Anderson: So that's why the conversation of like vibe coding is going to bury Salesforce or SaaS versus like
Hugo Bowne-Anderson: old men screaming at clouds, vibe coding sucks or whatever it is, misses the entire middle ground
Hugo Bowne-Anderson: of the types of things that are possible. And I do think internal products, such as we've talked
Hugo Bowne-Anderson: about data viewers, internal products, such as, you know, lots of companies are ripping out their
Hugo Bowne-Anderson: marketing automation stacks and building things internally through to, I mean, I've got a friend
Michael Kennedy: who built a chess tutor app. I mean, it's not chess.com, but like a hundred of his friends
Hugo Bowne-Anderson: use it, right? So the idea of the different types of software we can build now and thinking about,
Hugo Bowne-Anderson: you know, ephemeral software or just in time software, disposable software, fast software
Hugo Bowne-Anderson: that we can build to solve a problem right now and then move on. I think we need to shift our
Michael Kennedy: model of what software actually is. I 100% agree. And it's such an exciting time. I also think this
Michael Kennedy: actually has an implication for IPI packages and a lot of these just external packages. So think
Michael Kennedy: about the ones you use, like this is not going to happen for pandas or polars or Jupyter or
Michael Kennedy: something like that. But how often have you gone like, oh, I need, I need a package that will let
Michael Kennedy: me look up both my ipv4 and ipv6 ip address and you you'd make you take that as a dependency
Michael Kennedy: that's like one fun using one function out of whatever thing you grab that might give you that
Michael Kennedy: information and there's there's a lot more opportunity to have fewer building blocks and
Michael Kennedy: dependencies that you need in your application if you can just say hey agent thing i need this and
Michael Kennedy: put it in its own file and boom and now you're not dependent on well did that thing upgrade to
Michael Kennedy: Python 3.15, sorry, you're stuck. It didn't. You know what I mean? Like it's, you were sort of free
Michael Kennedy: from, from these like little weird, I depend on this whole tree of dependencies because I need
Michael Kennedy: one little piece of functionality. You can vendor in stuff a lot easier if it's a low stakes.
Hugo Bowne-Anderson: The other thing that I think AI assisted coding help I've seen help with is, now this is,
Hugo Bowne-Anderson: this will be a bit controversial, but it's going from prototype to production. And what I really
Hugo Bowne-Anderson: mean by that? Let's say your production stack is in like Databricks, Spark, whatever. You can
Hugo Bowne-Anderson: prototype, write your pandas code. And then because once again, Spark, Databricks, all that documentation
Hugo Bowne-Anderson: is in training data. You can then convert it relatively easily. But of course, read, test your
Hugo Bowne-Anderson: code that you're pushing to prod just as you would with a junior software engineer, right?
Hugo Bowne-Anderson: The other thing is some gotchas with this. It'll do lots of things you don't ask it to do, okay?
Hugo Bowne-Anderson: such as it will just start downloading packages, for example,
Hugo Bowne-Anderson: if you're trying to write some code, right?
Hugo Bowne-Anderson: And so it'll do lots of things you don't ask it to do,
Hugo Bowne-Anderson: and it will also do things you ask it to not do, right?
Hugo Bowne-Anderson: So you'll say only write in one file,
Hugo Bowne-Anderson: and Devon, for example, will create nested subdirectories
Hugo Bowne-Anderson: each with 15 notebooks, something like that.
Hugo Bowne-Anderson: It will also forget lots of things in your conversation.
Hugo Bowne-Anderson: So make sure to remind it of things.
Hugo Bowne-Anderson: It will do something called dead looping.
Hugo Bowne-Anderson: And this is one of the most frustrating and pernicious things, depending on how long the
Hugo Bowne-Anderson: loop is.
Hugo Bowne-Anderson: But it will try to solve your most recent concern.
Hugo Bowne-Anderson: It will really optimize locally around the conversation.
Hugo Bowne-Anderson: And so it will solve that.
Hugo Bowne-Anderson: Then another error will appear and it will solve that.
Hugo Bowne-Anderson: And it will another error appear.
Hugo Bowne-Anderson: It will solve that.
Hugo Bowne-Anderson: And after a while, it might actually go back to the initial state.
Hugo Bowne-Anderson: So that's what dead looping is.
Hugo Bowne-Anderson: And this can be a loop of three.
Michael Kennedy: And it just cycles.
Michael Kennedy: Yeah.
Hugo Bowne-Anderson: five, seven, nine. So be very careful about that. Solutions are get it to zoom out. Say, hey,
Hugo Bowne-Anderson: let's zoom out and have a holistic conversation about this. Now, this is wild that this is how
Hugo Bowne-Anderson: we're interacting with software as well. Now, this is part of the- It's science fiction.
Hugo Bowne-Anderson: It really is. Science fiction. But write product requirement drops with it before any code. Now,
Hugo Bowne-Anderson: it may still just start writing code, even when you tell it to do that, right? Plan with it.
Hugo Bowne-Anderson: Write rules. Have empathy for your super excited, bright, fast, forgetful intern.
Michael Kennedy: I've really embraced this plan thing.
Michael Kennedy: All my major projects have a plans folder.
Michael Kennedy: And every time I start, I create a markdown file.
Michael Kennedy: I say, we're going to plan it out.
Michael Kennedy: And I want you to write in this markdown file what we're going to do.
Michael Kennedy: And I'll do that with a really expensive model, you know, like a thinking
Michael Kennedy: something or whatever, and it'll do it.
Michael Kennedy: Then I'll switch.
Michael Kennedy: I'll completely throw away that chat.
Michael Kennedy: Get another one, a little lower model.
Michael Kennedy: Say, we're going to do phase one of this plan.
Michael Kennedy: Let's go.
Michael Kennedy: And then two and then three.
Michael Kennedy: And every time I say, when you're done, you update the plan.
Michael Kennedy: So you know where we are and what we've done.
Michael Kennedy: What's not.
Michael Kennedy: And it's tremendously successful.
Hugo Bowne-Anderson: There is a concern of sometimes you want memory from one chat.
Hugo Bowne-Anderson: Like sometimes a chat just degrades.
Hugo Bowne-Anderson: So start a new conversation.
Hugo Bowne-Anderson: And there are clever ways, different for different products and models, but to get it to summarize
Hugo Bowne-Anderson: the conversation so far, like literally say, I'm going to take another instance of you.
Hugo Bowne-Anderson: Let's squash this so I can pass the important memories to it and so on.
Hugo Bowne-Anderson: The other thing is Cursor, a lot of these products have, it used to be called YOLO mode on Cursor,
Hugo Bowne-Anderson: Like Y-O-L-O mode, right?
Hugo Bowne-Anderson: Where it just executes.
Michael Kennedy: I run in YOLO mode, by the way, I do it.
Hugo Bowne-Anderson: I have too much anxiety around that.
Michael Kennedy: So here's the thing that's really gotten
Michael Kennedy: that I've really noticed that's interesting
Michael Kennedy: is my Git discipline is significantly better
Michael Kennedy: now that I'm, if I do that.
Michael Kennedy: So I'll open it up and I'll go
Michael Kennedy: and I'll start having a chat
Michael Kennedy: and I'll make sure everything is checked in.
Michael Kennedy: I might do a separate branch
Michael Kennedy: if I think it's going to go bonkers.
Michael Kennedy: And then it'll do a little bit of work.
Michael Kennedy: And I'm like, okay, that's successful.
Michael Kennedy: So I'll stage those changes, but not even commit them.
Michael Kennedy: And then I'll let it keep going and it'll create more work.
Michael Kennedy: And I see if it's successful, I'll just like put,
Michael Kennedy: and then eventually I'll commit it at the end.
Michael Kennedy: It won't even push it necessarily.
Michael Kennedy: And then you can also, while it's running,
Michael Kennedy: have the get diff window open
Michael Kennedy: and you can just sort of see what it's doing
Michael Kennedy: by looking at the diffs that start to appear.
Michael Kennedy: And so that's why I'm okay with YOLO mode
Michael Kennedy: because I can always just get revert and we're fine again.
Hugo Bowne-Anderson: Totally.
Hugo Bowne-Anderson: And also, I didn't mention this, but these AI assistants are great at looking at diffs with you.
Hugo Bowne-Anderson: And I also, I'm really thinking through what happens when we have so much AI generated code.
Hugo Bowne-Anderson: And I think part of the future of work, I don't want to get too sci-fi-esque, but how many agents can you manage simultaneously?
Hugo Bowne-Anderson: Like maybe the SuperSpa employees will be people who can manage 100 agents.
Michael Kennedy: It's like the revenge of the program manager, I'm telling you.
Hugo Bowne-Anderson: And in fact, project management, product management are some of the most important skills moving forward.
Hugo Bowne-Anderson: But also when you have so many agents generating code, what happens to CICD?
Hugo Bowne-Anderson: What happens to Jenkins?
Hugo Bowne-Anderson: And there's going to be a whole new space of products and agents that may deal with these
Hugo Bowne-Anderson: types of systems, right?
Hugo Bowne-Anderson: Look during the industrial revolution, what sprung up when looms like appeared and the
Hugo Bowne-Anderson: satellite industries that happened there.
Hugo Bowne-Anderson: So I think we're talking about job automation, job automation and job displacement, but the
Hugo Bowne-Anderson: amount of new jobs that will become available, I'm actually very excited about.
Hugo Bowne-Anderson: And we'll put in the show notes, please.
Hugo Bowne-Anderson: But there's an essay by Tim O'Reilly.
Hugo Bowne-Anderson: And I did a podcast with him about it, actually, that we can link to if you're up for it, called
Hugo Bowne-Anderson: The End of Programming As We Know It.
Hugo Bowne-Anderson: OK.
Hugo Bowne-Anderson: And he essentially, with his great depth of historical knowledge and his forward thinking
Hugo Bowne-Anderson: through vectors, prevents a really wonderful vision and ideas around where software is
Hugo Bowne-Anderson: heading.
Hugo Bowne-Anderson: Exactly.
Hugo Bowne-Anderson: What about exploring data?
Michael Kennedy: So we've been talking about mostly writing data, testing, writing code, testing code in
Michael Kennedy: the context of data science, but I think it's actually really pretty powerful to say, here's a
Michael Kennedy: CSV. This is basically what it means. Let's start looking at, get me some graphs, pull me out some
Michael Kennedy: trends. What's important? What do you see that I didn't see? What do you think about this, like
Michael Kennedy: this exploratory analysis side of it? And that's not even, you know, that doesn't even worry you
Michael Kennedy: about like, is there maybe a bug in the code because I don't want to put it in production,
Michael Kennedy: right? It's just, it's fooling around to get a jumpstart on understanding.
Hugo Bowne-Anderson: So firstly, exploratory data analysis is one of a scientist's and data scientist's most important
Hugo Bowne-Anderson: jobs. So the question then becomes is how can we get AI to help us see what's happening that's so
Hugo Bowne-Anderson: integral to what we do? And the truth is they're wonderful. They can be wonderful at pulling out
Hugo Bowne-Anderson: insights that I just haven't noticed, or I don't even think about how to visualize. Now, if I ask
Hugo Bowne-Anderson: it to find the mean or median, it may suck at that on average, unless it writes the code to do so,
Hugo Bowne-Anderson: But when you get it to do EDA or exploratory data analysis, it will provide insights that I haven't thought of.
Hugo Bowne-Anderson: So one example I saw recently from a client was throwing in thousands of rows of customer data and website data of customers.
Hugo Bowne-Anderson: And it immediately showed clusters of high usage versus low usage.
Hugo Bowne-Anderson: You could see power users.
Hugo Bowne-Anderson: You could see power users who spent a lot on the platform.
Hugo Bowne-Anderson: You could see power users who didn't spend much on the platform.
Hugo Bowne-Anderson: And this is the type of work that takes hours for data scientists to sift through and develop
Hugo Bowne-Anderson: hypotheses around.
Hugo Bowne-Anderson: So when we're talking about, you know, data science is exploration and hypothesis driven,
Hugo Bowne-Anderson: right?
Hugo Bowne-Anderson: So when we're talking about exploration and hypothesis driven data science, it's wonderful
Hugo Bowne-Anderson: there.
Hugo Bowne-Anderson: And once again, this isn't to replace what we do, but it's to help us.
Michael Kennedy: It's having a thought partner, which is fast.
Michael Kennedy: Beyond the computer, a different bicycle of the mind.
Michael Kennedy: of a sort. Yeah. Maybe like a, maybe it's like an e-bike of the mind. What do you think?
Michael Kennedy: I love it.
Michael Kennedy: Yeah. E-bikes. I love e-bikes.
Hugo Bowne-Anderson: They're awesome. And I especially do because I live in Sydney, right? So getting to the beach,
Hugo Bowne-Anderson: it's actually quite hilly depending where, where you are. And the other thing I, yeah, when,
Hugo Bowne-Anderson: so hopefully we have time to talk about this, but something I do a lot of work on is what I call
Hugo Bowne-Anderson: evaluation driven development for LLM and AI powered applications where a really important part
Hugo Bowne-Anderson: of this is error analysis and failure analysis. So seeing where your applications fail. So let's
Hugo Bowne-Anderson: say we're building a chatbot, which is RAG. So it has some corpus of documents and it retrieves
Hugo Bowne-Anderson: stuff from it. And we want to interact with it. When we're building that, some of the first steps
Hugo Bowne-Anderson: and ongoing process is seeing what failure modes they are. Is it hallucinating or is it not
Hugo Bowne-Anderson: retrieving things correctly? Is it looking at the wrong documents? These types of things. And you do
Hugo Bowne-Anderson: that to drive the development and iterative process of AI powered software. Now you can also use AI
Hugo Bowne-Anderson: to look at that and look at the results in the data exploration. And it can really bring out a lot of
Hugo Bowne-Anderson: different failure modes. It can say, Hey, look at this cluster of conversations where the user
Hugo Bowne-Anderson: finally got the correct response, but they asked to be connected to a representative first,
Hugo Bowne-Anderson: and they didn't get connected to a representative. So this is actually an example where the conversation
Hugo Bowne-Anderson: looks like it's resolved. The support ticket was resolved or whatever it is, but there's a deep
Hugo Bowne-Anderson: failure mode within there. So AI can be very good in terms of the data exploration and hypothesis
Hugo Bowne-Anderson: driving process with that. So that was an example, but yeah, should we get into building LLM powered
Michael Kennedy: software? Yeah, sure. So I wonder whether you'd like to bring up the figure that I will talk
Hugo Bowne-Anderson: through because I know there'll be people listening and I'll share it in the chat with you. So this is
Hugo Bowne-Anderson: a slightly tongue-in-cheek figure. It speaks to real pain we have. So on the x-axis, we have time
Hugo Bowne-Anderson: and we're talking about building software. On the y-axis, we have excitement or dopamine, if you will,
Hugo Bowne-Anderson: if you want to measure it. And for the scientists out there, I apologize for not having units on my
Hugo Bowne-Anderson: axes, but it's all good. We know with traditional software, excitement increases over time. Things
Hugo Bowne-Anderson: are pretty boring at the start. You have a hello world and basic features and add unit tests,
Hugo Bowne-Anderson: then you scale and optimize and load balance. And over time, excitement increases and increases
Hugo Bowne-Anderson: and increases. This is absolutely inverted with generative AI powered software, right? Where you
Hugo Bowne-Anderson: have a flashy demo at the start. You're like, wow, check this out. Okay. Then you're like, oh, wait,
Hugo Bowne-Anderson: does it actually work? Or can someone else use it? And so you have issues with basic functionality
Hugo Bowne-Anderson: then. So excitement goes down. Then you're like, oh no, all these hallucinations, excitement goes
Hugo Bowne-Anderson: down. Then you have monitoring challenges. You're like, how can I even look at all my conversations
Hugo Bowne-Anderson: and tool calls and actions and this type of stuff? Excitement goes down. Then you have integration
Hugo Bowne-Anderson: issues? How do I integrate into my enterprise stack? Excitement goes down again. And I don't
Hugo Bowne-Anderson: think it's a coincidence that this is one of the most exciting technologies of a generation that's
Hugo Bowne-Anderson: totally addicted to Instagram as well, right? But the question is, and a lot of work I do,
Hugo Bowne-Anderson: is in helping people raise the curve, not change anything, not even change the excitement of the
Hugo Bowne-Anderson: flashy demo, but just make sure that excitement goes up and up and up as you build. And once again,
Hugo Bowne-Anderson: There's no free lunch.
Hugo Bowne-Anderson: You've got to do this the hard way, right?
Hugo Bowne-Anderson: So this is something, and a short plug for a course I teach,
Hugo Bowne-Anderson: but this is something I teach a lot on.
Hugo Bowne-Anderson: And I teach a Maven course,
Hugo Bowne-Anderson: building LM powered applications
Hugo Bowne-Anderson: for data science and software engineers
Hugo Bowne-Anderson: with my colleague, Stefan Krauchik,
Hugo Bowne-Anderson: who he works on agent infrastructure at Salesforce.
Hugo Bowne-Anderson: I bring a lot of the data and ML stuff.
Hugo Bowne-Anderson: He brings a lot of the ops stuff.
Hugo Bowne-Anderson: But yeah, in this course,
Hugo Bowne-Anderson: we teach a lot of these things.
Hugo Bowne-Anderson: And the way we do that,
Hugo Bowne-Anderson: one way to think about it is what we call evaluation-driven development. So that's not
Hugo Bowne-Anderson: necessarily having very sophisticated evals and tests and that type of stuff to start,
Hugo Bowne-Anderson: but it's about having a sense of where you want your product to go and having a sense of evaluation
Hugo Bowne-Anderson: of how to drive it in that direction. And the skillset that's required for this is so similar
Hugo Bowne-Anderson: to people who've built data science and ML powered products, right? So it's a curiosity to explore
Hugo Bowne-Anderson: data. It's a hacker mindset. It's experimenting with different tools. And what have we been doing
Hugo Bowne-Anderson: in the PyDataStack? I mean, look at the data viz landscape in Python. I think it was maybe PyCon
Hugo Bowne-Anderson: 2018 that Jake Vanderplass, I think first time gave his talk, you know, data visualization in
Hugo Bowne-Anderson: Python. And, you know, there were so many tools one could use there. It's this type of mindset
Hugo Bowne-Anderson: you need. And then in terms of the product workflow, how you make sure you don't kind of go down this
Hugo Bowne-Anderson: curve, lose excitement in what I call proof of concept purgatory. People call the plateau of
Hugo Bowne-Anderson: productivity. There are all types of fun names about it. But what you do is you use the machine
Hugo Bowne-Anderson: learning mindset, which is get some data in and out of your system. If you don't have users yet,
Hugo Bowne-Anderson: you can generate synthetic data to do so, right? Then you label it, pass or fail initially. And
Hugo Bowne-Anderson: you give it a failure mode such as it was hallucination retrieval error wrong tool call
Hugo Bowne-Anderson: and a tool call essentially is what an agent does so an agent is an llm plus tool calls a tool call
Hugo Bowne-Anderson: could be ping an api send an email whatever it is agent plus tool call in some you know while loop
Hugo Bowne-Anderson: or for loop right and so you have did it did this particular interaction pass or fail what was the
Hugo Bowne-Anderson: failure mode and then how do I fix these particular failure modes? And I mean, one way to do this
Hugo Bowne-Anderson: initially, depending on the complexity of your system, is to put all of this in a spreadsheet
Hugo Bowne-Anderson: and do a pivot table. I know AI engineers hate it when I tell them to do pivot tables, but if you
Hugo Bowne-Anderson: rank order, use a pivot table to rank order your failure modes by frequency, then you can see what
Hugo Bowne-Anderson: to fix first. And if it's a retrieval error, maybe you want to fix the rag part of your system and
Hugo Bowne-Anderson: the retrieval part, right?
Hugo Bowne-Anderson: As opposed to the generative part.
Hugo Bowne-Anderson: So focus on your embeddings or chunks.
Hugo Bowne-Anderson: If it's a tool call,
Hugo Bowne-Anderson: focus on how that tool call is defined,
Hugo Bowne-Anderson: heuristics that the LLM uses there.
Michael Kennedy: A lot of the time, if you're doing...
Michael Kennedy: I would like to add,
Michael Kennedy: well, this is great.
Michael Kennedy: I would like to add that
Michael Kennedy: you can use those agentic coding tools
Michael Kennedy: to help build better analytics.
Michael Kennedy: Absolutely.
Michael Kennedy: Other support.
Michael Kennedy: So you're like,
Michael Kennedy: God, we don't really have,
Michael Kennedy: we can't really track that, right?
Michael Kennedy: Like, well, give it half an hour
Michael Kennedy: and you can, you know what I mean?
Michael Kennedy: Exactly.
Michael Kennedy: And so you got to kind of think out of the box and be a little creative there.
Michael Kennedy: Maybe build an MCP server that specializes in solving a specialized LLM that addresses
Michael Kennedy: a shortcoming that you can then force it to use the MCP server and work more constrained
Michael Kennedy: or whatever.
Hugo Bowne-Anderson: Exactly.
Hugo Bowne-Anderson: And as we kind of hinted at earlier, one of the wacky things here is that a lot of this
Hugo Bowne-Anderson: comes down to prompting.
Hugo Bowne-Anderson: And people like, should I fine tune or prompt engineer or rag or that type of stuff?
Hugo Bowne-Anderson: Prompt and prompt and prompt initially, because you can get so much lift by prompting.
Hugo Bowne-Anderson: Now, if it is actually a retrieval error, perhaps you want to improve your embeddings
Hugo Bowne-Anderson: or your chunking strategy or that type of stuff.
Hugo Bowne-Anderson: The other thing is, of course, data, metadata, data ingestion.
Hugo Bowne-Anderson: Draw an architectural diagram of your system where you see, you know, you have your RAG,
Hugo Bowne-Anderson: you have your output, you have your embeddings, you have your OCR, or if you've got PDS,
Hugo Bowne-Anderson: however you're ingesting your data,
Hugo Bowne-Anderson: a huge amount of the time,
Hugo Bowne-Anderson: fixing how you do your OCR on your PDFs
Hugo Bowne-Anderson: will be far more significant lift
Hugo Bowne-Anderson: than switching out to Claude Sonnet 4.5, okay?
Michael Kennedy: At that point, I totally understand
Hugo Bowne-Anderson: why people want to try the newest and sexiest model.
Hugo Bowne-Anderson: And I'm not telling people not to.
Hugo Bowne-Anderson: What I'm saying is focus on the fundamentals.
Hugo Bowne-Anderson: And then when you have this set of evals
Hugo Bowne-Anderson: of labeled data of what works, what doesn't,
Hugo Bowne-Anderson: You want a test set, essentially, right?
Hugo Bowne-Anderson: Like in machine learning.
Hugo Bowne-Anderson: So it's the same process.
Hugo Bowne-Anderson: You have this test set, your gold standard, which ideally covers, has coverage over all
Hugo Bowne-Anderson: your failure modes.
Hugo Bowne-Anderson: You want eval coverage.
Hugo Bowne-Anderson: Then when you switch out to a new model, you can see how it performed on your test set.
Hugo Bowne-Anderson: Imagine that.
Hugo Bowne-Anderson: Imagine being able to switch out a model and seeing what's up there.
Michael Kennedy: We will say it's better concretely with data, not just it feels better, which is often.
Hugo Bowne-Anderson: There are all these eval conversations about we don't want these evals.
Hugo Bowne-Anderson: We want online evals.
Hugo Bowne-Anderson: And then there are people do things only by vibes.
Hugo Bowne-Anderson: And all of these things are absolutely valid as well.
Hugo Bowne-Anderson: I think it's a healthy combination for whatever your product needs at any point in time.
Michael Kennedy: I do want to take just a couple minutes, literally, and get your thoughts on people coming into
Michael Kennedy: the industry.
Michael Kennedy: Data scientists who are just graduating now, or they got their first job, or they're about
Michael Kennedy: to get their first job.
Michael Kennedy: Like, I imagine this is something of a scary time.
Michael Kennedy: I think, well, now I'm not just competing with all the other people.
Michael Kennedy: Now these like AI things are biting against me getting a job as well.
Michael Kennedy: But I think it's both a blessing and a curse.
Michael Kennedy: What do you think?
Hugo Bowne-Anderson: Focus on three things.
Hugo Bowne-Anderson: What value you can deliver?
Hugo Bowne-Anderson: What's your skill as a data scientist?
Hugo Bowne-Anderson: And it is looking at data.
Hugo Bowne-Anderson: It is building and it is tying that to business value.
Hugo Bowne-Anderson: So if you focus on your skills and you build, build, build and consistently tie it to business
Hugo Bowne-Anderson: value, I think you'll go a long way.
Hugo Bowne-Anderson: And this actually speaks to how we think about evaluation more generally.
Hugo Bowne-Anderson: And I do want to give a shout out to a Sydney-based company called Lorikeet that they build customer support agents for all types of industries.
Hugo Bowne-Anderson: And when they do evaluation, they always evaluate was the ticket solved or not.
Hugo Bowne-Anderson: That's the most important evaluation.
Hugo Bowne-Anderson: It's not did this LLM call result in what we wanted it to be or anything along those lines.
Hugo Bowne-Anderson: Of course, once they see a failure, they tie it back to these more technical LLM-based failure modes.
Hugo Bowne-Anderson: But I wonder if, yeah, maybe Google Lorikeet AI or something like that.
Michael Kennedy: I had it in another tab.
Michael Kennedy: I don't know.
Michael Kennedy: I'll get it back.
Hugo Bowne-Anderson: One thing I love about, and I'm indexing on them.
Hugo Bowne-Anderson: There are lots of companies that do this.
Hugo Bowne-Anderson: But one thing that's very interesting about them is that their pricing model is ticket resolution based, right?
Hugo Bowne-Anderson: So if they've built a concierge or customer service agent for you, you pay based on how many tickets are resolved.
Hugo Bowne-Anderson: A lot of their competitors, their pricing is based on tokens, right?
Hugo Bowne-Anderson: Because that's what they pay for.
Hugo Bowne-Anderson: And in terms of aligning incentives, having it based around resolution is incredibly important for how you build as well.
Hugo Bowne-Anderson: And the reason, the question was, what should early stage data scientists focus on?
Hugo Bowne-Anderson: The reason I detoured on that story is supreme focus on business value, how your skills can be tied to business value via building stuff.
Michael Kennedy: It's great advice.
Michael Kennedy: And I will just throw one more thing out there for people is don't let these AI tools undercut your desire to actually learn the details.
Michael Kennedy: If you just go like, all right, I asked it and it gave me the answer and it just streamed by and you didn't pay attention, you're doing it wrong.
Michael Kennedy: You've got to stop, read, pay attention, question why did it do that.
Michael Kennedy: You can even ask it, why did you do this?
Michael Kennedy: Rather than that way, it might give you a documentation link.
Michael Kennedy: Like you got to stay active and it's so easy to just go next, next, next, because it's exciting
Michael Kennedy: that it's building something.
Michael Kennedy: Absolutely.
Hugo Bowne-Anderson: And I will add one other thing there, which is we need to carve out time.
Hugo Bowne-Anderson: These things won't always work.
Hugo Bowne-Anderson: You can spend a day working with AI and make less progress than if you'd done it yourself
Hugo Bowne-Anderson: as well.
Hugo Bowne-Anderson: I want to be very clear about that.
Hugo Bowne-Anderson: What we all need to do is figure out organizations we can work at, work with, and then time ourselves
Hugo Bowne-Anderson: to experiment with these seriously emerging
Hugo Bowne-Anderson: and rapidly changing technologies.
Hugo Bowne-Anderson: So it won't always be wins is my point.
Hugo Bowne-Anderson: So don't get discouraged when it isn't.
Michael Kennedy: Awesome, Hugo.
Michael Kennedy: Thank you for being on the show,
Michael Kennedy: sharing what you've been up to,
Michael Kennedy: your view of this.
Michael Kennedy: It's got your pleasure.
Michael Kennedy: Absolutely.
Michael Kennedy: I'll put a link to your podcasts,
Michael Kennedy: your courses, stuff like that
Michael Kennedy: in the show notes for people.
Hugo Bowne-Anderson: I'd love that.
Hugo Bowne-Anderson: Oh, and I mentioned this to you earlier,
Hugo Bowne-Anderson: but always love Talk Python, of course,
Hugo Bowne-Anderson: and I'm so grateful for having me on three times.
Hugo Bowne-Anderson: And I'd love to offer your audience 20% off my course as well.
Hugo Bowne-Anderson: So we'll include that link in the show notes.
Michael Kennedy: Beautiful.
Michael Kennedy: We'll put it right by the link.
Michael Kennedy: All right.
Michael Kennedy: Well, thanks for being here.
Michael Kennedy: We live in weird and amazing and crazy times.
Michael Kennedy: And yeah, I'm going to leave it with that.
Hugo Bowne-Anderson: On the journey together.
Hugo Bowne-Anderson: Thank you.
Hugo Bowne-Anderson: Thanks, Michael.
Michael Kennedy: That's right.
Michael Kennedy: See you later.
Michael Kennedy: Bye, everyone.
Michael Kennedy: Ciao.
Michael Kennedy: This has been another episode of Talk Python To Me.
Michael Kennedy: Thank you to our sponsors.
Michael Kennedy: Be sure to check out what they're offering.
Michael Kennedy: It really helps support the show.
Michael Kennedy: This episode is sponsored by Posit Connect from the makers of Shiny.
Michael Kennedy: publish share and deploy all of your data projects that you're creating using python
Michael Kennedy: streamlet dash shiny bokeh fast api flask quarto reports dashboards and apis posit connect supports
Michael Kennedy: all of them try posit connect for free by going to talkpython.fm/ posit p-o-s-i-t this episode
Michael Kennedy: is brought to you by nord stellar nord stellar is a threat exposure management platform from the
Michael Kennedy: Nord security family, the folks behind Nord VPN that combines dark web intelligence, session
Michael Kennedy: hijacking prevention, brand and domain abuse detection, and external attack surface management.
Michael Kennedy: Learn more and get started keeping your team safe at talkpython.fm/nordstellar.
Michael Kennedy: If you or your team needs to learn Python, we have over 270 hours of beginner and advanced
Michael Kennedy: courses on topics ranging from complete beginners to async code, Flask, Django,
Michael Kennedy: HTML and even LLMs.
Michael Kennedy: Best of all, there's not a subscription in sight.
Michael Kennedy: Browse the catalog at talkpython.fm.
Michael Kennedy: Be sure and subscribe to the show.
Michael Kennedy: Open your favorite podcast player app,
Michael Kennedy: search for Python,
Michael Kennedy: we should be right at the top.
Michael Kennedy: If you enjoy the Geeky Rap theme song,
Michael Kennedy: you will be right at the top.
Michael Kennedy: You can download the full track.
Michael Kennedy: The link is your podcast player show notes.
Michael Kennedy: This Is Your Host Michael Kennedy.
Michael Kennedy: Thank you so much for listening.
Michael Kennedy: I really appreciate it.
Michael Kennedy: Now get out there and write some Python code.
Talk Python To Me, yeah we ready to roll
Upgrading the code, no fear of getting whole
We tapped into that modern vibe, overcame each storm
Talk Python To Me, I-Sync is the norm
you