WEBVTT

00:00:10.060 --> 00:00:12.320
Hey everyone, this is Mukundan Sankar from Data

00:00:12.320 --> 00:00:16.140
and AI with Mukundan. Today's episode, I want

00:00:16.140 --> 00:00:21.579
to talk about how I built an AI app that translates

00:00:21.579 --> 00:00:26.839
your code into a story. And I've used it to explain

00:00:26.839 --> 00:00:29.640
my analysis and I'm hoping you can do it as well.

00:00:31.000 --> 00:00:35.899
So about me, I'm not an engineer. I'm a data

00:00:35.899 --> 00:00:40.500
analyst, a data scientist even. But I live in

00:00:40.500 --> 00:00:43.679
the world of data. I live in dashboards, notebooks,

00:00:44.079 --> 00:00:50.280
queries. My world is Python, Streamlit, Pandas,

00:00:50.320 --> 00:00:55.899
metrics, deadlines. But recently my manager asked

00:00:55.899 --> 00:01:01.240
me a very simple question. Hey, can you walk

00:01:01.240 --> 00:01:09.549
me through what was your logic? He said, well,

00:01:09.670 --> 00:01:12.250
not just me. Can you walk the team through as

00:01:12.250 --> 00:01:15.090
well what the logic was? And you'll be wondering

00:01:15.090 --> 00:01:19.829
what this logic was. I wrote a piece of code

00:01:19.829 --> 00:01:22.689
and he wanted me to explain what the logic was.

00:01:23.010 --> 00:01:27.090
Right. As simple as that. Now, here's the thing.

00:01:27.750 --> 00:01:31.590
I had done the analysis. I had solved the problem.

00:01:32.769 --> 00:01:37.510
But when it came time to explain it, I froze.

00:01:39.879 --> 00:01:44.379
That moment, standing there, blinking at my screen,

00:01:44.459 --> 00:01:49.359
trying to find the words to describe what I'd

00:01:49.359 --> 00:01:52.859
just built, that's the moment the whole story

00:01:52.859 --> 00:02:01.040
begins. So, what is a silent struggle for an

00:02:01.040 --> 00:02:05.060
analyst? Or maybe an introverted, or I guess

00:02:05.060 --> 00:02:08.020
not an extroverted analyst. And we don't talk

00:02:08.020 --> 00:02:13.099
about this enough. Explaining your work is harder

00:02:13.099 --> 00:02:17.379
than doing the work. As analysts, I would say

00:02:17.379 --> 00:02:21.939
we move fast. We write scripts on a tight deadline.

00:02:23.020 --> 00:02:26.479
There's very less hours allocated to analysts

00:02:26.479 --> 00:02:28.740
to doing their work as compared to engineers.

00:02:29.879 --> 00:02:34.180
And so we have to move really quick. We build

00:02:34.180 --> 00:02:38.340
dashboards with changing requirements. We clean

00:02:38.340 --> 00:02:41.939
messy data and make it look clean enough to trust.

00:02:43.620 --> 00:02:48.560
And in the rush to get things done, we rarely

00:02:48.560 --> 00:02:55.080
stop and ask, can I explain this? And not just

00:02:55.080 --> 00:02:59.080
to our manager, not just to our team, but to

00:02:59.080 --> 00:03:03.240
someone who's outside our domain, to someone

00:03:03.240 --> 00:03:09.620
who doesn't know what... .cumsum means cum sum,

00:03:09.740 --> 00:03:14.139
like cumulative sum or why .merge behaves the

00:03:14.139 --> 00:03:18.400
way it does like a pandas function or how streamlit

00:03:18.400 --> 00:03:21.960
even works and I can just talk about many other

00:03:21.960 --> 00:03:25.259
pandas functions like even concat can you explain

00:03:25.259 --> 00:03:28.599
it to other people and here's the kicker if you

00:03:28.599 --> 00:03:34.039
can't explain it they can't understand it and

00:03:34.520 --> 00:03:38.159
If they can't understand it, your impact disappears.

00:03:39.840 --> 00:03:42.939
It gets reduced to he's good with numbers or

00:03:42.939 --> 00:03:47.319
she makes the dashboards or, you know, something

00:03:47.319 --> 00:03:50.560
like that. So here's the thing, you deserve better.

00:03:51.740 --> 00:03:59.139
And here's how it all started, really. After

00:03:59.139 --> 00:04:01.500
that meeting where my manager really asked me,

00:04:01.520 --> 00:04:04.810
can you explain the logic? I started journaling.

00:04:06.250 --> 00:04:11.509
Not about my analysis, but about why I couldn't

00:04:11.509 --> 00:04:16.370
explain it. And the more I thought about it,

00:04:16.449 --> 00:04:21.149
the more I realized this isn't a technical problem.

00:04:22.389 --> 00:04:26.949
It is a storytelling problem. So I built something

00:04:26.949 --> 00:04:32.189
not to replace what I do, but to help me explain

00:04:32.189 --> 00:04:35.939
it better. And it's called Code to Story. And

00:04:35.939 --> 00:04:41.220
this is how it started. So you upload a .py file,

00:04:41.360 --> 00:04:44.040
like a Python file or a .txt file, like a text

00:04:44.040 --> 00:04:49.839
file. And the app sends it through a GPT -4 storytelling

00:04:49.839 --> 00:04:55.980
prompt. And the result is a narrative, like a

00:04:55.980 --> 00:04:59.360
case study or a blog post, and basically an explanation.

00:05:00.579 --> 00:05:04.689
It's like taking a messy notebook having someone

00:05:04.689 --> 00:05:09.430
clean it up and say, here's what this really

00:05:09.430 --> 00:05:17.550
is and here's why it matters. And I didn't just

00:05:17.550 --> 00:05:22.230
build it for fun. I built it because I needed

00:05:22.230 --> 00:05:29.649
it. I needed it to explain. So I've also tested

00:05:29.649 --> 00:05:33.339
this out on what I've... built out so this was

00:05:33.339 --> 00:05:37.439
like a recent blog post i wrote uh this was to

00:05:37.439 --> 00:05:41.100
test the blow test the tone of the blog post

00:05:41.100 --> 00:05:45.959
right i wanted to see how my uh you know how

00:05:45.959 --> 00:05:49.199
i'm writing previous blog post what the tone

00:05:49.199 --> 00:05:52.879
is it is conveying you know what is the intended

00:05:52.879 --> 00:05:56.100
tone and what the tone i think it is conveying

00:05:56.100 --> 00:05:59.079
versus what what actually is the tone that got

00:05:59.079 --> 00:06:06.050
conveyed this was again using AI and I'll link

00:06:06.050 --> 00:06:08.470
that blog post in the show notes and you'll see

00:06:08.470 --> 00:06:13.029
it's called tone detector so it's like just I

00:06:13.029 --> 00:06:17.350
call the blog as I built an AI tool to expose

00:06:17.350 --> 00:06:22.430
the lie that my blog was telling and so this

00:06:22.430 --> 00:06:26.990
was that example and so the app the app script

00:06:26.990 --> 00:06:30.459
is called toneappdetector .py And it was a streamlit

00:06:30.459 --> 00:06:33.360
app, like a Python -based streamlit app, that

00:06:33.360 --> 00:06:36.699
took in block content and compared tone predictions

00:06:36.699 --> 00:06:41.319
from open AI and hugging face models. Basically,

00:06:41.500 --> 00:06:45.620
does this paragraph sound emotional? Does it

00:06:45.620 --> 00:06:48.720
sound professional, persuasive, angry, joyful?

00:06:49.000 --> 00:06:53.040
All of those emotions, right? And I wanted to

00:06:53.040 --> 00:06:56.199
see what would happen if I uploaded just the

00:06:56.199 --> 00:06:59.600
raw code. to the code to story app which I built

00:06:59.600 --> 00:07:06.879
here and so I did no comments no readme and no

00:07:06.879 --> 00:07:12.240
prep just that rock python file and here here's

00:07:12.240 --> 00:07:16.000
what it gave me back the block tone detector

00:07:16.000 --> 00:07:20.699
app is a symphony of working technologies a symphony

00:07:20.699 --> 00:07:22.699
of technology technologies working together to

00:07:22.699 --> 00:07:26.579
solve a common problem like understanding tone

00:07:26.579 --> 00:07:30.439
in writing built with hugging face open ai and

00:07:30.439 --> 00:07:33.180
stream lit it allows users to visualize emotional

00:07:33.180 --> 00:07:39.160
patterns paragraph by paragraph that's just a

00:07:39.160 --> 00:07:42.319
brief paragraph what it gave but like it gave

00:07:42.319 --> 00:07:46.600
a pretty lengthy blog post right and this wasn't

00:07:46.600 --> 00:07:49.800
just a summary it was a story it sounded like

00:07:49.800 --> 00:07:53.100
something i would be proud to post on linkedin

00:07:54.029 --> 00:07:56.569
Or share with my hiring manager. I mean, not

00:07:56.569 --> 00:08:00.089
my hiring manager. Share with my manager or something

00:08:00.089 --> 00:08:02.829
that... Share with a future hiring manager that

00:08:02.829 --> 00:08:10.029
you want to interview with. Or read at the top

00:08:10.029 --> 00:08:15.230
of a project portfolio. And that's when it clicked

00:08:15.230 --> 00:08:21.050
for me. This tool doesn't just explain your code.

00:08:22.699 --> 00:08:26.160
It helps you see your work with fresh perspective.

00:08:27.620 --> 00:08:31.980
With fresh eyes. It isn't just for engineers,

00:08:32.159 --> 00:08:35.360
analysts, data scientists. It's for anyone who

00:08:35.360 --> 00:08:39.440
writes code, really. Even a little bit. And wants

00:08:39.440 --> 00:08:46.440
to explain their thinking. Could be someone who's

00:08:46.440 --> 00:08:49.600
junior on the team. Junior analyst, junior data

00:08:49.600 --> 00:08:53.879
scientist. A project manager who prototypes their

00:08:53.879 --> 00:08:57.039
own tools. A freelancer with a lot of client

00:08:57.039 --> 00:09:01.460
scripts. Job seekers with test projects. Career

00:09:01.460 --> 00:09:06.039
switchers trying to showcase their skills. It's

00:09:06.039 --> 00:09:08.899
for people who have done the work but don't have

00:09:08.899 --> 00:09:12.200
the words to explain that work clearly. If that's

00:09:12.200 --> 00:09:16.120
you, you're not alone. I've been there and that's

00:09:16.120 --> 00:09:21.559
why I built this. Let's understand the why behind

00:09:21.559 --> 00:09:24.360
the tool. Let's zoom out for a second, right?

00:09:25.220 --> 00:09:31.000
In the age of ChatGPT, Cloud, Copilot, BARD,

00:09:31.220 --> 00:09:37.200
DeepSeek, AI can write code. But you know what

00:09:37.200 --> 00:09:41.840
it can't still do well? What can it not do well

00:09:41.840 --> 00:09:46.899
yet? Tell your story. It can't say why you chose

00:09:46.899 --> 00:09:51.990
this approach. why that edge case mattered, and

00:09:51.990 --> 00:09:56.470
what it felt like to build something from scratch.

00:09:57.230 --> 00:10:03.529
And that's the superpower now. Storytelling isn't

00:10:03.529 --> 00:10:08.009
just a soft skill anymore. It's the skill that

00:10:08.009 --> 00:10:10.629
separates people who get promoted from those

00:10:10.629 --> 00:10:15.389
who don't. So if you want to grow in this field,

00:10:16.649 --> 00:10:20.549
You need to learn how to explain that work. That

00:10:20.549 --> 00:10:24.710
really amazing work that you did. But if it's

00:10:24.710 --> 00:10:28.210
not out there, it's just something. It's just

00:10:28.210 --> 00:10:31.250
a piece of code. And code to story is just one

00:10:31.250 --> 00:10:34.450
small step towards that. It's not here to replace

00:10:34.450 --> 00:10:41.610
your voice. It's here to help you find it. Let's

00:10:41.610 --> 00:10:44.230
look at how to use it. It's like a three -step

00:10:44.230 --> 00:10:48.639
framework. right let's get practical here's how

00:10:48.639 --> 00:10:53.960
you can start using code to story today step

00:10:53.960 --> 00:10:57.200
one like just pick a python file something from

00:10:57.200 --> 00:11:02.519
your github your site project even your job search

00:11:02.519 --> 00:11:05.759
folder don't even overthink it just upload it

00:11:05.759 --> 00:11:10.240
to the app no need for comments context or polish

00:11:10.240 --> 00:11:14.039
you don't need any polished code for this just

00:11:14.039 --> 00:11:19.659
the raw dot py file or dot txt file so just drop

00:11:19.659 --> 00:11:25.759
python file text file whatever and that'll be

00:11:25.759 --> 00:11:28.220
step two so step one pick up python file step

00:11:28.220 --> 00:11:31.500
two upload it to the app step three read the

00:11:31.500 --> 00:11:35.059
result and decide where to use it post it on

00:11:35.059 --> 00:11:39.620
linkedin for that matter right paste it into

00:11:39.620 --> 00:11:43.440
your code readme you github readme that could

00:11:43.440 --> 00:11:48.860
have this use it as a blog outline bring it to

00:11:48.860 --> 00:11:52.519
an interview share it internally with your team

00:11:52.519 --> 00:11:56.159
and if you want to let it be the first draft

00:11:56.159 --> 00:12:02.019
of your explanation you'll find that your code

00:12:02.019 --> 00:12:06.639
has more meaning than you have ever thought it

00:12:06.639 --> 00:12:15.559
would have right so I built this app for myself,

00:12:15.720 --> 00:12:20.460
but I'm sharing it because I know I'm not the

00:12:20.460 --> 00:12:22.600
only one who's struggled to explain their work.

00:12:23.519 --> 00:12:26.340
If you've ever written something meaningful during

00:12:26.340 --> 00:12:29.480
a hard season, if you've ever built a tool that

00:12:29.480 --> 00:12:33.740
no one noticed, if you've ever felt like your

00:12:33.740 --> 00:12:37.059
work should have spoken louder or for itself,

00:12:37.299 --> 00:12:41.100
this is your second chance. Upload the code,

00:12:41.279 --> 00:12:45.370
read the story and... Let the world hear what

00:12:45.370 --> 00:12:48.490
you've been trying to say. You're not just good

00:12:48.490 --> 00:12:51.389
with numbers. You're not just a dashboard guy.

00:12:53.429 --> 00:12:57.169
You are a builder, a thinker, and a storyteller.

00:12:57.590 --> 00:13:02.210
And now, you've got a tool that helps you show

00:13:02.210 --> 00:13:06.809
the world exactly that. I'm Mukundan Sankar.

00:13:07.250 --> 00:13:11.289
This is Data and AI with Mukundan. And this...

00:13:12.940 --> 00:13:15.299
Is your voice finally heard?
