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