WEBVTT

00:00.000 --> 00:02.700
Tell me a story you've never told publicly.

00:03.680 --> 00:08.500
About the time a doctor asked you for a feature and you didn't build it.

00:09.080 --> 00:10.900
That sounds like an accusation.

00:11.380 --> 00:12.480
It's a bit of one.

00:13.600 --> 00:15.920
Hello, I'm Tomasz Szuster.

00:16.500 --> 00:18.040
I built the mojApteczka app.

00:18.800 --> 00:21.040
And this story is about how, sometimes,

00:21.560 --> 00:24.220
the most honest answer to a specialist's request

00:24.220 --> 00:27.500
is to build something other than what they asked for.

00:27.940 --> 00:29.400
And then explain why.

00:30.000 --> 00:31.360
Start at the beginning, then.

00:31.920 --> 00:32.960
What did they say?

00:33.780 --> 00:35.480
The doctor suggested something simple,

00:35.960 --> 00:37.420
that the owner of the medicine cabinet

00:37.420 --> 00:39.960
should be able to flag a medicine they're allergic to.

00:40.600 --> 00:43.320
One field, you tick it, and that's that.

00:43.860 --> 00:45.860
And that sounds sensible.

00:46.540 --> 00:47.740
It sounds sensible,

00:48.140 --> 00:51.340
and that's exactly how I'd have built it if I hadn't stopped for a day.

00:51.840 --> 00:53.280
What happened in that day?

00:53.280 --> 00:58.080
I asked myself what happens when a different box turns up in the cabinet.

00:58.920 --> 00:59.220
Meaning?

01:00.000 --> 01:02.680
You flag the allergy on one particular pack.

01:03.360 --> 01:05.740
A month later, you buy a medicine from a different company.

01:06.260 --> 01:07.900
Different name, different box.

01:08.540 --> 01:10.380
Inside, the same substance.

01:10.960 --> 01:12.500
And the app says nothing.

01:13.120 --> 01:13.720
Says nothing.

01:14.260 --> 01:16.180
Because the flag was sitting on that box,

01:16.500 --> 01:17.340
not on the substance.

01:17.960 --> 01:21.540
And that's precisely the case where the warning was needed most.

01:21.540 --> 01:24.320
So the feature would exist.

01:25.000 --> 01:27.200
It'd look good on a list of features.

01:27.280 --> 01:31.340
And it'd stay quiet at exactly the moment it ought to speak up.

01:32.020 --> 01:33.920
That's worse than not having it at all,

01:34.380 --> 01:37.360
because it gives you a false sense that somebody's keeping an eye out.

01:37.360 --> 01:39.500
So what did you build instead?

01:39.500 --> 01:43.820
I moved the allergy off the pack and onto the active substance.

01:44.100 --> 01:47.940
And I added a second dimension that wasn't in the original request at all.

01:48.520 --> 01:49.120
The person.

01:49.680 --> 01:50.360
The person?

01:50.860 --> 01:54.340
Because a medicine cabinet at home doesn't belong to one person.

01:54.340 --> 01:57.900
An allergy belongs to a particular human being.

01:58.560 --> 02:01.220
You, me, a child, grandma.

02:02.260 --> 02:04.620
The warning has to know who it's about.

02:05.440 --> 02:06.800
Otherwise it's just noise.

02:07.280 --> 02:09.620
That seems obvious when you put it like that.

02:10.260 --> 02:12.020
It seems obvious afterwards.

02:12.940 --> 02:14.360
It wasn't in the request,

02:14.700 --> 02:18.100
because the doctor was thinking about the patient sitting across the desk from them.

02:18.720 --> 02:21.960
I'm dealing with a drawer that five people use.

02:21.960 --> 02:29.060
By the way, everything we're talking about here really is a feature in the mojApteczka app.

02:29.680 --> 02:33.060
This isn't an advert, just context to be clear.

02:34.160 --> 02:34.600
Right.

02:35.060 --> 02:37.940
But now I want to hear the other side,

02:38.440 --> 02:40.940
because you sound as though you've solved it.

02:41.680 --> 02:43.140
I haven't solved the whole problem.

02:43.980 --> 02:47.160
And that's actually the more important half of this episode.

02:47.660 --> 02:48.480
Go on.

02:48.480 --> 02:52.100
There are three things this feature doesn't do,

02:52.580 --> 02:55.140
and all three are written down in the design documentation

02:55.140 --> 02:58.680
as deliberate limitations of the current version.

02:59.480 --> 03:02.400
As boundaries, you have to say out loud.

03:03.440 --> 03:04.120
The first?

03:04.960 --> 03:07.000
There's no cross-reactivity.

03:07.880 --> 03:08.660
In plain terms,

03:09.120 --> 03:11.380
if you enter an allergy to one substance,

03:11.820 --> 03:16.260
the app will not automatically warn you about another related one,

03:16.260 --> 03:19.700
unless you enter that one separately as well.

03:20.520 --> 03:21.060
Hang on.

03:21.500 --> 03:23.140
That's fairly serious.

03:23.920 --> 03:24.800
It is serious.

03:25.320 --> 03:27.360
Which is why I'm saying it on a podcast,

03:28.080 --> 03:29.800
and not only in the documentation.

03:30.980 --> 03:33.080
Drug classes are clinical knowledge,

03:33.720 --> 03:37.460
and I'm not going to build that on my own out of a database of names.

03:38.460 --> 03:42.020
This is exactly the point where a conversation with the pharmacist

03:42.020 --> 03:43.580
has no substitute.

03:43.580 --> 03:45.660
The second thing?

03:46.500 --> 03:47.940
The substance matching is

03:47.940 --> 03:48.760
heuristic,

03:49.480 --> 03:50.260
which means that,

03:50.500 --> 03:51.660
with an unusual spelling,

03:52.100 --> 03:53.780
the warning might not appear at all,

03:54.160 --> 03:57.180
and sometimes it might appear when it needn't.

03:57.840 --> 04:00.340
So it can both miss things

04:00.340 --> 04:02.180
and give you a fright.

04:03.040 --> 04:03.400
Both.

04:04.200 --> 04:04.740
And again,

04:05.180 --> 04:06.440
I'd rather say so

04:06.440 --> 04:09.260
than pretend to a precision I haven't got.

04:09.860 --> 04:10.920
And the third?

04:10.920 --> 04:13.980
The third is the most contentious.

04:14.840 --> 04:16.000
The app warns,

04:16.360 --> 04:17.740
but it never blocks.

04:18.640 --> 04:19.880
It doesn't block.

04:20.720 --> 04:22.440
So I can see the warning

04:22.440 --> 04:25.080
and still hand that medicine out?

04:25.640 --> 04:26.500
You can.

04:26.940 --> 04:28.580
It's deliberately built that way.

04:28.700 --> 04:29.380
Explain that,

04:29.460 --> 04:32.560
because at first glance it sounds irresponsible.

04:33.120 --> 04:35.980
Because I don't know what situation you're in.

04:35.980 --> 04:38.540
Maybe the doctor decided that deliberately.

04:39.320 --> 04:41.120
Maybe the entry is out of date.

04:41.660 --> 04:43.960
Maybe it was a slip when it was typed in.

04:44.920 --> 04:46.060
An app that blocks

04:46.060 --> 04:48.940
is making a medical decision on a person's behalf,

04:49.220 --> 04:51.880
and that's not something it's allowed to do.

04:53.140 --> 04:54.940
So blocking would look safer,

04:55.380 --> 04:57.100
but it'd be crossing a line.

04:57.100 --> 04:58.100
Exactly.

04:58.760 --> 04:59.560
A warning says,

04:59.860 --> 05:00.500
check this.

05:01.080 --> 05:01.980
A block says,

05:02.300 --> 05:02.980
you mustn't.

05:03.680 --> 05:05.600
Only one of those is mine to say.

05:06.800 --> 05:09.180
You said those are documented limitations,

05:09.880 --> 05:12.300
but was there a bug that actually happened?

05:13.260 --> 05:13.860
There was,

05:14.080 --> 05:15.760
and it's an uncomfortable one.

05:16.560 --> 05:18.480
With a feature that works per person,

05:18.840 --> 05:20.760
the most dangerous class of bug

05:20.760 --> 05:23.620
is one person's data leaking onto another.

05:23.620 --> 05:24.580
Meaning,

05:24.900 --> 05:27.640
my allergy shows up against Leon's medicine.

05:28.300 --> 05:29.060
Exactly that.

05:29.780 --> 05:30.840
And it isn't theoretical.

05:31.640 --> 05:32.780
It's the class of mistake

05:32.780 --> 05:35.180
that had to be closed off with tests of its own.

05:35.800 --> 05:37.460
Because that kind of bug is sly.

05:38.200 --> 05:39.240
The app still works.

05:39.640 --> 05:40.820
It still shows you something.

05:41.380 --> 05:43.300
It just attaches it to the wrong person.

05:44.000 --> 05:45.200
And nobody notices,

05:45.840 --> 05:48.000
because the warning looks perfectly normal.

05:48.720 --> 05:49.660
Completely normal.

05:50.360 --> 05:51.080
Which is why,

05:51.240 --> 05:52.160
with family features,

05:52.160 --> 05:53.860
what interests me least

05:53.860 --> 05:55.220
is whether something displays.

05:56.060 --> 05:57.000
What interests me

05:57.000 --> 05:58.080
is whether it displays

05:58.080 --> 05:59.500
to the right person.

06:00.580 --> 06:01.440
Now the question

06:01.440 --> 06:03.480
we probably should have started with.

06:04.180 --> 06:05.940
How often do medicine mix-ups

06:05.940 --> 06:07.340
happen in Polish homes?

06:08.280 --> 06:08.900
I don't know.

06:09.600 --> 06:10.340
What do you mean,

06:10.580 --> 06:11.340
you don't know?

06:11.760 --> 06:14.040
I don't know of a reliable Polish figure.

06:14.660 --> 06:16.020
And I want to be precise here

06:16.020 --> 06:17.880
because these are two different things.

06:18.620 --> 06:19.260
Which two?

06:19.260 --> 06:22.780
The first is an adverse reaction to a medicine.

06:23.440 --> 06:24.960
The medicine did somebody harm.

06:25.600 --> 06:26.940
There's an official route for that.

06:27.440 --> 06:28.000
A patient,

06:28.340 --> 06:28.900
a carer,

06:29.020 --> 06:30.680
or a pharmacist can report it.

06:31.280 --> 06:31.940
That works.

06:32.300 --> 06:33.580
And it's good that it works.

06:34.520 --> 06:35.100
And the second?

06:35.340 --> 06:37.280
The second is a plain mix-up.

06:37.800 --> 06:38.840
Taking the wrong medicine.

06:39.600 --> 06:40.280
A double dose,

06:40.480 --> 06:42.320
because two people both gave it.

06:43.300 --> 06:44.300
Giving a child

06:44.300 --> 06:45.820
something meant for adults.

06:45.820 --> 06:48.080
Here the medicine did exactly

06:48.080 --> 06:49.100
what it was supposed to.

06:49.680 --> 06:51.280
It just went to the wrong place.

06:52.580 --> 06:54.000
And you couldn't find

06:54.000 --> 06:55.140
that collected anywhere?

06:56.100 --> 06:57.220
I haven't found a public,

06:57.520 --> 06:58.540
systematic picture

06:58.540 --> 06:59.320
of what goes on

06:59.320 --> 07:00.240
at the drawer at home.

07:00.900 --> 07:01.680
I could be wrong,

07:02.000 --> 07:02.600
and I'd be glad

07:02.600 --> 07:03.500
if somebody showed me

07:03.500 --> 07:05.000
that such a picture exists.

07:05.840 --> 07:07.780
So you haven't got a number?

07:08.580 --> 07:09.200
I haven't.

07:09.740 --> 07:10.820
And I could do the thing

07:10.820 --> 07:12.080
half this industry does,

07:12.380 --> 07:13.180
take a statistic

07:13.180 --> 07:14.120
from another country,

07:14.120 --> 07:15.900
multiply it by the population,

07:16.180 --> 07:17.580
and present it as a Polish one.

07:18.360 --> 07:19.540
It'd look very convincing

07:19.540 --> 07:20.280
on a slide.

07:21.080 --> 07:21.480
But?

07:22.200 --> 07:23.800
But it'd be made up.

07:24.380 --> 07:25.460
A different health system,

07:25.720 --> 07:26.700
a different way of counting,

07:27.260 --> 07:27.960
different habits.

07:28.720 --> 07:30.500
It doesn't scale by head count.

07:31.940 --> 07:33.200
So you're building

07:33.200 --> 07:34.260
a safety feature,

07:34.520 --> 07:35.600
and you don't know

07:35.600 --> 07:36.780
how much of the problem

07:36.780 --> 07:37.460
you're solving.

07:38.140 --> 07:38.940
I don't.

07:39.580 --> 07:40.200
And honestly,

07:40.660 --> 07:42.340
that's the most frustrating thing

07:42.340 --> 07:43.100
about this job.

07:43.100 --> 07:45.240
I don't know how many times

07:45.240 --> 07:46.180
a warning like that

07:46.180 --> 07:47.740
has genuinely helped somebody,

07:48.240 --> 07:49.020
because the help

07:49.020 --> 07:50.340
consists of something

07:50.340 --> 07:51.720
not happening.

07:52.380 --> 07:53.820
And I can't see that

07:53.820 --> 07:54.920
measured anywhere.

07:56.220 --> 07:56.460
So,

07:56.660 --> 07:58.120
what do you do about it?

07:58.560 --> 07:59.420
You can't set up

07:59.420 --> 08:00.660
a register on your own.

08:01.340 --> 08:02.200
I can't,

08:02.480 --> 08:03.220
and I shouldn't.

08:03.780 --> 08:05.360
But I can say out loud

08:05.360 --> 08:06.220
that the number

08:06.220 --> 08:06.980
is missing.

08:07.480 --> 08:08.660
Because as long as there's

08:08.660 --> 08:09.500
no public,

08:09.780 --> 08:10.800
systematic measurement,

08:10.800 --> 08:12.620
it's easy to treat this

08:12.620 --> 08:14.420
as a problem nobody can see.

08:15.340 --> 08:17.020
And things nobody can see

08:17.020 --> 08:18.840
rarely get programs

08:18.840 --> 08:19.540
and money.

08:20.580 --> 08:21.920
And that's the ask.

08:22.480 --> 08:24.120
That's the whole ask.

08:24.780 --> 08:25.100
Not,

08:25.540 --> 08:26.480
buy my app.

08:27.080 --> 08:27.380
Just,

08:27.940 --> 08:28.980
let's count it.

08:29.700 --> 08:30.100
Anyone.

08:30.720 --> 08:32.040
If only so it turns out

08:32.040 --> 08:33.020
the problem is smaller

08:33.020 --> 08:33.840
than I think.

08:33.840 --> 08:36.080
Would you be alright

08:36.080 --> 08:36.960
with that result?

08:37.780 --> 08:38.660
I'd be alright

08:38.660 --> 08:39.620
with any result

08:39.620 --> 08:40.380
that's true.

08:41.180 --> 08:41.940
I'm not attached

08:41.940 --> 08:43.220
to the problem being big.

08:43.680 --> 08:44.600
I'm attached

08:44.600 --> 08:45.840
to it being known.

08:46.240 --> 08:47.200
I'll add mine,

08:47.620 --> 08:49.560
in ordinary human terms.

08:50.660 --> 08:51.540
In our house,

08:51.760 --> 08:52.700
the medicine cabinet

08:52.700 --> 08:53.960
isn't one shelf

08:53.960 --> 08:55.560
belonging to one person.

08:56.420 --> 08:57.300
Leon's nine,

08:57.840 --> 08:58.840
Basha's five,

08:59.140 --> 08:59.900
and those are

08:59.900 --> 09:01.500
completely different medicines.

09:02.340 --> 09:03.640
And then there's my mum,

09:03.640 --> 09:05.420
who sometimes stays over.

09:06.160 --> 09:06.880
And that's the drawer

09:06.880 --> 09:07.760
I was talking about.

09:08.080 --> 09:09.060
Not the patient,

09:09.620 --> 09:10.620
but four people

09:10.620 --> 09:11.760
and one box

09:11.760 --> 09:12.320
for the lot.

09:13.040 --> 09:13.780
Which is why,

09:14.120 --> 09:16.000
if I've got any doubt at all,

09:16.340 --> 09:17.300
I take the pack

09:17.300 --> 09:18.440
and go to the chemists.

09:18.960 --> 09:20.340
And that's the right answer.

09:21.080 --> 09:21.860
The app's job

09:21.860 --> 09:23.040
is to remind you

09:23.040 --> 09:23.820
there's something

09:23.820 --> 09:25.000
worth asking about.

09:25.400 --> 09:26.120
The answer

09:26.120 --> 09:27.760
belongs to the pharmacist.

09:29.140 --> 09:30.680
If you'd like to give it a go,

09:31.100 --> 09:31.940
you'll find the link

09:31.940 --> 09:33.440
to the mojApteczka app

09:33.440 --> 09:34.780
in the episode description.

09:35.700 --> 09:36.560
The app is free

09:36.560 --> 09:38.220
and your medicine cabinet

09:38.220 --> 09:39.860
is there offline too.

09:40.960 --> 09:42.720
And if you enjoyed this episode,

09:43.260 --> 09:44.360
share it with someone

09:44.360 --> 09:45.640
who sorts out the medicines

09:45.640 --> 09:47.100
for the whole family.

09:48.500 --> 09:49.460
One more thing

09:49.460 --> 09:50.140
before we go.

09:50.960 --> 09:51.540
This podcast

09:51.540 --> 09:52.940
is made with the help

09:52.940 --> 09:54.500
of artificial intelligence.

09:54.500 --> 09:56.980
I wrote the dialogue myself,

09:57.420 --> 09:58.880
but the voices you're hearing

09:58.880 --> 09:59.920
aren't ours.

10:00.500 --> 10:01.920
They're AI-generated,

10:02.240 --> 10:03.100
synthetic voices.

10:04.100 --> 10:05.180
We're telling you this

10:05.180 --> 10:05.900
straight out

10:05.900 --> 10:07.200
because we think

10:07.200 --> 10:08.140
it should be the standard

10:08.140 --> 10:09.320
for any podcast

10:09.320 --> 10:10.140
made this way.

10:11.120 --> 10:11.840
Full details

10:11.840 --> 10:12.840
are in the show notes

10:12.840 --> 10:15.320
and in every episode description.

10:15.880 --> 10:16.980
Until next time.

10:16.980 --> 10:19.060
Until next time.

