Read the transcript
Jeroen Leenarts: Welcome to
another special edition of my
podcast. I'm sitting here with
Nandini. And Pim, those are two
old colleagues of mine that
actually were on the first
project that I actually learned
some decent iOS development, so
to speak. And we go way back, it
was like over seven years ago,
and I'll first let each of them
introduce themselves. So Nandini
Hi, how are you doing?
Nandini Chauhan: I'm doing
great. It's nice to see you
after such a long time.
Jeroen Leenarts: And the other
person is Pim, how are you
doing? How
Pim Stolk: you doing? I'm fine.
Thanks.
Jeroen Leenarts: So I'm just to
get things started. Nandini?
Where do you go to work at the
moment?
Nandini Chauhan: I currently
work at fin banking of things,
which is the startup initiative
at ING. And its IoT payments
platform. That's where I work as
a technical lead.
Jeroen Leenarts: Okay, and what
is your role there? And Nandhini
technical lead,
Nandini Chauhan: as I said,
Yeah, responsible for along with
Finn was to do his own
introduction and a bit, were
responsible for setting the
direction of the product, and
also deciding how to build it
technically. So we are, it's,
it's a mixed bag of everything
you lead the team of IT
developers, you're part of the
product vision, you're part of
the strategic decisions
regarding the product as well.
stakeholder management,
technical sales, marketing, it's
all of it.
Jeroen Leenarts: Okay. And Pim,
what is your role?
Pim Stolk: Yeah, Nandhini kind
of stole the thunder there. But
indeed, I'm also the technical
lead. And that might sound odd.
But there's a clear split
between us, where Nandhini
leads, like the mobile team, and
everything that's from then
facing, I'm leading everything
that's well, not really visible
to the end customer. So I'm in
charge of the core backends, and
all the IoT components, which
are SDKs that we roll out. And
when on the knee is very much
busy with all the marketing and
all the HR stuff around it,
identify focus on the on the
bigger picture on the total
product. So how does my day look
like? I think it's coding every
day. And when I'm not coding,
I'm just looking around what's
going on in the market? Is the
product still relevant? And how
can we adapt to this ever
changing market?
Jeroen Leenarts: So how big is
the team that you guys are
working in?
Pim Stolk: The team at the
moment is around 14 people, and
it's a mixture between ID people
and business people. So we try
to have one of everyone of
course, then you have to think
about your iOS engineer, your
Android engineer. But also the
front end, because we have a
large set of web portals written
in Angular. So we have a team
for that as well. And as we were
working together, we already
knew this, but now we we noticed
it again, that one is none. So
therefore, we scale the team to
two engineers of every
discipline, basically.
Jeroen Leenarts: So just to just
to start at the beginning,
Nandini, how did the two of us
actually meet? Because we know
each other in in real life? The
three of us? Yeah,
Nandini Chauhan: I think it's,
it's more than seven years, you
know, it's almost eight years
now. Because I've been eight
years in Netherlands and I know
you from the very first day,
because I remember when I
entered that ing office at
mobile, you were the one who
helped me through all of it. So
the whole onboarding I did with
you, you were sort of my buddy.
I think back then. So I remember
you as this super energetic,
active, nice, talkative person
that I was spending the entire
day with when I was completely
jet lagged. And I'm like, Oh, my
God, this guy can talk. So that
was my first reaction of you,
which was super helpful. And you
sort of took me through the
entire code base, what you guys
have already built, where we
were, in terms of features, what
we plan to plan to do ahead the
process to all of it. So you
sort of my very first contact
in, in the Netherlands.
Jeroen Leenarts: Okay. And Pim,
what about the two of us?
Pim Stolk: Yeah, longest three
as well. I started at ING I
believe in 2011. I was the first
iOS engineer there started the
project. And I soon realized
that there was a little bit more
on my plate that I could chew. I
don't know if that's the correct
phrase. So we we needed help,
strong help. And very shortly,
you came to help on the iOS
development team, and well, I
have to say the there was a very
nice change. I think we did a
lot of crazy stuff, a lot of
good coding and we created a lot
of cool features together. You
always had an eye or you still
always have an eye for the for
the visual details where I was
always looking at commandment it
should just work. We should ship
it people need this. Well, you
all always said no. Let's make
it flashy, shiny and better. And
I think that together works very
well. And yeah, we don't only
know each other In business, I
also attended your wedding. Not
too long ago or a while ago,
man,
Jeroen Leenarts: I think it was
six years or seven years.
Pim Stolk: Time flies,
especially during the lockdown,
of course.
Nandini Chauhan: So yeah, if I'm
correct.
Pim Stolk: Oh, boy. All right.
You don't and I had a phone call
before and we decided not to go
into any details regarding the
stag party
Jeroen Leenarts: involved cars.
Pim Stolk: It was crazy. Yeah.
So we also we go back. And
unfortunately, our paths moved,
separated for a while, but I'm
pretty sure that we will see
each other soon. business and
private again.
Jeroen Leenarts: Let's hope so,
Nandini Chauhan: about that
animation bit about where you
don't want to make everything
look good. I still remember that
vaguely viggle animation on the
login screen of the banking.
That took a week I remember.
Jeroen Leenarts: Yeah. But that
was because every digit on the
login screen had like, I think
it was five animations that were
like time together and
separately. So if you put in
your five digit pin there were
at the end of the screen that
was like 25 or 30 animations
that have happened.
Nandini Chauhan: Yeah, I
remember when you were quite
proud of it. And
Jeroen Leenarts: it stayed in
the codebase quite long. But I
think in the current app, it's
finally gone. But thank God for
it wasn't bad.
Pim Stolk: It wasn't buggy. And
I don't think it was a week it
was more like two sprints, which
is four weeks. But in
retrospect, the thing was really
worth it because it was actually
a moment where we went from some
other static application where
well, you could check your
balance and make transfers to
something that was more visually
appealing. And it had animation.
So there was a turning point, I
think also for the entire team.
Were we understood that Okay,
now we can we can do these
things and the feedback from the
market. It was appreciated by
the customer. So yeah, I think
it was a turning point.
Nandini Chauhan: Yeah, I think
it showed how the team was so
determined on making, not just
shipping out features, but like
really good professional design,
everything you are mattered. UX
mattered, everything matters. So
it was like more than going more
than 100%.
Pim Stolk: I think there was a
big definitely.
Jeroen Leenarts: Way to show
that. So and Nandhini what does
the acronym PCF stand for?
Nandini Chauhan: I don't
remember that anymore. Don't
know. Oh, my God, it's almost
like trip through rabbit hole. I
just I know the acronym, but I
just don't remember that
anymore. Best colleagues
forever.
Jeroen Leenarts: That's the two
of us. Right? Yeah.
Nandini Chauhan: Oh, my God, I
haven't said it in such a long
time.
Jeroen Leenarts: So um, so
let's, let's, let's dive deeper
a little bit. Because Nandini,
the two of us met. When you were
first in the Netherlands? What
happened before that? How did
you get into software
development? Maybe computer
science writing code? How did
you what what was your path?
Nandini Chauhan: It all started
when I was born? No. Um, so I
did my engineering in
electronics and
telecommunication. We did a bit
of programming, but not a lot
during that. So I did a bit of C
C, C++, you learn a bit of
computer programming concepts,
but nothing practical as such.
And after I finished my
engineering, I was just looking
for what to do next, as in start
my professional career. And
that's how I stumbled upon this
position for an iOS developer.
And they were really looking for
like new talent. And I didn't,
as I said, I didn't really have
an experience with the practical
programming back then. But yeah,
the guy was hiring, he really
sort of believed in my practical
personality. So he said, well,
let's just give you a shot. And
I still remember I walked in to
the office, and he was starting
a team for both iOS and Android.
And he said, so I have position
for both. Which one do you want
to do? And I just looked at both
sides, because the teams were
sitting separately, and I saw
the Mac on one side of the
windows on the other side, and I
said, Whoever uses the Mac, I'll
do that. So that's how I started
as an iOS developer. I learned
everything on the job. So it was
just a lot of googling. There
were some I think I was
development for dummies. They
used to be a book back then. So
I started from there. A lot of
content that was on Internet
back then not a lot, but
whatever was there, and a lot of
the videos. So that's how I
started and yeah, I very soon
realized it was something that I
enjoyed it. It was more than a
job. It became sort of a part of
who I am. So it just started
from then was an agency. So I
used to work for cjt. So we are
used to have multiple projects.
So I also got this experience of
working on multiple things in
short period of time, and you
have to do with external
clients, and why isn't the code
ready was in the UI perfect and
all of that. So I think it was a
lot of how do you say, yeah, you
learn how to hustle as well. So
it was interesting. And then I
worked there for two and a half
years. And I still remember my
manager came to me, and he said,
Hey, by the way, these guys from
ing in Amsterdam they want, they
want to expand the team, and
they're looking for new talent.
And I suggested you do you want
to go and have a chat with them.
And I honestly didn't think much
of it, because I was quite
content in the way my personal
professional life was. So it's
like, yeah, who's gonna go to
Amsterdam, said we might as well
have a chat, you know?
Jeroen Leenarts: Yeah. But just
Just for reference, you were
situated, where in the world?
Oh, yeah,
Nandini Chauhan: that's a very
good point to mention. Yeah,
I'm, I'm from Mumbai, born and
raised. So that's what I was
working. And he suggested, this
ing team in Amsterdam, is
looking for new people. So I had
a chat with the actually payment
euros. Along with someone else
in the room, I don't remember
who it was. But there were three
people. And we had a video chat.
Back in the days when it was not
really the technology was not
really great. So it took forever
to first of all, initiate that
call. And then we actually we
had a conversation, it was quite
nice and casual. There were a
lot of questions about just
process, and what would you do
if you don't agree with
something and things like that.
And I didn't think much of it, I
just had a very casual
conversation with these with you
two guys. And then went about my
day. And then my manager came
back to me on a Monday saying,
hey, they liked you. And they
would like you, for you to come
and join the team. And my
reaction was no, not happening.
Because I'm not uprooting my
life and moving to a different
country on a different continent
altogether. But then he said,
No, just think about it, give or
take time to think about it and
come back to me a couple of
days. And I did think about it
for a couple of days. And
eventually sort of it was my
mom, she convinced me she said,
You know what? It's a new
experience, go and give it a
try. If it doesn't work out, you
can always come back. So it's
not like a do or die sort of
situation. So it's like, yeah,
actually, that does make sense.
So I gave it a try. And that's
how we met. Yeah.
Jeroen Leenarts: Okay. And Pim,
about you, I remember that you
were one of those people. That
actually told me that PHP was
fine. If you use it for certain
things, and that it's not like a
silly language, and that it's
something that you can can use
for a lot of useful things as
well. Yeah, how did that happen?
Pim Stolk: Yeah, definitely.
It's, I still stand by that I
use PHP almost on a regular
basis to still quickly prototype
things, because I'm just so used
to the language and the syntax.
But how did that happen? We have
to go, we have to go a long,
long, long way back, actually,
yep. I roll into it. I remember
the moment actually I was eight
years old, I was sitting with my
father behind, I think it was a
IBM ayto 88x t machine. And it
was running DOS and my father
was showing the cube basic. And
he opened the demo program
there. I think it was called
gorilla or something and that
you had like, the Asterix going
around the edges of the screen.
And then in the middle, saying
gorilla, sort of the name of the
game or something. And I said to
him, it would be so cool, if I
can have my name in there. And
then if the Asterix is go around
and screen, he said, Sure, let's
just do that. So he went into
the source code modified it,
compiled it, and it was there on
the screen in like five to 10
minutes. And I was amazed. And
that was the moment that I knew
I wanted to be like, doing what
he just did, and turned out to
be a software engineer later on.
And for me, the entry level into
software engineering was or not
one of the one of the first
language that they use was PHP,
it was PHP three, back then I
just started reading books about
it. Trying to familiarize,
familiarize myself with how does
it work? And what are the
concepts etc. And that always
stick with me. So I've been
reading all the language updates
from PHP three to I think would
be now seven or something. And
everything in between. So yeah,
although a lot of engineers say,
please don't use this language.
It doesn't even compile, there's
no typesafe, etc. But for me,
it's something I've just grown
fond of.
Jeroen Leenarts: So So because
of your dad, you actually got
into an interest into software
development, and then you did
your education. And then you
went on to What school did you
attend?
Pim Stolk: Yeah, I took a little
bit of less ordinary route.
Because I was programming still
in what is called prime Primary
School. elementary school when I
was very young and well, schools
weren't really weren't really
ready for that back then yet. So
I took an electronics class. But
next to that always was
programming Internet became a
real thing, basically, and
internet selling emerging grown
big. And I started learning HTML
as well, CSS and well, of
course, PHP into the mixture. I
started building web shops for
Dutch fashion brands. And next
to that, I also created the
warehousing systems for that. So
magically, that really took off.
And this was late 99 into early
2000s.
Jeroen Leenarts: So how old were
you back then?
Pim Stolk: Yeah, I really have
to think I was like 19, or
something like that. 18, maybe
very young. And I just didn't
really know what happened before
I knew it. The software that I
wrote was life for really big
Dutch brands, settling their
clothing online. And I had to
think of all different aspects.
So what do you actually charge
for your software? And is there
going to be a license and how
I'm going to make sure that it's
going to be up and running 24/7.
And oh, my gosh, I can't do this
alone, I need someone else to
help me out. So because of that,
I started looking for a school.
And I found a is something very
interesting at half year, which
is the horoscope and Amsterdam.
And this was called Information
Engineering. And there you learn
to be the bridge between a
developer which I am myself, and
an end client, which were Dutch
fashion retail stores. So after
completing that, it was three
years study. I did it in one
year. And I graduated in my own
company, which was actually
pretty cool. I learned to be a
developer, but as well as a
marketeer and everything in
between. So that is basically
the foundation that I always
brought with me and kind of made
me to who I am today.
Jeroen Leenarts: But from that,
how did you end up at the ing?
Because Nandini was working in,
in Mumbai. And then she was
offered a position at ING. Yeah.
How did that happen for you?
Yeah.
Pim Stolk: So this company that
I had back then, which was
mainly web development really
took off and when Well, I had a
partner in crime back then. And
all cliche at some moments are
true. And also this one, we we
broke up business wise, and this
was 2007, I believe. And the
reason for that was I strongly
believed in the future of
mobile, and there wasn't an
iPhone, there was just Android
and Windows Mobile, of course.
And I was already developing for
dead. We grew apart, I left the
company and did nothing for a
year. Nothing business wise, I
just looked at the market
studied Windows development back
then. And I looked at it
everything else that was going
on Android just released the
first SDK, and there were rumors
that that iPhone was going to do
the same. So in 2008, I believe
it was March when Steve Jobs
said, we're finally going to
release a real SDK for the
iPhone, I knew that that was
what I wanted to do. So after
doing nothing for a year self
study at home with my wife, and
after hearing that that SDK for
iOS would come out, I just fully
jumped on that. Some guy EVO in
The Hague, who has a company
called Share wire, he was really
a front runner with iOS
development, he built but a
mobile application for the
cinema company. And I saw that
and I was like, Oh, my God, this
is so cool. I want to work with
you. So literally, what I did is
I, I drove there with my bike,
motorcycle. With a couple of
sketches in my back pocket. We
had a conversation and I said,
Man, I really love your, your
pottery application that you
build. But if you do like this
and make it like that, I think
we can do it better. And if we
maybe look at the codebase.
Together, we can brainstorm on
how to do things more
efficiently. And it wasn't so
severe that I had like a
backpack full of experience. But
it was more the dialogue that we
had, and the very good
conversation that he said right
there on the spot. Oh my god,
can you start on Monday, and
this is where my iOS career
literally started shareware in
The Hague. I did. There are many
projects. And after a year or
so, I grown tired of driving
from my home to to The Hague,
which is a long drive. So I
moved to is mobile in Amsterdam,
where I worked on many different
types of obligations. And one of
those application was also the
ABN AMRO iPad app. And it was
because of that application. I
was contacted through someone at
the ing His name is Johan
lemons, and he called me up and
he said in the was in November
2010. He said, Hey, Pim, I've
seen what you've been doing over
the last couple of years, which
you now like to do this, but
then at ING, and I said, No way,
man, I'm never going to work for
a bank. Are you ridiculous? In a
more polite way? Oh, and well,
we just friendly, disconnected.
But you're under miss is a
pretty persistent guy. So he
called me back. And then he
said, Hey, pm, I really
appreciate what you said, and I
respect it. But could you just
come over for a cup of coffee?
And we just like to learn from
the process? And I said, Sure.
So I went to the, to the
Haarlemmermeer. Very old office
of ing. And what I saw there
just changed everything. For me,
I saw a company I saw bank. So
it company that was way behind
in the past, but also way ahead
in the future, and everything in
between. Absolutely no idea what
they wanted to do, or how
they're going to do it on the
mobile phones. But a very strong
belief that they could do it and
that they have to do it. And it
was that opinion of yo lemons
that pulled me the lured me in.
So I saw the technical depth
that they had regarding mobile,
or while there wasn't anything
there. And together, we could
just build the whole team and
the infrastructure around it. So
well, I think I just pretty much
like what Nandini said, I just
took the plunge and I said yes,
let's do this. And I believe it
was on the fourth of February
2011. So I'm almost 10 years in
can you imagine? I started my
first day at img opened Xcode
and hit File, New Project. And
that was actually an amazing,
amazing experience.
Jeroen Leenarts: That was back
in the day set. You still had to
do like Objective C and was it
with Arc already? Or was it
still manual? Memory? Manual?
Manual? Yeah, retainer? Yes.
Pim Stolk: Yeah. Yeah, the good
old days, actually, and took a
lot of learning to get it right.
Of course, I got it in college.
But doing it on that level was
just a completely different
ballgame. And it was seen. way
later in London, we were invited
for the Apple iOS Dec days, I
believe it was called when they
introduced Ark. And that was
just such a relief that it was
there.
Jeroen Leenarts: Yes, you can
still shoot your foot off. But
hey, it was at least not as not
as easy to do.
Pim Stolk: It was more
forgiving,
Jeroen Leenarts: I guess. Yeah.
So um, Nandini. If you look back
at the work at the ing banking
app, because you already
mentioned that you're both of
you are now working at fin,
which is, I think, a sub brand
of ing to separate it out a
little bit from the big, big
scary bank, so to speak. So but
your work at ING banking app?
How big is this code base? What
is it about? What does the app
actually do? I can imagine that
people hear ing and banking that
it's like, okay, it's pretty
obvious. But there must be some
things in there that are of
interest to the listeners?
Nandini Chauhan: Well, that's a
very abstract question. But I'll
try to give some information
about our also my information is
quite outdated. So I haven't
worked on the banking app for
almost three years. Now, I do
keep a tab of what's happening,
because it's obviously a part of
you. It's almost like a child of
yours. But Coinbase is actually
quite huge, because you have to
understand a banking app
involves not just the features
that you see upfront, but it
involves a lot of additional
framework that needs to be in
place before, you can actually
log in, for example, because
that's part of your
authentication. And that
requires a lot of security
modules in place. So the app in
itself is quite humongous in
terms of the number of lines of
code that could that has been
written. And also, so many
people have worked on that code
base starting from File New
Project that PIP did 10 years
ago, the team has changed quite
often and has scaled quite much.
So I think now they're quite
they're around five or six, more
than maybe Scott's working on
that code base. And now the same
code, code base is used across
multiple countries as well. So
in Germany, in Belgium, and
hopefully soon in other
countries as well. So it has
mature the law a lot since then.
But what we did, I think is five
years ago. Now I also have to
take in all the timelines,
because it's everything is just
hazy and blurry. it all mixes
together. But I think five years
ago, when we wanted to share the
same code base with Germany, we
did sort of modularization of
the entire code base. So we
split it into multiple
frameworks, dynamic frameworks
back then, to make sort of make
it easily pluggable. So you
could share the same feature
with different countries. For
example, some features of a
banking app like checking your
balance, making a payment,
having a transaction to view
authentication, authorization,
these are quite common that can
be shared that is common for all
the banking applications out
there, and is common to all the
countries out there but some
have some other features like
Ideal is very specific, it's
specific to Netherlands. So then
you want to keep it to
Netherlands and have, I don't
know in Germany, so foodora
Giropay. So you have these
different modules that you can
share or reuse when needed and
not have localized when not
needed. And it has been done
very nicely, I have to say, I
think ing when we did it five
years ago, we were sort of the
pioneers in this. It wasn't done
at that level, in any other
application. And it took quite
some time effort discussions,
you know, you don't you're quite
aware of the iOS team. In
general, at Mobile, we were
quite opinionated bunch of
people who everyone needs to put
an argument upfront and needs to
be heard, and has to be
convinced. So making these kinds
of decisions take take some
time. But that's also the
biggest strength, I would say of
mobile, that they're just a
bunch of really talented people
that have strong opinions and
would not just passively sit
around, but would actively be
involved in discussions. So
that's what we did. Five years
ago, since then, we've had
really great features like
payment requests, which was
actually before ticking, I have
to mention that we came up with
the concept and the
implementation before Tikki,
then you have the whole ideal
payment with the scanner, Apple
pay all of it. But what's
interesting, it's because of
that modularization that we did,
and that also involves
untangling of the entire code
base. And it helps to remove so
much technical depth when you do
an exercise like that. A code
base that was written 10 years
ago, it does tend to build a lot
of technical depth, irrespective
of all the good intentions with
which with which it was written,
including your Wiggle Wiggle
animation that was written with
all the good intentions, yeah,
you
Jeroen Leenarts: can compare it
to repairing a car, that's if
you do something at the front
bumper that all of a sudden,
like the rear tire falls off
that that was the effect that
you were seeing in the banking
app, I still remember that. And
that was one of the biggest
challenges to deal with. Back
then. There was a lot of not
intentional, but over the years,
some spaghetti got introduced
into the code base.
Nandini Chauhan: Well, the thing
is that it's meant to happen
because the technology also
changes so rapidly. So you have
you went from Objective C to
Swift to new version of Swift
every six months or so. Yeah. So
it's, it's, it's gonna, it's
going to happen irrespective of
how great developers you hire
and what the intention or the
prospect you work with. And I
think something like that, or
modularizing, that code base
helps you to see those hidden
gems that you might have
forgotten for a while, and you
no reason about them, or remove
them altogether, or just
refactor them into something
new. And that was a very, very
interesting exercise, I would
say we did. And that really,
really helped us is still
helping us to today because that
means you can develop faster,
you can implement new features
faster. You can have a bigger
team and have teams across
multiple countries, because it's
easier to reason about what's
happening rather than, you know,
going back and forth.
Jeroen Leenarts: Is there any
specific tooling that's being
used to support the modularized
code base?
Nandini Chauhan: You mean, the
dependency management, I will
know what it is currently. But
back then we had we did a lot of
back and forth between CocoaPods
and Carthage, Carthage and also
get some modules. So it was like
we did back and forth just to
say, see which one worked best
for us. Because sometimes you
can have all the arguments on
the table. But unless you
actually implement that you
don't know, the nitty gritty
details or the nitty gritty
things that can create
Jeroen Leenarts: a bottleneck.
So you mentioned dynamic
frameworks. So that means that
you have separate targets within
your Xcode project for different
sections of code. So that was
manually managed, or was it
supported with some tooling that
that's, that's what I'm going?
Nandini Chauhan: I'm trying to
think that now? I am, I think it
was manually managed back then.
Um, I hope it's, it's different
now. But back then it was quite,
it was manually managed, because
at that, when we started out, we
also didn't do very granular. So
we weren't like, every single
small feature needs to be its
own target. It was more on a
broader level that okay, making
a payment should be a separate
framework. Transactions needs to
be a separate entity. Okay, so
it was not that and also, I'm
quite a strong believer in
Don't, don't fix it unless it's
a problem. So don't try to pre
optimize anything. And wait
until it does. You start to feel
the pain and then go about
solution for
Jeroen Leenarts: I still
remember that when you got into
the ing project. That was one of
the discussions that we actually
had on on our when we should fix
things and so the whole
premature optimization thing
that we had, I think we talked
about that. At length actually.
Yeah,
Nandini Chauhan: we had really
good discussions back then about
everything. I think sessions
were, I wish we would have
recorded them, because they
would have been quite something
to watch now.
Pim Stolk: Been a hit on
YouTube, I'm so sure. You would
just call it flog or something.
Wow.
Jeroen Leenarts: So, um, BIM. If
you compare like a big banking
app, which has 10 years of
history, you're now separate
from the code base by few years.
But if you compare such a
project to, to a smaller
project, for instance, you're
now working on on fin, which is
still relatively new, it's
already in existence for I
think, a few years now. And also
your apps that you developed for
ice mobile, what are the biggest
differences with like a big code
base, like banking app, and
other apps that are like
smaller?
Pim Stolk: Wow, that's a very
interesting question. And what
the difference is that every app
that you work on, you take the
lessons learned to the next
application. And this is
something that, of course, we
also did with fin, we really
looked at everything that we
learned over the last years and
took that into account, while
architecting, the new fin
application. So we, we
immediately went for modular
approach. And not only a modular
approach between features, but
we also wanted to reuse the
entire code base on the back end
as well, because the back end
for Finn is written in Swift as
well. And therefore we chose IBM
Cateura for different reasons.
And speed was very important for
nonlinear me to develop
something very quickly. But it
also shouldn't be throwaway
code. So all the modules, all
the objects that we made should
be interchangeable between back
end and front end. And this is
something that we learned from
the ing code base, how to
decouple things and detach
things and reuse them. So the
difference in working with them?
Well, I don't think you see a
lot of difference. Because when
you're working in a very large
application and enterprise
applications, you're still just
focusing on that one specific
feature that you're working on.
So you kind of zoom into that
and forget about the rest. It's
not really the right framing
there. But you know what I mean,
and working in a new
application, you just tried to
do it the best way you can, and
you take into account that
things are gonna change in the
future as well. And you try to
accommodate for them at the
beginning. For example, testing,
I was always fond of testing.
And some of the people listening
might say, guessing really unit
tests, no, I mean, end to end
tests and UI tests, for example,
later on. And this is something
that we introduced that the
banking application as well and
I cared very deeply for. And I
took all of that as well to
Finn. And make sure that that
whole testing setup was just
rock solid from day one.
Jeroen Leenarts: You mentioned
testing, and I still remember.
You want to know, Samuel, he
will he got in? He got caught in
as a tester. And he actually
made the transition to a
software developer at ING Bank.
Yep. And he was really good at
it. And I think absolutely, to
this day, he still does software
development. And then then there
was the Caleb incident
Nandini Chauhan: with a chicken
dance. Yeah.
Jeroen Leenarts: Now, the thing
with Caleb, that's Caleb Repko.
scene, he now works at ABN, I
think, actually, as some in some
form of literal. But the thing
with Caleb, when he got on the
project, he found pretty much
the craziest edge case you could
come up with and the way he did
the testing, it looked like he
was surfing social media, but he
had always a phone enhance. And
his thumb was like, flickering
around on the screen. Because
and then you ask him, Hey, what
are you doing? And I was like,
Yeah, I'm trying to like repeat
some steps and see what happens
if I did it like 40 times. And
I'm like, Are you serious? But
he found things that that you
couldn't come up with on your
own. And I think that's actually
part of the focus on quality
that was actually ever present
in the in the IT banking app.
When we when the three of us
were there, when which I hope
still is there. But do you think
Nandini Chauhan: I will be more
appreciative of Caleb's efforts
if he was a bit humble about it?
It was never
Pim Stolk: this guy, this guy
was way ahead of his time, he
had this testing routine, which
was just from the future or
something and like you don't say
it's always found all the
possible bugs and when he found
them, he did a little chicken
dance. Yeah, you developer you
messed up and it was just it was
awesome.
Nandini Chauhan: Always rub it
in your face. But I
Pim Stolk: think that's also it
also describes the dynamics of
the team we had back yesterday.
A big bunch of crazy people,
almost everyone was friends with
each other, and we appreciated
each other's work. And if you
were very proud of the feature
that you built, someone else
will be even more proud if they
could break it. So yeah, I think
yeah, very good times. Very good
time.
Jeroen Leenarts: Yeah. So, um,
let's see. So at some point,
both of you decided to leave the
ing banking app behind, just let
it be and be taken care of, by
by other people knowing that
it's going to be taken well care
of. So you mentioned fin. What
is fin for? What kind of
product? Is it? You mentioned
IoT and some other things. But I
think it's still a little bit
abstract what people or clients
or companies can actually do
with this product?
Nandini Chauhan: Yeah, so
Nandhini. Okay. So, red fin is
an IoT payments platform. That
is, what we Okay, I'll do it
again, how we describe fin is a,
it enables any connected device,
so IoT device to perform
autonomous transactions,
including financial transactions
in a secure manner. So that sort
of the description of fin to
explain it in a very layman
language is, nowadays everything
is smart, from your coffee
machine, to your smart car, to
your home automation to your
smart fridge. So what FinTech
does is it enables these devices
to pay on your behalf. We
started with banking in the
branches, and then we went to
ATMs. And then we went to
internet banking, then to mobile
banking. This is a new channel
for banking, it enables your IoT
devices to do banking. Let's
take an example of your Smart
car. When you travel to a
different country before Corona.
Long a different era, when we
used to travel, for example,
from Germany to Austria for
skiing holidays, you have to
stop at that target and pay for
the toll ticket, right? So what
Finn would enable Is that your
car can pay for that toll ticket
on your behalf, you don't have
to stop, the moment you
approaching the toll gate, your
car would detect that it's about
to go through a toll gate, it
would connect to the light, the
company boom slug was called to
target company and then it would
pay for your license plate and
you can just drive through. So
it it creates a seamless user
experience for the end user. On
the other hand, it provides
these OEM manufacturers like BMW
or Toyota, or Tesla or whatever
car that you're driving fancy
car that you're driving, it
enables these companies to
provide additional products and
services to their end users. So
now as a car company owner, I
can also charge my consumers
with oh, now you can pay with
PayPal toll ticket, you can also
enable heating in your car
seats, you can also have
additional mileage, whatnot. So
it's a new, how do you say a
business model for these
companies. So it works on both
the sides. From a consumer side,
it makes my life easy. I don't
have to think about these
things. I don't have to think
about my coffee machine. I have
an espresso coffee machine, I
don't have to think about my
Nespresso coffee machine
ordering new Nespresso pods. The
coffee machine knows when it's
about to run out of these bots
and would order them online and
pay for them. And I would just
have to pick them up when they
get delivered. That's it. That
is more of on a very high level
what the platform does, if you
want to add something to it,
Pim Stolk: oh, there's pretty
descriptive fitness platform to
monetize any IoT solution. And
it can indeed be from a large
enterprise. But it can also be
for someone like us IoT
enthusiasts to have small IoT
project, which I want to
monetize somehow. And if you can
just find that billable event in
your project, what you want to
monetize, then Finn can handle
everything for you. And when I
say everything, I literally mean
that. So we take all the
security hassle away, the
payment has gone away the
syncing with your IoT device,
all of it. So we are not an IoT
Cloud. Now we are an IoT
payments. While service
provider, you can almost say
there's a little bit of a new
ones there. But black and white,
I think, I think that's correct.
And we went through great
lengths to create a rich set of
different type of SDKs for
different programming language.
So we have them in C Buyten. For
Android Things, we've created
something in Swift Of course, as
well. And in OJS, so you can
kick start. Every IoT project
that you're working on whether
SDK is very, very rapidly, and
this means that you have now
Well, we'd like to call it fin
enabled your device and the sky
is basically the limit and this
is also It makes the project so
difficult to explain. It can be
applied to everything. And
therefore, it's also very hard
to explain to certain people.
But if we can zoom into a case,
then we can always make sure
that we can fit into it. And
that is also immediately the
flip side of thing because it is
such a broad product. That's
that's also our pitfall. So
we're really trying to scope it
and zoom into specific
verticals. So yeah, less sexy
things. car washing plants, for
example, we have fin enabled
them as well. And I would have
never thought about that when I
started thin. But it works
brilliantly, because we've came
up with a concept called pay by
plate and you can drive with
your car through a carwash and
you don't have to stop. Of
course, if they're secure, you
have to stop. But you don't have
to pay you don't have to talk to
the operator the machine already
identifies you knows what you
prefer. Program is and it will
just start. And while you're in
the carwash, the payment is
settled for you straightaway.
And settling the payment is
something that that is very
powerful, because you don't you
might go to the to the car wash,
which you car. After that you
might stop at some drive thru
fast food restaurant to get your
burger. And maybe later on your
stuff for gas as well. On all of
those three things can be fin
enabled, so we do the payment
autonomously for you. And
because those are three
different transactions moment,
we will cue the transactions for
the day. And we will batch them,
add them together and and settle
them as one transaction. And we
do that to lower the transaction
costs and the payment speed as
well. And when we have the
entire transaction done, we can
also pay it out in a split way.
So in the case of the carwash,
just assume that the plant owner
needs a slice of the money.
Maybe we need to pay the
supplier for the soap and the
supplier for the for the water.
And Finn handles all of that for
you as well. So it's a very,
very broad system that can be
applied to many different
things.
Jeroen Leenarts: First thing I
think of of the examples that
you point out there is that
Yeah, normally a license plates
should pretty much be either
depending on the country unique
to a car or unique to a person.
But we all know these things get
copied. How does a product like
fin deal with that? Because you
don't want to be paying for some
criminals, car washing and
burgers, who's at the other side
of the country?
Pim Stolk: No, definitely
indeed. And fraud detection is
something that is very
important, of course. But if you
just leave that aside for now
and just focus on the
practicality of it, the back
plate is one of them. And
indeed, if you copy a license
plate, if you do it, well, it
might work. But then there's
also the case of the color of
the car and the brand of the
car, which we can identify, of
course to make sure that the
doll match. And we have
something that we would like to
call, you have to factor
authentication or multi factor
authentication. If we're just
not quite sure, we'll send a
push message to your phone
saying, Hey, you don't know
you're really in front of the
college right now. And you want
to make this payment go through.
Yes, no. So we tackle that that
way. But paper plate is just one
of the ways you can use fin but
we also have created a dongle
that you can put in your car.
And it's a hardware dongle. So
basically a hardware key. And it
has the same effect, it's
basically turns into a beacon.
And then you can pay through
that as well.
Jeroen Leenarts: Okay,
interesting. So but it's by the
sounds of it, it's of course,
mobile is a part of the main
product, because it's the the
the primary user interface for
the end user through the SDK.
But it's also a lot more. So I
already mentioned SDKs for all
kinds of programming languages.
And probably if you want to do
OEM integrations with a car or a
coffee machine, then it's
already way different than just
your regular mobile development.
So what have been the biggest
challenges in adopting this new
technology because as from the
banking context, you of course,
had all the internal transaction
systems within the bank, which
was taken care of behind an API,
we would attach an app to that.
But in this case, there's a lot
of, I'd say, greenfield
development that needs to be
done to actually be able to
enable these processes.
Pim Stolk: Yeah, that's
completely correct. It was
again, File New Project. And
that was amazing to do, not only
for for Xcode for the mobile
apps or the back end, but for
all of those different SDKs as
well. From the beginning, we
knew we cannot do this thing
alone. So nonlinear. He is a
strong believer in open source
as well and therefore we have
decided to open source all our
IoT SDKs because we can come up
with the concepts of how
something should work and we can
follow all the guidelines that
are out there to make something
great. But I really know and
really believe that there are
people work talent are more
talented than us in some
development languages and can
help us or contribute back
through pull requests or
merchant quests, and make the
SDKs better. And this is
something that we invested in
heavily. And that paid off
actually was amazing to see that
when we open sourced the IoT
SDKs, people started using them
and started to make them well,
better. And this didn't really
happen overnight, we had to do a
lot of promoting for that. So we
gave talks about it. We
organized meetups, where we just
really went hands on with these
SDKs and really listened to the
feedback. How can we make it
even more user friendly, etc.
And being open for feedback. You
mentioned Caleb earlier, and it
was Caleb, who said to me that
feedback is the breakfast for
champions. And I really think
that's true. Feedback is so
important. So we always listen
to everything that people say
and try to bring them back into
the into the SDK. So very high
learning curve, to make sure
that all the SDKs are
programmatically and
syntactically on par. But
amazingly fun to do.
Nandini Chauhan: If I may add
something to that to that one.
We will also because we are
startup so we we don't have the
same privilege as other
departments who find it to have
like a team of 5060 developers,
we had a limited budget, and we
had to go back to the Innovation
Fund every six months to ask for
budget. So we also had to be
very smart with where we are
putting our resources and where
we are putting the money. So
that's one of the reasons that
Tim and I, we decided to have
the core interest as well,
because that's our speciality.
And we could both of us could
easily start with that and build
something quickly. But also
everyone within the team that we
hired, and we were quite lucky
with to hire really smart,
passionate people that they were
quite broad skilled. So everyone
could help out in different
things as well. It's a startup
culture, where all hands on the
table when it comes down to it.
So you can't just say, hey, but
I'm just an iOS developer, when
it comes down to it, everyone
needs to be able to help out in
whatever the issue. So we really
had we really need picked the
kind of people that would sort
of help us broadly and not just
be have a very specific skill
set.
Jeroen Leenarts: So the the
project before the Cloner thing
happened, was it like a team
that was working at a at an
office or wasn't remote.
Nandini Chauhan: It's we worked
every single day at the office.
So it was 100%. offline, in that
sense,
Jeroen Leenarts: and I was House
been the the online workflow for
your teams.
Nandini Chauhan: Obviously, I
think it was, it was a mixture
of everything. It's also the
corona and the news that was
floating around, and just the
sheer panic of it all. That
doesn't help specially with your
mental state in general. But we
I have to say we adapted pretty
smoothly when I recreated a plan
of action right away when we
knew this was happening. So we
created sort of the whole
workflow to get people on board
to it. And then we had like,
Geek bots, so something for
stand up every single day, we
used to have calls. We decided
to have video calls. And every
single time we had a question,
so sort of create that culture
of reaching out to each other
rather than becoming your own
silos. So we really pushed for
people B, B over the script
descriptive of what you're
doing, rather than leaving
things for understanding because
that creates Miss
miscommunication. So we really
ask people to be like
overcommunicate, what you're
doing. And if this helped, and
also be, you know, obvious about
it, and don't wait until way too
long to raise a flag. So these
were some of the things that we
came up with upfront. But
eventually, it actually worked
pretty smoothly. Because we are
developers, we work in
technology. So if it comes down
to it, yeah, most of our work is
online. So it's not like you
have to Faasil if you have to go
to somebody and sort of sit next
to them or across from across
from them on the table. But you
do miss the collaboration, I
have to say I'm a big believer
of collaboration and there is
something that doesn't get
fulfilled over just a video
call. You sometimes have to just
walk up to the person and have
that conversation face to face
and say, or sit next to somebody
and do pair programming, which I
do kind of miss a lot. But
overall, we were quite
productive pretty quickly.
Jeroen Leenarts: So but do you
reckon that after the whole
Corona thing settles a bit that
remote will be part of the tool
sets at femininely?
Nandini Chauhan: Definitely. I
think there are also lots of
pros along with cons because it
saves you a lot of travel time
saves A lot of people
frustration of being stuck in
traffic, like them. So I think
it's, you have nicer colleagues
in the morning who haven't been
in traffic for an hour to get to
work. People have had their time
time to have the coffees and
they get to spend time more were
with the families, which is also
nicer for their mental well
being, well being. So definitely
I but I think we still have to
figure out sort of a sweet spot
where you can have that, and
also have the collaboration and
also have the flexibility of
walking up to somebody when
needed or have those, you know,
Team session or just team
drinks, where you sort of had
that human interaction. So I
think they would it would be
sort of a mixture of both.
Jeroen Leenarts: So um, one
topic that I wanted to touch on
one topic that I wanted to touch
upon, was swift being used at
the backend. And specifically, I
think Pam mentioned Cateura. So
how has how has swift on the
backend works out for the
product?
Pim Stolk: Yeah, it's a great
question. And it's been asked
more than once to me, and the
answer will still be the same.
And it's it worked out great
actually exceeded all
expectations. It was a little
bit of a bold move, I have to
say the beginning. But we were
true believers that it will work
when we started searching for
the right framework, because
back then there were not so
many, you had favor from Danner,
Nelson, I believe, perfect was
there. And of course, also can
do wrong. And we went with
Cateura, because it was built
within IBM. And we learned that
actually, the the Cateura team
was pretty much like ourselves,
it was a small team and a large
enterprise fighting for their
own existence, and building
software that while there was
just great. And on top of that,
I think it was Ian Pedrycz that
was also in the Swift steering
committee with Apple. So they
just gave us a really good
feeling. And we just went all in
No, no way back, actually. And
the reason for that I already
said that earlier is that we
modularized everything. And we
wanted to reuse as much of the
business logic there was, as we
could possibly do between front
end iOS and the back end. And
there was a little bit of
investment in the beginning, but
it paid off so quickly. With
finding bugs and development
speed. So yeah, it went very
well. Of course, there were
some, some some hurdles along
the way. At the beginning, we
deployed everything to the IBM
Cloud, I believe. We didn't
containerize it, we just
deployed it, and we run it there
and it went great. But as we
developed ourselves, the red
team also developed Cateura
itself and stuff just worked
out, they added Docker support,
for example. And this mean meant
that we could move away from the
IBM Cloud to a ing compliant
cloud, which is now Azure. And
everything just works out of the
box. The support that we got
from from the guys, that was
there was amazing. They really
helped us with everything that
we needed the even flew over to
Amsterdam, and we took them just
to talk about the next steps
with Cateura, and how to
implement things. So that that
really worked out.
Unfortunately, Ian and Nandini
what was mainly, of course, Ian
and Chris stopped working on
Cateura last year, I believe,
which is a little bit of a pity,
but it's the any song I believe,
who is now the community project
manager or maintainer who picked
up the project again, and just
make sure that it lives. And
that's the beauty of an open
source project. And we were also
inspired by that to open source
the IoT SDKs if you can't do it
yourself anymore, or don't want
to or found another ambition
there, then there is potentially
a huge community, you can pick
it up and continue where you
left off. And this doesn't only
have to be in feature
development, but also in
maintenance, of course with with
the Swift update. So looking
back now, I'm still very much
pleased with the decision that
we made back then.
Jeroen Leenarts: Okay, um,
before we, before we wrap up,
and Nandhini Are there any
thoughts or tips or advice that
you would like to impart on all
my listeners? Oh, wow.
Nandini Chauhan: tips or advice?
Well, the thing is, and I've
noticed that I can talk, I can
be very nerdy and talk about
hey, always watched the videos
and always read the latest blog
from Matt Thompson and stuff,
but I would have noticed and
from the very beginning of my
career until fin Now, the thing
that always stands out in terms
of any product and if you look
at the bigger picture is the
team and the people. So if one
thing you should Get right from
the very beginning, is to hire
the right people. And when I say
right, it doesn't necessarily
mean just the smartest tool in
the shed, obviously, you want
that everyone wants that. That's
the prerequisite. But what I do
mean is people who are
passionate and have the same
vision as you regarding the
product, because that takes you
a long way when things get
tough. When things are really
difficult people who believe in
the product and are willing to
sort of be with you and do the
struggle that's important. And
people who are, you know, people
that you want to work with every
single day, you want to wake up
in the morning, and you don't
you feel happy that I'm going to
work with these bunch of people.
I think that's the most
important thing. And that's
what, that's what worked at
Mobile. And that's what worked
at fin but with fin when we
already had that knowledge, and
we already had that experience.
So we actually took a lot of
time to build the team that we
have today. And eventually,
that's that's what matters is to
have the right people in the
team. That's one knowledge that
I would impart. Okay.
Jeroen Leenarts: And same
question to you, Pim.
Pim Stolk: Yeah, that's a good
question. And I think what
worked for me at least is,
besides developing software,
also develop yourself and keep
doing that. Pick up a book
occasionally. And it doesn't
really matter if it's a new
book, or a very old book, read
it, because some of the
principles might still apply.
And if it doesn't apply, at
least you get to learn about
stuff and understand why things
work the way they work right
now. And one other thing is to
step out of your comfort zone
from time to time. And that can
mean different things to
different people. But for me, it
meant stepping, stepping on that
stage and give presentations and
talk about what you have done so
far. And that is so not
something that comes natural to
me but it learned to appreciate
everything that we've done so
far. And I get energy from from
Dellinger to others and hearing
that it would help them forward.
So step out of your comfort zone
and pick up a book.
Jeroen Leenarts: Okay. Nandini
if people want to find out more
information about Finn, where
can they look online.
Nandini Chauhan: So we have our
website, make things when the
calm. That's where you can start
out, we also have a Twitter
handle, we have a page on
LinkedIn, we have a YouTube
channel, or you can just reach
out to me or pay. And then we
can also provide you with a lot
of information. So we're quite a
bit. How do you say available
and present online? Okay, just
for fun, and we'll be one of the
first entries will come across,
Jeroen Leenarts: I will make
sure to put some links in the
show notes. Beeman, Nandhini,
very much. Thank you for your
time, and I enjoyed talking to
the two of you. And I hope to
see you too soon. In the future
in 2021. Yeah, and, you know,
hopefully,
Pim Stolk: yeah, likewise, you
don't thanks. Thank you very
much for your time.