Read the transcript
Jeroen Leenarts: Hi, and welcome
to another special edition of a
podcast. I'm sitting here with
Daniel Gibb. He's from Germany.
And yeah, he's working on his
own product called telemetry
deck. And we're probably gonna
dig into that. But also, I'm
told he has some opinions on
Swift UI. So I'm really looking
forward to what he has to share
on those two topics. So, Daniel,
Hi, how are you doing today?
Daniel Jilg: Hi, how you doing?
I am great. Thank you for having
me on here.
Jeroen Leenarts: So just to dive
right in. Most people know you
online. Because of the blue
beard. I think, yesterday, it's
not blue. I can actually, you
caught me on the camera. But
something else that you're
really working on is telemetric
tech, can you share a little bit
what that product is about?
Daniel Jilg: I would absolutely
love to. But first of all, the
blue the blue beard is coming
back this week, I promise. I
I've been I've been letting it
slide a little bit. Because I
don't know it's, it's I'm not
going out much. So I thought
Yeah, I don't have to read diet
so often. But yeah, this week,
this week, it's coming back,
actually. So telemetry deck is a
new service that I'm making
together with a friend of mine.
And it's an analytic service,
mostly for apps, but you can
also use it for websites or
whatever. And it's like, the
main reason for existing is that
it's like designed from the
ground up to not have any
identifiable information about
the users of the apps that it's
included in. So for example,
even if you don't know if even
if you know something about your
users, and you send any like
telemetry signals to our
service, even before it's being
sent to the server, we will
scrub any identifying data from
it, we will hash all
identifiers. And then on the
server, we will do additional
processing steps to also make
sure that none of the data is in
any way relevant regarding the
the GDPR. And so this way, you
don't have to put up these these
banners. And you also just you
have a clean conscience towards
your towards your users. Because
what you as a developer want to
know is like how many people are
using the iPhone 12 Pro Max, or
how many people are using the
iOS 15 beta or something? And
you don't really want to know,
like, I don't know, like, what's
my users name or whatever?
Jeroen Leenarts: And how do you
prevent, create being able to
create a persona based on the
technical parameters of the end
users device, because if I'm
told that on based on the
browser specifics of an end
user, there's actually quite a
lot of things that analytics
companies can actually tell
about that.
Daniel Jilg: Where the they can
they can identify recurring
users just based on that. The
thing is, though, that want the
people who use our product are
dealing with our they know their
users, usually, usually they
have a login or something. Or
you have the the identifier that
you get from, from the phone
that the identifier for vendor.
So identifying the users is not
the problem, what we do is like
we scrub any connection between
the identifiers that we have and
actual real human beings. So for
example, if we if you were using
an app that would use apt
telemetry deck, and then I don't
know the thing would, and then
the app would either use your
identifier for vendor or even
let's say, your email address or
something, it will first salt
and hash, your email address,
and then only send the hash
towards the server. And then on
the server, it gets get it gets
salted and hashed again. So
neither party can recover that
that data using a rainbow table,
for example. And then what
happens is that you know that
user A, B, C, D, E, F, G, 123,
has, whatever is that is your
phone. And you can you can
recognize each time user ABCD
starts the app again. But what
you can't do is just like have
any have any connection to a
recurring person. And another
thing that you also cannot do is
if you have two apps that you
both use telemetry deck, then
those two apps will have
different salts. So even if use
the same email address or
whatever the hash is, will be
different. And we shouldn't be
able to recognize the users now
if both of these apps Send the
very same send the very same
parameters, like, as a payload
in their signals, then there's
like a slight chance that you
could, in theory, connect those
two P, those those two, two
users to the same person. But a
we are very much not interested
in doing that, because our, our
whole business model is like
providing as much privacy as
possible. And we can't really
get any money out of connecting
that back to users. And also,
we, we disallow doing that, for
our users using the like, you
know, the, our privacy policy
and, and license agreement, our
users agree to not do that,
basically, because that's what
not what is what this is all
about. Right.
Jeroen Leenarts: And when you're
working on a privacy focused
surface, as an end user of that
service, it's also very
beneficial that your company is
actually located in Germany,
right? Yes, yes,
Daniel Jilg: we have, of course,
GDPR, which is all over the EU,
there's also individual branches
of government that are, whose
job it basically is to make sure
that privacy is being kept
everywhere that it's like
necessary. So for example,
there's some, there's a local
bureau in the neighboring city,
and I was able to call them up,
and they're gonna give me an
audit of telemetry deck server,
and a few weeks, and hopefully
certify it as being compatible
with all privacy laws. I'm very
sure that they that we are, but
it's really neat that we can
call up this, this government
agency, and they will, like
confirm that we are.
Jeroen Leenarts: Okay, and but
what made you decide that you're
wanting to develop, basically an
analytics service targeted at
app developers? And of course,
you already mentioned that you
also support web clients. But
what made you decide that you
wanted to get into the analytics
business?
Daniel Jilg: That is a good
question. So the short answer is
that I just love like statistics
and data and stuff like that.
And so I had two starting points
for this. The the one starting
point is that a few years ago, I
wanted to make a product that
would be that would help
developers do a B testing for
their apps. So it would be like
a tiny server. And then the apps
could ask the server Hi, I'm at
with the idea what Id whatever.
Should I show feature a or
should I show feature B, and the
server would like give, give,
give consistent answer. And then
over time, you could roll out
the feature maybe, or something
like that. And spectacularly
flop, like no one was interested
in this because only big
companies are using a B testing.
And those have their own
implementation. So no one was
really interested. But the whole
idea of like having apps
communicate with a server that
would like control, the whole
fleet of the apps was kind of
there. And then the other thing
was that I created a few of my
own apps just as a as a hobby on
the side. Last year, I created
an app called Libi, which is a
an app for self measuring, so
you can enter your mood, and
stuff like that, and then can
correlate it to various other
data, like your activity data
from health, for example. And so
I wanted to know, like, how many
people are actually using this.
So I started just writing my
very, very own a very, very tiny
analytics package, which was,
which was just a Python script.
And the app would basically send
once on startup would send like
a little JSON package there.
Just the identifier for vendor.
And I don't know, like a few a
few pieces of data, like, for
example, how many data points
were actually in the database,
which correlates to how long has
this user actually used the app,
which was, which was very
interesting to me, because like,
the app gets more useful,
because it calculates all these
correlations, the longer someone
uses it, right. And so I had
this, I had this little
analytics package. And I was
like, Hey, this is really cool.
But it's very, it's very clunky.
Like every time I want to, I
want to query the thing I need
to like, write new Python. And
it's, it wasn't really
completely privacy aware. So I
added hashing for the user
identifiers because I really
didn't want to know anything
about the users and Then someone
suggested, or someone asked me,
okay, can I use this for my app
as well. But you should also add
hashing on the client side
first, because the first version
it was I was only hashing on the
server side, which is kind of
insecure now that I think about
it. And so I was thinking about
this. And at the same time, the
lockdown started, right COVID
hits, we all spend our times at
home. And I'm a freelancer. So I
had just finished a large
project, I didn't have another
project starting just right now,
because the plan was actually to
travel the world together with
my wife in 2020, which didn't
really pan out. So I was like,
sitting at home, no clients,
because I had told them all I'd
be like traveling for a year.
And I was thinking, what would
it take to set this up properly?
Like, if I was like creating
this recreating this Python
script, but in good, what would
I need. And so I just kind of
started hacking away, like, I
felt like trying out this
framework for using Swift on the
server, paper. So I just created
a server and vapor. And then I
felt like trying out swift UI.
So I created a client in Swift
UI for displaying graphs and
stuff like that. And that's kind
of how the whole thing got
started. And I started posting
about it on Twitter. And people
were like, super interested from
the very beginning. So I was I
was, I was super overwhelmed. So
I quickly realized, okay, okay,
okay, I have to, I have to do a
sign up page now. And at first,
it was like, close signup page.
So you had to enter your email,
and then I had to click a button
somewhere, to actually unlock
you. Because I was very afraid
that they would overwhelm my
server, which actually happened.
And I had to switch technologies
a few times, especially on the
backend database side to be able
to really give like to really
like churn large amounts of data
in real time. And but yeah, then
like, more and more people are
signing up, I have a good friend
of mine is joining me in
creating a business out of this.
So we're founding a company
together. And we even have a few
investors lined up.
Jeroen Leenarts: That's really
cool. And what's also
interesting is that you
mentioned back there that you
initially created the backhand
in favor. And from what I
understood, what you said before
that even is that the current
backends is created in Django.
Is that correct?
Daniel Jilg: Oh, no, that's the
other way round. Like the first
backend was in Python, it wasn't
even Django, I think, I think it
was flask, but it might have
been Django, because like, I've
like I've been doing a lot of
flask and Django. So usually my
servers are written in Python.
But for this one, I actually
wanted to try out vapor. And the
backend is still in vapor. It's
there that is actually pretty
performant. Like it's it takes a
while to get used to. But it has
a few advantages that a Python
back end wouldn't have. First of
all that it has the I have like
a one like Git sub module that
has all the structs that are
like that might like the desktop
app and the server are using to
communicate. So I never have to
think about JSON, because just
the structs get like serialize
to JSON and then on the other
side, they get serious back to
the same struct. So it always is
kind of guaranteed to work,
which is super, super
convenient. Like, I need a new
field somewhere I just I just
added, I have to think about
like the old versions that are
already out there, of course,
but other than that, that's
really convenient. And the other
thing I can do is, with Python,
you kind of have only one
process you have. You have kind
we have you don't really have
the powerful threading, and
async synchronicity that Swift
has, like you have a little bit.
But for example, if you want to
have a recurring task that's
doing something, you'd have to
do a cron job or something and
with, with Viper, I can just do
do that all on the same binary
and have like, just saturate all
the cores of the server with
various like asynchronous jobs
that need to be done like for
caching for processing incoming
signals for stuff like
Jeroen Leenarts: that. Okay, and
just to just start to lead this
whole story A big bet to leave
the story a bit back to iOS
development. As a freelancer,
you've been an app developer, I
guess. And what's your focus
mainly on iOS development with a
Python based backends? And did
you then venture into this, but
by looks of things is now
becoming a business? And
probably your main focus area?
Were developing iOS apps before
this, or what was your? What was
your career looking like at that
time?
Daniel Jilg: Yeah, that's
correct. Like, basically was
like 50%, Python and Django and
lots of like, data science
stuff, and 50% app development
with Swift for iOS. So I would
either switch back and forth
between Python projects and iOS
projects, or I would find
somewhere where they have a
Python back end, and then the
iOS app that connects with the
Python back end. Because those
are just my two specialties, it
seems.
Jeroen Leenarts: And if you look
at the products that you know,
or the surface that you're not
creating, and it probably has
some, an iOS SDK so that you can
easily connect to it from our
clients app. And is that also
available for other platforms,
like Android and the web
package?
Daniel Jilg: There is kind of
the SDK is available as a Swift
package. And it's also available
as JavaScript documentation. And
we have also published a, a
specification of our ingestion
API, so that developers can
write an SDK for Android, for
example, someone asked for an
SDK for C sharp to include in
Unity. But the thing is, right
now, I'm the only programmer on
this project. Well, that's not
that's half true. I have like a
I have an intern now. Hi,
Schelotto. If you hear this, I
have an intern. And she's very,
very capable. But she's only
like Gabby can can only help me
out for a few hours a day, of
course. And so right now, I
haven't created a any other
SDKs. But those are, of course,
planned. Yeah. So either. The
SDK is are all completely open
source and license free, because
we want people to include them
into their apps without having
to very, very about licensing.
So there is a license file that
just says like, this is your
code, and I'll do whatever you
want with it. And I think it's
FreeBSD without claws, too, if
you're interested interested in
the details. And people have
been very, very helpful in
submitting pull requests for the
iOS or the Swift SDK. You can
also include it in a Mac app, of
course. And people have also
been offering to write other
SDKs for Cochin, for example,
but that hasn't materialized
yet. Like we had a few people
try it out, but no one has
actually finished a proper SDK.
That being said, just sending a
signal, it's just one HTTP
requests. So you can just have a
very low level implementation
that just whenever you want to
tell the server about something
that's happened, you just send
an HTTP request.
Jeroen Leenarts: It doesn't
negate that company that you're
working on. That it's still very
much in the in the bootstrap
phase. Oh, yes, very much. So
you just have to serve life. You
just have your first customers
that what's it like to actually
build something and just get
your first customer that
somebody is actually willing to,
to hand over real money to us
when you create it?
Daniel Jilg: Oh, yeah, it is
exciting. And it is. Like, it's,
it's terrible and horrible.
Because our like, of course,
it's awesome. But that this, the
main feeling that I have
sometimes is like, regardless of
how much work I put into this,
it's always not good enough,
because I'm thinking like, these
people are paying their hard
earned money for this, like, I
need to make it better. Yeah,
and especially with the desktop
app. I am. I am very, very
disappointed with myself all the
time. Like every time I release
something like okay, this one is
good now. And then the next day
I look at it and like it's okay,
but these are the problems 12345
So as I'm always working on
that,
Jeroen Leenarts: and if you look
at the stage that the company is
in now, yeah, you have a few
investors you have been
customers, if you wouldn't have
the investors is the company
itself already self sustaining,
or is it still building up to
that.
Daniel Jilg: You're actually,
well, by the time this podcast
comes out, we will probably have
paying customers. Right now
we're still in the beta phase.
Yeah. So all our customers are
using the product for free. But
we have also already informed
our big customers like those who
are above the free plan in terms
of like number of numbers of
telemetry signals, that we will
be starting to charge them in
September. And most of them have
been have been very happy about
that. They're like, I've heard
multiple times. Yes, please, I
want to pay you so that the
service will be able to
continue? Yeah. Right now,
that's about 20 or so if more
than seven of these people will
pay their monthly fee, which I'm
very, like, pretty confident
that they will do. We can pay
our servers.
Jeroen Leenarts: Yeah. Yeah. And
then and then it's from there,
you have a starting point to
start building up to actually
creating an income for yourself
and and your business partner.
So that's quite an exciting time
that you're in right now. Oh, it
is it is so exciting. And is it
like, every day that you wake up
that it's the first thing that
you think about? Or what's it
like?
Daniel Jilg: It is like, this
morning, I woke up. And I've
been I've been talking with my
intern about a new a new server
feature that we wanted to
create. And I woke up just
before my alarm alarm clock
rang. And I was like, I know how
I want to implement this. So I
went to my computer, wrote an
email to her. And I was like,
Okay, I'm gonna do this, and
then this, and then this. And of
course, she wasn't awake yet. So
I was like, Okay, I'm gonna
write this down. And basically,
within an hour, I had this
feature done. Because she had
done a lot of preliminary work,
and I could just integrate it in
the server, and then I make my
breakfast. So yeah, it's very
much it's very much something I
think about a lot of the time,
I, I try very hard not to let it
consume my whole life. Like I
don't want to, I wouldn't want
to get burnt out. I, a mentor
that we have the founder of,
there's a there's a company from
around the corner, he called Box
krypter. And their founder, he,
he kind of took it upon himself
to be our mentor. So he has all
these nice tips and everything.
And we call him every week. And
one of the things he said was
that you are actually allowed to
have fun while you're co
founding a company. Like it is
like, you don't have to suffer
during this phase. I mean, of
course, it's going to be
stressful. But no one says it's,
it's it's has to be grueling. So
allow yourself to quit working
at a reasonable hour. So you're
refreshed the next day, for
example? Yeah. My business
partner, she went, went on
vacation for a few days last
week, I'm going to go on
vacation next week for a few
days. And these are things that
we are allowing ourselves in
order to, to keep this to make
this into a marathon, not a
sprint.
Jeroen Leenarts: Yeah, yeah, you
want to make sure that not only
the company survives, but that
you as a person, also exactly,
stay sane and, and not go crazy.
By all the work. You also
mentioned back there that
there's a Mac client for your
service. Is that also where your
experience with Swift UI comes
from?
Daniel Jilg: Yeah. So you like
once you receive all these
signals, you want to view them
somehow, right? And first of
all, I thought of making a
website. But at the time, that
was kind of a hobby project for
me. And I was like, Hey, I could
try out swift UI, because then I
can make a desktop app and an
iOS app at the same time.
Because the that compiles to
different platforms, right. And
so in my mind, it was just
awesome. I started working and
you know how it is when you
start with Swift UI. And
everything just works, you write
three lines of code, and it
looks beautiful and displays at
the correct size and the correct
way everywhere. It is really
nice. Now. My problem is, the
problem is with Swift UI that
once you have like a reasonably
complicated app, then suddenly
things get complicated. You have
multiple environment of For
example, you get these you get
weird race conditions, you want
to do stuff that you're you
reach the points where where the
system is just not there yet,
because it's very, it's very
it's very youngster, right. So
things are just like things that
you can do with UI kit or app
kit, are just not available yet
in Swift UI, so you kind of try
to hack it a little bit, or
maybe you find a solution, but
it's inverse, like going deeper
into the system. And then it
works. But then two days later,
you discover Wait, but it works.
But if I click here, the whole
app crashes or whatever. Yeah,
another
Jeroen Leenarts: one of those
typical examples is that in in
UI kit, it's quite simple to use
a Fetch Results Controller that
provides data in sections, try
doing that in in iOS 1314. And
then there's this nice sweet API
becoming available in iOS 15,
that allows you to do sections
in a table view, based on core
data and that it actually
performs so it's not mature yet.
Daniel Jilg: That is, yeah, that
is the problem. At first, at
first, I thought, Okay, I like I
I'm used to being very, very
knowledgeable in UI kit. So
probably, it's just me bumping
against learning something new.
So I took a step back, went to a
few virtual conferences, and try
to learn as much as possible
about Swift UI, and I learned a
lot of things that are very
valuable, like, for example,
decompose your views, as much as
possible into these tiny bite
sizes. And then also only
connect your environment
objects, to the views that
really, really need them. And
also, like, keep your
environment objects small and
specific. Because otherwise,
like their changes will trigger
like, your whole UI to read and
stuff like that. Yeah. And so
things got better for a while.
But, um, I either I haven't
cracked it yet. Or I'm still
just running against these
walls. Like, there's a Class A
class of problem that I always
seem to run into, which is
basically, as soon as long as I
can do everything with, with the
various methods of manipulating
manipulating state. Within a
view, I want to I wanted to say
View Controller, but it's just a
view, right? And then
everything's fine. But as soon
as navigation gets introduced,
or I need to, I need to do
something based on in reaction
to something else. Then it gets
complicated, like, because if if
navigation is involved, suddenly
the state, I don't know, it
gets, it gets a bit mushy, like,
you press this button, or you
select this thing in the list.
And then I in the response, I
want to push a new view. It
works with list and navigation
link and stuff like that. Except
for when it doesn't, or except
for when I want to automatically
navigate multiple views deep
because maybe you have a deep
link or something like that. And
then suddenly, all these
abstractions kind of break down,
and I'm left with these weird
hacks, and they kind of work but
then you realize later that
you've broken something else.
And this is the state I'm in
right now. And I'm, I'm pretty
frustrated, I'm trying to I'm
trying to work around these
things with solutions, like
combiner, whatever. And I've
also I also have, on my
computer, I have a version that
is kind of updated to the newest
SDKs that can do, they can use
the new versions of everything.
And that kind of fixes a few
things. But it makes other
things worse. For example, for
me, on the Mac OS app, you have
these new grid views that are
kind of like the table use of
Jeroen Leenarts: Africa. Yeah,
that's one of those things.
Wasn't this supposed to be cross
platform? And if you start using
those grids,
Daniel Jilg: nope, but they did
say they did say that being able
to compile an app from both from
the same code into both
platforms, is kind of
incidental. And this is also a
something that I noticed as time
goes on, more and more of your
views get duplicated, and you
have like one of them for iOS
and one of them for Mecco as but
maybe they use the same
components. So that's actually
pretty fair. Yeah. So it doesn't
have to be it doesn't have to be
cross platform all the way the
thing is just like this new
table view is I don't know the
performance is not very good.
Jeroen Leenarts: Yeah, been
there that try that gave went
back to you for that one.
Daniel Jilg: So I'm like, Okay,
I had this other thing, like,
third third example for problems
that I have with Swift UI, and
then we kind of can can kind of
move on before this guy
Jeroen Leenarts: is still great.
But yeah.
Daniel Jilg: Yeah, yeah, of
course, like, in retrospect, I
should have just waited for at
least one more year before
before writing this in Swift UI.
But I kind of wanted to try it
out. Right. And, I mean, now I'm
here. Navigation and Nicoise.
What I wanted to have is like a
three pane navigation, like,
like, if you look at Xcode, for
example, on the left, you have
your files in the middle, you
have your code. And on the
right, you have your inspector.
That's what I wanted. And, and I
wanted it to look cool. So that
inspector, also the panes also
kind of intersect this side,
this, the toolbars, you know, so
they have their own toolbar and
whatever. And in my mind, it was
so cool. And then I'd kind of
try to implement that. And it
worked like 80%. But then it
turns out that also, you can
resize the panes before they
appear. So my middle pane is
always like, I don't know, 200
pixels wide. And also,
navigation breaks in unexpected
ways. Yeah, yeah. So this is
where I am right now. I'm just
like, I ripped out the third
pain again, and just make to
meet, you know, in horizontal
stack. And I'm just rewriting
all that code to not use
navigation links anymore.
Jeroen Leenarts: Yeah, it's,
it's challenging. And you find a
way, I guess. So just to recap a
little bit. You've been
freelancing, and then when the
pandemic hits, you started
telemetry deck. But we're still
missing a large chunk of your
history. And that's actually
before the game. What's the
first computer that you actually
got your hands on when you were
small?
Daniel Jilg: Ah, that is a good
question. Okay. So there's two
things that I kind of remember
the first was, there was
definitely before I was able to
read, like I was a tiny age four
or something. And I discovered
that if I ran up to the computer
that my dad and his buddy had
kind of built with its
monochrome monitor and
everything. And during boot
time, if I would press this key,
which I assume must have been
the delete key or something, it
would enter the BIOS, I didn't
know what the BIOS was, but
suddenly, the whole screen was
lighting up. And there was text
and was interesting. And I could
play around with the arrow keys.
And that must have given my dad
and his buddies of headache.
Jeroen Leenarts: Yeah, I can
imagine. Yeah. But
Daniel Jilg: that was kind of
cool. And later at the next
computer that the family had, I
must have been like, eight ish,
maybe it had a color monitor.
And it was all das computers.
Like, I was not we didn't have a
Mac, we were kind of poor. And
we were also like, years behind
the curve. I think like by that
time, like it must have been
like a 286. And by the time like
the first Pentiums have, we're
probably probably released
better tech. It had a color
screen and had it had Q basic.
And with Q basic you have this
these these games that kind of
came with them like with the
source code, there was one that
is kind of like the first Mario
game with Donkey Kong had like,
throwing down the barrels or
something. And there's one that
is like the snake game on Nokia
phones. The Cube basic
implementation is called
nibbles, I think but you you
know the game, like you have
this tiny yellow snake and you
have to eat them. I don't I
think numbers or something. And
every time you eat a number,
your snake gets longer. And at
first, I was just trying to play
these games, right? I know, I'd
like I love the I love the snake
game. And then it kind of got
too hard for me. And so I tried,
like just like randomly changing
stuff. And it was not very
effective. But it kind of did
work like I managed to to trick
the thing into into the skip
just giving me unlimited lives
or, or being like slower than
usual. So I could beat the game,
which was very fun. So yeah,
then I kind of lost computers
for a while and went into like I
wanted to go. I thought I was
bad at maths. So I thought I
could never like do anything
proper with computers. So I did
a lot of gaming, and I did a lot
of programming actually, just as
a side income all all the way
through school. But somehow,
somehow I had this distinct idea
that I would never be able to go
to university and study pewter
science because I was shitty at
math, you might have to believe
that out. So, even though I was
like actively making money
programming with 14 years, and
then all the way through through
the end of school, I would I,
because I went straight from Q
basic to Visual Basic. And then
from Visual Basic to Delphi,
from Delphi to I want to say,
PHP and then Python. Yeah, so
finally, I saw I put all my
energy into becoming or wanting
to become a designer. I had like
a cracked version of Photoshop
like everyone had. And I tried
to draw with my bare hands as
well, which was not very good.
And in the end, towards the end
of my school career, I got like
a really good math teacher. And
she kind of explained things to
me in a way that I could really
understand. And she also taught
me even if you were bad at math,
you can still be a programmer if
you want to.
Jeroen Leenarts: Yeah, that's
not something that's a
requirement for most, most
programming challenges to be
able to do like calculus. And I
don't know exactly
differentiation and stuff like
that.
Daniel Jilg: But it's also kind
of the way math is taught, I
think, like, it never really
clicked for me. And until, until
this very good teacher just
explained things to me in a way
that just was like very
accessible to me and very, like
started from the basics and
build stuff up. So yeah, with
that, I kind of finished school
and was like, super motivated. I
did my civil service, which is a
thing you had to do back then in
Germany. They kind of abolished
it a few years ago. But
basically, you can either do
military service, or you can
work in a hospital, for example,
for a year. And I worked in a
drug rehab center, which was
very fun. And very education.
Jeroen Leenarts: Also
challenging. I guess he
Daniel Jilg: ever was cool.
Like, it was like something
different. It was I got to know,
different kinds of people, the
people who worked there who
people were the clients there,
and I got to experience like
different realities of people.
Yeah. And so I think it helped
me become more open and more
understanding and empathetic
towards different kinds of
people with different kinds of
histories.
Jeroen Leenarts: You learn with
civil service, like that's at a
rehab. That's, that's are very
different people with different
challenges. Yeah, in their
lives. And, yeah, unfortunately,
some people they slide into an
addiction, and they need to
fight their entire life to stay
clear of that. So yeah, that's,
that's quite a confrontation to
sometimes get with people that
have to deal with these
problems. So yeah, then you
finished your, your civil
service, and then you also
already finished your education
at that point, or is that still
ongoing at that time?
Daniel Jilg: I finished school,
so but I did apply for
university. Okay. And I actually
got in, and I have a bachelor's
degree in computer science now.
I didn't want to do the masters.
Because it took a bit longer
than most people for the
bachelor's, I think I took eight
semesters, when when when most
people take take six. And so by
the end, I was like, okay, um, I
think most of my friends have
moved on from university. And
also like I had, I had continued
to do freelance jobs on the
side. And I had this one client
who was very keen on hiring me.
And so he kind of funny Lord me
away from from doing my masters.
And so I just went to work for
him. And that was, when does
that was a year after the
iPhone? App Store was released.
Jeroen Leenarts: Okay. Yeah, so
that's the iOS four timeframe,
right?
Daniel Jilg: Something like
that. Yeah. And back at the
time, I had an iPhone three Gs,
which was like my pride and joy.
It was amazing. That thing I
remember buying it like had I
had like, saved up money for for
a while. And then I went to the
local to local shop bought it
and you could only buy it with a
special contract. And back then
that contract had unlimited data
like no, like, no ifs, no buts,
just whatever data you can slurp
through the thing. Because
people were used to edge speeds.
Yeah, but but the 3g s of
course, had 3g. So I bought the
phone. And I asked like when is
when is the new contract active,
like When can I start using the
data. And the person the shop
was like, um, it should be
active by the time you get home
like so go home, do the setup,
and then you can just use it. So
I went home, I set the I set the
iPhone up, which back then like
me meant, like connecting it to
iTunes and entering all your
data on your on your computer.
And then I I just spent the day
doing, Daniel things I don't
know, I don't remember. But in
the evening, I met up some
friends in a bar. And we spent
the whole evening watching
YouTube on my new iPhone 3g s
over 3g, of course. And it turns
out, the contract hadn't been
activated. So I owed that
company about like, three or
4000 euros or so they claimed I
managed to I had to pay it.
Luckily, my parents like could
were able to, like borrow me
that money. But I was able to
get it back after like, I don't
know, nine months off of
fighting with her.
Jeroen Leenarts: Yeah, that's
insane. That's just due to a
technicality. They make you pay
like a couple months of income
really, if your life. So kind of
horrible, but for it
Daniel Jilg: was it was a
mistake on their part. But it
took a while for them to, to
agree to that. And by that time,
their collection agency had
already was already like, Okay,
you owe us this money, you will
will have to give it to us now.
so horrible. But the thing was,
I had an iPhone. And then
suddenly they announced the
iPhone SDK. And of course I had,
I think I had a jailbroken. And
there was Erica said, June, who
did all these, these blog posts
and I think Usenet posts or
something about programming on
iPhone, even before there was an
SDK. And so I played around with
that a little bit. And then the
SDK came out. And what happened
was that of course, I was like
diving into that I was like, so
motivated to write an app for
the iPhone. So I was kind of
thinking my day and consisted of
a lot of learning for university
at that time. And my my
girlfriend at the time, she had
trouble concentrating on our on
our stuff on our on our chores
on our learning. So we thought
it would be cool. If I wrote an
app that would give you like a
Pomodoro timer kind of thing.
Back then I think it wasn't
called Pomodoro. Because that
name wasn't invented yet. But
like I heard about, like, I
heard it called the 10 plus two
techniques. So you work 10
minutes. And then you take a two
minute break, and then you work
10 more minutes. And the idea is
that you could stay concentrated
for 10 minutes at a time,
especially with the carrot of
being rewarded with a two minute
break at the end, right. So I
wrote that app. The business
logic took me about a day or so.
And then I spent at least three
weeks polishing the user
interface. I had paper
prototypes, mock ups in
Photoshop that I showed people
on my iPhone screen, I asked
them what happens if I press
there? Or I asked them like,
what? What would you do to start
the timer or whatever. And
finally, I polish that up, and I
released it for one euro. And
that was just when the apps are
open. So I was among the first
100 apps in the App Store or so.
And so that one euro app kind of
paid my rent for
Jeroen Leenarts: a few years.
Yeah, that's That's amazing.
That's like the early days, not
at
Daniel Jilg: once. The first
years of the app store. They
were there was so easy to make
money, you just have an have an
app that kind of looks nice.
That is somewhat helpful to some
people and people will just buy
it for actual money. Yeah.
Jeroen Leenarts: That's crazy.
So yeah, that's, I think, I wish
three or four that's like the
wow, that's like over 10 years
ago. So yeah, in the meantime,
from then, till now that you
started your business called
telemetry deck. Did you do
freelancing all those years as
an iOS developer, and then also
some back end development with
Python based solutions.
Daniel Jilg: I didn't actually I
was so at first i, i At first I
was I was worked for that
company after university for a
while but then some friends were
like, Hey, we all seem to be
employed at this one company
that is kind of starting up in
our Right now, and they're
looking for an experienced
iPhone developer, and you're the
only person who can do iPhone
stuff right now. And so I went
to them. And they were kind of
interesting because they had
like big clients like the shop
that was I was working for, they
had like, I don't know, a local
insurance company, whatever. But
these people had BMW and Audi,
and I think a few other car
makers, and they had, like, all
these very interesting and cool
clients. And so I was like,
okay, sorry, I'm gonna quit my
job after six months of work for
these other guys. And somehow, I
started as the first full time
programmer there, they had,
like, they only had interns
before that. And then some,
someone came on who's still a
very good friend of mine flow,
who's a designer. So one of the
best designers that I know he's
a P IC H FL on Twitter, if you
want to look him up. That's
pitch for if you speak German.
And so he and I kind of started
started hiring people. At first,
it was less mostly working
students as interns. But then
over the years, those kind of
got turned into normal
employees. And then we kind of
tried to make them into senior
employees by giving giving them
all our knowledge. And after a
few years, this fresh company
has grown from just me to about
50 people or so with me as the
as the CTO. And what we were
doing was mostly agency stuff.
So people would our like,
companies would come to us and
be like, hey, we need an app,
can you do one for us? And we
would be like, of course, what
do you need. And they would be
like, we do not just everybody
needs an app. Now we heard so
please make us an app. And so we
try to make a concept for an
interesting and cool app for
them, and present it to them and
try to sell to them and then and
then build it. And what I try to
do as a CTO was to street to try
and streamline the process as
much as possible, right, because
at our at the biggest times, we
would build like 30 to 60 apps a
month. And that only works with
very standardized components. So
of course, the design and the UI
has to be has to be individual,
but many of our clients would
would want some kind of CMS for
managing the contents of the
app, because they kind of looked
at the app kinda like a website,
but with more interactivity. And
especially if they didn't really
have anything cool, then that's
kind of the only thing that we
could offer offer to them if
they really wanted an app. So of
course, the whole CMS stuff, we
all had that. We built that once
and we kind of liked and
licensed it to every customer
that wanted it. And so that was
kind of written in in Django,
for example. And people could
change the contents of the or
the informational contents of
their app in on the web for
example. We had we had like a
our stuff for a window maker
company, for example. So you
could preview their new windows
and I don't know sunshades and
stuff like that on your house in
AR which was very cool. So stuff
like that we did like some some
stuff for a fitness company
where we we bought two Microsoft
X Box connects cameras, and then
put them at a right angle. And
then we did all these fitness
exercises, filming us and then
using the data for motion
capturing and so you could we
had this little 3d animated
puppet that would like show all
the all the techniques for the
various fitness exercises. And
so yeah, that was that was
pretty cool, but it was also
very fast paced. And after I
don't know five or six years, I
was kind of done with with
with the pace of the of the of
the of the whole thing, and I
wanted something slower. So I
left went to a company called
Elgato which were just starting
to make HomeKit accessories and
gaming stuff like they do a lot
of like accessories for
streamers. Stay with them for a
while. For them. I made I worked
on the iPhone app as well as
various server products. After
that, I became a freelancer
because I kind of wanted to do
like, different projects
I wanted to work on. And so a
friend of mine who's been a
freelancer for a while, Alex
Rapti. He, he kind of asked me
on this project, and I was like,
oh, yeah, this sounds really
cool. And I worked with him on
this, I was some kind of video
project, I actually forgot what
it was. But it was kind of my
entry into working freelance. So
it ran for about a half a year
or so. And then it was done. And
it we actually released on time,
and we were paid well, and the
the people I was working with
are absolutely pleasant and very
nice. And so I was also this is
what it's like to be a
freelancer, I want more of that.
And of course, not every job was
like that. But I was very lucky
with my clients, and the people
I was working with. My goal is
always to be in a very open and
friendly working environment.
And somehow I seem to have
attracted other people who feel
the same way. So it's always
usually very chill. And I
usually seem to work with people
who are who know that to be a
good software developer, you
also have to be a decent human
that is able to communicate with
other human beings, for example.
Jeroen Leenarts: Yeah, and
that's an important aspect of
software development, really?
interaction with people. Yeah.
So yeah, then you started doing
freelancing. And, yeah, that was
something that you liked. And
then all of a sudden, you
decided, okay, I want to be a
service guy, I want to like,
sell a service to people. And
that's where telemetry data
because
Daniel Jilg: I want that service
to exist, it needs to exist, and
no one else is doing it. So I
might
Jeroen Leenarts: as well. So
yeah, are we full circle? Now?
Did we miss anything? Almost
Daniel Jilg: almost. After I
don't know, three years or four
years of freelancing, I actually
did a second stint at Elgato.
And they wanted to have like a
huge backend server side kind of
thing. And I think it's released
by now, because actually, I
don't know, I'm not gonna check.
But they wanted like a huge kind
of thing that looks very much
like the, like iTunes Connect
for the App Store, but they
wanted it for their services. So
for people to upload custom
content, basically. But I'm not
going to go into details. So I
built that for them. And then
when it was done, they were
like, ah, we also need something
for analytics. And I'm like, Oh,
yes, I want to build something
for analytics. But I don't want
to build it, and then you own
it, I want to quit and then
build it and then sell it to you
or license it to you. And they
were somehow happy to do that.
So I did quit. And then I was
thinking I would do that after
my my World Tour basically. But
that's kind of where the like
where I get the last impulse to
really do this, because I knew
that at the end, there was a
possible client for that. And it
never actually materialized.
They changed their direction. i
The people who wanted to license
this off me, I don't think they
even work at the company
anymore. But no hard feelings.
There was just this like the
last push that I needed to get
to get started listening to no
or full circle.
Jeroen Leenarts: Yeah, that's
quite a story really, that I
think I asked like five or six
questions, and you really just
took it from there because well,
it was very engaging to listen
to really. And I know people
will probably have some
questions when they listened to
this. And what's the best way
for people who have listened to
this episode to get in contact
with you and ask a question if
they happen to have one.
Daniel Jilg: Oh, yeah, you can
follow me on Twitter or write to
me on Twitter. I'm break the
system. That's just one word, no
spaces. You can also check out
telemetry deck at telemetry
deck.com, or the telemetry deck
Twitter account.
Jeroen Leenarts: Yeah. So yeah,
enough ways for people to
actually get in touch with you
and have a look at your work and
your current project. And yeah,
I really look forward to to see
how telemetry deck will will
work out and whether or not it
it will take off successfully
because I can imagine that right
now is a very tense Time for the
company. So if you could even
already call it a company, but
Daniel Jilg: yeah, we are
incorporated as of four days
ago. So it's a company now.
Yeah, so
Jeroen Leenarts: that's just
very for people. If, if somebody
has an idea, then Corona hits
and then you have a couple of
months and all of a sudden
you're like a company owner and
you have a business and a
surface life and ready to grow
and who knows where you will end
up with, with this. Right. So,
Daniel, thank you very much for
your time.
Daniel Jilg: Oh, thank you. It's
been an absolute pleasure. Thank
you so much for having me.