Tadas found embedded development less engaging and switched to mobile app development, which he found more enjoyable and creative.
Tadas initially tried Android development during his university internship but found it less enjoyable compared to other development frameworks like Flutter.
Tadas discovered Flutter while looking for a cross-platform development framework that would allow him to build apps for both Android and iOS, and he found it more enjoyable than other options like React Native.
Tadas had limited software development experience, particularly in coding, as he focused more on hardware and assembly code during his computer engineering studies. He had to quickly learn C and other programming skills for his job at Navistar.
The most challenging part was the rigorous review process for safety-critical software, which involved multiple rounds of reviews for requirements, design, and code before it could be deployed.
Tadas found the process at Navistar too rigid and boring, as it involved extensive reviews for even minor changes. He sought a more creative and iterative development process in mobile app development.
Tadas believes mobile apps are more valuable because they live on users' devices, making them stickier and more engaging. However, web apps are better for content-sharing and are more accessible.
Tadas's favorite language is Dart, which he uses for Flutter development. He appreciates its simplicity, cleanliness, and lack of unnecessary fluff compared to other languages.
Tadas suggests that older companies in mission-critical fields often require a degree, so internships at university fairs can be a good entry point. For newer companies, having a portfolio of projects and being active online can help.
Tadas enjoys experimenting with new tools but emphasizes the importance of focusing on a few and mastering them to actually build things. He believes in learning a few things well rather than spreading himself too thin.
The worst thing that could happen is that you look a little stupid in front of somebody. And like compared to kind of where I grew up, that's not, that's not, that's nothing. You know, my parents went through way more difficult times than me thinking, like someone thinking wrong of you at work. Don't be scared to look maybe not like not the smartest person in the room. Just try to learn. And most people are there to help out. ♪
♪♪♪
Welcome back to the Free Code Camp Podcast. I'm Quincy Larson, teacher and founder of FreeCodeCamp.org. Each week, we'll bring you insight from developers, founders, and ambitious people getting into tech. And this week, we are joined by Tadis Petra. He is a software engineer and a senior developer advocate at Agora.io. After learning embedded development at university, he switched to building mobile apps, and he's gone on to build dozens of
of mobile apps and create tutorials around Flutter and other amazing developer tools. Titus, welcome to the podcast. Thank you for having me. Yeah, man. Like you're somebody whom I've meant to talk to for a long time. You've made this amazing history of free code camp video a few years ago. Yeah. That, uh, is, is still probably the best rendition of like,
Free code camps, like first few months and, uh, and, and my personal backstory. So thank you very much for doing that. Uh, I linked that in the show notes. Don't go over there until after you finish this. Uh, but yeah, man, like, uh, you have moved around a lot. You've done a lot of things, uh, in your relatively, you know, like how long have you been working as a dev? Uh, like,
what is it? Seven, eight years now. Yeah. Yeah. So you're still relatively young and I want to hear about all about your transitions as a developer because you've gone through at least three distinct phases as a developer. But what I'm really interested in doing is just like diving in to your origin story as a developer. So my understanding is your family came over from Lithuania and immigrated to Chicago, uh,
Which is the third biggest city in the United States. But it's a city that a lot of people overlook because we focus on the coast, New York, LA, you know, San Francisco, like the coastal cities. So it's really cool to actually talk to somebody who's in the same time zone as me because Chicago and Texas are like kind of vertically aligned. Yeah. Talk about your early years, man.
So we moved to the U.S. when I was five years old, and my parents won the green card, I think it was called, and they got into the U.S. And yeah, I don't really remember much from the early years. I don't know if it's like some trauma that we're kind of, you know, my brain just kind of forgets about. But my parents tell me stories that like the first few years was definitely rough because they came to the U.S. with no English, no plan really. They had one cousin that kind of
ditched us as soon as we got here. And yeah, we just tried to kind of survive those first few years. My mom tells me stories of how like I went to school and just cried the whole day because I didn't know what anybody else was saying. There was no Lithuanian translator or anything. But yeah, we know we came with not much money either. So we were, we lived in this tiny little apartment. And I remember my mom told me a story that
uh, the time when she thought we made it in the U S was when we finally got like a mattress for her kids to sleep on. So those, those beginning years were rough. Luckily, I don't really remember too much about them, but shout out to my parents for, you know, dealing with all that. That must've been like really, really hard. But, um,
Yeah, so when we got here, that happened. Then my dad finally found work through some Lithuanian connection that he found. And then he ended up being a handyman. And then things got progressively better over time. And then they ended up moving to this really nice suburb now that we've been living there since I was in fourth grade. Awesome.
Yeah, so like a true kind of like American immigrant success story of like literally like nothing to something, to having a house. And a handyman, like just for people who are unfamiliar with the term, it's kind of like a jack of all trades, like able to do a wide variety of stuff around the house. Like did he learn like plumbing, electrical, like any of that stuff? So I don't think he did plumbing, but basically just whatever someone would call him to help with, like he was there and helping out with that.
Um, yeah, it was, I mean, he just basically did whatever work he could find at that point and slowly made his way up. Yeah. So like a lot of probably carpentry and, uh, yeah. I'll say like, yeah, I think he did at some point he was like building the whole house for some people. Uh, I don't really know too much of all the details. I just know he did a lot of roofing, a lot of siding, a lot of all those types of jobs, just everything that, you know, you can do with your hands and whatever people would kind of pay him for. Yeah. And, uh,
I know that that had a big influence on you because, uh, I've, I've heard you talk about the, uh, degree to which you enjoy working with your hands. And for example, um, completely renovating that your, your first house that you bought, uh, and, and really like being able to like tear things down and like build them up exactly the way you want. Like is a lot of that stemming from your dad's roots of just getting things done with his hands?
Yeah, I think it's got to be. I don't know. Because he did our whole house. When they bought that silver house, he did the same thing. He redid everything, all the flooring and everything. And when I was younger, I had to help him. And at that point, I didn't really like it. But then now it's kind of nice to see, you know, you start from scratch. Like we basically tore the whole house apart when we got here. And we saw it be transformed from just...
like concrete and, you know, wooden boards on the floor to, uh, this nice half decent looking house. Now it's still my first house. So like now, now I'm looking back at it and I wish I could have done things a little different, but just the same as like, you know, with everything in life, the first things you're not going to do perfect, but you learn a lot along the way. And then the second time, this is going to be a lot better. Yeah. It's all about iterating, man. And, and I almost look at like generational, like,
Your parents are kind of like doing an iteration and you learn what you can and then you try to implement that. And if you have kids, you try to pass on the lessons you've learned to your kids. Every generation hopes that the one that follows it has a slightly easier time and is able to get a little bit more done, not make as many mistakes and stuff like that.
And it's also been nice that they, my dad did actually help. And like, I got married like a year ago now. Um, so my wife's dad is the same exact way. She's also an immigrant and like came here when she was five, pretty similar story throughout. Uh, so both of them did help out a lot. So it was also a nice, nice little bonding time with the parents and kind of going back to the roots. Cause yeah. Yeah. So your in-laws get along pretty well.
They don't speak the same language. She's Polish, so it's close, but the language isn't the same. They both can. During the wedding, they communicated. After a few drinks, they were good at talking to each other. They're getting along now a little bit more, but not that much. I don't think they have each other's number yet. Yeah.
Yeah, my parents don't speak Chinese and my in-laws don't speak English. So a lot of it is just us kind of like trying to interpret for them or, you know, it's pretty messy. And I guess you have to take like Lithuania and then probably tell your wife and then she has to translate it to Polish. So it's like an extra link in the communication chain. Do you speak Polish? Yeah.
So I've been learning for the past year. I'm not, of course, not great, but I think I could get around in Poland if I had to. I could figure out where the bathroom is, all that stuff. But I still can't have a full conversation with her parents yet, but I can tell them a few words. Awesome. Yeah, huge country, like really chill folks. I've met so many Polish people over the years, and they've just been like super-duper chill. So, yeah. Yeah.
Well, that's fantastic, man. So I'm interested. So after you kind of grew up and you got stability, you know, your mom's happy because you've got a mattress to sleep on. It's just a profound thing. Like when we think about like the kind of like lavish lifestyle that you and I probably enjoy compared to, you know, what your parents endured when they came here. Chicago is brutally cold too. Was that a big part of it? Like, like did you all have heat in the winters and stuff? Yeah.
So, like I said, most of my memory is from just stories because I was young and, like, I don't know, maybe just my memory just doesn't want to remember that part. But she hasn't said anything about that. I'm sure we had heating. It was an apartment. I think we were on the higher floor. But, yeah, I just remember the story. She's like, yeah, we had, like, a little blanket that we would put on the floor and then pillows and a mattress. When we got those, we felt a lot better. Yeah, yeah. I think at first, yeah, they only...
Got one for the kids, for me and my sister. And then they got themselves one, and then we were living lavish.
Right on. Yeah. Well, so where do you go from there? Because, uh, you were able to, uh, go through high school and ultimately go to university and study computer engineering, uh, which is a great field of, uh, field to study. Um, maybe you can talk about like your academic progression and, and like how you kind of like adjusted. Obviously you learned English. You sound like a native speaker. So like, yeah, what, what transpired? Yeah.
Yeah, I think that the rest is, you know, more the typical straightforward story. Like we went to – I switched between a few schools while I was really young and then up around fourth grade is when we moved to that suburb. And it's a pretty nice suburb where there's good schools and everything. So at that point, I just went on the normal learning track, did, you know,
Good in school. I think I got a 4.0, if I remember correctly, in high school. But it's high school, so it's not that crazy. Well, I mean, still, it's like a perfect GPA, grade point average. Maybe I'm misremembering it, right? But it was definitely close if it wasn't. And then I actually did get into...
There was two universities that were really common to go to. I guess there's more, but out of state, that wasn't really a question for me because we still, you know, we were in a nice suburb, but we still didn't have much money to be going out of state to all the different universities. So there was kind of two options for me, really. It was University of Illinois at Chicago and then U of I, which is University of Illinois at Champaign, which is a really, really good engineering school.
And I ended up getting into University of Illinois at Urbana-Champaign. I got into both, but I decided to go to University of Illinois at Chicago just because it was way, way, way, way cheaper. I got a lot of funding from FAFSA and everything to –
Basically, I think I only paid a few grand the first couple years, and then it went up a little bit afterwards. But Urbana-Champaign would have been a lot more expensive. And there, the first freshman year I kind of went in not really knowing what to do. I knew I was good at math. That was my best subject in all my years growing up.
And I really enjoyed it. So I knew I wanted something math-based. Or I didn't really know, I guess. I just kind of went in and just saw what happened. And I knew that engineering was like a high-value field. And then medicine was, of course, a high-value field as well. But I don't do good and wrong blood, so I'm like, all right, let's try something engineering. I went into the...
The first like seminar or something talking about all the different types of engineering. And I started as a civil engineer because that's what I met a kid that I became friends with. He was doing civil engineering. I'm like, yeah, I'll try it too. And then it just like wasn't for me. And then I found computer engineering was a lot closer to what I wanted to do. So then I started learning that.
Yeah. Well, maybe you can talk, first of all, congratulations on getting into a university of Illinois, uh, Champaign Urbana. That's a mouthful. Like I think is like Purdue is like part of that school system, but very prestigious, uh, engineering program. And, uh,
I applaud you for making the economical decision and just going to the cheaper place because it sounds like you were able to dodge a lot of debt that you would have incurred had you gone to the – and people ask me all the time like, oh, go ahead and apply for the fancy schools and see if you can get in. But it might make more sense to ultimately attend like the less expensive alternatives, especially if they're also reputable institutions. Yeah.
You don't need the most prestigious. You just need a good enough degree, in my humble opinion, at least for engineering, maybe for business or something like that. It's more you should try to go to Wharton or something, but not necessarily with engineering.
I was going to say, looking back, like I'm so happy with that decision. I think if I was to advise my kids, like it's just, you know, you don't need to spend all that money. Like if you get that good enough university degree, you have a degree, it says like you're qualified. The first job that you get is going to be way more important than like anything else really. I feel like after that first job, nobody really remembers where you go to school anymore. But getting that first job is, I feel like definitely the hardest part.
Yeah, 100%. Like that's the real challenge that every developer faces regardless of what they studied in school when they get their first developer job. Maybe you can talk about like your time at university and like transitioning. Did you, were you able to get any internships along the way? So yeah,
Yeah. In university, I knew I had to make it count because it is like four years and I still was – at that moment was still a good amount of money, like thousands of dollars per year on – spent just learning before school. It didn't really cost that much and now we're spending a lot of money and I was –
My parents did help me a little bit to pay for it, but mostly I paid like 80%, maybe 90% like myself just by working really hard in the summers. So I knew I had to make it count. Like I knew I was spending money and I didn't want it to go to waste. So I had internships every single year. So the first year I got into a program that was part of the university. It was, I forget what it's called. It's like the Guaranteed Payment Internship Program, I think.
That sounds right. So it's like if you got a good enough grades during the course of the year, you got a guaranteed paid internship for the summer. I think they can link you up with different companies, but I think maybe there wasn't enough companies or something like that where I ended up working for the actual university just learning Android development there. So I spent the summer in the research department with these two other, I think they were...
I think they were actually doing research. So they were building real stuff while I was on the side kind of just learning Android development and building games for fun pretty much. Yeah, there wasn't really a real internship. It was just kind of learning games and learning how to build games in Android. And I built like this little Flappy Bird simulator. So that was cool because I also got paid for it. So it was like my first like real paid development job as my freshman year of college. Yeah.
Getting paid to learn. Hard to argue with that. Yep. Getting paid to build like Flappy Bird Games. That was fantastic. But it wasn't like this grungy little building in the research building at UIC. So it was kind of funny walking into there every day. It's like these little offices and the lights are kind of dark. You just sit there with two researchers like on the other side of the room just doing real stuff and you're just in the corner learning how to develop. But I was definitely grateful. Yeah.
Um, then sophomore year was the harder one because I didn't get anything that was like that I wanted. Um, so that year, but I did, I did a free internship that year and like, I don't know if I would do it again, but I did a free internship in this, this, uh, part of Chicago called Englewood, which is like kind of a dangerous place in Chicago. And, uh, I was in the, uh,
I forget. It's like some, some government thing. And I helped with social media there. Um,
Again, I didn't really do much there. That was something that I'm proud of. There's nothing to look back on being like, wow, I really accomplished something. I built something that's used today, but I did help create some images, create some social media posts, and it was very early on, so the whole social media. I didn't get paid, and it was super far, and it was like staying a little bit later there. You were a little scared, but it worked out. Then my junior year,
So the last year before graduating, I ended up applying, I think, to, I don't know, at least hundreds, if not close to like,
A thousand different places. Maybe not a thousand. That might be exaggerating. But hundreds for sure of different places. Try to get like a real internship for that summer. Because that was the summer before I graduate. Like I needed to get something. And I ended up getting this internship at this company called Navistar. So you maybe haven't heard of Navistar. But you might have heard of international trucks and IC bus. So international trucks are I think the second or third most popular trucks...
like semi-trucks in the U.S., and IC bus is like the most popular yellow bus that you see taking kids to school.
So Navistar is the parent company of those. So I ended up working there as a computer engineering intern. And, yeah, I got paid that summer. And then I did – apparently I did pretty good. And I got offered a full-time job, like, right out of college. So that was fantastic. Yeah, that's the dream is that you don't have to do, like, this awkward, like, post-college, like, job search because one of your internships takes you on. And, yeah, it sounds like – I mean, if you think about, like –
The software that powers trucks, the software that powers buses, those are mission-critical systems, right? Something goes wrong in a, I don't know, 20-ton truck that's huge. It's on the road with all these people in these cars, probably traveling quite fast. Tons of kinetic energy, right? Yep. There can be no room for failure. Maybe you can talk about what were you doing? So you were working on software that was...
part of a truck. Yep. Yep. So, uh, I guess maybe I could back up a little bit. Like what I studied in college was software engineering and, and, um, software engineering, uh,
You can go different routes with software engineering. I mean, computer engineering. Sorry. I was doing computer engineering. You could go different routes with computer engineering. You could go the more hardware way or you could do the more software way. And I actually went the more hardware way where I learned a lot of how to design processors, for example, how to design different sorts of hardware and how to write assembly code to run on that hardware and how the bits go through all the hardware pieces.
And I thought that's where I actually wanted my career to go. But Navistar was just the only company that accepted me. And there I had to write C code. And I've never... I think I took... In total, I took two...
uh, software classes in college. So it was like intro to CS where you just learned the very basics and then data structures and algorithms was the second CS class. And it was actually my worst class that I took in college. I got, I got a, I passed with a, with a C minus because they rounded up my 69.7 to, to a C minus. And that's my worst grade in college. That's the only C I got. Um, and, uh, like I thought I didn't really like development, but
I got the job at Navistar. Um, and then I'm going in with very little, you know, uh, coding knowledge, like not that, not that good. I obviously did terrible in data structures and algorithms. That's kind of usually the big part of any development job. Um, so I'm going in and I'm writing code that, like you said, has to, you know, go directly to trucks and could, could be, you know, pretty dangerous code. Um,
But the team was fantastic there. Like when I, when I got in my, my boss was phenomenal. Uh, he, I mean, I definitely put in, you know, my own work because I had to, I, on the, like before I even started, I like learned C, like went online and just kind of learned at least the basics of C so that I'm not looking stupid when on my first day. Um,
But once I got in, he was super helpful. He taught me basically everything that I needed to know about seeing, like how to be a good developer. My strategy that I think really helped me grow during that time was not being scared to look stupid, even though I didn't want to. In front of my boss, I knew I could trust him. I asked him the worst questions. I remember even during that internship, I think there was –
Like a few days, it was probably like three days of trying to debug a problem. And I like kept going to him like, what's going on? Like, I have no idea what's going on. Like, why isn't it working? Like, it should definitely be working.
And he was even looking at it. And then after like three days, we finally found that there was a missing semicolon somewhere. That's a story I'll remember for a long time. But I mean, yeah, for writing C, you don't have as cool editors as VS Code or AI that auto-completes everything for you. We're writing line by line, like letter by letter, making sure everything's good. So that was cool. And the reason it wasn't so...
I guess to release software to trucks is, is part of the reason why I ended up leaving in the end as well from that company was because like building software critical, building safety, critical software goes through very, very rigorous process. Like we had to have reviews for like every single step of the process. Like before we even, we, before we even start any writing any code, like the coding part was probably like,
the shortest amount of time spent. Like, you don't really worry about the coding part because there was just so much upfront work that needed to be done before you even got to coding. Like, we had to do requirements, which is where you have to, like, write out in English. You have to use a very strict language based on...
There's like a requirements document that you have to kind of follow. You have to use strict language with it. You have to make sure the words are exactly how you want them. And then you have to do a requirements review where you're getting your work reviewed, whether you're even solving the right problem in the right way before you even start working on the problem.
And then that could go through multiple rounds of reviews. So we're just writing a sentence and you have people judge every single word and every letter of your sentence, whether that sentence is the right sentence. Then you've got a design document that you have to make. So the design, you basically write out the code step by step and then you have to go through this design review. So that whole section could take a few review cycles. So when you get to the code, it's like...
You pretty much wrote out the code in the design section. It's pretty straightforward. Yeah. And then that gets reviewed. And then you have to write tests, and the tests have to get reviewed. And then there's a whole test team, and they have their own review cycle. So it goes through so, so many reviews that so many people would have to miss everything. And it almost doesn't feel like it's on you anymore. As a new person, you know it's not...
It's not as scary because people that have a lot of experience have already looked at it. Yeah. Yeah, that's really interesting. So in a way, the fact that the process is so rigorous is actually kind of freeing because you do have experts around you the entire way who've been there, who are scrutinizing every aspect of your code. And I love that idea of creating a spec and having extremely...
you know, terse, descriptive language, like strict language, so that you're making sure that you're actually solving a real problem and that your approach is
has sound reasoning underneath it. Right. Uh, I feel like a lot of people just fire up their editor and start, I'm going to bang out a feature, blah, blah, blah. Okay, cool. I got this feature up. And that's how a lot of web development and probably a lot of mobile app development, which we'll talk about a lot, uh, in a minute, but that's how a lot of it's done. And, and yet, uh, when it comes to actually doing stuff where like systems are mission critical, like I've heard about, you know, like the, you know, the missions for like the lunar mission, right. When we send people to, to the moon, uh,
That code had to be reviewed probably at least as strictly as the code that you're writing. Maybe it's a very similar process. But the point is people's lives are at stake, right? If a system fails while a truck is going 80 miles an hour down a highway, people could die, right? And it's just like – and that company could be in – that could be a PR disaster and it could –
I can understand the degree of care that goes into that. And one of the reasons that a lot of people are afraid, like AI is going to take our jobs. Uh, I hear this all the time. And, uh, I think people fundamentally understand, misunderstand like the process of writing code and what coding is doing is essentially, it's like thinking really hard about what the problem is. Then thinking really hard about how to solve that problem and thinking about really hard about like the actual solution to that problem and testing it and making sure everything works. Um,
Because, yes, there are lots of social media apps and stuff. You and I could go and have fun building a social media app, maybe do a weekend hackathon or something. But that's not mission-critical stuff, right? That's not going to be running on some satellite where it's very difficult to physically reach it or impossible to reach it. That's not going to be running on some vehicle that's traveling very quickly that is potentially dangerous, right? It's not going to necessarily be running on some factory floor. It's going to be running...
In the cloud somewhere where if it goes wrong, the worst thing that happens is people are inconvenienced. Like, oh, the site crashed again. I'm getting the Twitter fail wheel again. You can get away with just having bad process and just throwing things together when you're doing something like building Twitter. But you can't get away with that when you're building software that's going to power a truck. Would you agree with that statement? Yes, 100%. But I think that's why I got a little...
boring to work there after a few years just because that whole process that we go through weeks long might be just for writing one single line of code. Or maybe not even writing a single line of code, maybe just changing a number within a line of code. So
Yeah, I totally understand it. It was, I think, a great introduction to the whole engineering world because you were so rigorous and you had to make sure every little piece worked. But then it did get kind of a little boring, and that's kind of why it went to mobile because you make a problem in a mobile app, it's just slight inconvenience, but...
It doesn't really matter as much. It matters. You want to make sure you send quality, but at the end of the day, you're not putting any lives in danger. Yeah. So what do you do? You realize, like, hey, I'm learning a lot. I mean, you went basically through the crucible, right? Like you had your software engineering chops forged on the job, it sounds like, even though you didn't do well in your coding classes. You did learn C, which is the basis of most things.
embedded systems and most high performance computing and everything. C is like the language. If you can only learn one language and how to do everything, ultimately like Python runs on top of C, right? Uh, you know, same thing with like a JavaScript Ruby, like all the scripting languages I believe are C under the, under,
a few layers of abstraction. So, um, so in a way that is probably the most important programming language in the world. So you've got a ton of experience with that. And then, so you're eyeing the exit and you're, you're looking for something where it's going to be like less process oriented and more free flowing, like just building stuff, iterating quickly. So not really. I actually, when I, um, so while I was working there, you know,
I needed to get that kind of like creative fix that, that little, uh, that little, you know, created the creativity, the outlet that I needed. Um, so I actually started creating, uh, I guess I kept this on throughout most of the time, but like when I first started, I just, there was no time to learn anything or do anything else. But then I got a little comfortable in the role. I needed some way to keep, you know, that learning process going. So I started building websites. I started building apps just for fun. Um,
And then I just ran across this framework called Flutter from Google. And there was just not much learning resources online. And I was trying to build an app that people would use. And I was having a tough time because there's just not much out there. And there was a few people on YouTube doing it. And I'm like, I'll learn how to create videos. And maybe I could be part of the ecosystem of helping teach people how to build with Flutter specifically because there's not that much. Yeah.
So during that whole time, I wasn't really planning an exit. I was just kind of trying to have a creative outlet and do something that something outside of work that that filled filled that little creative creative outlet.
So I started recording videos and stuff. Which year you got into Flutter? Cause Flutter is relatively young. Uh, I think it was released in like 2015 and then like the one that I was like a few years later. So I, I, I got in, in the beta period. So it wasn't, it was before the one that I'll, it was like six months before one that I'll came out. That's when I first started. I started making videos. I think either about the time it came out, I think. Um, so I got in super early. Uh,
And the reason, like, I was just looking at building applications because, like I said, I did that Android development way back in the day. And honestly, it wasn't that fun. Like, Android development just didn't, like...
Didn't seem like it was something I wanted to really focus on. Web development was cool, but it was just also pretty hard. I actually built a, I tried to build a social media application. I guess maybe the reason I started even with mobile development, because I tried to build a social media application on web using HTML, CSS, and JavaScript, like just those two.
Yeah. Just those three. And then Ajax, I think I remember using. So just bare levels, you know, on web development stuff. And I tried to build a social media site. And I tried to build the DM feature in that social media site. And I just ran into a whole bunch of multi-threading issues. And I'm like, I don't know what multi-threading even is. Yeah.
I had to take a step back and learn the basics of web development, kind of get a better grasp of this before I try to actually build something. Then I just thought mobile apps might be easier. Yeah. Go ahead. Well, my immediate question is, are mobile apps essentially just like a front end? You still need a back end that has all the concurrency issues and everything like that?
Yeah, yeah. At that point, I just didn't really know that. So you thought you were escaping, but you weren't escaping. You were just going. It's like you open a door and it leads to another door. Or like two doors that lead back to the same atrium or something like that where you ultimately have to learn all the software, like the web development concepts. Exactly.
So I thought I was getting past it, but in theory, I kind of did get past it because Flutter does abstract a lot of that stuff away. I use Flutter and Firestore for the back end, Firebase for the back end. So Firebase just does everything for you on the back end sense, and Flutter does actually have one thread that it runs on. So until you're doing things that really need it, you can't spin up other threads, but until you...
like need some hard computation. You don't really, you can just run everything on that main thread. Um, so I kind of did escape it for a bit, but I did obviously have to learn it eventually. Um, so the, yeah, I, I started learning Android development. I'm like, I don't really like Android development. And I'm like, if, if it doesn't, like I use an iPhone, um,
I don't want to be building Android apps and then not be really able to use them. So then I looked into building iOS apps. And then I thought that building just iOS apps, like most of the world uses Android. So you're kind of just limiting yourself to there. So then I looked at cross-platform. At that moment, there was just, no, I actually worked with this thing called Ionic. Yeah, very early multi-platform development tool. Right.
So Ionic was cool because you're just writing in HTML, CSS, JavaScript, I think, if I remember correctly. And then it just creates a web view on your application. Well, back then it did. I haven't followed up. So it almost seemed like when I was building those, it seemed like you're creating a website for your, and you just click it like an app, but it's really a website behind the scenes. I kind of think of it as like a mobile app shell around a web app.
Um, so, so that was cool. Uh, and I built a little stuff with there, but then I wanted to go like a little deeper into, I think I was trying to get like camera working or like into deep integrations within the actual phone. And at that moment it was a little more limiting. Um, so I wanted to find something that, that actually like uses, like is properly built to be running as a mobile application. At that moment there was React Native and then the brand new thing, Flutter. Um,
I didn't really do that much research into it. I kind of just went with Flutter because at that moment, I think I just didn't like Facebook. And I knew that Facebook was going to react native. And I'm like, I like Google as a company better. And I just went with Flutter. Looking back on it, either one would have been fine. But learning and writing Flutter was the first time I found a lot of joy in...
like writing mobile apps. HTML and CSS and JavaScript were fun, but it did get a little complicated because you have all these different files. You have the HTML that you have to learn, then you have to learn CSS, then you have to learn JavaScript. Like there's
Three parts minimum that you have to learn in order to build a website. And then, you know, the whole ecosystem, as you know, is like massive and there's so many different things to learn. With Flutter, there's just Flutter. Like you just learn Flutter and there's packages, like I said, Firebase. But if you have Flutter and you have Firebase, you're pretty much, you can build a lot of applications with just that.
Yeah. And you've created a ton of courses and I'm going to encourage everybody to check out your YouTube channel. I've added the link to it in the show notes after you finish listening to this conversation. But, uh, yeah, the, uh,
I mean, Flutter is amazing. I'll just personally endorse Flutter because Free Code Camp uses Flutter extensively. If you've used the Free Code Camp mobile apps, either the iOS app or the Android app, Flutter. The new testing environment that we're building for administering English certification exams and the final exam of the Free Code Camp certifications and stuff. If this comes out before our anniversary date, on the 10th.
On the 10-year anniversary of free cooking, I've got a whole bunch of announcements that are coming out. But basically, we're going to have exams. And that exam environment is written in Flutter, and it'll run on any device. So it's just like...
Very cool multi-platform development. Like you can, in theory, like run Flutter apps on, you know, Windows or on Mac. And it's just like right once run anywhere. It's like the Java dream realized, you know, 25 years later, 30 years later. So yeah, you don't have to sell me on Flutter, Titus, but I do want to sell everybody listening to this. Flutter is an amazing app.
Yeah.
So I think when I was learning it, I thought like development was like super easy and like creating a backend, like people will talk about building backends and I'm like, what do you mean building? You just connect to Firebase and it just does everything for you. Why are you building backends? And then I, like the past few years, I've finally been learning what a real backend is. And I'm like, wow.
Yeah, Firebase just does so much for you. Yeah. But it does make it really easy to build. If you want to build basically on any platform, Flutter makes it, I feel like, one of the easiest ways to do it. Yeah, so maybe you can contrast Flutter a little bit with just building using Android Studio and the core...
standard issue, Google-issued Android development tools? Because you did build some with those. Yes. Not too much, though. Like I said, those were when I was first beginning, so I never became great at Android applications or proficient. I did...
Like I personally just didn't like Android studio just because that, that meme of it where you, you turn on Android studio and then like your whole computer and your setup turns on fire just because it runs so loud as you get, your computer gets hot and you can cook like hamburgers on your computer after you turn on Android studio. Um, so that, that, that, like I definitely had that in my computer, even though I thought it was powerful, but every time I would turn on Android studio, it was just like, just, just per, um,
So I, I, since like the very early days, I started using VS code for like, yeah, Flutter and everything. But when I did work in Android studio, um,
I think the thing about Android having to support so many devices and all these different use cases, and I think most people don't even update their devices as much as they do with iOS. So having to just have all these corner cases makes Android development a lot more difficult because there's just so many things to...
to keep track of and make sure it fits with all the devices, make sure, and the tooling is built to help you do that. But then there's a lot more tooling than just writing your application. So I think that was, that was the part that I didn't really like about Android development. It just seemed overly complicated and, and,
I think that's the thing that annoys me when technology is more complex than it needs to be. Unless you actually want it to be complex. For example, I don't use Linux much, but I do like Linux. And it is overly complicated, but that's because you're learning a lot about how a computer works. But when I'm just trying to build an Android application, I want it to be easy. And I think Flutter makes it easy. That's why I was such a...
it tickled that creative thing just perfectly because I could, I could build real apps that I could send out to users. Yeah. Maybe you could talk about the advantages of just building mobile apps in general. Like, do you still think that there's room for mobile apps in 2025 we're heading into? Like, are people still going to be downloading mobile apps or are they used to just
you know, opening things up in their browser. Like what, what have you observed as somebody who builds mobile apps and also has a foot in the web development world as far as like consumer preference? Um,
So I think, uh, this is, this is what, from what I've read about stuff that I agree with is mobile. They have different purposes. Kind of, if you can, like, if you have a mobile app, that's six, that's successful. And I think it's a lot higher value than a website because like you're living on someone's device. Like every time they open it, you see your icon there. Um,
I guess with websites, you can like bookmark them, but some people close their bookmarks and it's not as you're not in there, uh, on their like device natively, not natively, but you know, you're not living right on their device. Um, I think that's super powerful. And if you get them to use your application often, I think people on mobile devices just, it becomes, uh, I mean, I don't really like social apps that much, but you know how much social apps like they, they get you looped in. Um,
If you have it on your phone, like personally, I have all my social apps deleted off my phone because I know if I have them on my phone, I'm going in there, I'm looped in. Using it through the website is a little bit higher friction and the experience isn't as clean. You don't get as much stimulation and backdrop from just clicking on the website. So I think if you can get an app
that people enjoy to use, hopefully something, you know, good, something that's helpful to, uh, that's, that's helpful to many people. Um, uh, then I think that's, the apps are much higher value. However, the way I think about it is the, they, they,
I build websites and apps for different reasons. So a website, I feel like, just like it's always been, is mostly for content sharing and something that you can build web apps there. And if you need to use it on a desktop, then that's great. It's a great option to build web apps, but I like to think about it as a content-first thing.
Unless, you know, it's something that needs to be a web app. There's exceptions to everything. But for example, like I'm building this, I was just building this to-do app for fun. Like I don't want the to-do app to be in a website. Like I don't want to have to go open this whole website, type in a URL just to do a to-do app. I want it on my home screen. I want to be able to tap it. I want to be able to tap to-do. And I want to be able to create maybe widgets on my phone that I could just tap it right there. There's like a website would just be annoying at that point.
But for example, building like free code camp or, or a blog or courses or something, I think website makes a lot more sense because you want that to be accessible to a ton of people. You want them to be sitting at their desk and viewing, having that type of viewing experience. Um, so I, I still, I think there's, it's, it's harder than ever to get an app that does well, uh, that people use, but same thing is harder than ever to get a website that people, people use. Um,
So I think it's just, you have to think about where you want it to be first. Yeah. And so maybe we can talk a little bit about distribution. So there's this common saying that like first time, uh, entrepreneurs think about technology. Second time entrepreneurs think about distribution. And of course the web is the ultimate distribution platform in the sense that you literally just
you know, there's a QR code or you tell someone some URL, free code camp.org, you know, and they type that in and they're there, they're at your product, right? It's as simple as that. They don't have to download anything. They don't have to, uh, really do anything. But at the same time, the web feels very fleeting in the sense that like I navigate away from the webpage and I'm no longer in your realm. Right. Uh, and there's nothing to remind me to go back to that other than maybe using some different medium like email.
Uh, but with the app, you can actually, you have like push notifications, you've got all these other things and it's much easier when I'm sitting down in the bathroom for a minute. Uh, I won't say what I'm going to be doing sitting in the bathroom, but I imagine that a lot of people sit in the bathroom every single day and do this and they pull out their phone and they're like, okay, like they probably just tap one of the icons on the screen.
Right. And like, okay, I wonder what's on Reddit. I wonder what's on Twitter. I wonder what's on Tik TOK or whatever people are like opening up. Right. Uh, maybe some people are opening a free Coke cam and doing some of the coding challenges in free cocaine. Uh, we do have very bite-sized challenges that fit into, you know, a one or two minute bathroom session. But, but,
My point is that it's much easier to like open up a web app than it is to like open up Firefox. Okay, now I'm going to type in the address I want to go to or I'm going to scroll through my bookmarks. Okay, I want to, you know, read this website or something like that. And it's happening to an extent that like,
people say that the web has been dying for a long time just because it's been mobile appified in the sense that like a lot of mobile apps are just mobile apps because it's a convenient way to like remind people to click on it. And you know, they say the, uh, the most expensive real estate in the world isn't like on park Avenue. It's on an iPhone, you know, uh, right. And, uh,
I can definitely see the value, and that's one of the reasons we built a mobile app is so that we can be one of those icons that people click on when they're going to the bathroom, right? Yeah, the thing about distribution is something I just keep remembering because I build an app and I'll just be like, oh, I just want to put it out there and then see what happens. I'll write one little tweet about it, and it gets a few downloads and nobody really sees it, but then you see people that have a whole...
campaign about how to show off their new things and that's how you actually get people to send. Like you said, with websites, I imagine that usually on the first URL click, you probably get...
Some people that will remember the site and use it again. But I feel like it's got to be like five or more maybe clicks before it becomes a site that they visit. Whereas an app, you can just download it once and then it's there on your home screen. Like they have to actively go to remove it from their home screen. And I think I've seen some people on Twitter like they –
been pretty successful with launching apps. I think Nikita beer or something. He, he's launched applications. They always go to the top spot on app store real quick. Um,
And a bunch of people downloaded it, and I don't know how those apps are doing now, but I imagine there is still people that it's on their home screens, and it's still taking up real estate on their phones. So, yeah, it's an interesting thing, and I think you just have to think about where and how you want to approach showing off your work.
Yeah. So let's talk about that. Uh, because distribution is so critical and getting people to actually use your app. So just to conclude kind of like what we were talking about, uh, I think that the benefit of the web apps is you just get it up quickly. People can go directly there. They get the full experience regardless of what device they're on. They don't have to download anything, but it's not sticky. Right. Uh,
Mobile apps is much harder to get it to be installed, but there's much longer, like the total time on site for a free code camp visit might be like, you know, 10 minutes or something. People are reading some articles or doing some quick coding challenges and they go and you don't necessarily know that they're going to come back. But with a mobile app, you know, people might check in every single day. They might get a push notification. Oh, it's time to do, you know, Duolingo or whatever.
And so they're like clicking through and they're like doing it and then they're closing it. And then tomorrow at the same time, they're going to get another reminder. They're going to open up and do it again. And I think the Sergey Brin, uh, Google founder said that the best products are like toothbrushes that you're like using every day, you know? Um, and that way you're staying on top of mind because people are busy. They got so much stuff going on. So, um,
It sounds like the biggest value add of getting mobile is not necessarily accessing more technology, though. Arguably, you do have better access to a device and the camera and the sensors and all those different things that you have to give permission to access and stuff. But you can access those device features probably in a native way that you cannot access through a browser or that might be a little bit clunkier to work with in a browser. Yeah.
But I still think the main reason why mobile apps have come to dominate, because, I mean, Twitter doesn't use any of that stuff, and Reddit doesn't use any of that stuff. They're just basically...
as you said, content, right? Like typing text, you can do that in a website just as easily as you can do it in or uploading a photo. You know, it's not significantly less friction for the user, but the mobile app form factor being a button on the home screen. I think that's why mobile apps are so sticky and why a lot of people like everybody has to have a mobile app because it's just a lot of people will expect you to have a mobile app.
But yeah, like a lot of the apps I use every day, I prefer to use them in a browser. But given that I have the limited form factor of a phone, I'll accept, okay, I guess I'll use their app, right? I'll use the YouTube app, even though the YouTube website is much easier to like browse and search and like leave comments and read comments and read the show notes and like all those other things.
I will use the YouTube because I have to, because I'm not taking my laptop with me everywhere I go. I'm not taking it to the bathroom, you know? Um, so I can see arguments, uh, based on that. Um, so, um,
It's primarily like a distribution and convenience thing is kind of how I view it rather than like some technological. Like the CPU in your phone is probably not substantially better than the hardware in your computer. And you have the keyboard and everything. Like you can type a lot faster. You got a bigger screen, all this stuff. I love...
using the full computer and not like, I would never just be one of those people that's content to just do everything through a phone. I just, I feel like that's like an impoverished way to do it. And of course I understand there are probably lots of people that are listening to this podcast. We have a lot of listeners, uh, who may not actually own a laptop and that may be something they're saving up to buy. And I will tell you, it's absolutely worth it. Save up and get the,
the proper computer, even if it's just like a hand-me-down because you unlock so much creativity. I always like to think of phones as primarily a device for consuming and laptops a device for producing. You can't code on the phone, but it's hard to do. Yeah, I was going to say the same thing. I'm the same way as you. Even though I still develop apps and everything, I try to...
uh not use my phone as much as i can like i think at some there was a point where i got a little too into all the applications um and nowadays like i don't touch my phone most of the days just because like you said yeah one one one is for consuming the other one is for producing and i have like this this mental state whenever i'm in front of my computer like not to you know go to all these um not to watch youtube on my on here because here when i'm in front of the computer like i want to
be actually doing stuff and then use my phone for when I'm, you know, just trying to consume passively. But yeah, I totally agree with that. Yeah. Like my least productive hours are like at night after I get the kids to bed, I, you know, finish bath time and everything. And I just get out and I'll just pull up my phone and watch some video essay about like, you know, speed running or something. And then I'll,
And I'm always like, oh, man, like I could have just gone to sleep an hour early and woke up and got some work done. The worst part about that is like the way I tricked myself before was that when I'm using the phone, like I've always watched educational stuff. Like I've never been like, you know, I had never gotten into TikTok. I'd always be on YouTube, like learning about how cars work, for example, like.
In a sense, that's kind of cool. I don't want to lose that completely for my life. But then when you end up doing... You sacrifice your day, the producing hours that you have doing that, then you're like, ah, I don't know. This is maybe not the best. A little hack that I don't know if...
If anyone might find this useful, but what I've been, what I've learned to do is I got like an Apple watch and I literally just leave my phone in a, in a different room. Um, it doesn't have to be an Apple watch, Android watch, whatever a watch basically that can notify you of like important notifications. So you turn off everything that's not important except, you know, like your, your kids or something, whatever's important to you in life. You turn on those notifications on your watch and then, um, throw your phone in like
as far away from your room as you can. And then I basically don't touch it all day because I know if there's something important that I need to, it's, it's right on my wrist. Yeah. I mean, like I actually don't even know where my phone is. I left it somewhere around the house, but like I, I actually like there was this really weird interaction. Like, uh, I, I like drop my kids off at school, uh, one day and, uh,
I accidentally left my phone there and I didn't go back until like two or three o'clock. I was like, Hey, did I leave my phone here? They're like, wow, you, you, you've gone all day without like your phone. Like they thought it was so weird that I didn't use my phone. And I'm like, uh, but I, I mean like phones are a huge part of people's lives. Um, you know,
I mean, like walking around like China where I was over the summer or in Japan and stuff, people constantly are looking at their phone. It's like even when they're walking and stuff. I don't know. I personally am really fighting against it because I don't – I really don't like that.
like where the world is going with the whole being in front of your phone. Like I've had, you know, hanging out with some friends, like some of them just were trying to talk and you'll see a few of them just scrolling on social media. I'm like, come on, am I not entertaining enough? But they are like, like I said, they're, they're definitely useful. I just, I try to spend more time producing instead of consuming on it. And yeah. Yeah. And just a pro tip for anybody who's watching this on their phone,
like close the screen and just put it in your pocket and listen to us talk. You're not missing anything. Looking at our faces, looking at, you know, paper boy from 1985 or something like that. Classic arcade game in the background. I just put that on to have some visual element here, but like, you're not missing anything. Put that phone in your pocket and like go for a walk.
That's where I listen. I listen to so many podcasts. I listen to several interviews with you this morning just preparing. And it's just so relaxing to go for a walk outside in nature or go for a walk in some air-conditioned shopping mall or something like that if you have one of those nearby if it's too hot or too cold. And that's how I take in most of my information. One of my favorite ways is...
Go ahead. I was going to say a lot of video essays and stuff, like you don't actually have to watch them. You can just put it in your phone and you still get most of the information. There's some visual element, but a lot of times they're just running B-roll and stuff anyway, or it's just the person talking at you. But yeah, you can consume so much while you're listening and then like looking at the world around you or going and doing stuff, going to the gym, you know, commuting, all those things. Yeah.
I was going to say that's also the other reason why I like the smartwatch is because you can connect headphones to it and you can listen to that podcast and then your hands are free. And in my best moments, I'm working on something around the house or building something physically with my hands and you're doing something with your hands and then you're also learning something new from a podcast or like you said, a video essay. I think that's my ideal best moment of like...
You're kind of passively getting away from just coding from your computer to doing something and also still learning. Yeah. I'm going to mow my lawn today and do the weeding and everything, and I'm going to definitely throw on my big...
I don't know how to describe them. You might imagine a police officer wearing it when they're shooting in lethal weapon or something. They're basically these big earmuffs that cancel a whole bunch of decibels. And it's Bluetooth enabled, so I just throw those on and listen to podcasts when I'm mowing the lawn or doing other chores around the house. Very cool. Yeah, and precisely. Get away from screens. Don't look at screens all day long. Yeah.
But anyway, I don't want to be like an old man yelling at cloud, like these young whippersnappers always have their face buried in a screen, you know, even when I'm trying to have a conversation with them. But, um, but yeah, like you are building mobile apps, uh, and I'm not going to like, Oh, let's talk about the ethics of mobile apps and like taking up people's time. Like that conversation has been hashed out a million times, but maybe you can talk about your, your mobile app workflow and how it differs from being a web app.
Because you've done web apps and now you're doing primarily mobile apps. And I'm excited to learn kind of like what your typical, like let's say you just create a new project. Maybe you can just walk us through verbally, very high level, how you would do that and how that would be a little bit different from what you would do for a web app.
Sure. So to put, I guess, a little way to close on the last point, like there is a lot of great apps and good things. Like I learned Polish sort of through Duolingo and I had that daily, you know, in the morning I got the notification and that's amazing. And everything you can produce from your computer screen is also amazing too. So there's definitely a lot of positives. It's just sometimes people, you know, take it too far. In terms of, yeah, Flutter or mobile versus app development, I think Flutter
So I guess maybe the reason I wanted to get into more web film was because
Not that I mastered Flutter or anything, but I felt I got to a point where I was comfortable building almost anything that I really needed with Flutter. Um, probably not some crazy, you know, next, next gen thing, but if there was a, uh, a simpler project, I knew how to architect it, right? I knew how to make sure the state was managed properly. I knew how to, you know, learn new packages and how to use the new packages, um, and,
I felt like I was comfortable within the Flutter environment. So I wanted to challenge myself a little bit and learn web because that was the thing that if we go back, I wasn't too comfortable in which where I had to kind of stop. So I did that. I also wanted to build a course learning platform. So it was kind of I think the best way to just learn is just by building things.
So I learned, I started going to Next.js. That was like the most popular one and it uses React. I learned that. And then I found Astro, which is another framework. They can use any other framework
Like you can use react files. You can use all that. So I started working with Astro and I had the same moment that I had with Flutter again with Astro, where I was like, this is, this is how web development should be. Like it's, it's simple. Things are simplified. It's fun. And you can get, get things done. Um, and there, uh,
And I think the big difference between how you get started with each one is that with the website, it seems to be, at this moment, it's a lot easier to build something and put it out to people than it is with a mobile application. And I love that part. Using tools like Vercel, you can create just a demo Astro project or Next.js project.
Uh, you can click like one button to connect your GitHub to Vercel. And then there, you have a live link that you can share with people and you just iterate and build on, on top of that. So that's super easy when it comes to a Flutter project. Yeah, there's a, there's a whole process. Uh, the Android process isn't, isn't that bad. Uh, but the iOS is definitely difficult. Um,
For Android, you do have to pay a one-time $25 fee unless they raised it in order to even be able to submit your app to the App Store. And then there's a whole process of bundling your applications, creating a listing for it, putting the name, passing security keys, and all that stuff. And it takes a while to get it up on the Android Store.
For the iOS store, it gets even more harder. It's $100 per year, so it's not just a one-time fee. You have to pay $100 per year to get something on the app store. And then your app will get scrutinized like no other. If you...
I remember I tried to deploy one of my applications and I wanted to add Google sign-in to my application because that's probably the most common way people sign in. I had email password and then I wanted to add Google sign-in as another option just because it's so popular. I like it.
I added it to my Android store, obviously everything deployed. And then I put it up on to get to app store and it got declined because if you're adding Google, they want to make sure Apple sign is an option as well. So I had to figure out, they forced you to have an Apple sign in. Yes. Yes. I guess maybe I have to check my app, but I guess we probably have Apple sign in as well. But that's awkward because like our Apple sign in isn't available in the
web browser I don't think it might be but then you have to like go and retrofit your website so people don't have like orphan accounts that are just yeah that's I didn't realize they had that restriction man Apple is just like really like they they really use their market power don't they yep
On the one hand, though, if you look around the other side, it's kind of nice for the end user. You know that there's... If someone likes using Apple Sign-In... Maybe that's another example. I added the Apple Sign-In button, and then it wasn't to the design spec of...
the Apple sign-in that they have on the iOS, like, on their, you know, the Cupertino design language. It wasn't... Like, I think the edges weren't rounded properly. Like, it was a square button instead of, like, a nice rounded edge button. Something along those lines. I don't remember the exact... But, like, the design of the Apple button wasn't due to their spec. So then I had to fix that. And then finally it got, you know, released into the App Store. So, but, like, on one hand, for the user, it's kind of nice. Like, you know...
If someone designed a really ugly Apple sign-in, like with a red apple or something, then you don't know what you're really clicking. But this button is something you've used on multiple other apps. It should be good and it should be safe. I think they usually have a person actually test their application and go through it. So yeah, it makes it a lot harder. But I think that's also why getting an iOS app is like the...
the highest friction but usually the highest reward because the ios users paid the most and stuff yeah i mean that's where most of the money is is like the uh i've heard that like even though fewer people use the apple app store like a vast majority of the money to be made as a mobile app developers in the apple ecosystem and android it's just harder to get people to open their wallets and pay for things and that may be because generally like android is cheaper
And the countries where Apple is more popular are generally more wealthy, like European countries and stuff. And where Android is more popular is the global south and Asia and places like that. Yeah. So obviously it's a lot more work building a mobile app, but it does have those benefits that we talked about earlier where it's like people are clicking it and it's stickier, essentially. Yes, yes. And I guess it's not...
So during the actual development processes, they're both simple and easy. So you can build a working application. It's just the part where you're getting to actually deploy it and have other people try it out and use it is where it gets a lot more difficult. Yeah. Yeah. So I'm excited to talk a little bit more about you do mobile app development as –
uh, kind of a side job. Like you did it, you've, you've built some projects in it. Uh, you've done kind of like startup things. And then do you use mobile? Do you do mobile app development at all as a developer advocate? Uh,
Yep. So what happened at the end of the whole Navistar career is that I ended up enjoying learning mobile development. I was creating YouTube tutorials and all that stuff. And I thought, I'm still young. I don't have kids. I should just try and go for it, see what I could do with that whole creator career path. So I went for it. I did all right.
Uh, I, uh, pay, I made enough to pay the bills, which was like the threshold that I wanted to pass. But also during that time, I learned about what a developer advocate is or developer advocacy in general. And then I was like, uh, I never heard of that word before I ended up quitting. I think I heard about it two months after I quit that job and I learned about what developer advocacy is. I'm like, wait a second. Um,
People pay for this stuff. Like, this is what I'm doing right now. Like, this is, this is my, what I quit my job to do is basically a similar job to developer advocacy is, is teaching people, uh, about technology. Um, so,
Then I was like, I'll give it a shot. Like, this is, this is what I wanted to do. This is what I quit my job to do. Like, why not do it with actual financial support? Um, I do it for, for a job. So yeah, then I interviewed with a bunch of companies. I ended up working at this company called Agora. Um,
And there I was hired as a Flutter developer advocate. So I did work a lot with Flutter. Awesome. So, Taras, you have gone so deep into web development that your newest project, Hungry Mind, Hungry with an I instead of a Y, doesn't even have like a mobile app. Can you talk about that kind of swing back over to web development? Sure.
So I still do Flutter, by the way. Like, I still work on Flutter at my full-time job and everything. So Flutter has not gone anywhere. But like I said, I kind of reached a point where I was comfortable building most things in Flutter. And I wanted to challenge myself a little bit more with working on the web development, which scared me at the very beginning. So...
I also wanted to build a course platform just because, I don't know, I feel like every content creator eventually wants to build a course platform. And it's a pretty big challenge, and I thought it'd be fun to undergo and try to build something that I think is a little different than...
I've seen, at least in the Flutter community, and also challenging enough to where I have to learn all these other tools. So, yeah, I still do Flutter. The platform is called HungryMind.com, and on there, it's just a Flutter course. So we call it the best Flutter course on the Internet because that's the goal. It has two...
specific goals. It's to one, teach you how to build almost any project with Flutter. I get, you know, have the base level concepts to where you're comfortable with building anything in Flutter and then to do it better than anybody else on the internet.
That's our goal. That's why we named it that. I'm working on it with another Flutter creator called Robert. So both of us are putting basically all our knowledge that we have learned over these years from Flutter, putting it all into one resource that I want to keep getting better and keep improving and making it the best place to learn Flutter online. And I really like...
So I wanted to learn web development, and then I learned it using Azure because it gave me the same thing that Flutter did when I first started. And, yeah, the course includes, like, everything, you know, like streaming videos, which is a complex topic. It has a whole back-end, like, authentication system.
We're using Terso for the database. So that's SQLite, which was, you know, we learned like all about how that works. Learned about how to create nice little code blocks within Markdown, quizzes, database structures. Just, yeah, it was a big project. I'm super proud of it. I think it looks amazing. And it's something that's a little different than there is in the Flutter community. So super excited about that.
Yeah. Oh, well, uh, I think a lot of course creators do create their own kind of like course platform, but very few of them go to the level of, you know, what you've built. Uh, so definitely, uh, yeah. Yeah. I was going to say, I think everybody has this, like they have the dream of trying to make something different. And I've seen other course creators like, uh,
course, uh, like creator content creators build course platforms, but it's kind of hard to make it, you know, unique and different. Um, but we're really trying to make it good. And like, this is, I've been building this for like over two years now. I went through a whole process where I started with a really simple course, um,
Then I realized, oh, this is not a really good course. This platform is not that good. So I did a whole rewrite. I think this is now the fourth or fifth rewrite of the whole platform. We even had five courses before. So I had a Flutter course, I had an Astro course, I had an XGS course, and I had two Flutter courses, so two or three Flutter courses. So now we kind of stripped everything back down and I feel like realized every time that it's most important to just
go for quality, go for making the best thing that you can. And yeah, that's why we named it that. And kind of stripping down all the extra fluff and just getting it down to making sure you're doing like everything correctly and keeping it simple and as quality as it can get. Yeah. With free code camp, like when we created it, it was basically like I had this kind of platform that I created that taught a lot of different skills and I just,
distilled it down to like, what is one thing that we can teach that we can do a good job of in this JavaScript? And then it kind of really grew out from there. And it sounds like you're taking a similar approach, uh, teaching, uh, just, just getting really good at teaching Flutter before you teach a whole lot of other potential skills. That's really cool. Did you go through multiple like rounds of rebuilding the platform for JavaScript? Yeah.
I mean, you could say that the curriculum is constantly being refreshed and updated. And we've got some big updates to the curriculum coming soon. And it's just a constant kind of like renewal in terms of what our employer is looking for. What are the contemporary tools? What are the key concepts that haven't changed fundamentally since maybe like the 70s and 80s? The sort of stuff you probably learned in your degree, you know, just like system design.
algorithms, the data structures, things like that. So yeah. And, and trying to make sure we, we balance like new tools, but make sure like the fundamentals are covered. Now what we're setting out to do is creating like extremely comprehensive, uh, broad education. Whereas it sounds like, uh, with your tool, like if somebody already has some developer background and they just want to quickly learn Flutter, they can dive into that and, and create kind of the specialization within their existing skillset. Yeah.
Right. So, yeah, the prerequisite is that you know Dart or just any other object-oriented programming, like I'm sure you could pick up. So, yeah, that's the prerequisite for this. And eventually we hope to make, you know, other courses, things we're excited about, but we really want to lock down and just create, like, what the title of the course is, like the best Flutter course on the internet. And that's a hard thing to do. And Dart is a programming language created by Google, like, maybe 10, 12 years ago. Yeah. But...
That is like the main application of dart. My understanding is, is just, you know, this flutter framework, this is on top of dart. Can you talk about your relationship with dart? And like, do you use dart for anything outside of flutter? Is it just mainly a tool for flutter?
It's mainly a tool for Flutter, but I would say that Dart is my favorite language. But it's also a language that's very similar to most other object-oriented languages. So I think anybody that knows JavaScript or, I don't know, other languages, switching between TypeScript and Dart, for example, is pretty straightforward. Just the syntax I sometimes mess up between that. But yeah, it's one of my favorite languages. I feel like it has the least fluff.
and also is very clean and easy to understand. But I don't use it for anything else. I have seen people, there is backend things you could write in Dart. There's a startup at YC trying to build a backend in Dart. So there's things out there, but I haven't used them.
Awesome, man. YC, of course, being the San Francisco accelerator, Y Combinator. So I'm glad to hear that there's a lot of activity within the community. Again, we use Flutter, so by extension, Dart extensively at Free Code Camp. So, yeah, I'm always happy when ecosystems are built out. We've been seeing some amazing activity within the PHP community recently, for example, Laravel becoming a...
serious kind of like standalone project and raising funds and stuff like that. So it's cool to see not just JavaScript and Python winning, but also see these other tools and languages gaining ground as well. How do you like Dart compared to other languages?
I personally haven't really coded in it. Like I used, like I did some basic tutorials back when it first came out, like 12 years ago or something like that. So, uh, that, that is my extent, but it was very similar to like JavaScript and Python. It's just a high level scripting language. And, uh, yeah, I, if anybody wants to try it, um, of course there, there's your, your course that covers it in addition to covering Flutter. So that sounds like a really good place to start. Yep.
Other than developing Hungry Mind, what are your near-term plans as a dev? Do you have any big goals for the next few years? I think this platform has been my big focus for the past two years, and I want to make it something good. I think...
The whole overarching goal of it is just to help people create more things. Of course, the easiest way for me to start doing that is by creating a course. You know, help people very directly. But eventually, I mean, I hope to create... If this course is successful, I hope to create more courses. If people actually enjoy this style of teaching, of course, I want to keep creating more courses. But I also...
Yeah.
like base level needs. And I found massive fulfillment through, you know, learning and building and has just been a trend for like my whole life. And I want to, I want to give back and try to help others go through the same thing. Yeah. Yeah. Well, um, I want to thank you for everything you're doing for the developer community. You're not just resting on your laurels. A lot of people, they get the good developer job and they just chill out and like,
spend their weekends gaming or just taking it easy. And there's absolutely nothing wrong with just going and traveling and stuff like that once you reach a certain level of prosperity as a developer. There's no obligation that says you have to get involved in open source or you have to figure out ways to create tutorials on YouTube to help the next kind of generation of developers get into the field and things like that.
But whenever I see people doing it, I always want to stop and applaud them because I do appreciate, certainly, and it inspires me to see people going out there and figuring out ways to take action.
their own creativity and build things that help other people do the same. So that's awesome. Yeah. Thank you. Appreciate it. But for me, it's just, for me, it's fun. I feel like there's a, a way you can frame all this like video games. I used to play, you know, other video games and I kind of just stopped because this ended up being more fun. Like, yes, it's a higher for like initial step to like get started on doing something harder. But then once you get into the flow state and like,
You're doing something challenging that's just a little more challenging than you're used to. I feel like it's basically like a video game. Life's just a video game. Yeah. Yeah, I mean, you can definitely focus on, like, stat maxing, which, I mean, some people just focus on driving up a single number, basically, their net worth. But for me, like...
I always think in terms of like, you know, like the skill tree, like I want to die with like a fully unlocked skill tree. And, uh, on that note, I think it's super cool that you like bought a sewing machine recently and you started sewing. Uh, kind of, I, I bought one. I did a few sewing projects just because I actually needed it, but I'm just, I have way too many hobbies and I want to like the one rule I made for myself is, um,
As long as I can afford it, obviously. Never cheap out on something that's creative. If I want to do something creative, just go for it. I've rarely ever regretted buying a tool or the sewing machine, even if I don't use it that much. It's just a fun thing to have tried out. Yeah. When you say you have a lot of hobbies, are there any other hobbies that you just like...
One day decided like, I want to get into X and, or I wanted to get into Y. Like was there, was there, are there any other interesting things people might find intriguing?
So I wouldn't say I'm great at any of these hobbies, but there's like every sport I've basically done. I used to play basketball when I was a kid, but now I play volleyball with friends, pickleball, tennis, all those sports. The other ones I've randomly picked up was working on my car and cars. I built a camper van out of a Toyota Sienna that we took across the country to California and to New York.
That was really fun. And it has a whole bed that it comes out like... Wow. It has wooden slats so the bed comes out and you can turn it into a bench. It has a battery, a fridge in there and everything. And this little Toyota Sienna. So that's a pretty cool project. And yeah, I redid the whole house. The before and after images are pretty crazy. I want to get into welding. I have a whole bunch of woodworking projects.
Things that I want to get into. I feel like there's just, I got to limit myself to how many things I let myself get into. Yeah. I mean, does that extend to, you know, as a developer, do you, are you the kind of person that just wants to go out and try all these different tools and, and, you know, frequently tweak your, your workflow and.
Yeah, definitely. So I went through a whole phase of like even outside development, like productivity tools, like all the notion things. Like I've gone through, you know, tweaking little things in my workspace, like through Obsidian and everything. And same thing with development. Like I went through Flutter. I tried React on the web. I tried Astro. I tried Svelte. I tried Vue. I really liked Svelte, didn't like React. Tried Next.js, like all these frameworks. I tried all them.
And I think I decided I have to limit myself there too. Like I got to get, you know, there's the point of writing software is to actually build things. So I feel like a lot better to learn a few things well and then use those to build cool things. So yeah, I think it just, I'm just a curious person with like when it comes to everything and have to limit myself a little bit just so I could get things that I actually want to get done.
Yeah. You have to exercise restraint when it comes to your own insatiable curiosity. Uh, are there, is there ever like been like a specific moment where you realized you were like way out in the weeds? Like for me it was, uh, I was having like, I had switched to like what's called programmer Dvorak.
Oh, man. You might be saying, like, it's Vorjak. No, that's the composer. Dvorak is, like, the name of the keyboard style. It's, like, spelled the same. But, you know, when people come to the U.S., like Ellis Island, they, like, change their names and stuff. Yeah. And that's how this guy's name is pronounced. But basically, they took, like, the English...
you know, QWERTY keyboard and they rearranged it. But then somebody was like, it's not rearranged enough for programmers. They're like, rearrange the numbers and like all the other keys. I mean, like the entire keyword. And I was sitting like on a train trying to code, uh, in, you know, programmers work inside Emacs with all my macros running and all this stuff. And I was just like, ah,
And then like I got on somebody and the problem with that is like you learn programmer to work and you're never going to walk up to some keyboard and already, oh, you use programmer to work too. Nobody's using that. Very few people even use to work and very few people have like, uh, I guess Emacs is technically pre-installed on most Linux boxes, but like you're, I don't know if it's, it's on windows or Mac. Actually, I haven't checked. Uh, if, if it's,
if it's on, but like I decided ultimately my tool chain was way too bespoken to, uh,
difficult to like configure the environment and i talked to like some devops and he's like oh yeah i just have like this curl command and i go and i curl my entire environment and do all this stuff and i'm like people are not gonna appreciate me like in uh at my office like i would leave you know like my i'd like curl the environment and like tweak all these settings on their computer and they'd be like what are you doing you know so like there have been points where i was like no i've gone too far down this this rabbit hole
Yeah. I don't think Emacs is stock on Mac. Vim is. But I just found myself in this situation where I was like, wow, I have customized way too much. I need to step back and get more in step with the typical developers so it's easier for me to relate to them and understand them. And also, I also felt like I was learning all these esoteric tools as a way of procrastinating actually getting better at data structures and algorithms and things like that.
Yeah, have you had any experience like that where you just went way too far and you had to kind of snap back? Not necessarily with developer tooling. I did try Vim and everything. I tried to learn... I did learn it, just some of the commands. I tried it for a week or so, and then I realized, I don't know, VS Code works good for creating content specifically for teaching. You kind of should use VS Code just because most people use it. And I stepped back, so...
I feel like I haven't gone too deep in developer tooling, but I have caught myself going too deep down with my confidence of what I'm building. Like I mentioned with the whole first trying to build a social network as one of my first web projects. I was like, oh, I need to take a little step back and get back to the fundamentals of how the web works.
Yeah, getting back to basics. Well, I will tell you, in my experience, there's never been a point where I've been like, I spent way too much time learning the basics. Yeah, exactly. I don't know if it's possible. And one last question. So you studied computer engineering, which is different from software engineering, which there are software engineering degrees. The most common thing that people study, though, is computer science.
Um, how much of like the, the math and physics and other kind of like skills that you learned through your, through your degree, would you say has been useful? And like, do you ever find yourself pulling out something and like you're surprised that something that you learned in school suddenly becomes super relevant? Does that happen very often? No. No.
My degree is pretty useless. Like I think, like I said, you learn, I learned that most, almost everything on that job. Even I only took two CS classes. Like I think school, the best thing about school is just meeting the people around. Right. And then the process of learning how to solve problems.
I think that's the biggest thing the school teaches. And I feel like that's why I like what you guys are doing at Free Code Camp because you teach that thought process of how to go through and learn it. I feel like Free Code Camp teaches programming just as good as probably any university. I started that first job not knowing anything from programming. I learned it on the way there. And I don't remember if I...
No, because FreeCodeCamp is JavaScript. So I had to learn C somewhere else for that first job. But before going to my first job, if it was JavaScript, I probably would have learned just as much. I'm sure you get really deep into the master's level. You get into some crazy physics. And if you go into a job that's very niche for that one thing, then...
School might be useful, but for me, like my career has changed so much already within like five, the first four years, like I was not doing anything coding really that I was doing in school. I learned, like I said, I had data structures and algorithms was my only real course that I did terrible in.
Four years into my career, I was making YouTube videos and teaching how to build mobile apps with a framework that didn't even exist while I was in college. So I think, yeah, I do have made a lot of friends in college, learned how to learn a little bit in college. But as far as things directly that I learned there, I haven't really used it at all.
Well, it sounds like the opportunity at the trucking company Navistar, I think is what you said. It's a parent company for school buses and trucks. But working on that kind of mission-critical software that has to be rigidly planned out and rigorously tested and things like that, it sounds like that was really the crucible for a lot of your skills as an engineer. Yeah.
Yeah, what advice would you have to somebody who is looking to get into those kinds of companies? Like, let's say, hypothetically, somebody's like, I want to get into, like, a quote-unquote real engineering company.
which is not like figuring out how to put AR mustaches on people or something like that, but it is actually trying to do something that helps improve gas efficiency, fuel efficiency, or helps with safety systems and things like that. What kind of opportunities, where should somebody look for those kinds of opportunities? Yeah.
So I feel like that one, those are tougher to get in because I think those companies that are working on, you know, those mission critical safety things are older companies. So Navistar, Navistar, I think was founded in like the 1800s or something like, like way before they were creating, uh, tractors for farming. And I think when they first began, um,
So those companies, a lot of them still do require a degree. So the reason I got that job was because of the internship. And the reason I got that internship was because they were at a fair at the university. So unfortunately, I feel like those older companies that are working on very root level things are harder to get into. But there are plenty of new companies who have
uh, like less stringent, uh, rules around having a university degree. Or I think for those, like you just want to be active online and like doing, doing things and have a resume of things that you've done that you can show that, you know, the technology and then, uh, hopefully like that can give you a step up.
Awesome. Well, that's super helpful. So, yeah, and I did check in. Yeah, like 1800s with tractors. That's amazing. By the way, if you can hear my son, he just got home and he's playing piano. That's not too distracting. But, yeah, man, it's been an absolute blast hearing your insights. Like you are an extremely pragmatic developer who's not afraid of picking up new tools. And it seems like you're just constantly picking up new tools and seeing what can this do for me? Like how can I apply this? You're not afraid of picking up old tools.
whether that's sewing machines, whether that's, you know, carpentry tools. And I just, I see you as just kind of like this, to some extent, like an everyman dev, like everyman engineer who just sees the world as a whole bunch of things that they can pick up and potentially put to use and, you know, apply to get things done. And so that's like extremely impressive quality. And you just have like this confidence that is rare. Like,
Most people would be incredibly daunted, like getting a C in algorithms and data structures and going straight into more rigorous type of computer programming and stuff like that. But you don't seem to shy away from that. Do you chalk that up to anything in your experience that gave you that courage? I mean, I don't know. I never really thought about it, but I feel like...
The worst thing that could happen is that you look a little stupid in front of somebody. And, like, compared to kind of where I grew up, that's not, that's nothing. You know, my parents went through way more difficult times than me, like someone thinking wrong of you at work. But on the other hand, just, like, personally, I've never thought someone that asked a question, you know, try to get deeper, like,
that's, I would never think of somebody worse than that. So just don't think of yourself in that scenario. Don't be scared to look maybe not like not the smartest person in the room. Just try to learn and absorb as much as you can from people. And that's been my approach. And I just, I just know there's most people are there to help out, like, especially at a job, like your boss is there to, you know, help you be good. Like he wants you to succeed. Um, don't be scared to go and ask him and
In terms of diving into these other things where I don't really know, I guess it just kind of flows into the whole of just kind of go for it and see what happens, and hopefully you learn a lot along the way. Right on. Well, learning a lot along the way, name of the game, man. Tadis, it's been an absolute pleasure having you on the Free Code Camp podcast.
weekly podcast and I hope everybody has enjoyed. Uh, be sure to check the show notes again. I've included links to lots of, uh, Titus's projects, some of his videos that I found inspiring and, uh, yeah, man, uh, I really appreciate everything you're doing for the community. Yeah. Thanks so much for having me. Well, until next week, everybody have a coding.