AppForce1: news and info for iOS app developers

Daniel Jilg co-founder of TelemetryDeck, analytics with a native mac and iOS dashboard

September 23, 2021 Jeroen Leenarts
AppForce1: news and info for iOS app developers
Daniel Jilg co-founder of TelemetryDeck, analytics with a native mac and iOS dashboard
AppForce1: news and info for iOS app developers +
Help us continue making great content for listeners everywhere.
Starting at $3/month
Support
Show Notes Transcript Chapter Markers

TelemetryDeck is bootstrapping when we record this. On the verge of signing up its first paying customers. Listen in on why Daniel created TelemetryDeck and what the future might hold…

You can find more on Daniel and TelemetryDeck here:

The I.T. Career Podcast
Your ultimate guide to success in the I.T. industry. Helping you Grow your career!

Listen on: Apple Podcasts   Spotify

Runway
Put your mobile releases on autopilot and keep the whole team in sync throughout. More info on runway.team

Lead Software Developer 
Learn best practices for being a great lead software developer.

Practical Core Data by Donny Wals
Learn Core Data from the ground up using new and modern techniques.

Riverside.fm
The easiest way to record podcasts and video interviews in studio quality from anywhere.

Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.

Support the show

Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me on Mastodon: https://hachyderm.io/@appforce1

Support my podcast with a monthly subscription, it really helps.

My book: Being a Lead Software Developer

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.

(Cont.) Daniel Jilg co-founder of TelemetryDeck, analytics with a native mac and iOS dashboard