Read the transcript
Jeroen Leenarts: Hi, and welcome
to another special disinfo
Podcast. I'm sitting here with
Sean Donnelly, originally from
Manchester, but he now lives in
London. And the interesting bits
about Sean is that he has had a
formal education. And then he
ventured out into the job
market, but he's also doing some
things on the side. So Shawn,
how are you doing today?
Shaun Donnelly: I'm really good.
Thanks, Howie.
Jeroen Leenarts: So how did you
end up on my podcast? Actually,
Shaun Donnelly: I think I saw a
post on record to Sunday on
Mastodon, and you were looking
for guests, I believe. And I
think I replied, and I was like,
Well, I'm, I can't remember
exactly why I started with
something self deprecating. And
then you said like, no, it's
fine. You can come on. So
Jeroen Leenarts: it is it is
interesting, because I always
get into the situation that
people they have an interest in
being on the podcast, but then
it is like, Yeah, but I'm just
like an average person. I just
do my normal thing. And it's not
exciting to anyone. But I think
it's it's the opposite. Because
people each have their own
stories, their own experience.
And I think whatever you do, you
can always learn from it.
Because yes, we have two big
names. You know that Tim Condon
and today that is from the area
that you grew up in, but that
they started somewhere as well.
Right?
Shaun Donnelly: Yeah,
absolutely. This is actually the
first time I've ever been on a
podcast. So yeah, I'm quite
excited.
Jeroen Leenarts: Dads. It's
easy. It's just you talking to
microphone and don't? Yeah, we
can always add it afterwards.
Right. Yeah. So, Manchester, and
what education University of
Manchester? You told me
Shaun Donnelly: Yeah, so I went
to University of Manchester. I
actually started out studying
chemistry. It turned out I was
very, very bad at studying
chemistry, and I failed my first
year. And then I did the resets,
in the summer holidays, also
failed those. And then luckily,
the School of Computer Science
volunteered to take me
Jeroen Leenarts: it doesn't
sound like you were like, into
computers from a young age then
Shaun Donnelly: I kind of was I
think the thing was like, when I
was in school, there was no like
computer science available then.
So we did it. But it was like
Excel and PowerPoint and stuff.
So the main reason I ended up
doing chemistry University was
just because I liked it in
school. And then in hindsight,
that was a mistake. And I really
like I've always liked
computers. I'm very happy that I
ended up studying computer
science, but I wish I'd have
done that in the beginning.
Jeroen Leenarts: Yeah, during my
secondary education, I always
liked the chemistry lab and
physics lab. Yeah, because you
could, you know, you could burn
stuff and sometimes even blow
stuff up, which was great. One
time, we actually had a teacher
that destroyed this, this
chemistry cabinet that's in the
back of the room, you know, for
hazardous experiments. He
basically burned a hole in the
bottom of the thing a while, so
I don't know what he did. But it
ended up with liquid metal at
the bottom. So that wasn't good.
Gosh. So um, but University of
Manchester, you enrolled into
computer science. But what was
your prior exposure to computers
than before that computer games
or maybe some hobby programming
or what it was?
Shaun Donnelly: Like little
bits, nothing, nothing major,
really, like I wouldn't say
anything as much as programming.
I think I played around with
like, front page and stuff like
that when I was around like 11.
And I think Visual Basic, and
that kind of thing. But nothing
really. I was always like, into
computers. And I was making
websites in on like Microsoft
published in 97. But you know,
it was all just drag and drop.
There was no programming
involved.
Jeroen Leenarts: So no, no right
clicking on webpages and view
source at that time. No,
Shaun Donnelly: I was very
curious as a child, to be
honest. I mean, I enjoyed
playing on the PlayStation. But
that was sort of the extent of
it.
Jeroen Leenarts: Yeah, well,
yeah. At some point, you do get
curious how those things are
created. Yeah. And then you got
into a computer science program
and did really like kick off
from the start, like some sort
of age that you were feeling
that you were scratching the
back then or what was it for
you?
Shaun Donnelly: Yeah, I really
liked it's kind of like what
you've described, like just kind
of seeing the plumbing of how
everything works. The first
language we deal with Java, and
oh, boy. It's a nice starter
language, like it's fairly easy
to get going with. And then
yeah, like, you know, the first
few programs you made were very
basic. But then, yeah, I really
enjoyed that. And then I just
went from there, basically,
Jeroen Leenarts: I can imagine
because I always tend to think
that swift as the language is
really making the same motions
in the direction that is
developing as, as Java back in
the day, because I'm one of
those people that I think I got
started with Java, one point
something that's still still web
browser. Applets was still a
thing. Yeah. So that was like,
kind of traumatizing. But
anyway, so you graduated in
2013? If I'm correct, not
1102 1011. Yeah, and or got your
start at a at a job right out of
university. So what was the deal
there? Well, what did you What
do you what do you start with
your new career?
Shaun Donnelly: Yes. So it was a
small company. So it's down in
London. So I moved to London for
the job, that they're called IC,
UK. And they, I think at the
time I joined, there were 11 of
us. So it's very small, we were
just all in one room. And they
were an Internet service
provider. And they did like web
hosting and domain names and
things like that. And it was
kind of a nice job in the sense
that like, the job itself wasn't
the best. But it was a really
good way of like finding out
what I liked. Because in such a
small company, you just get to
do a bit of everything. And
that's where I found that my
favorite bit was like the kind
of UI UX front end, all that
sort of stuff. And it was also
there was no like, well, there
were web frameworks then. But
they weren't as widely used as
they are today. Like, react was
still a few years away. Angular
was just about on the horizon.
So everything was just hacked
together with jQuery and things
like that.
Jeroen Leenarts: Yeah, too many
JavaScript dependencies was
already a thing back then.
Shaun Donnelly: I think it was
Yeah, but there was no NPM yet.
Jeroen Leenarts: No, yeah. To
download half its internet
manually, right? Yeah. Yeah. So
but, um, so yeah, I got
interested in front end
development. But that's mostly
web front end development,
right,
Shaun Donnelly: web front end.
So I did actually make an app
for the iPhone at this time,
which I've never really, like
publicized much, because I've
always been an Apple fanboy. And
I always loved the idea of
having an app. But to be honest,
like, I just couldn't wrap my
head around Objective C and
UIHC. It. But I did make an app,
it was very, very basic. So it
was, it was called spectral. And
it's no longer available on the
App Store. But all it did, it
was a single text box, and it
would take a hex color, and it
would convert it to an RGB color
code. And I don't think they
ever released anything other
than 1.0. And my mom still has
it on her phone. But I think
it's the only person in
existence, he still has a
Jeroen Leenarts: dedicated end
user. So yeah, I've got this mom
as well. She always likes
everything I've published. So
but um, but at some point, you
you also you like progressing in
your career, you let some front
end development, you did some
more front end development. But
at some point, you also got
interested in doing something on
the side. So but how did that
develop? Because you have your
job. And at some point, you want
to do something on your own? How
do you combine the two things?
Because it's a lot of work,
actually.
Shaun Donnelly: Yeah, not? Well,
to be honest. So I mean, in the
case of spectral, it very
quickly became abandoned, where,
and I guess we'll probably talk
more about my other apps a bit
later on. But I constantly
struggle with trying to find
time to balance the two and
yeah, like, I think there's a
sort of thing around hustle
culture at the moment where
like, it almost feels like every
single one of your hobbies has
to be monetized. And obviously,
that's what I'm doing. But I try
not to be a bit too toxic about
it. I still want to have fun,
you know,
Jeroen Leenarts: you immediately
touched upon an interesting
thing. That's the monetization
thing. Yeah. But was it
something that you when you
started with your Indie
products? Was it something that
you that you aimed for to get
something that was monetizable?
Or was more like, Okay, I've got
something I've developed and
progressed to such an extent.
Now, there's something I can
maybe monetize, or what's the
what's the game plan there for
you?
Shaun Donnelly: Yeah, it was
definitely the latter. So I just
made them for fun, basically.
And then I continued doing them,
and then people liked them. And
then it kind of became a thing
where I was like, maybe there's
a way I can make a bit of money
from this. Yeah. But to be
honest, I didn't even want to in
the beginning, because I I was
quite intimidated by all of
like, the tax forms on the App
Store connect and things like
that. And I just didn't want to
have to get involved with those.
Jeroen Leenarts: Yeah. Yeah. But
is it like, at some point, is it
also a part that you don't want
to monetize on something?
Because then you actually have
paying end users? And they might
have some expectations on what
you're delivering? Or is that a
factor as well?
Shaun Donnelly: Absolutely.
Like, there's a reason why most
of my apps don't really have any
external dependencies, because I
don't want ever get to a point
where like, I can never fully
switch off or take a holiday.
Because, you know, I'm
constantly worrying about what
if Server X goes down? So yeah,
most of my things were on client
side.
Jeroen Leenarts: So nothing,
nothing, cloud hosted nothing
back, and maybe some cloud came
in. And not even that.
Shaun Donnelly: Not even that
the closest thing I have is my
app. Taylor's version has some
Cloudflare web workers, but
they're, they're very, very
fault tolerant, and they're used
for like a really tiny bit of
the app. So that's it.
Jeroen Leenarts: Yeah, you want
to be able to sleep at night.
Right. Exactly. So but so yeah,
you got started with like, in
the iOS development, it's quite
recently relatively in your
career. Yeah, like 2020. That's,
is that like started pandemic
time even.
Shaun Donnelly: Yeah, it's not a
coincidence. The timing it was
it was April 2020. You know,
we're all stuck in sides and I
thought I'll finally learn Swift
UI. And well, Swift UI was quite
new at the time. But yeah, and
some tax forms are right. Yeah.
Eventually the tax forms came
along.
Jeroen Leenarts: Yeah. So but
But where did you pick up iOS
development? And because it's
not something that you just
decided to open up Xcode and
then say, Okay, I'm gonna write
an app. There's a process
involved to actually get you to
that stage.
Shaun Donnelly: Yeah, I'd been
doing a little bit at my job
when I was at Skyscanner. But it
wasn't real iOS development. It
was React Native, but it was,
you know, close enough that I
got to run the simulators in
Xcode, and things like that. So
it kind of opened that door a
little bit. And then it was
actually do you know, the
website, re Wendell ich.com, I
think they've just rebranded to
go Deco. That's kind of a name.
That's it. I followed the Swift
UI tutorial on there. And it was
to make a it's a slider. And
then you have these, it gives
you a number like 34. And you
have to try and drag the slider
to the number 44. And super
basic, but it was a really good
way of kind of learning the
fundamentals.
Jeroen Leenarts: Now, it's
interesting because off the
cuff, you just it's a side note
that you actually mentioned
there. Because it's interesting
that to hear that you. You did
web development, probably at
some point, the React became a
thing. And then at Skyscanner,
you got to develop with React
Native. So you actually take the
web stack to a mobile device and
actually develop apps with it.
And that was sort of like your
entryway, or at least some
exposure to native mobile app
development. And that allows you
to grow into a position that you
will like, okay, let's let's
look at the native side of
things and see how that works
for me.
Shaun Donnelly: Yeah,
absolutely. So the thing I was
working on at the time at
Skyscanner was the design
system. I'll give a shout out
even though I don't work there
anymore. It's it's open source.
So it's Skyscanner Dot Design,
if anybody wants to check it
out. It's called backpack and
the design system when I joined,
it was just for web browsers
React components. And then over
the course of the next few
years, we expanded it to React
Native then proper native, like
UI kit, iOS, and Android. And I
didn't ever do the UI Kit stuff
myself, because it was around
the time I was switching from
being an individual contributor
to a manager. But I was quite
heavily involved in the React
Native side.
Jeroen Leenarts: Yeah. So
manager Ephraim. So yeah. How
did that happen?
Shaun Donnelly: Basically, it
was very simple. So I, I got
promoted to senior software
engineer in give us the
beginning of 2019. And the
career ladder at Skyscanner said
once you get to that level, you
can sort of switch to the
parallel managers track if you'd
like. And I just thought that
sounds fun. I'll give it a go.
And was it fun or not? Well,
I've recently switched away back
to being an independent,
individual contributors. So
maybe that answered the question
for you. But I did it for a few
years. So
Jeroen Leenarts: it's
sufficiently different that?
Yeah, it does take you away from
the real technical work, I guess
you you still have some exposure
to technical things. But I can
imagine that if you really enjoy
the role of being an icy
individual contributor, that you
then do miss something if you if
you switch to like, managing
people, and instead of code,
Shaun Donnelly: yeah, and there
were a lot of really good parts
of management. I did enjoy. And
you know, I've read them.
Charity majors has got this
thing about the IC manager
pendulum. Maybe the pendulum
will swing back for me Sunday,
but right now, I feel like I
want to spend more time on
technical problems.
Jeroen Leenarts: Yeah. So was it
a conscious decision to move out
of sky Skyscanner into another
company duffel? To actually get
back to the coding again? Or was
it due to external factors as
well?
Shaun Donnelly: Yeah, it was
external factors. So I actually
only switched back to not being
a manager a couple of months
ago. So I joined duffel as a
manager, and I was managing
there until October last year.
And, yeah, I really liked the
travel space. So I was really
happy to join duffel because I
decided to leave Skyscanner, and
it took a long time to find
another role and yet Skyscanner
was was really good. But I
wanted to try somewhere else.
And I was happy to stay in
travel.
Jeroen Leenarts: Yeah, because
you stuck around Skyscanner
relatively long in your career,
right? So I think it's like four
years or so.
Shaun Donnelly: Yeah. Which, you
know, in tech terms is a
lifetime. average tenure in tech
tends to be two years in length.
Jeroen Leenarts: I worked at my
first job for nine years. Wow.
It was consulting, though. So I
got like new projects every six
months, every two years by
logging on the client. But yeah,
that sounds good. I've seen a
lot of Java code back in the
day. So So you switch back from
being a manager to being an IC,
within the same company, which
is interesting, because you
didn't use a job change to
actually or actually a employer
change to actually switch your
career path. So how was the
process because I imagined that
you were working at duffel doing
your managerial things. And that
at some point, you were like,
Yeah, I just wanted to like
write code again, please. Is
that possible? Or What do they
have that in their? In their
policies that you can do that?
Or what's the process?
Shaun Donnelly: Yeah, it's
pretty much how you described.
So duffles, quite a small
company. I think, right now we
have, I want to say about 60
people. And, to their credit,
they were incredibly
accommodating. So I'm I went and
spoke to my manager, who's he's
the CEO of the company, his
name's Norberto, and I basically
said to what you just said,
like, um, I think I'd like to
switch back and do some more
technical things. And, you know,
gave a few other reasons. And
then it took a few months for it
to happen, because it's not the
sort of thing where you can just
flick a switch and have that
happen. And yeah, you know, I
was happy to wait. And
eventually, there was a company
reorg in October last year, so
they coincided it with that.
Jeroen Leenarts: And was it
like, difficult getting back in
to the technology again? So
getting up to speed with coding
again, what what's it like,
because you have not been coding
like, day in day out for for a
couple years. By that time, you
may be in the evenings on the
side, you know, you're in the
apps, but there's something that
must have been like a bit of a
challenge there.
Shaun Donnelly: Yeah, a little
bit. It wasn't too bad, though.
I always kind of had, I kept, I
kept coding a little bit at
duffel. So even when I wasn't
coding directly, I was always
reviewing like a lot of pull
requests and things like that.
So I had an idea of like, the
architecture of our products.
But then the best thing is, so
I'm not allowed to say what it
is. But I started working on new
products. So brand new code
base, didn't need to worry about
any technical debt. And that
product is launching on
Wednesday. So by the time this
goes out, I probably can't talk
about it. But that's not ready
yet.
Jeroen Leenarts: Well, I will
make sure to update the link to
that product in the show notes
once you give me the go ahead to
actually put it in the show
notes. So just like add to the
drama and the intrigue of this
podcast episode a little bit. So
but then you switch back to
software development within
duffel again, and but just to
explain a bit duffel isn't a
travel space, but what did they
do as a company? General? Yeah,
Shaun Donnelly: so I'm supposed
to have like a one sentence
description for this, but I
don't. I guess the quickest way
is like, it's like Stripe. It's
like Stripe, but for travel. So
we are the kind of middleman
that powers a lot of travel
infrastructure. Right now. We
just do flights. So. So my old
company was Skyscanner. And
imagine if you wanted to start
your own, like a competitor to
Skyscanner. Or maybe if you just
wanted to have flights as like a
sideline to the podcast, you
could use duffel to like
abstract away all the difficult
parts of selling flights, like
it's a, it's very surprising.
Like, what I've learned is the
airline industry is just an
industry made up of edge cases.
Every airline does everything
differently. So we account for
all of those things for you.
Jeroen Leenarts: So it's sort of
like a Data Broker partner for
travel itineraries like flights.
Yeah, pretty much. Yeah. And
then of course, we need API and
reporting, and you pay a monthly
subscription. And then you have
like, great data to work with.
Shaun Donnelly: Yeah, that's
right. So you get access to
like, all sorts of stuff for us.
And cool. We also offer like UI
components as well, which is
something that my team works on.
So if you wanted to do like
things like seat selection, or
quite complicated UX patterns,
you can use ours and then you
don't have to build that
yourself.
Jeroen Leenarts: Yeah. Because
how many I don't know how many
seat layouts there are in
airplanes. I think just about as
many airplanes there are in the
world for passengers. But it's a
lot. And and then there's also
all kinds of pricing tiers going
on. And yeah, so if like, you
have to like not incapacitated
to be even allowed in certain
seats. I think it's an exit
Shaun Donnelly: row. Yeah. And I
think it's Etihad. Or it might
be Qatar but there's one
airline, they have a type of
seat that's just for Falcons.
And for people who are
transporting birds, and there's
all sorts of things. Yeah,
that's
Jeroen Leenarts: cool. So but so
that's, that's like a little bit
of an overview of you, from your
studies to your job right now.
And that you actually made two
big switches in your career not
only employees but also from IC
to management and then from
management back to IC the
management still engineering
management's have still very
technically focused. Yeah. Any
words of wisdom that you have
for people that are like in a
similar position that they're
like, yeah, how do I go left to
go right? So what what what some
considerations they should think
about according to your
experience,
Shaun Donnelly: um, I think I
would say when you become a
manager, you should be aware
that your time isn't necessarily
your own. So like, sometimes
people will need you short
notice and, you know, you need
to drop everything and help them
and that's okay, though. Like,
I'm not I don't mean it as a
negative. It's just something to
be aware of. Like if you're
hoping to have a quiet day or
getting your head down. That can
happen but also, free things
will just drop in your lap at
once. I'm, I find it's also
really rewarding in a way that
coding isn't necessarily like
there was somebody I managed at
Skyscanner who joined us as an
intern. And then he ended up. He
was a senior software engineer
by the time I left, and it was
so great to see him grow and you
know, be able to help him do
that.
Jeroen Leenarts: Yeah, it's
about like, about people that
you get to work with. Right?
Shaun Donnelly: Yeah,
definitely.
Jeroen Leenarts: Cool. At some
point, you also got into in the
app development, that's
something we casually mentioned
already, like, startup grown up.
Probably had some extra time on
your hand back then. Yeah,
exactly. But you were probably
already doing some coding with
iOS by that time, because that's
in the middle of your stint at
at Skyscanner, where you got
your exposure to app development
through React Native. And then
you started dabbling with, with
native iOS development, thanks
to the material by Ray
Wonderlic, now called CodeTwo.
But But how did you get like an
idea for for a product or was
more like something that you
needed for yourself? And then at
some point, you came to the
conclusion, hey, this is
actually something other people
might like as well.
Shaun Donnelly: Yeah, it was
kind of like that. So there was
two reasons that I went with
some, my personal best is a
workout tracking app. And the
reason I did that is two
reasons. One was the only reason
we were allowed to leave the
house, except for like, going to
the supermarket was exercise. So
I was had quite a good exercise
routine in spring 2020. And so
it was natural that, you know, I
wanted a way to track those. The
second part was that I really
didn't want to have to have a
back end to deal with. And I
thought, well, HealthKit is
already on iOS. And it's
basically like a back end that's
made for you, you know, there's
API calls into it, you can read
and write from it. So it was
just kind of a perfect
combination of those two things.
Jeroen Leenarts: So what does
personal best do as an app and
it tracks your workouts? But
personal best? That seems to?
Like it does indicate something
in the sense of? Well, yeah,
personal best, right is like
about self improving your
workout results or your timing,
or what is it about?
Shaun Donnelly: Yeah, kind of, I
think a little bit, it's been a
bit unfocused, up until now. And
I do intend to address that. But
it started out as showing you
your top three workouts. So it
would say these are your top
three distances. So that's where
the name came from. Since I've
evolved it, it still does have
that functionality. But it's
kind of evolved into more of a
general purpose Workout Tracking
now. So it can do things like
interesting stuff, like you
know, show you a map of where
you went or show you like charts
of your heart rate zones. But it
can also do sort of silica
things like, it can tell you how
far you've run in terms of like,
distance to the moon and things
like that.
Jeroen Leenarts: But it is
something that it has a lot of
similarities with what what
health kits or the health app
itself can provide. So what does
it add on top of that, because
that's probably the unique
selling point of the product
that actually allows you to have
an interest of people in the
app, right?
Shaun Donnelly: Yeah, that's it,
like the health app is really
good for what it does. But it's
inherently limited. And I think
Apple's thing is, they tend to
favor the 8020 thing quite
heavily. So there's certain
advanced functionality that they
probably won't touch, they
really just want to do the stuff
that's good enough 80% of
people. And that's where
personal best comes in. So I try
and take that data and turn it
into like useful information.
And there is some overlap with
the health app there. But I want
to go a little bit deeper, and
adjust things like that. And
then there's things like widgets
as well that the health app
doesn't have.
Jeroen Leenarts: Yeah, just
making the because that's what I
noticed with the health app.
There's like, a ton of
information in there. But just
getting to it and actually
discovering what's even
available in there. It's like
such a hassle. Yeah, so but and
also you add a lot of
achievements, I think with
personal bests, right.
Shaun Donnelly: Yeah, I had an
achievements feature. So I had a
really good time coming up with
like puns for all the names of
the achievements. That was
around a year ago that I
released that feature.
Jeroen Leenarts: And it is
personal bests, just a side
project for the fun of it, or is
it also something that that?
Well, it, it doesn't pay your
income, but it's a nice side
income, or is it not monetized?
Shaun Donnelly: It is monetized.
So currently, it has a an in app
purchase for a recurring
subscription that I call
personal best Pro. So there's a
monthly and annual or lifetime
purchase option. And there's
also the requisite tip jar that
every indie indie developer has,
Jeroen Leenarts: but is it like
a baseline version and then a
premium feature set or is it?
Shaun Donnelly: Yeah, that's
right. So I don't want it to be
too limiting for anybody that
doesn't pay for personal best
pro because I don't want to put
people off. So the data you get
is limited without the pro
version, but it's still enough
to be useful.
Jeroen Leenarts: Now. That's
probably Like, you can look
further back with the premium
version and you can get some
more visualizations, right?
Shaun Donnelly: Yeah, so the
basic version has like the last
seven days, the last 30 days,
and then pro you get like 90 365
this month this year in all
time. And then there's also
extra data as well.
Jeroen Leenarts: Cool. So but so
that was something that was
developed because of a personal,
personal, it's really because
she wants to track your own
workouts. And is that the case
for all your other apps that you
created as well? Because you
have three apps on your website
right now. And the other ones
are called Taylor's version and
health drop.
Shaun Donnelly: Yeah, so health
drop isn't really one that I do
much marketing with. It's, it's
basically a utility app that I
use for personal bests. So all
it does is it allows you to
create workouts
programmatically. So if you need
some, some like test data, you
can just do that rather than
going and getting them. I've
actually since built some
functionality into personal
bests that way, you can export
one of your workouts as JSON and
then re import it. So I don't
really use health drop anymore,
but I may do something more if
it's Sunday. Taylor's version
was definitely about scratching
an itch, though. So yeah, I'm,
I'm a very big Taylor Swift Fan,
or Swifty, as we call it. And so
in, I think, 2021, she started
releasing them, she recorded her
first six albums, it's a whole
thing, you can look it up online
base, essentially, because she
wants to own her masters. And as
a good fan, I wanted to switch
all my playlists on Spotify over
to only use the new recorded
versions.
Jeroen Leenarts: Because then
she gets, then she gets just
this tiny fraction of a cent
more, you have to listen to her
songs. Right, exactly.
Shaun Donnelly: And she clearly
needs more money. So. So I
decided to, it would have taken
me 10 minutes to do that across
my playlists. But I decided to
spend six weeks making an app to
do it instead.
Jeroen Leenarts: Yeah, and it
does have like, a lot of
appreciation within the
Swifties. Community.
Shaun Donnelly: And it's added a
little bit yeah, like, to be
honest, not as much as, as I'd
have liked to. I was really
hoping I would have got some of
these articles about, you know,
look at this silly thing that
somebody built that I didn't
really get anything like that.
But I kind of made it as a
passion project. So it's okay.
Yeah,
Jeroen Leenarts: just to upgrade
your own albums, and you felt
like, yeah, I can do this with a
whole bunch of code, and spend
even more time on it while doing
it, but then be able to redo it
over and over again, which I
would never do, of course, but
do you ever did you ever
consider like not listening to
Taylor Swift through Spotify? or
other means or not?
Shaun Donnelly: No, not really.
Like I've been using Spotify
since it first came out. So I
don't think I can ever move
Jeroen Leenarts: now. Yeah, once
once you're like entranced. You
can't go anymore. Yeah.
Shaun Donnelly: So I tried Apple
Music When it very first
launched in 2015. And I
downloaded a lot of music onto
my iPads. I went on holiday to
Thailand, and then a week into
the holiday without any
internet. It deleted all the
music. So it was like,
Jeroen Leenarts: a good
experience. Yeah,
Shaun Donnelly: I've never gone
back since then. Yeah.
Jeroen Leenarts: Yeah. So um, so
you have like, three apps that
you have publicly available? One
is doing quite nicely, I guess
the personal bests? Yeah, the
health drop is more of a
utility. That's, well, it's
useful, but that's about it.
Yeah. And the Taylor's version
is that also has an in app
subscription, or like, a tip
jar, or what is it?
Shaun Donnelly: Yeah, it has a
one time in app purchase. So the
idea is, it will scan all the
playlists for you, and it will
show you like, what songs need
replacing, but to actually do
the replacement, then you need
to pay. I think it's 299. For
the pro version. To be honest,
it hasn't had a huge amount of
sales, but I also haven't
marketed it.
Jeroen Leenarts: Yeah. Yeah. But
what's interesting there is that
you are integrating with the
Spotify API, right? Yeah. Is the
good APR. No.
Shaun Donnelly: It's pretty
good. I found it a little bit
difficult to use until I found a
really good swift library that
somebody had already put
together for it. But yeah, it's
decent. The thing I found a bit
troubling, not traveling a bit
challenging was they need to
approve you to use your use
their API. And they have quite a
lot of rules around it. So not
only do you have to go through
appstore approval, you have to
go through Spotify as approval.
And the rules are things like
you can't use a corner radius.
And anytime you show album art
from Spotify, you have to just
have square corners, which
didn't really fit in with my UI,
but had to do it. Okay, and
anywhere that you show content
from Spotify, you also have to
have a button that will open the
content in the Spotify app.
Okay, which to be fair that's
quite nice. So um, you know, I
had to integrate all of this but
yeah, it took a while to get
approved.
Jeroen Leenarts: So but they do
give good feedback on on what
you need to change.
Shaun Donnelly: They give
diplomatic way of putting it is
it's slightly better than
appstore connects feedback.
Jeroen Leenarts: Yeah. That's
it's not sure if that's a
politically correct response.
But yeah, I can imagine that it
is sometimes quite terse, what
you get back as a response on,
on a review that you've
requested? Yeah, it can be. So
but, again, this is an app that
has sort of a back end, but not
something that you control or
something that you have to get
up for in the middle of the
night. Probably on purpose as
well. Yeah. So is that something
instead of is that pattern that
you consider that you will keep
on doing for the foreseeable
future? Or what's your what's
your, what are your are these
there?
Shaun Donnelly: Yeah, as much as
possible, I want to do that. So
like, I have some ideas for
personal best, that would
involve server side stuff. But
I'll always make sure to build
things in a very fault tolerant
way. So for example, I've had an
idea for a feature where you
could see your workout stats
compared to everybody who uses
the app. So rather than just
saying that was your third
fastest run of all time, it
could say that was the third
fastest out of you know, these
1000s of people. But I would do
it in a very sort of progressive
enhancement way. So that if it
didn't work, if the server went
down for some reason, then, you
know, nothing's gonna break, you
just won't see that bit of data.
Jeroen Leenarts: And what are
some mechanisms that you could
use to do this progressive
enhancement of your
visualization?
Shaun Donnelly: I mean, I think
I would just hide that bit of UI
selectively. I have an example
of where I've put it into
practices. So in Taylor's
version, there's that there
needs to be a database of what
these pre recorded songs are. So
it knows like when to recommend
them for you. And because Taylor
Swift likes to surprise release
albums, I didn't want to be
reliant on an app update.
Because then by the time it goes
throughout review, you know,
people might have, I might have
missed the boat. So I have an
online database that I can
update, it's just a JSON file.
And when the app launches, it
attempts to contact this
Cloudflare URL and pull it down.
But if it's not there, then it
has a locally stored one that's
baked into the app. So it's
okay, if it's not there.
Jeroen Leenarts: And this is the
mechanism that if it's if it's
able to download the JSON file
successfully, it caches that
copy locally, and shadows the
baked information. That's right.
Yeah, yeah. So even if you then
at a later stage have a half
updated list, you still have
like, relatively recent data in
your app bundle available. Yeah.
Can you show? Yeah, because I
imagined that that's just a
mapping between what her old
recording is and what her new
remastered version is that she
owns. Right? Yeah,
Shaun Donnelly: that's literally
it. So yeah, it's just anytime
it sees this Spotify URI, it
replaces it with this other
Spotify URI?
Jeroen Leenarts: And is this
data that's like shared online?
Or is it something you have to
like, dig for yourself in the
Spotify app?
Shaun Donnelly: Yeah. So I have
to go into Spotify, get every
new track, right click get the
link and then pull out the
Spotify have these like custom
URLs? I have to call that
Jeroen Leenarts: out? How many
tracks this you remastered by
now?
Shaun Donnelly: So she's
released two albums, plus a few
singles? So probably around 35
tracks? That's not not too
Jeroen Leenarts: bad. Yeah. So
but but do you have any stats on
how many users actually do these
conversions on the Spotify
library? And also how much of
their library you're updating
with, with this process?
Shaun Donnelly: I don't actually
like, um, I mean, I could find
that data by looking at my API
usage. But I'm quite averse to
collecting data that I don't
need. And I've never decided to
look at that. So I've just never
done it.
Jeroen Leenarts: Yeah, it's the
it's the model of like, huge
data should be treated like
toxic waste, you you'd rather
not have it right.
Shaun Donnelly: Exactly. Yeah.
Cool.
Jeroen Leenarts: So what are
your plans for your next
project? Or are you still like
working on improving these three
apps? Or what? What are your
What are your thoughts there?
Yeah, so
Shaun Donnelly: Taylor's version
is effectively finished. So I
will update it every time the
music comes out. And you know,
if like things change in iOS,
but for all intents and
purposes, it's done. I did look
at adding support for Apple
Music. And that's my number one
request. But it's quite
technically difficult because
Apple music doesn't allow you to
delete songs from playlists via
their API, which is kind of a
functionality that I need. So I
decided to shelve that. On
personal best, I think, to be
honest, that will never be
finished. Because its health is
just such a big area, there's so
many things I could do. My dream
is for it to become like, almost
like a virtual personal trainer,
where, right now it presents all
this data to you, but it doesn't
really tell you what to do next.
And I'd love for it to be able
to like push you a little bit
more and things like that.
Jeroen Leenarts: But that sounds
like you have some big plans
there for your Indie products,
but you also have a day job. So
how do you balance your time
between the two?
Shaun Donnelly: quite poorly. So
yeah, it's something I've always
struggled with. So like I
mentioned before with like
hustle culture and things like
that, I think I very quickly got
into a point in 2020, where
anytime I wasn't working on my
apps, I had this like guilt at
the back of my mind. I mean, I
was also raised Catholic, so I
always feel guilty about
something. But
Jeroen Leenarts: I, that's a bit
of an in joke there, I think.
But yeah, I understand.
Shaun Donnelly: And then yeah,
so I'm trying to be a bit more
balanced with it. One thing that
has really helped is I've
recently stopped working
Mondays. So I now have an extra
day a week to spend on this
stuff. So like, I have an Xcode
window just off to the side of
the screen here. And that's what
I've been doing today. But yeah,
I also just try not to feel bad
if I if I want to take a break
if I want to watch a film or
something. And I'll just do that
instead.
Jeroen Leenarts: So where you're
able to, like, take today less
of your day job, because of the
income that you were already
getting from your products or
what what was the thought
process there because to a lot
of people working a day less has
some significant financial
implications as well. So there
must be a plan in place.
Otherwise, it's like Wild West
cowboy behavior that will only
hurt you in the end, right?
Shaun Donnelly: Yeah. So my goal
is for me to be able to do what
you've described, and like, make
up the last income from my apps.
But I'm nowhere near that yet.
Like I wrote something on my
blog at the end of 2022, which
had like how much I made last
year. And you can see, it's,
it's like it didn't even pay for
my new laptop that I bought last
year. So it's nice to have in
like there. Yeah. So the reason,
the way I've been able to do it
is my work have been really
accommodating. And they're
allowing me to do a six month
trial of working what we call
compressed hours. So I still
work the same number of hours,
but I do it in four days now
instead of five, which I'm only
about a month and a half into
the trial. So, you know, it may
not continue once the trial ends
have to see how they think it's
gone. But that's what I'm doing
at the moment.
Jeroen Leenarts: So that's like,
what what is it nine hour days
or 10 hour days that you're
making nowadays? And also,
you're still working 40 hours?
Shaun Donnelly: Yeah, I am quite
tired. And you know, I'm
figuring out how it's all good.
Jeroen Leenarts: Yeah, yeah. But
about this hustle culture. You
mentioned that a couple times.
Yeah. Let's just define it a
little bit. So So what is hustle
culture, according to your
definition?
Shaun Donnelly: Well, I think
you see things like, it's a bit
difficult to just have a hobby.
And I think there's a sort of a
societal pressure almost to turn
it into something. So it's like,
oh, okay, you enjoy going
bouldering on the weekend, have
you thought about making an
Instagram about or your
bouldering exploits? And then
maybe you can get sponsored. And
obviously, I'm exaggerating a
little bit, but I think there is
an element of that that can
creep in. So I'm trying not to
succumb to that too much.
Jeroen Leenarts: But it's it's
something that is more prevalent
in software development circles
you think?
Shaun Donnelly: Possibly. I
mean, that's the circle that I'm
in. I don't know about other
circles.
Jeroen Leenarts: It's an
interesting topic, because I've
been doing this podcast, also
since 2028. Yeah, go figure. And
I have a sponsor runway dot team
at the moment. Yeah. And it's
not a big sponsorship, but it
does allow me to, you know,
cover the expenses of running
the podcast. And occasionally,
you know, buy some new gear or
replace something that is like,
a worn out. But, yeah, it's to
me, that's like, fine. It's
like, it helps with keeping
going so to speak. So that not
to know that you're okay, your
direct expenses are covered. But
it's not, it's not a replacement
of income. For me, it's just
that sometimes you have a bit of
luck, you have like a big
sponsorship, and you do
something specific to a specific
brand. And then it's like a one
time nice windfall that you get
but but nothing, nothing life
changing. Really. Yeah,
absolutely. And but sometimes
you hear these people that they
they create an app, and they're
wildly successful. But I do
think that's that that's the
typical outlier bias that that
you're facing there as well.
It's like you hear the big
success stories. And of course,
it's great to dream about those
things. But how likely is it
that that somebody is able to
just come up with an app or the
code, it's in its evening hours
and then have like, Well, life
changing amounts of income all
of a sudden for a year long and
then be able to, like buy a
house and not be in debt with a
mortgage anymore for the rest of
your life? Right?
Shaun Donnelly: Yeah,
absolutely. Like, I think you've
really touched on something
there. Like when you see things
from the outside, it's so easy
to assume that these things have
come easily to people. But you
know, sometimes it happens like
look at Flappy Bird. But mostly
most of the time that's not the
case. Like if you look at David
Smith, who he makes widgets and
if I Quite a lot of other apps,
widget Smith was like wildly
successful. You know, it was
number one on the app store for
a while. And it's done really
well. But like, I also know that
I don't know him personally. But
I've seen his work. And like, I
know that there's a very, very
long road that got him there.
And it wasn't just an overnight
success. It was years in the
making together.
Jeroen Leenarts: Yeah. Because
he's, he's, he's like one of
these people that has like, an
insane amount of app products
available in the store even and
yeah, like, sleep tracking apps
and step counting apps and all
kinds of other things. And some
of them they're successful,
some. And he's also very adamant
about like, Okay, if something
is not working, if there's no
financial gain, to be had there
anymore, he'll just end the
product. And that's fine.
Because, yeah, he his, his, his
way of working is really to to
have a livelihood through his
app business. And for some
reason he was able to, to
achieve that. But he took some
time getting there, I think. But
I do think he also makes a nice
side income with podcasting
nowadays as well.
Shaun Donnelly: Yeah. Like, I've
mostly heard about this stuff,
because I listened to under the
radar. Get all of their stories
directly.
Jeroen Leenarts: I watched it
again, like in like under 30
minutes, or was it 20 minutes?
Well, how long is the are those
episodes?
Shaun Donnelly: Every episode
was not longer than 30 minutes
until they did the live one for
WWDC, which was like 44 minutes.
Jeroen Leenarts: Yeah. And then
since then, it's like most of
the time, the 30 minutes. But
it's a podcast that is very
interesting to to listen to, if
you're in to iOS development,
especially if you're into iOS in
the app development. Yeah.
Because you get to hear some
insights about the about app
development from David Smith.
And Marco Arment, who creates
the overcast podcast player, he
does have some infrastructure
that he needs to maintain.
Shaun Donnelly: Yeah, because
he's, I listened to ATP as well,
his other podcast. And I know
that Linode is quite a frequent
sponsor on there. And he usually
mentions that he uses them. I
imagine his infrastructure costs
are quite high.
Jeroen Leenarts: Yeah, I think
he mentioned it somewhere. It's
like a couple of grants. Each
each month, really, I think,
yeah. Oh, well. But yeah, that's
also one of these apps that's
like wildly successful, just
with like, large subscriber
bases, which is great. I'm gonna
grab it to his podcast player as
well. Yeah, I
Shaun Donnelly: use it every
day. It's great. Yeah, I don't
want to
Jeroen Leenarts: look at the
stats of how many hours is saved
with the speed improvements
features in the app.
Shaun Donnelly: So I actually
looked at mine yesterday is 106
hours for me.
Jeroen Leenarts: Oh, that's not
too bad. I should, I should look
up what I got, actually. Okay, I
found the the overcast,
SmartSpeed statistic in my
overcast app as well. SmartSpeed
has saved you an extra 496 hours
beyond speed adjustments alone.
Shaun Donnelly: Wow, that's like
three weeks.
Jeroen Leenarts: I listened to
too many podcasts. So, but
talking about podcasts. What are
some podcasts that you like
listening to? Because we
mentioned under the radar? You
mentioned ATP? Or is there
another specific podcast that
you really like? And please
don't mention my podcast?
Shaun Donnelly: Yeah, I won't
mention yours. And oh, I've got
overcast over my ear. So yeah, I
listened to ATP every week. I've
been listening to that since the
beginning. I've got I'm
currently adding to the Last of
Us podcasts. They've done a
companion. I don't know if
you've come across off menu
before. This is not an app
development podcast. It's just a
very funny podcast with two
British comedians. The talk show
with John Gruber. I don't listen
to every episode. Swift bison
dials a big one. under the
radar. There's It's Always Sunny
in Philadelphia podcast as well.
But I don't have that many
because I just find I don't. I
tend to listen to music a lot.
Like, obviously a lot of Taylor
Swift. So I don't have that much
time for listening to podcasts
outside of that. So I only have
about what was that about six or
seven?
Jeroen Leenarts: Yeah. Yeah, I
really like 99%, invisible ATP,
of course, jackpot by Brett
anwil. And then I have a lot of
security related podcasts for
some reason. Okay. But what I
really like is everything
everywhere daily. And that's
like, a daily Apple Daily
episode is like 1011 minutes
long. And it's about some random
facts in the world. And like,
for instance, recently, he had
like a podcast about the cult of
reason. Okay, the Super Bowl,
vitamin D, the Spruce Goose. And
what else? The worst year in
history, the Teapot Dome
scandal. So it's all about
volcanoes. It's like totally
random things. And it's like if
you look at the title, so like,
why would I be interested in
interested in this? But every
single time no know how silly
the topic. It's always fun and
it's like a 10 minute lesson and
that's what I really like. It's
like you just learned something
that you wouldn't have come
across otherwise.
Shaun Donnelly: Yeah. That
sounds good in 10 minutes is
great, like when you're just on
the bus or something.
Jeroen Leenarts: Exactly. And
especially with SmartSpeed, and
some speed boosts, it's like
even shorter. Okay, Shawn, I
noticed that we're already
coming up to 45 minutes. Is
there anything anything specific
we still need to cover? Before
we start wrapping up our
conversation,
Shaun Donnelly: I think we've
covered most things. I did
release a newsletter as well,
which I only did the first issue
about four days ago. So not many
people have seen it yet. But so
it's called nice UX design. And
the URL is nice UX Dot Design.
And the reason I started it was,
so there was a Tumblr blog that
I used to really like called
Little Big details. And they
would post like these nice
little details that you would
see in people's UX and things
like that. And unfortunately, it
sort of disappeared. It's still
online, but it's not been
updated in years. And I was
thinking to myself a few months
ago that I really missed it. And
then I thought, Well, why don't
I just sort of bring it back
myself. And I thought I would do
it as a newsletter. I registered
the domain name back in August,
I think last year, never did
anything with it. And then the
other day, I was just thinking
to myself, if I don't like
announce this thing, then I'll
never feel the pressure to
actually do anything with it. So
I, I went on Twitter, and I
said, I'm making this and then
here's the signup form. And then
I sort of felt like, Okay, well,
now I need to follow through. So
it goes out every other Friday,
as of Friday, just gone.
Jeroen Leenarts: So how many
subscribers by now?
Shaun Donnelly: Currently, I
have 50. So that's, that's
pretty good. Actually. Is that
good? I've never done a
newsletter before. Yeah, but
Jeroen Leenarts: just in like a
week's time. Just have 50
people. That's, that's
definitely more than your close
family at least.
Shaun Donnelly: Yeah, I mean,
because I can see all of the
email addresses as well that
people sign up with and like,
there's some interesting domain
names there as well, like, you
know, from companies and things,
which is quite good.
Jeroen Leenarts: Yeah. And it
shows what, like, just sharing
some things on social media can
do. Yeah, cuz, yeah. And you're
using a nice platform as well. I
know this curated. That's,
that's what they for were from
the iOS dev weekly, at some
point created. I think he's
still using that. But he has
some sort of super customized
version of curated that he's
using, I think, yeah. So
Shaun Donnelly: what actually
happened was, I thought, I
really like iOS dev weekly, I'll
see what's powering that. And I
found this platform curated as a
result of that. And I signed up
for it. And then I had a
question about it. And I
messaged Dave, and I don't
really know, Dave, I've emailed
a couple of times, I messaged
him, like Wednesday, last week,
and said, Hey, I've noticed
using curated, could you tell me
about this thing? Maybe? And he
said, Yeah, I made curate it.
And I was like, oh,
Jeroen Leenarts: yeah, but it's
with Dave. He's like, super nice
if you ever get to speak with
him in person, or even just
through one of his online
platforms, because he's also
worked on the, on the Swift
package index. And yeah, he's
just super nice. And it's just
Anytime he's he's really busy.
But if he comes across your
message, and he has some time,
you get like a decent answer
that is, like, much more
elaborate than you would
actually even expect. And
considering the time constraints
he has to work with. Yeah, so
shout out to Dave because I love
his newsletter, by the way.
Yeah, I've
Shaun Donnelly: been a
subscriber for much longer than
I've been an iOS developer.
Yeah, he sent me a really nice
email on Friday as well to say
that he liked the newsletter. So
that was really nice to hear.
Jeroen Leenarts: Okay, so
definitely going to link that
one from the shownotes, nice UX
Dot Design. And how do you get
the links that you put in your
newsletter? Do you have some
sort of RSS process going on? Or
Shaun Donnelly: I just have a
huge Trello board? Yeah, and I
just if I notice something that
I like, or I occasionally
include details that are not so
nice as well. So I just I have a
list of a nice thing in the list
for not nice things.
Jeroen Leenarts: Yeah, those are
those are those like, fun for
like the final thing on your
newsletter sock. Okay, this is
something not so nice. Maybe?
Yeah. All right. Well, what
we'll do is we'll make sure that
everything is linked from the
show notes. So that's nice UX
Dot Design. Also your, your
websites, go to kuma.com.com.
And everything that we talked
about, you can find on on Sean's
website. And once this new thing
has been launched, make sure to
also give me a ping about that.
Because then I can include that
as well as a link in the show
notes. And, yeah, where can
people find you online?
Shaun Donnelly: And, of course,
yeah, so I am on Twitter, but I
think like a lot of people I'm
not really using it anymore for
reasons that I won't go into,
but I think everybody knows. So
I'm primarily on Mastodon now.
So I'm, I'm at Shawn Don. So
that's SHA u n d o n at MSC d n
dot social. Yeah.
Jeroen Leenarts: Let's link that
one as well from the show notes.
Right.
Shaun Donnelly: Yeah. You can
also email me as well, like, you
know, I love hearing from other
developers and people who use my
app. as well,
Jeroen Leenarts: yeah. And
especially if they have some
questions about how in the app
development is working for you.
I think you're just what is it
called nowadays? I think they
call it posts nowadays on
Mastodon as well. But you're
just one message away on those
social platforms as
Shaun Donnelly: well. Yeah,
definitely. Cool.
Jeroen Leenarts: Well, Shawn,
thanks for your time. And maybe
we ran into each other on a
conference or something, and was
definitely nice talking to you.
And learning a little bit about
your backgrounds and the things
that you did as a software
developer.
Shaun Donnelly: Yeah. Thank you
so much for having me. I've
never actually been to an iOS
conference. I would love to
attend on some time.
Jeroen Leenarts: I know there's
a nice one in Leeds this year.
But by Adam, I was
Shaun Donnelly: gonna go last
year, but I didn't have enough
time off to use for work. So
Jeroen Leenarts: I was there
last year. I'll have to go this
year. Yeah. I'm not sure yet. If
I can go there this year, but
we'll see. Yeah,
Shaun Donnelly: I mean, my
parents live 30 miles away from
Leeds, so I have no reason not
to go.
Jeroen Leenarts: And no excuses
anymore. Yeah. All right. Talk
to you later.
Shaun Donnelly: Cool. Thank you.