Hey, everybody, thanks for coming to another episode of My year story. Today as our guest, we have one of my friends, Thomas Burls and Thomas, can you introduce yourself? For those who don't know you, Hi, everybody, my name is Thomas Berlson. I've been involved with software development for longer than I care to admit. I had a pleasure to meet Frosty. What Frosty, what has have been now? Almost eight years ago? Eight years ago at least, And that's part of the story that we'll talk
about today. But it was the start of a really great friendship and someone who's in my life that I very much value, and so frost asked me to come here today and just chat. This episode is sponsored by Century dot Io. Recently I came across a great tool for tracking and monitoring problems in my apps. Then I asked them if they wanted to sponsor the show and allow me to share my experience with you. Century provides a terrific interface for
keeping track of what's going on with my app. It also tracks releases so I can tell if what I deployed makes things better or worse. They give full stack traces and as much information as possible about the situation when the error occurred to help you track down the errors. Plus one thing I love, you can customize the context provided by Century, so if you're looking for specific information about the request, you can provide it. It automatically scrubs passwords and
secure information, and you can customize the scrubbing as well. Finally, it has a user feedback system built in that you can use to get information from your users. Oh and I also love that they support open source to the point where they actually open source Centry. If you want to self host it, use the code dev chat at Century dot io to get two months free
on Century small plan. That's code dev chat at century dot io. So you're you're one of our guests that most people will know, and so we're going to spend some time just kind of talking about your background just so that they can know you more. Some of our guests are like, I don't know this person, but I'm I mean, maybe I'm biased or I believe, but I'm guessing most people know you. So you have a long history in coding, how did what? What's your windy path that ends in use
using Angular? So my path I would not actually recommend to anyone. Okay, if you did it the hard way, if you could choose a hard path, it was probably would match mine. You know, you meet a lot of developers these days who talk about they got into software development because they had an idea and they started young, fifteen or sixteen or eighteen. Yeah, yell those people. I wish I was they, And they think in code, right, it just comes natural to them, and and for me
that wasn't the case. Right. And in college I took a programming class and I flunked it so bad on the first test that I dropped out of the programming class. Is it age? What age is this? When you had to happen? This was I think I was nineteen or twenty, but it was, And I thought I knew it locked in, right. I was arrogant and young, and so I put it aside, and I thought, ah, and I was getting a degree in applied physics, right,
I was building trenode lab detector systems and all sorts of things. But I couldn't program right. And this was back obviously in the days to sort of date myself a bit, This is back in the days of vac's mainframes, right, So there weren't personal really personal computers at the time, so I put it aside and I went to graduate school. And I decided to go to graduate school to learn to get a degree in applied laser optics, so
laser guidance systems and satellite systems and fiber optics and things like that. And while I was and I got a research assistant position freak of luck. And
that's a separate story which is really funny. But I had a professor who believed in me hired me as a research assistant, and I was helping him put together proposals for SDI Satellite Desfense Initiative so way back then, and for black projects for the military, and we were winning contracts right and left, and we were winning them because I was helping him write killer proposals with great
graphics and illustrations and diagrams and taking very technical thoughts and making them presenting them in a simple, intuitive fashion. You're good. Is that I know that about you? That is one of my life that for a long time. Then, yeah, I think it's maybe one of my few strengths. Okay, So but I started doing that on a Mac right and I was using MacDraw and I was using canvas and and one day I thought, how does that? How does that work? How does the mouse when I move it
on the desk? How does it move it on the screen and draw these rectangles with these and these circles and these layers, and how does it color it? And I thought, I want to know how to write a program to do that. And that literally was the start of my software to career. I wanted to learn how to do what I saw another program doing. Sounds like you're still pretty young, though at this point I was young, and I didn't have anyone else to bounce ideas off. This was back in
the days of bulletan board systems. Yeah, there's no stack overflow. There was no Google, no stack overflow, there's no blogs, nothing, nothing, right, And if you wanted to ask even one of the vendors, hey, how do you do this? What's wrong with your tool? You had to pay two hundred dollars an hour and wait on for a text phone
call, right, So there weren't even video calls, nothing. And so I started teaching myself and it was a long road, right, and truth be told, I oversowed my skills a couple of times, like I was way underqualified for the job I got, but my attitude was get in. I never tried to hire myself as a senior person, but I would try to say I can do this, and then I just had confidence that I would figure it out on the fly because you had a history of doing that.
I had a history. You knew you'd done it before. So you're like, I could I could figure it out even if I don't know it. I knew that I could figure it out. I might not have had a history of being successful, you know, and writing software before, but I just had I had a confidence, right, and I had a willingness
to invest the time. And you know, nowadays, as a slight digression, when you and I talk and people say, oh, I wish I could be a developer, right, I wish I could work remote and travel around the world and all that, you know, Or I wish I could make really good money that seems like contractors make and which isn't necessarily the case. And my number one response is what can you sit in front of a computer for ten to twelve hours a day? Because if you can't, then
don't try to become a software development And that's the number one thing. You have to be willing to put in the time, right. So I didn't know much, but I was willing to put in the time. I was willing to bang my head. And so I got a job in actually working on one of the first email programs out on the market. So this is way back before Outlook, way back way before Gmail and all that. In fact, I was actually working on another product called Visual source Safe before it
was acquired by Microsoft. Visual Source Safe was the precursor to SVC and get oh wow. So I was working in an email program and I was also working on Visual source Safe and I could write help them write software, but I still didn't have the light bulb go on. And then I came to Iowa and I was working for a company, and I was paired with you live in Iowa? True? Do I do? I live in Iowa.
So I was paired with a developer, a manic Russian developer. I love Russian developers, They're awesome, who was just passionate about C plus plus right, And I didn't know what C plus plus was and I didn't know what objecorated programming was, and so he started mentoring me. But it wasn't so much a mentor as just sort of paired peer type work. One day the
light bulb went on. I was like, oh my god, I really get it polymorphism and inheritance and subclassing and method overloading, and I totally get it. And it was one of those epiphanies, right. I think that was a switching point for me where I had a moment where I thought, Okay, I can actually I can absorb complicated ideas and turn them around and reuse them apply them. But that was also one of the jobs where I
had one of my boss at the time pulled me aside. And I've had this happen two or three times in my life where someone has approached me and said, I think you need to choose a different career. You're never going to be successful at software development. Right. Often, No, honestly, and not just once, two or three times, dude, right. And each time I was willing to admit that I had some gaps, I had
some faults I needed to correct, write things to work on. But I was also unwilling to accept someone's bigoted opinion to say that I couldn't be couldn't do it. Yeah, it was almost as if they challenged me right, and of course I refused to have them as a boss after that, and I would move to someone else. And then one day I so I was doing C plus plus for a while that I was doing Visual Basic. Then I was doing Python, and then Turbo Pascal and Delphi and Winnows Foundation class.
Now we're up into the nineties, late nineties. Yeah, yeah, you can sort of hear where this is going, right, And then one day I heard an ad about Adobe. They were going to show not from Adobe at the time, it was Macromedia. They were going to show the Flash and next studio Wow. And it was a seminar up in Minneapolis, and I had to drive four hours and so at the time I said to my I think she was my girlfriend at the time. I'd have been my wife at the time, but I said, I'm going to drive up to
there and attend this seminar. It's all weekend. And at the end of the Saturday and Sunday seminar, I called my girlfriend my wife, and I said, I found what I want to do. I want to write rich Internet applications. I want to write rich front ends. I want to write applications that do amazing create amazing user experiences. So obviously at the time that was flash. Well, Flash sucks for developing apps, always did, right. Flash was great for eye candy and morphine, but for developing apps it
was just the pit. Six months after that, Flex came out and ColdFusion also, and that was sort of a marriage made in heaven. Flex came out and I've got a job with a company, a consulting firm, as one of their primary architects. It was a four man company. That company grew to be forty five people and I for four years, I was one
of their top three principal architects. And for the next eight years I developed Flex applications for many like Vimeo and a whole bunch of other groups, and started with Micromedia was acquired by Adobe, and that was my forte right, going into small companies or even enterprise companies and training their developers, teaching them how to develop real deployable production applications, web apps with Flash or excuse me, with the flash player. Then Steve Jobs came out and said, hey,
wow, flash player will never be on the iOS. Well, I'm sorry, that was that was like an ax blow to the head, right, there. I knew then that as much as I'd love that environment, I needed to make a change. And so I decided I needed to move over, and what was I going to do next? Right, Because when you have to make a fundamental paradigm change and what you love doing, it's
actually creates a lot of angst. It creates a lot of mental pressure because there are a lot of decisions that you can make, but which is the right one? Which direction is the right one? Right? And what you don't want to do is choose it for money. You don't want to choose it for secure Like I can also tell developers, don't choose the direction you
want to go because it's safe. Absolutely don't do that. That's sort of like saying you're in a prison and I'm going to open the door, but you'll never leave the prison cell because it's comfortable safe in the prison cell. Think about all the other opportunities you might regret it if you never explored. Right. So I decided, well, I still love doing a front end applications and I had a full stack experience right that I was helping developers develop
enterprise applications in Java, so I was working on rest applications. I was doing cold fusion for a CMS and very complicated things, but I wanted to stay in the front tier, the client tier, so I started looking and at that time it was JavaScript and knockout and Cencha. Oh my god. I hated Censha. I didn't love it, but it was better than what I'd done before Cenha. Well, got to remember when I came from flex was I came from an environment that's eerily like I mention something in a minute.
But it had dependency injection, like I said swizz, It had metadata, it had decorators, it had co generation at a rich API for drawing and data binding, everything you wanted. And Censha was not dependency injection at all. It was just horrible in my opinion. Yeah, lo and behold. Right about that time, Angler zero dot nine was out on the market. What year is this? Wow? Was that twenty fourteen or twelve? That was twelve? I think was it twelve, because I think I walk
into the scene and I was doing center right before that. Uh huh? Was FD right about that time? I think you and I got into the market right about the same time, and it was even before the one dot and it was before they had documented what the Angular jass modules were about. And there was no documentation, and the only to learn way to learn how
the system worked was to dive into the source code. And if you haven't looked at and I know Frosty you have, But if the people listening haven't ever looked at a really cool code, go take a look at the Angler. Not the Angular code, because that's actually almost too complicated to look at.
Take a look at the Angular js core code that was very functional like, and it was really really I learned a lot of things, right, Yeah, So I got involved and I started helping a client develop an Angular Jass application, and I also just started teaching myself and trying to write a blog about it, and just spent Basically, when I did the paradigm change, I think I spent four or five months with no income, right,
I just wanted to learn it and get really good at it. And then once you have a basis, you really need to have a project that you want to apply it to. Because it just learning for the sake of learning, you don't learn well. In my opinion, No, you know, I'm the same that I really my aha moment that you're talking about happened because
I was emotionally invested in what was happens. Right, It wasn't it wasn't a homework assignment which I wasn't emotionally invested in, or it wasn't something that someone a nabor asked me to. It was like I was emotionally triggered and boom, it was off to the races at that point. Yeah, so we're slowly building up to the path where I met you frosting. But there's a couple other things. I think the audience went like to hear, so I'll tell some of that. Yeah, yeah, of course. So I
presented at I think the first Energy CoV Yeah you were there. I presented why require js and Angular js are a match made in heaven, right, because a lot of people were saying, oh, you don't need require, yes, and you know what's the difference between the two, and I presented on this. And this is back in the day where you've got either grunt or require those are your well or you could just add script tags to a page, which means that you're insane. So if you want an actual build
system, you've got require or grunt. Back in that day, there was no gold. Yet there was no brother, there was no goal. But even with grunt, the problem was, back then there weren't modules. There weren't e s six modules. So how did you take code that was in multiple files and keep them self contained so they didn't pollute each other overright, So you'd have to wrap it in a require a require wrapper essentially, right, yeah, right, And then you had Angular JS modules, which is
not a file module, it's not a file container. It's really a di I registration system. But the two were beautiful. So I presented on it, and then afterwards I was walking in the ng Salt Lake City ng KMF halls and I saw Mischkoh and Brad Green and I think even Igor was there, and I went up to him. I said, you know, I said, I just love Angular JS. I said it was Angular at the time. Yeah, yeah, back then we just called the Angular exactly right.
They had a name change, which I think was probably not a good idea, but they were married to the idea of Angular, and so I went up to them and I just told him how much I love the work they were doing and how excited I was about all the features and the thought that went into Angular at the time, and I remember Brad said it looks at me and goes, well, why don't you come work for us at
Google? And I know he was saying it casually, like you basically you'd have to go through the interview process and all that, so it wasn't a secret door. Yeah, And I looked at him and I said, you know, my wife is a partner and a practice in Des Moines. I said, we're not moving. I said, I would love to work for you guys, but to work for you guys, I have to relocate. And Brad goes yes, I said, I'm not moving, so sorry, I can't do it. Well. About two months later, I get an
email from Brad Green. He says, Hey, we have this interesting project going on. I want to see if you might be interested in talking about it. I said, well, Brad, I said, I'm going to be working with a client in San Francisco and down at the what's that military base there in San fran the Presidio? Is that right, the Presidio? I don't know. I don't know. So they had a little startup there and I was working with them for about two weeks and I said, on
that Friday, Wat's come down to Mountain View and we can talk. And Brad said, no, you don't have to do that. I said, no, I really want to. I wanted to see Google. Right. So Friday comes along and the week had been hell right. It was just I was so brain dead, no energy, and I came within a fingers with of making a decision of going, you know what, I'll just tell Brad I can't make it. And then I thought, I said I would do something. I need to follow through. And that's another thing that I
have to tell people here in the audience. That's another thing I would recommend if a few things that you could focus on is if you say you're going to do something, then either do it or communicate ahead of time why that there's an issue. That's all right, But if you say you're going to do it, then don't not do it, or don't bail out at the last minute. So I drove down to Mountain View and I didn't know where that was, right. I didn't realize it was a two with traffic.
It was almost a two hour drive. Oh yeah, that's a hike to get all the way down there. Yeah, from the Goldigate Bridge all the way down was it was a pain, right, So I get down and I then trying to find where they are, trying to find the check in desk and all that, and Brad shows up like it finally comes around the corner and I never I haven't seen Brad in a while. And for those
of you have never met Brad, Brad's are very charismatic individual. It's probably what six three six' four yeah, tall, bright smile, comes up, gives me a handshake and says, hey, come on. It leads me through a maze of buildings and doors and all at a conference room, sits down. I said, so, so tell me about this project of yours. He goes, well, he goes, you know we have Angular and material design is we had this speck coming out called the Material Design Specification.
He goes, have you heard of that? I said no, And he said, well, we have this UI specification, but there isn't a UI library and Angular and I shook my head yes, I said, yeah, I know. It's it's sort of a glaring omission. He goes, it was brutal. He goes, well, I think we need to I'm forming it. I want to form a little team to build an Angular Material Library. I said okay. He goes, are you interested? I said, well, I said, I'm interested, but who are the people that
are going to be involved? And so, and it turns out the people that were involved were Adam and Max from the Ionic team right from Max is now the CEO of A Yeah, and Adam Flatter I always pronounced his name wrong. Flater Flatter was also he was He's an amazing individual also. So I was working with those two and there were a couple other people and I said, okay, well when's the project going to start? And he goes, I don't know, maybe eight or six or eight weeks. And I
said, well, how long is the project going to be? And he goes, I don't know, maybe three or six months. And I said, well, and how many do you have a vision of what you how you wanted this to be created and what you wanted to be delivered. He goes no, heause, I think I'm going to leave that up to you guys to figure that out. And I looked at him and I said, well, I said, I'm interested, but you know, I need to
talk to my wife. So we talked a few more minutes later, and he gave me some other offers and I said, okay, I said, I said, now I can't resist. I said, I'll accept the offer, but I'm still going to confirm it with my wife Brad. Yeah. And that project went from this abstract of maybe three to six months, it turned into a two and a half year project. Yeah, and a four
year engagement with me with with the Angular Google team. Wow. Hey folks, this is Charles max Wood and I just launched my book, The Maxicoter's Guide Defining Your Dream Developer Job. It's up on Amazon. We self published it. I would love your support. If you want to go check it out, you can find it there, The Maxicoter's Guide Defining Your Dream Developer Job. Have a good one, Max out. We went from and Max and Adam short within six months they had to spin off. I think it
was six months. I had to spin off because Ionic was getting real traction and Max just he was made a very wise decision. I can't do both and do well at both. I need to focus on the company and the ionics, you know, the framework and their business. So that left me pretty much as the technical lead. And at one point we had ten developers. Now all these developers were working remote just on the material stuff. Tend
to just on angular jass material because it was all from scratch. And for those of you who have never seen it, let me let me see if I can pull up the just tell everyone with the r LS material dot angular jsp Yeah, material dot angular jas dot org. So not only did we need to create this library, but we needed to create documentation for it,
and we needed to have demos. Yeah, we did have an API set, and we needed to have documentation that was synced with the specific version that you were using, so you could go to any version and see the docs for that version, for that version, so that you can you could be
pinned to an older version still have the doc version correct. So we knew this right, and the dot the demos had to be a reasonable enough the similar type of things that you might have in the real world, right, and we wanted to have a way that you could link from the demos to online to get this sort of This was before sack Blitz, right, so we figured out how to do it with codepen So it was all cutting edge, right. How are we going to do dialogues? How are we going
to do pop ups? How did we do the select menu and all and all of this had to be tied into how we were going to do builds and the build tools within an angular Jazz framework before ES six and type scripts. So it was really quite the task. So at one point, we're turning along and I'll tell two funny stories because and Froster, you've heard of this these before, but I'll tell them for the sake of the audience.
We're turning along, and there were and all of our people. After the first four developers, almost everyone else came on board the team based on open source contributions they were involved in on the gethab rebo. They were submitting issues, they were they were having, they were helping support other issues by adding reasonable comments and suggestions, they were submitting prs, and there was one individual
that sort of stood out. So I reached out to Naomi. Naomi Black was the PM for on that project, and she was just fantastic and just loved Naomi, and I said, Naomi, this guy is doing He's been so prolific in supporting and getting involved. I think we should get him on the team. And so Naomi said, do it. So I reached out to this gentleman and it turns out that his name was Elad Bezalon, and Alad was a soldier in the Israeli Army working at night, contributing all the
way across the war. Oh yeah, and he was he was present every day and he was working, and I mean, he was really contributing good stuff, right. So I reached out to him. And at the time, his English wasn't that great. As I recall, if it was great, I apologize, but I, as my memory says, it wasn't that great. And I said, and a lot of I now are really close friends. In fact, I consider him part of the family. He's so awesome. He is awesome, right, So I all right, how did
I? So I reached out to a lot and I said, hey, I said, we want to see if you'd like to join. And we got on a conference call and I said, like, if you'd like to join the Angular Jams material And it was almost like he dropped the mic. He's running. You could hear him run around the back of the room and going oh my god, oh my god, oh my god, right and screaming. He finally comes out and he goes, yeah, yeah, I'd love to And I said, and I said of course, we're gonna have
to pay you. Drops the mic again. Oh my god, oh my god, running around you know, just right right right. He was going to do it for free. I was like, no, no, no, we're going to pay your right. You're part of the team. We're gonna pay you, right. And so he joined. And there was also you know, Robert Messer Lee and Ryan Schmacher and a few others. And he was great. And then we had one other one was we had another individual that was drowning us in prs, Like, wasn't just giving us one
or two, was giving us like four to ten a week. It just killing us. And he was did you have to all this and not only review it? Some of them we were already doing these features in our own pipeline. So he was replicating and he wasn't communicating with us, and and he was he was all over the place, right And and so before you join the team, we would test you. So we had a test.
We'd say, all right, find some prs this person was involved in, asked going to make changes, See how they communicate, see how they respond. Are they being a jerk? Because that they are, they automatically excluded themselves right. So there was no written policy about how you get on the team. It was all like the secret process, right. Yeah. And so this individual, he had some good prs, he had others that were reasonable, but they weren't in the direction we wanted to go. So I
remember reaching out to a lot. I said, a lot, this, this guy is out of control. Reached out to him and try to get him to collaborate better. A lot couldn't couldn't get him to coordinate. So I went back to know him, Naomi, he said, Naomi said, I think we the best thing we can do is hire this one to get him on the team. So reached out to this individual. And this individual his name was Paul gash Fender. It was now also on the Angler Material team, but he was a kid back then. Yeah, you hit it
on the head. So it turns out Paul, who could hardly he could speak English a little bit, was fifteen in high school again at night, right. But because he was young, we couldn't pay him, and so I asked him if he wanted to be involved, and he said absolutely, And then I said, all right, well then we'll figure out how to bring you and your parents to Angular connect he'd never been to a conference before.
He's just young, but he was a prodigy, right, I mean, he was just amazing, And so he joined the team and his focus like he could just breathe code. I mean I still to this day, but back then, even when he was fifteen or sixteen, I'd get stuck on something. I'd reach out to Paul or a lot or anyone on the team. But you know, I remember several instances work with Paul. Paul, I'm stuck here. Can you get on a call with me and look at some code? And half the time it was me explaining it to him
and I solved it. The other half of the time you just rebroduct it to him and figure right out, got it? Yep, thank you because I always forget that term, right, what is rubber ducking? And the other half of the time he solved it. And there was no like, hey I'm older, you're younger, none of that crap. It was more of I love the way you think. I love the solutions, I love what you're doing. I love the way you collaborate. And it was two
way. I think that was the secret to our success on the Angular Jance Material team was that we respected each other. We were willing to uh, we were willing willing to rubber duck with each other, We were willing to learn from each other. Right, there were in everyone and the team, and so that project went on and I think we released one oh and then one dot one and then I actually moved on from there to oh. Right
about then, Frosty, was when you and I met. Yeah, because right at the end, I was thinking, well, we need something, so Frosty, why don't you tell us tell that part about how we because you reached out to me, sir. Yeah. Yeah, so me and you knew of each other to say we were friends. Were genuous though, right, like we weren't each other no, yeah, and we never worked together before. We just knew each other on the professional, on the in
the community. Yeah definitely. And Egghead was like, hey, come up with some more courses, and I was like, why I don't. I don't know what course I could do, Like I suppose it might be cool to do a course on a material like a lot of people should be using that because I knew how hard it was to build my own components, like I had building my entire component library at work. Me and my coworkers and it was a pain. It was a pain. So it's like, maybe
we could do an angular material one. And so I pined you and was like, oh, what do you think collaborate and you were like, yeah, yeah, definitely, I'll come to Utah. And I wasn't expecting you to be so like lean in so hard. Like I was like, I hope you leaned in, but you leaned in hard. You're like, no, I'll come to use it. I was like, oh, okay, yeah, then I guess we're definitely doing it. So yeah, and you booked an airbnb and we spent a weekend and then dude, we didn't spend
a weekend. You took off a week. We spent eight hours a day in this airbnb building. It was the videos for at least five days. It was. I was so amazed with you and your passion and your willingness to do this, and it was so much fun. I was the same. I was like, Thomas, Thomas's is crazy dedicated to this project, Like he's flying to so like paying his own airbnb costs. I felt so on the hook. I was like, all right, I'm on the hook.
I gotta get this done. Like I gotta I gotta meet him fifty fifty and he can all way in, so I gotta lean in the heart. So yeah, I was, I was. I was. Like Likewise, the admiration was like, Okay, Thomas is committed way more than I am, so I got to step up my commitment level. Like that's right.
It was like this weird thing. And you were working at Domo at the time, and I knew that you were involved in the community, but I had no sense of how much of an architect you were yourself, right, And so that week together it was like, holy hell, here's what
person. He's like a total hidden gem and both from a person perspective and from a skill perspective, right, And it was just it was And to be clear to the audience, Google wasn't paying for this trip, you know, as you said, Frosty, it was out of my own pot because if we were going to have it on Egghead and then Egghead was going to charge money for it, No way we were going to make checks and Google
couldn't pay for it. They weren't going to pay for that, right, Even though Naomi was endorsing me being away saying yes, go do this because she, you know, her opinion about Angular and the way she involved the community was the secret to his success, right, getting the community intimately involved in the process and the features and the feedback and all that was. So then you and I that's when we did the videos, and that was you know, it was like the start of a really good friendship. And then
from there as we started to continue that journey. Then I went into Angular flex Lamp. Yeah, I remember, you know, I had this ideas well, No, even before that. That's how I got involved with thought Ram. So I met Christoph and Pascal at Energie COMF and actually I met them before that, but I started talking to them at Energie comp about their training that they were doing and I really liked them, and I really liked the way they did their Angular masterclass, and I said, I want to
be one. I want to be involved with you guys in doing training. So I started doing that and traveling around the world with them, you know, Ireland and England and Australia and New Zealand and the United State. We didn't do any yeah, even in the United States. We did some work and teaching this to hundreds of developers. We had Craig Spence on here a few weeks ago, well maybe a few months ago, and we talked about your travels around the world, specifically work with him and his team. So,
yeah, you traveled, you know. Craig is he cracks me up. Craig is also someone I hold dear to my heart. When I first met Craig, he came. He never walks around without his laptop and he's always like coding while he's walking, right, because he's just this. But when I met him at his laptop open walking to a meeting, and I think he had pink fuzzy bunny slippers on or something like that, and he's just so eccentric and so intelligent and so himself that I just love, you
know. It was like, dude, you're awesome. He is awesome. So so yeah, it's funny how as you get involved in the community and you start For me, it was not only a team lead on material JS and working as the architect on angular flex layout, and then working with you on the Egghead videos and working with thought Ram on the training. I've met so many amazing people. And that's the thing that I keep trying to leave as an important message to everyone is. It's not the goal that's so important.
It's the journey, it's the legacy, it's the relationships you build from project to project, right, and and then from there from angular flex layout. Then I started working with Narwal. You know, I had met I knew Jeff Cross informally while I Google, but I didn't really get to know them until I said that. He and Victor spun off and I had a chance to work with them for almost a year at Narwal and amazing two individuals. Amazing. I met some amazing people there at Narwal, and they're amazing
developers. Victor is a is a force under himself, or not under himself, but under the in the industry. Right. He's really he makes me laugh because he's so cynical and so passionate, and he and so insightful. And then from there I went. I went back off on my own as as more as an independent contractor and you know my but never along the way
have I stopped believing in myself. But it's never been easy, right, It's there have been moments where it's been one has to step back and go, Okay, I gotta you can burn out so easily, especially as a as a developer, and or you can be pulled in one direction and realize it's a dead end. So what do you do when you're being pulled in one direction and you feel your careers in a dead end? What do you do? You have to step back and go what is it you love and
what is it you feel you want to learn next? And then maybe you start teaching yourself this on the weekends of the night instead of watching TV and sitcoms at night. Maybe spend two or three nights a week teaching yourself something right and between front end Masters and egghead and YouTube. You want to learn
graft QL, you want to learn about r XCHS. You want to learn about ngr X, you want to learn about react, you want to learn about Angular, you want to learn how to do rest service, whatever it's. There's opportunities now. And the thing that's really cool, Frosty is angler Jass prove this. You don't have to interview to knock on a door to
get invited in. If you just especially with open source, if you just start contributing some of these projects, if you're contributing in a in a worthwhile way and in a meaningful way, they're going to exec they'll reach out to you. Now, it's not guaranteed, right, So there's you. I can't tell you how to pick one or not. And but the opportunities can happen. And I think the way they happen is just if you're passionate and you want to write software and you want to collaborate. Yeah, I So
I have a question for you. I want to see what your thoughts are. So you're ready for you're ready for a change, Maybe you're maybe you're you just describe, Hey, you're at a point where you're you're meeting or resistance or a ceiling, or you're you're you're saying, hey, I'm at a dead end. I want to change. You're saying right, And you're saying, hey, do there's so many resources do instead of watching TV? Do these do one of a million things? Right? And I totally agree
with that. I'm going to ask you a different question. What if you're in quicksand and if you don't like if you do anything besides everything you're doing, If you do anything, if you if you try and do the things you just said, you're gonna drop some other balls that you can't drop, right, how do I get out of What do you think, Thomas, how do you get out of that scenario, like the quicksand scenario where you're in the middle, so it's hard to see what people on the outside see
and you're just struggling from the inside. What do you do? What do you recommend someone who's in quicksand right now? Because there are some people that are at that spot right now, some people listening. Well, there's a whole bunch of reasons why you can be in quicksand. Yeah. Some of them can be because you have a sociopathic boss. Some of them can be
because you are in a death march of a project. Some of them can be because you're just simply in such deep water that and you don't have a mentor right or you're on a team that's really not trying to help you and you're not at their level. Doesn't mean you can't be, but currently you're not there, Leble. So there are a whole bunch of reasons and it's
and each of those reasons has actually subtly different answers. But I think the number one thing I could say is the thing to remember is career as a software developer it's not a sprint, it's a marathon. You have to pace yourself. And so if you feel like you're in quicksand or you're being asked to do more and more and more, and no matter how much you deliver,
if people want more from you, remember one thing. If you burn out, whether you're a contractor or an employee, if you burn out and you go I can't do this anymore, they may be sad, but they will replace you. Yeah. Really, and and that's a harsh, hard reality, right that. Wait a minute, you mean I'm not unique? Well, you are unique in the way you present and all that, but you're not unique to You're not irreplaceable. Ever, you're the only person that
can feel that this role at this company. Correct. Yeah, well, you're unique as you, but you're not irreplaceable on let's sale project right now. Your absence may cause a lot of problems, but you're not irreplaceable. If you remember that, then you start going Okay, Well, then if if I could burn out and I'm in a marathon, the only person that
can teach me to pace myself as me. Now, that doesn't mean to slack off, but what it does mean that if you think about that, and you go, Okay, I'm in it for the long haul, and there can be sometimes where I need to work some long hours, right or I have to work extra hard. Believe me, I'm an advocate of hard work, and I'm also an advocate of sometimes it requires extra hours. But I'm also an advocate of quality of life. And so if you have to
step back and go, what's really important? Why am I in quicksand if you're in quicksand because you have a boss who's not acknowledging you and who is not enabling your success and giving shout outs to you, and his actions match his or her words, right, Because I'm not trying to be sexist here, it could be a hym or her if you're if you're working for a boss who doesn't do any of that, then there's only one thing you can do. You have to find a different project. Yeah. Adventures in Angular
is a dev chat dot tv production made in partnership with hero Devs. Hero Devs is a group of Angular experts who can help your team code like true developer heroes. If your team needs an Angular expert, reach out to Aaron at hero dot dev today. I now go ahead, you know, keep going, keep going. So now if that's not the case, if you are, if you feel like you're sinking because there's just too much to do, well, there's always going to be too much to do. There's always
going to be more and more work. So just pick ones that are the most important ones to work on. Figure out a pace that seems reasonable for you that you can sort of manage long term, and then you work to that. You and you just communicate and you you learn to start pushing back going. I can't deliver that on that time. It's there's not enough time to do that, or or I need more people, or I'm blocked on
this area. Right, So, you can't be a miracle worker on you by yourself if people aren't going to if you're on a team and they just expect you to pull a rabbit out or that was a mixed set of metaphors. No, it's good. Yeah, that's the other one. You can't be the sharpest monkey in the draw on balance, just kid. Yeah, I was wonder where you were going. It was like he's pulling a Thomas.
And then the other one is the other one is what if you just you have the passion the pace isn't too bad, but you just feel lost. Yeah, so there's two other snars now this one you feel lost, Well, then find a mentor. That mentor could be on your team, could be someone outside your team. And if they're outside your team, finding a mentor is a little bit harder because a mentor means that someone has to be willing to invest their own time in helping, which means that you have
to engage them on something. We should always for mentors everyone. That's like one of the best pieces of advice I would give is if you see someone, ask them will you help me? They'll always say yes. And it's always really important to have a mentor. But to always thank your mentors and like to remember, hey, I'm here because I'm a product of a system built by these mentors. So yeah, always always always look for new mentors.
Well, and I'll give you a good example. Someone reached out to me the other day and so they had a problem with our xchs and didn't know the person just totally reached out on random and I said, well, it was describing the problem. And I said, well, I'm going to need a stack blitz before I can really help you with this, and he provided stack blitz, and his directions they were taking were not going to be productive. So I said, hang on, I'll work on the weekend and
I'll come up with stack blitz. I think I have took like four or five hours created a stack blitz that showed a lot of these practices and principles. And then and I said, just compare yours to mine, study the differences, and here are some key points that you should think about. And so that was a form of mentorship. But I didn't have time, and I refuse to give time to say I'm going to and I don't mean this to meaning, but where I'm going to sit and almost hold your hand and
guide you through it right this. I'll do that on projects, but just randomly out I just like you, we don't have time to do that. We also have to manage as mentors where we're going to focus our attention are in, especially if we have families. Right agree. So that's what I meant is sometimes finding a mentor to be hard, because you might find someone
who give you a quick life one sentence answer that's not a mentor. You might find someone who will or a group that will respond On Twitter with some feedback. That's not a mentor. You might find someone who even gives you a stack blitz that's also not a mentor. A mentor is someone who's going to be that you can bounce questions off over a period of time. And it doesn't mean by the way that a mentor holds your hand doesn't mean that you you as the student, don't have to study a lot and learn and
be clear on what your questions are. Right, So there's there's lots of nuances about that. Yeah, I agree. I would always look, you can never have one mentor, right Thomas, Like you have several and well, yeah, not at the same time. I'd say one at a time so you can focus because otherwise it's add Yeah, like I have, I
have several people like business mentors. Okay, I think I'd even come at you with business questions before, just because I don't want to tire I don't want to tire a specific mentor out, so ill Okay, that's fair. Yeah, then in that case I would agree with what you're saying. If someone's really burnt out, I'll my take is kind of what you said at the beginning, try and step back, figure out why you're in quicksand. Is it your team? Is it your boss? Is it the project?
Isn't something that you're you're clicking, you're not understanding the project? Or is it? Because it's also could be you. And the reason I say step back and look at that is because until you can answer that, leaving might not help you. Might you might end up at a new place, your hat hung on a new door where you call home with the exact same problem.
And so I would recommend figuring out a way. Even though I know you're in quicksand and it's the worst and you can barely keep your head up, you gotta figure out a way, even if it's take tours like you gotta. You have to you and your family figure out how to step back and figure out what is the source of the disparity and be honest with yourself about it. Yeah, And if it's you, and if you can't see one, it might be you, and it might be time to do some
self help and look at some stuff. And that that's the most important one. If it's someone else, I want you to solve that, But that's not the one I'm really concerned about. If it's you, it's me toms. I need to know that because that's the that's the only one I can fix. I can't fix a broken boss necessarily. I can't fix a broken PM team like that, that's that's out of control. I can't fix a
slave drive scenario where you're just death marching on a project. But I can't fix myself and I can work on me, and so try and focus on those if you're if you're in one of those scenarios, I would just say, hey, focus on yourself and see you see if it is you see if it is something you can fix, and if not, then it is time to look for a new place to hear your hat. And you know what it's also, sometimes that quick sam feeling is just because you're burned out.
Sometimes you might need to be able to say I need a month or two or three months off to do something totally not related to my passion. And I'll give you an example. A couple of times I've taken a month or two months off, worked on my house, or started focusing more on workouts and being healthy. Right and recently, I'll give you a great example.
After eight years an angular, I got burned out. An angular I love Yeah, I love Angular, right, but I got burned out for a whole bunch of reasons, but mostly I just realized it needed to do something different. Like I felt like, I love the DEA system, love a lot of the things that were there. Some of the things going on at Google have sort of burned me out, some of the politics of that
have been going on. And you know what I did, I stepped back in my So, what is something that would challenge me and make me feel like an area that I really don't know? And what I didn't know was React, and so I started looking at it. I was like, wow, I don't know. I didn't really know about fibers. How does you know change reconciliation work? And how does the custom hooks work? And yes, JSX and TSX, you know, the templating stuff is a little weird
to an Angular developer. That I'll tell you what. An Angular developer going to React is infinitely more easier than a React developer going to Angular. There's so much more you have to know to go to Angular. The patterns an Angular pretty much Apply and React just in their different ways, right, different syntax. And so now I have found, for example that I'm really enjoying learning about React, and I'm enjoying learning. I mentioned one to you earlier.
I want to figure out how mob x works, like really interesting statement management and approach that's extreme, like hardly any crud to it at all. Yeah, it's a little bit of a bit of black magic, to be quite honest. So I want to learn how that works. Yeah, it's based on observables, but in a different way than our X yes does it, and it's using proxies, and it's tied somehow into the rendering mechanism of component. But more than that, I'll have to get back with you on
it. But it's but that's that sort of thing that all of a sudden and so I started like, how did I get into that? Well, guess what. I signed up for fun end Masters for forty bucks a month, has went through two React courses and got the basics to go, Okay, I'm no longer afraid of it, and wow, this starts to make
sense. And then I started applying the patterns I knew in Angular, thinking about how I can make it better and what I take the React stuff and make it even better, And guess what, I have a whole new area that I'm excited about. So that's the other thing I would say is if you're burned out on a tech stack, finds another one that you you could be equally as excited about. Yeah, I agree with that. I agree with that. That's good advice. All Right, we're way over on time.
Literally, this has like been a whole regular podcast and it's supposed to be a miniature podcast. Sorry, no, I feel bad. I I want to make sure I'm respect to your time. So I'm going to cut. If anyone wants to reach out to you and they want to contact you, questions, consulting, any other reason. What I think we you broke up? Did you say that last question? Just what's the best way to
get in touch with you? Ah? Best way is email Tom I'm must Burlson at gmail dot com, or our drink message to me on Twitter. I respond to almost every direct message. Where my passion is these days for the audience is mentoring teams and helping. For example, I'm helping one group right now fix their get processes and how they do deployment and how they develop software. And it could be in reactor angular right, And these are things
that are really cool. So I love helping developers be better at what they do and discovering how writing software can not only be productive but really fun. Yeah. Cool, all right, I'm gonna move on to the uh, move on to the section of this podcast. Okay, so I'm hoping you
have a pick. I'll go ahead and start. There's a medium blog it's called Angular versus React Change Detection and it's by Anshaw Kapor, and she talks about the differences between the Angular and the React change detection strategies and uh, she does a good job of breaking it down, and I learned something I always try to under I read these kind of articles because I want to understand the similarities between a you and React. I want to understand where, like
how they're the same. I'm not as concerned where they different. I want to always stay to data as how they're were similar, just just because it helps you talk about them, you know what I'm saying. It helps you have intelligent conversations. So you're not going, well they either is better without any or you know what I'm saying, or why I gave you either more without having a reason to like it, with only having an emotional backing,
not an actual factual backing. So yeah, it's a good article. I'll share it. We show notes if heyone wants to come out and read it. So Tomas, you got to you gotta pick. I do. My number one pick is something I've been playing with a lot these days and actually using on some projects. And it's called well I pronounce it immer js or i'mor i am m e er js. And it's really a set of functions and some a library that you can use not only to create and manage immutable
data. But the biggest problem, so when we mean my immutable data, is that if you're going to make changes to to the data, then you have to create a new instance of it. Right, That's totally yeah, And the reason for that is that's because it optimizes change section in many scenarios. Yeah, you can do a reference check versus erect is it the same object or not? If it's a different object, where then you should do something with it. Right. So the other approach you can do for immutable
data though, to ensure that is to also make everything read only. Right, you can lock it down so no one can make change to the data except for maybe a central area. But the problem with that then is when you want to make changes to fields that you can use the spread operator and do other things to merge properties in and create a whole new instance. But
for more complicated objects, it's really easy to make mistakes. And the really cool thing about immer is it allows you to say, here's a function, and the function is going to take a draft of my state or my object that my data model that I'm managing, and the outside world. It's completely read only. It's lockdown. In the function, I get a draft which is totally modifiable, and I can modify like any other any property I want
at any level with just dot notations. Dot property x is equal to value x, dot property y is equal of value y. And after the function exits, immerge takes care of creative reconciling the changes and creating a whole new immutable instance and then propagating that around. It's super cool and it makes your code so much cleaner. So it's useful in RxJS scenarios, very useful in NGRX, especially with NGRX eight and the creator functions, especially in the reducers
and things like that. It's very useful in React. So I highly recommend people take a look at emmer js. Yeah. I mean it won the Breakthrough of the Year React Open Source Award. Dude, it's amazing. Four stars on. Here's the funny thing is, so I tend you know, we all after we're doing something, we can get a little bit of Hubris. We can go Yeah, I know, my shit, I'm pretty good,
right, I feel confident. Well, guess what. I started looking at the source code for this, and I think it's a little bit like mob X. Yeah. Both of that source code makes a step back and go, man, I don't know anything. I don't know anything right, Like, there's so much to learn. This thing has almost two point four million weekly downloads in the last year. It's more than twenty x it's downloads. It's an amazing library. And it's platform agnostic, I mean our tech
stack agnostic. Yeah, and it is soa and it's done in typescript, so it's and if you look at the way he uses types and unions and all these like and generics, it blows me away. Yeah, this looks like a solid project. Cool. Well, I put it in the show
notes if anyone's to go check it out. Emmerjs. It seems pretty legit as far as it's down with that's that's more downloads than Angular to be honest, like that's the lot of weekly downloads it And then I should give a shout out to who do I think has been so by the way, right these days dev dot two is being used a lot. Let me give a negative shout out dev dot two people, fixture Ui, it's but ugly Medium people. Fix your paywall issue. You're driving away great authors and readers away
from Medium and I love Medium, right, but fix that. And then finally, in terms of authors, I got to give a shout out to netanel Nettan now I think I'm pronouncing his name right, has Ben and as Maximum Maxine Maxine wizardeah Ngie Wizard. Those two guys. I just love your
articles. You guys are totally rock. If you had a Patreon site, I would actually contribute just as a reader because I love the material you push out and the audience should check out the articles that are continually coming from these two authors. Yeah, I agree with everything you just said. All right, give me another shout out Frosty one more then, and then I won't
take your time up another shout out. You want me to do someone a shout out another pick or another shout out for me, Yes from you to whoever you want. I'm going to do a pick of someone who I don't know if I've ever picked this person before, but it's someone who in the last year a year ago, I didn't know them. Now I implicitly trust their opinion and their friendship. I think they're great. So I'm going to do a shout out to Jennifer Wyela. She's She's a huge community person.
She's a humongous personality. I know few people with a personality this size, and I love her. So I'm gonna give a shout out to Jennifer Woodella that I'll pick her as well. She's fantastic. Is she developer and or is she's Yeah, she's like she's an architect of principle wanted to and she's a consultant full time, so she kind of runs in the same circles as you, right, and then she organizes forty million communities. I don't know, it's a lot like have I met this this woman? I don't know.
She was at the last thing she comp but I don't think you were there. I was. I tend to be a hermit these days. Yeah, yeah, I find you put a linked in or a link to her. I'd love to just say hi, yeah, it seems awesome. She is fantastic and she's she's a good person to to have as a friend. She gives great advice, and I just like we commiserate over a lot of the same things. So you know how some days Twitter has a moment and
Twitter's like shut the tab because it's on fire. Uh huh. Her and I it's it's whenever I get like a random d M from her, I know that something's going on, and we we commiserate and agree on most of it. So it's pretty good. I will tell I will tell the audience not the details, but I will say that frosting you with the roles that you've played, have I had to deal with behind the scenes stuff more than most people would ever want to deal with and uh pressures, and I've always
been impressed and proud of how you've responded to these. Thanks man. I Uh, it's hard to be to put yourself out there. You know, anyone who's been a speaker or teacher knows this. It's hard to it's hard to put yourself out there. And when you do you're you have to take
on the responsibility of right and your wrongs. It's scary, but when you have friends like you, you have friends like Jennifer, it is easier because people you safe learning spaces right like you've You've afforded me some of the past Jennifer's has people. People afford me a lot of opportunities to fix my mistakes.
I was referring referring to your mistakes, Frosty. I was referring to, for example, you're you're as one of the founders of engine comps, some of the things that you've had to address in the way you've addressed these right, and so you miss misunderstood because not only do I think you, if you have any mistakes, that you've owned up to them in a real in uh, in a great way. In fact, sometimes I think you've
over owned up to them, if you want to know the truth. I think we've gotten into a society where people are a little bit like the old Japanese Kai bat sues, where someone the executive gets on and he starts crying and and and uh uh, begging forgiveness for his management sins. Right.
I think we that's become sort of a cultural norm here in the US now where people get attacked and then they get publicly they start apologizing, and I don't like that, right, So that's what I meant by when people I'm themselves having to apologize, it's like, no, the only thing I want is just correct and move on. Like so I wasn't referring to you, I was referring to things in general. So I went off on a rant. No, you're good. I uh people are just getting extra podcast today
for free. By the way, I I over I overdo it because there's no shortage of like fake apologies, but not my fake sorry underdone. Let's just say rare, like medium rare. It's not all the way cooked the apology yet. And I don't ever want to come across as that way that I see these these not well done apologies happen. So yeah, that's all I'll say. I just need to make sure people know this isn't uh, well, I'm sorry you're mad that I said that, Like, I apologize
because I legit. I am not going to sleep if people, like, if I ruined someone else's day, that's gonna mess me up big times. So I don't know frustratf for knowing you all these years. I have never felt that you had a non positive thought or a bone in your whole body. You know what, man, I'm good at. I think I'm pretty good at owning my mistakes. The thing I'm bad at is stopping making them.
So guess what, I think that's called the human condition. I know, I know that's why I don't meat myself up as much as I could. Totally. I know we're pretty I know it's pretty part of the course. No, I mean that's now we're getting this whole idea of gratitude and compassion and consideration, right. But I if I think we should be willing to accept that we're going to make mistakes as long as we don't deliberately hurt someone, and we try to become aware of them as soon as possible and
then try to recover and not do them again. I think that's that's a beautiful path. Yeah, I agree, we should. We should do another podcast where we just talk about owning your faste. I think you would have a I think you would heal that podcast. I think maybe we'll invite you. I'll invite you and Jennifer and we'll do a podcast. Actually, you know what we should do. I'd love that. Here's why. Lately I've been thinking about what I go back in time and do things different, and
what things would I do different, like who would I apologize to? Who would I say I'm sorry? And why. I think that's a fascinating topic. And I think the older you get, the more you start thinking about those, right, and at least or the more you slow down, you start thinking about those. Yeah, I agree, that would be that would be an interesting podcast. Huh. All right, I'm going to send an
invite to you. All right, man, Thank you to everyone listening to you, all say thanks for coming on, and to all the listeners I'll say thanks and we'll see you next time. All right, bye. Bye. Bandwidth for this segment is provided by cash fly, the world's fastest CDN. Deliver your content fast with cash Fly. Visit c A, C H, E, F l Y dot com to learn more
