Episode 21 — The doctor asked for one thing. I built something else
S01:E21

Episode 21 — The doctor asked for one thing. I built something else

Episode description

A doctor suggested something simple: that the owner of the medicine cabinet should be able to flag a medicine they’re allergic to. One field, you tick it, and that’s that. It sounds sensible — and that is exactly how it would have been built, were it not for one question asked a day later: what happens when a DIFFERENT box turns up in the cabinet?

Because an allergy is to the active substance, not to one brand’s packaging. A flag placed on a single pack would stay silent when, a month later, you buy a medicine from another company with the same substance inside — precisely when the warning was needed most. That’s worse than not having the feature, because it gives you a false sense that somebody is keeping an eye out.

This episode is about how a specialist’s request was translated into something other than what it sounded like — and about what the feature still does NOT do.

What we cover:

  • From the pack to the substance, and then to the person. A medicine cabinet at home doesn’t belong to one person. A warning has to know who it’s about, otherwise it’s noise. That dimension wasn’t in the original request at all — because a doctor is thinking about the patient across the desk, not about a drawer that five people use.
  • Three deliberate limitations of the current version, said out loud:
    • No cross-reactivity. If you enter an allergy to one substance, the app won’t automatically warn you about another, related one — unless you enter that one separately as well. Drug classes are clinical knowledge, and here a conversation with the pharmacist has no substitute.
    • The matching is heuristic. With an unusual spelling the warning might not appear, and sometimes it might appear when it needn’t.
    • Warn, never block. You can see the warning and hand the medicine out anyway. That’s deliberate: an app that blocks is making a medical decision on a person’s behalf. A warning says “check this”. A block says “you mustn’t”. Only one of those is an app’s to say.
  • A bug that actually happened. With a feature that works per person, the most dangerous class of mistake is leakage between people — one person’s allergy shown against another person’s medicine. Sly, because the app still looks as though it’s working.
  • An adverse reaction is not the same as a medication mix-up. There’s an official route for reporting adverse reactions, and it works. But a mix-up — taking the wrong medicine, a double dose because two people both gave it — is a different category. Here the medicine did exactly what it was supposed to; it just went to the wrong place.
  • What couldn’t be found. A public, systematic picture of what goes on at the drawer at home. You could take a statistic from another country and multiply it by the population — it would look convincing on a slide and it would be made up. A different health system, a different way of counting, different habits.

The ask in this episode isn’t “download the app”. It’s: let’s count it. Anyone. If only so it turns out the problem is smaller than it seems.

What the app does NOT do: it doesn’t diagnose, it doesn’t set doses, it doesn’t judge whether a medicine is right for you, and it doesn’t tell you to take or skip anything. Its job is to make sure you know what you’ve got at home and what to ask about. The answer belongs to the pharmacist.

Links:

  • mojApteczka: mojapteczka.pl — the app is free, and your medicine cabinet is there offline too
  • In this episode: allergies per person and per active substance, warnings on medicines, the report for your doctor
  • Contact: kontakt@mojapteczka.pl

About AI in this episode. The dialogue was written by Tomasz Szuster. The voices you hear are AI-generated synthetic voices — not recordings of the hosts. Full details are in the show description and in the episode outro. We say so plainly, because we think it should be the standard for any podcast made this way.

Download transcript (.vtt)
0:00

Tell me a story you've never told publicly.

0:03

About the time a doctor asked you for a feature and you didn't build it.

0:09

That sounds like an accusation.

0:11

It's a bit of one.

0:13

Hello, I'm Tomasz Szuster.

0:16

I built the mojApteczka app.

0:18

And this story is about how, sometimes,

0:21

the most honest answer to a specialist's request

0:24

is to build something other than what they asked for.

0:27

And then explain why.

0:30

Start at the beginning, then.

0:31

What did they say?

0:33

The doctor suggested something simple,

0:35

that the owner of the medicine cabinet

0:37

should be able to flag a medicine they're allergic to.

0:40

One field, you tick it, and that's that.

0:43

And that sounds sensible.

0:46

It sounds sensible,

0:48

and that's exactly how I'd have built it if I hadn't stopped for a day.

0:51

What happened in that day?

0:53

I asked myself what happens when a different box turns up in the cabinet.

0:58

Meaning?

1:00

You flag the allergy on one particular pack.

1:03

A month later, you buy a medicine from a different company.

1:06

Different name, different box.

1:08

Inside, the same substance.

1:10

And the app says nothing.

1:13

Says nothing.

1:14

Because the flag was sitting on that box,

1:16

not on the substance.

1:17

And that's precisely the case where the warning was needed most.

1:21

So the feature would exist.

1:25

It'd look good on a list of features.

1:27

And it'd stay quiet at exactly the moment it ought to speak up.

1:32

That's worse than not having it at all,

1:34

because it gives you a false sense that somebody's keeping an eye out.

1:37

So what did you build instead?

1:39

I moved the allergy off the pack and onto the active substance.

1:44

And I added a second dimension that wasn't in the original request at all.

1:48

The person.

1:49

The person?

1:50

Because a medicine cabinet at home doesn't belong to one person.

1:54

An allergy belongs to a particular human being.

1:58

You, me, a child, grandma.

2:02

The warning has to know who it's about.

2:05

Otherwise it's just noise.

2:07

That seems obvious when you put it like that.

2:10

It seems obvious afterwards.

2:12

It wasn't in the request,

2:14

because the doctor was thinking about the patient sitting across the desk from them.

2:18

I'm dealing with a drawer that five people use.

2:21

By the way, everything we're talking about here really is a feature in the mojApteczka app.

2:29

This isn't an advert, just context to be clear.

2:34

Right.

2:35

But now I want to hear the other side,

2:38

because you sound as though you've solved it.

2:41

I haven't solved the whole problem.

2:43

And that's actually the more important half of this episode.

2:47

Go on.

2:48

There are three things this feature doesn't do,

2:52

and all three are written down in the design documentation

2:55

as deliberate limitations of the current version.

2:59

As boundaries, you have to say out loud.

3:03

The first?

3:04

There's no cross-reactivity.

3:07

In plain terms,

3:09

if you enter an allergy to one substance,

3:11

the app will not automatically warn you about another related one,

3:16

unless you enter that one separately as well.

3:20

Hang on.

3:21

That's fairly serious.

3:23

It is serious.

3:25

Which is why I'm saying it on a podcast,

3:28

and not only in the documentation.

3:30

Drug classes are clinical knowledge,

3:33

and I'm not going to build that on my own out of a database of names.

3:38

This is exactly the point where a conversation with the pharmacist

3:42

has no substitute.

3:43

The second thing?

3:46

The substance matching is

3:47

heuristic,

3:49

which means that,

3:50

with an unusual spelling,

3:52

the warning might not appear at all,

3:54

and sometimes it might appear when it needn't.

3:57

So it can both miss things

4:00

and give you a fright.

4:03

Both.

4:04

And again,

4:05

I'd rather say so

4:06

than pretend to a precision I haven't got.

4:09

And the third?

4:10

The third is the most contentious.

4:14

The app warns,

4:16

but it never blocks.

4:18

It doesn't block.

4:20

So I can see the warning

4:22

and still hand that medicine out?

4:25

You can.

4:26

It's deliberately built that way.

4:28

Explain that,

4:29

because at first glance it sounds irresponsible.

4:33

Because I don't know what situation you're in.

4:35

Maybe the doctor decided that deliberately.

4:39

Maybe the entry is out of date.

4:41

Maybe it was a slip when it was typed in.

4:44

An app that blocks

4:46

is making a medical decision on a person's behalf,

4:49

and that's not something it's allowed to do.

4:53

So blocking would look safer,

4:55

but it'd be crossing a line.

4:57

Exactly.

4:58

A warning says,

4:59

check this.

5:01

A block says,

5:02

you mustn't.

5:03

Only one of those is mine to say.

5:06

You said those are documented limitations,

5:09

but was there a bug that actually happened?

5:13

There was,

5:14

and it's an uncomfortable one.

5:16

With a feature that works per person,

5:18

the most dangerous class of bug

5:20

is one person's data leaking onto another.

5:23

Meaning,

5:24

my allergy shows up against Leon's medicine.

5:28

Exactly that.

5:29

And it isn't theoretical.

5:31

It's the class of mistake

5:32

that had to be closed off with tests of its own.

5:35

Because that kind of bug is sly.

5:38

The app still works.

5:39

It still shows you something.

5:41

It just attaches it to the wrong person.

5:44

And nobody notices,

5:45

because the warning looks perfectly normal.

5:48

Completely normal.

5:50

Which is why,

5:51

with family features,

5:52

what interests me least

5:53

is whether something displays.

5:56

What interests me

5:57

is whether it displays

5:58

to the right person.

6:00

Now the question

6:01

we probably should have started with.

6:04

How often do medicine mix-ups

6:05

happen in Polish homes?

6:08

I don't know.

6:09

What do you mean,

6:10

you don't know?

6:11

I don't know of a reliable Polish figure.

6:14

And I want to be precise here

6:16

because these are two different things.

6:18

Which two?

6:19

The first is an adverse reaction to a medicine.

6:23

The medicine did somebody harm.

6:25

There's an official route for that.

6:27

A patient,

6:28

a carer,

6:29

or a pharmacist can report it.

6:31

That works.

6:32

And it's good that it works.

6:34

And the second?

6:35

The second is a plain mix-up.

6:37

Taking the wrong medicine.

6:39

A double dose,

6:40

because two people both gave it.

6:43

Giving a child

6:44

something meant for adults.

6:45

Here the medicine did exactly

6:48

what it was supposed to.

6:49

It just went to the wrong place.

6:52

And you couldn't find

6:54

that collected anywhere?

6:56

I haven't found a public,

6:57

systematic picture

6:58

of what goes on

6:59

at the drawer at home.

7:00

I could be wrong,

7:02

and I'd be glad

7:02

if somebody showed me

7:03

that such a picture exists.

7:05

So you haven't got a number?

7:08

I haven't.

7:09

And I could do the thing

7:10

half this industry does,

7:12

take a statistic

7:13

from another country,

7:14

multiply it by the population,

7:16

and present it as a Polish one.

7:18

It'd look very convincing

7:19

on a slide.

7:21

But?

7:22

But it'd be made up.

7:24

A different health system,

7:25

a different way of counting,

7:27

different habits.

7:28

It doesn't scale by head count.

7:31

So you're building

7:33

a safety feature,

7:34

and you don't know

7:35

how much of the problem

7:36

you're solving.

7:38

I don't.

7:39

And honestly,

7:40

that's the most frustrating thing

7:42

about this job.

7:43

I don't know how many times

7:45

a warning like that

7:46

has genuinely helped somebody,

7:48

because the help

7:49

consists of something

7:50

not happening.

7:52

And I can't see that

7:53

measured anywhere.

7:56

So,

7:56

what do you do about it?

7:58

You can't set up

7:59

a register on your own.

8:01

I can't,

8:02

and I shouldn't.

8:03

But I can say out loud

8:05

that the number

8:06

is missing.

8:07

Because as long as there's

8:08

no public,

8:09

systematic measurement,

8:10

it's easy to treat this

8:12

as a problem nobody can see.

8:15

And things nobody can see

8:17

rarely get programs

8:18

and money.

8:20

And that's the ask.

8:22

That's the whole ask.

8:24

Not,

8:25

buy my app.

8:27

Just,

8:27

let's count it.

8:29

Anyone.

8:30

If only so it turns out

8:32

the problem is smaller

8:33

than I think.

8:33

Would you be alright

8:36

with that result?

8:37

I'd be alright

8:38

with any result

8:39

that's true.

8:41

I'm not attached

8:41

to the problem being big.

8:43

I'm attached

8:44

to it being known.

8:46

I'll add mine,

8:47

in ordinary human terms.

8:50

In our house,

8:51

the medicine cabinet

8:52

isn't one shelf

8:53

belonging to one person.

8:56

Leon's nine,

8:57

Basha's five,

8:59

and those are

8:59

completely different medicines.

9:02

And then there's my mum,

9:03

who sometimes stays over.

9:06

And that's the drawer

9:06

I was talking about.

9:08

Not the patient,

9:09

but four people

9:10

and one box

9:11

for the lot.

9:13

Which is why,

9:14

if I've got any doubt at all,

9:16

I take the pack

9:17

and go to the chemists.

9:18

And that's the right answer.

9:21

The app's job

9:21

is to remind you

9:23

there's something

9:23

worth asking about.

9:25

The answer

9:26

belongs to the pharmacist.

9:29

If you'd like to give it a go,

9:31

you'll find the link

9:31

to the mojApteczka app

9:33

in the episode description.

9:35

The app is free

9:36

and your medicine cabinet

9:38

is there offline too.

9:40

And if you enjoyed this episode,

9:43

share it with someone

9:44

who sorts out the medicines

9:45

for the whole family.

9:48

One more thing

9:49

before we go.

9:50

This podcast

9:51

is made with the help

9:52

of artificial intelligence.

9:54

I wrote the dialogue myself,

9:57

but the voices you're hearing

9:58

aren't ours.

10:00

They're AI-generated,

10:02

synthetic voices.

10:04

We're telling you this

10:05

straight out

10:05

because we think

10:07

it should be the standard

10:08

for any podcast

10:09

made this way.

10:11

Full details

10:11

are in the show notes

10:12

and in every episode description.

10:15

Until next time.

10:16

Until next time.