All Episodes

September 17, 2025 61 mins
Join us on this episode of the Angular Plus Show as we sit down with Thomas Laforge, creator of Angular Challenges, the open‑source resource pushing Angular, Nx, RxJS, NgRx, and TypeScript learners past tutorials and into real‑world code.

Thomas walks us through why he built Angular Challenges, how it’s structured (60+ challenges tackling everything from state management to signals & reactive forms), and how solving them can sharpen your skills — whether you’re prepping for interviews, contributing to OSS, or simply wanting to code better.

https://angular-challenges.vercel.app/

https://x.com/laforge_toma
https://www.linkedin.com/in/thomas-laforge-2b05a945/
https://bsky.app/profile/tomalaforge.bsky.social
https://github.com/tomalaforge

Follow us on X: The Angular Plus Show
Bluesky: @theangularplusshow.bsky.social  

The Angular Plus Show is a part of ng-conf. ng-conf is a multi-day Angular conference focused on delivering the highest quality training in the Angular JavaScript framework. Developers from across the globe converge  every year to attend talks and workshops by the Angular team and community experts.

Join
Attend
X
Bluesky        
Read
Watch

Edited by Patrick Hayes
Stock media provided by JUQBOXMUSIC/ Pond5
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:00):
M hm.

Speaker 2 (00:08):
Welcome to the Angular Plus Show. We're app developers of
all kinds share their insights and experiences. Let's get started.

Speaker 3 (00:21):
Welcome back, everyone to another episode of the Angler Plus Show.
I am your host today j Bell and I am
joined by my two co hosts. Who do I want
to pick first?

Speaker 1 (00:33):
Ya?

Speaker 3 (00:33):
Because we got confused for the same person and that's true.

Speaker 4 (00:41):
John, How you doing?

Speaker 3 (00:45):
John?

Speaker 5 (00:46):
Uh, definitely too early and I should have grabbed another
cup of coffee before this.

Speaker 3 (00:51):
I regret I've got this one.

Speaker 5 (00:53):
I was a little jealous, but it's probably a cuic
so I'm not that jealous.

Speaker 3 (00:57):
It's not a car gets an espresso.

Speaker 5 (00:59):
I've god, you're an espresso guy. That's like it's still
like ten times better.

Speaker 3 (01:03):
But it's like still ten times better means insanely low.

Speaker 5 (01:08):
Yeah, it's just saying like the bars literally underground, like
it's a pipe.

Speaker 4 (01:15):
When it's underground, right, it needs to be hollow for
a pipe, right, that's true. I bet it's a hollow bar.

Speaker 5 (01:23):
Probably probably and plastic.

Speaker 4 (01:29):
It's actually PBC.

Speaker 3 (01:33):
Flora. How's going?

Speaker 5 (01:35):
Yeah?

Speaker 4 (01:35):
Good? Yeah, very good?

Speaker 5 (01:38):
Yeah.

Speaker 4 (01:40):
Everyone, I just just afore morning in the mornings. Uh,
my door is open and my catch just go in
and out of frame.

Speaker 1 (01:47):
And so we have our guests as well. It's not
just the three of us talking at random stuff. Uh, Tom,
do you want to give yourself a little introduction?

Speaker 3 (01:58):
Tell everybody who you are and what you do, and
then we'll get into what we're here to talk about today.

Speaker 6 (02:03):
Yeah, no problem. So I'm tell us or in French
if you prefer. I'm an Anglar GD for now a
bit of more than two years, and I'm working as
a software engineer on Angula. So I'm helping team to
develop projects on Angula or helping them to be better

(02:26):
at Anglia. And outside of this of my work, I'm
doing a side project which is called Angular Challenges.

Speaker 7 (02:34):
And I think we are going to talk about it.

Speaker 6 (02:36):
Yes, yes, that is the.

Speaker 5 (02:39):
Goal about it.

Speaker 7 (02:44):
Yeah, that's mostly it about it.

Speaker 3 (02:46):
Yeah cool. So I always get into what what is
Angular challenges? I had never heard of it.

Speaker 4 (02:52):
I think I know regular challenges. Are we going to
talk about why angular is hard? Because sometimes there are
reasons why angular But it's a much better episode than that.

Speaker 6 (03:08):
You guys out, but it's getting easier, but here to
make it easier for everyone.

Speaker 7 (03:15):
So what is it? And it's a shame that you
never never heard of it before, because.

Speaker 4 (03:25):
I have heard of it. I just forgot because.

Speaker 5 (03:28):
That's about the same.

Speaker 4 (03:33):
Like I didn't remember today because when we brought it up,
we're like we should invite them on. I'm like, oh yeah,
because of this, and then I totally forgot that that
was what it was because it's been a week.

Speaker 6 (03:45):
But anyway, I forgive you because I haven't spoken about
it about it six months now because I'm less. I'm
momental now than adding new features to it. So but
before the previous YOW was adding a lot of challenges
one after each other, so I was publishing a lot
of about it.

Speaker 7 (04:04):
But what is it.

Speaker 6 (04:05):
It's just like a group of challenges about around Angular
or NX or library using Angular, angix, ten Stock or
other libraries, and you just come to the website, pick
a challenge and try to to figure out how to
solve it, and you can. And the good thing about

(04:26):
it is that after that you publish it on get
Up and you can get a review from me or
anybody else and then try to improve your Angular doing
doing those challenges. So if you haven't seen there is
a Jay posted the link on the chat, there'll be

(04:46):
for everybody, and yeah, there will be a shot out
for everyin everybody listening on podcasts. So but if you
never heard of it, of it, it's a good time
to start.

Speaker 3 (04:58):
I see there's a leaderboard too.

Speaker 5 (05:00):
I like that rank all the sixty questions as to
be number one on the leaderboard.

Speaker 6 (05:08):
Well, it's not really challenges about to be cracked that
it's very difficult to crack them, but it's more about
learning journey and how to become from from a beginner
to an expert in anglia and trying to But the
main good of it is too I was going every
time I was I was, I had a difficult problem

(05:32):
on the client project, I tried to replicate it on
the challenges make a new one and so people can
solve will project, will issue on will projects, not like
all the time doing like a to do list or
like the two tour of Hero of the Angula.

Speaker 4 (05:53):
I think I think replicating actual problems that you encounter
in real code is probably the biggest challenge for creating
content because it's like okay, I made okay, I made
you this very contrived situation where this will literally never
happen to you. Because it's so simple, or you would
never actually use this this here because it's overkilled, but

(06:16):
here's how you do this thing. And yeah, it's really
hard to come up with good code examples for people
to actually have to solve problems, and so that I
think that's extremely valuable to people. But also it is
so hard to find good learning resources for people that
aren't just okay, go through the like go through tour Heroes,

(06:38):
or go through the tutorials on the Angular docs, or
go to this learning platform and hope that they are
up to using modern Angular by now, because most of
the major learning platforms still have a mixture of pre
version sixteen Angular and post version sixteen Angular, and it's
hard for people to learn.

Speaker 6 (07:00):
But also you can look at it all solutions, so
it's very good to see what people can what you
can do, and what you should not do, because I'm
trying to post it as well, and you can get
inspired by other solutions, so it's not only your solution.
But yeah, it's like a bit like other platform of challenges,

(07:25):
but with angry.

Speaker 7 (07:27):
Would be the same.

Speaker 5 (07:29):
How do you balance like new newer features and older features,
because it's kind of difficult, particularly now with anger where
you have like, realistically, a lot of applications in the
real world are still using modules, are still not using standalone,
are still using structured directors instead of control flow, et cetera.

(07:51):
So where do you draw the line of like, Okay,
let's teach latest and greatest and the best practices, et cetera,
et cetera, but also realistic in the real world people
are not just there yet.

Speaker 4 (08:03):
Mm hmm.

Speaker 6 (08:04):
Yeah. So I the goal of the of the repository
is to show modern Anglia, So I'm trying to maintain
the challenges to so I'm migrating them all the time
to the new angular way of doing things, but I
keep some few challenges, for instance, to migrate from ng
module to stand alone, so hard to do that. But

(08:27):
I'm not keeping old challenges, so there is no changes
to learn ange module.

Speaker 7 (08:31):
Because this doesn't make any sense.

Speaker 6 (08:34):
I understand that there is a lot of projects using
engine modules, but the goal is to migrate them. So
I'm so I don't want to teach them how to
use the old angular way, but I want to teach
them how to migrate from the old to the new one.

Speaker 3 (08:50):
What would you remove challenges?

Speaker 5 (08:51):
Then?

Speaker 3 (08:52):
Is it when something gets deprecated in a major that
you would go and remove the challenge and then instead
add a like a migration challenge or do it? Do
you just is there not really one like you know,
point where you got remove.

Speaker 5 (09:05):
A challenge as much as duplicated.

Speaker 3 (09:07):
I guess yead, But yeah.

Speaker 6 (09:12):
There is a good example of about this one. For instance,
I had a challenge which was the goal was to
expand the NG four directive. But now that the ENG
four is duplicated and it's quite easy to to move
to at four, I just digitted the challenge because for

(09:32):
me it was kind of useless. And also when the
challenge has never been completed, I just didleted because I
don't want to maintain.

Speaker 4 (09:40):
Sure, I'm going to keep maintaining no one's ever done
this challenge, but somebody someday might. That makes a lot
of sense.

Speaker 5 (09:49):
I would think it's super quick, super curious if y'all
think that expanding or extending structure directors is really a
cool use case, Like everyone says, oh, yeah, it's so
fancy and here's how you do this, But really, the
only use case I see it for like feature flegs
and it's not like this is the only solution for this,

(10:09):
So I would be curious if that's just my bias
or if.

Speaker 8 (10:13):
We've used structural directives to handle like like like user
based authentication for certain features, because it's a lot easier
to slap a structural.

Speaker 4 (10:28):
Directive on an element than it is to like, I mean,
there's other ways you can handle it, but that's probably been.

Speaker 3 (10:35):
The most I can resources.

Speaker 5 (10:40):
Yeah. Yeah, Often feature flegs are the where I'm like, yeah, okay,
I can see that. Other than that, even.

Speaker 6 (10:47):
I'm not using direct you now I'm using it if
and I'm using signals and just yeah, I prefer this way.
It's easier for beginners to to understand. But for that,
for instance, the n G four are just extending I
had a very cool use case to add the empty No,

(11:09):
but you have the n G four empty.

Speaker 7 (11:11):
But it was a very new case to extend NG
four to NG twenty, and.

Speaker 4 (11:18):
An angular just came in and stole your thunder. They're like, no,
got you. Yeah, that makes a lot of sense. And honestly,
the like the migration because I think when you I think,
when you update is it version nineteen or is it
version twenty? Where it automatically runs the schematic for you
and makes you get rid of your structural directives, like

(11:42):
one of the I think it's version I think it's
going to version twenty, but it might be when you
go to version nineteen.

Speaker 6 (11:49):
Because in version twenty the NG one switch direct deprecated.

Speaker 4 (11:54):
Yeah, it must be when you migrate to version twenty
because it when you run a when you run ng
updates to version twenty, it automatically migrates all of your
structural directives for you, which is which is like, it
can be scary, I think for teams that have been
hesitant to do it, but like that migration schematic has
been I think that's probably been the most used schematic

(12:17):
at our team because it's been really very reliable. Yeah,
it's super reliable.

Speaker 7 (12:24):
Yeah. Not for truck truck dye. It's not working words
for truck dye. For the rest sure sure easy to migrate.

Speaker 5 (12:32):
Yeah, yeah, I saw an anger challenge. You have a
section on enoms versus unions. What do you have to
say in your defense that it not says that enoms
is utter garbage?

Speaker 7 (12:46):
I don't like ms. You should get to rid of them.

Speaker 5 (12:49):
That is a good answer. I think that should be
the very first sentence on ASTRA chapter. I'm happy to
file a poor request for that.

Speaker 6 (12:56):
Yeah, you have a you have a change a boat
creating a yes lint rule to di it yes to
did it enmes.

Speaker 5 (13:04):
That is a great rule.

Speaker 4 (13:06):
So it is a hard habit to break. Fan like
I you have to be ever vision. Well, when you've
got a whole team that's writing enames for everything, it's
hard to get the whole team to stop doing that.
Like it's good to like, Yeah, it takes education, especially
when your teams are across the world. It's real hard
to be like, I know, overnight you wrote this code

(13:28):
and it works fine, but listen to me. Here's read
this article by Yon and.

Speaker 6 (13:36):
Yeah, that's why if you create that estin rule that
is forbiding nimes, the break.

Speaker 4 (13:43):
Yeah, yeah, which is I think I don't know if
we've gone quite that far.

Speaker 6 (13:49):
But yeah, but even in my project, we can. I
cannot add it because we have so many animes already.
It's too difficult to It's mostly because of the back end,
because back in framework using aslots.

Speaker 4 (14:04):
So for the learner, what is what does the process
look like? For somebody who's joining Angular challenges, how do
they get started.

Speaker 6 (14:12):
So one of my other goal was to try to
to to to bring the learner to lack a work environment.
So the goal is to go to get up. You
need to clan the project to your machine, and then
it's like if you go inside a new a new

(14:33):
project inside a company, you will have to clone the
project and start working on it. So it's the same process.
Then you try you create your own brunch, so you
need to learn gits as well. But now it's everyone
needs to learn git. If you want to work as
a dev developer and you create your own branch, you
resolve the project and then you push it to git

(14:55):
up and and after that you have a pull request
and you can compare your answer with other people.

Speaker 7 (15:03):
So it's exactly the same process.

Speaker 6 (15:05):
Are you as you work in a company with other
developers in the team.

Speaker 7 (15:10):
Yeah, the what I wanted.

Speaker 6 (15:12):
To to to teach people, it's it's like if you
can do a challenge in my project, you can do
any open source project inside any project in the in GITA.
So because for people when you're like very junior or
even for senior developers, it fits like a black boast
to a black box to be to use to do

(15:34):
open source. People are very good developers and I cannot
do it. But it's very simple, simple, just do it
as you do every day that your work and can.

Speaker 4 (15:44):
Yeah, And I think that's I think that's really great.
Honestly when I so, I worked for a company for
four years and they used tortous SBN. I did not
know how to use GET. They didn't know how to
use SVN, like I had to figure out how to
use SVN, Like I was the one that made branches
and stuff and tried to merge branches together, and so
it was. It was a mess. And my biggest anxiety

(16:07):
joining a real team was using GitHub because you know,
you spend all your time if you you know, I
spent a lot of time on tech social media, and
you know, people are like, huh get refresh hard, like
oh no, like merge conflicts. It sounded like the worst
thing in the world. And I remember the first time
I tried to rebase a branch, I'm like, what is happening?

(16:29):
You know, Like I was so afraid that all of
my changes were just getting thrown away. And you know,
it's like just getting that understanding and familiarity with GET
can can really help people sort of boost their careers
because there is an expectation that you do no get Obviously,
not every job does, and not every developer is going

(16:50):
to have that experience. I know you're looking at me
like not every job does, but you know, for real,
not every job uses it. So there are still people
out there on that take the branch that they want
to put into production and just put it on the server.

Speaker 5 (17:07):
Those are PHGP developers. That doesn't count developers.

Speaker 4 (17:15):
So I mean it's intimidating when you can and there's
a lot of developers out there that they start their
careers because somebody at the office said to them do
you think you can help us update the website? And
they're like probably, because that's pretty much how I started.
So those systems are usually not very sophisticated and it
is hard to move up.

Speaker 5 (17:34):
So how do I say this in polite English? But
I also think that times changed a little bit since
you started.

Speaker 4 (17:43):
Okay they have, but I know people in this exact situation,
Like I'm.

Speaker 5 (17:48):
Not saying there's no one, but like proportionately, I think
we we did a major leap or from like oh
yeah file Zilla and like FTP to deploy is that
shit too. Well, let's if you look into something more sophisticated.

Speaker 4 (18:03):
Yes, in general, yes, but I just want to acknowledge
that there are going to be listeners out there that
are like, I don't know how to use GitHub? Does
that mean I can't be a software engineer? And it's like, no,
but you should probably learn how to use GitHub because
it's it's less difficult than it seems more difficult than
it actually is.

Speaker 5 (18:21):
But you should learnt get hub.

Speaker 4 (18:25):
Sorry, yes, get you can get a freak gift.

Speaker 5 (18:38):
No, that is like saying, oh, learn a browser to
develop websites. That is not how this works.

Speaker 4 (18:45):
You do have to learn how You do have to
learn things about the browser to develop what.

Speaker 5 (18:50):
Oh yeah, when did you check out a browser and
compile them from scratch?

Speaker 4 (18:54):
Oh no, no, no no. I meant like, you just need
to learn how your browser works, like you need to
know how to open its dev tools and like what
opportunities you have there.

Speaker 5 (19:02):
But don't need you don't have to know the code.

Speaker 8 (19:05):
You can.

Speaker 5 (19:11):
Okay, we completely the rest of that.

Speaker 4 (19:13):
Sorry, everybody, the rest of us are just Johan and
I arguing about this. Okay, I love that. And it
looks like you've got good directions to kind of do that.
And so once they've cloned, like once they forked the repo,
they cut their branch, what do they do next?

Speaker 6 (19:36):
They try to resolve the challenge. Now they go inside
the website. There is everything that is explained. I think
there's guide for everything getting studied. You resolve a challenge
and trying to can also contributing by creating a new change,
but by starting.

Speaker 7 (19:57):
The very starting point is you is to fold the project.

Speaker 6 (20:01):
Like you said, put it on your machine, pick a
challenge anything you like. So I try to categorize them
in easy, medium and art challenges, so with colors, so
you can take it easy challenge and try to solve it,
and then you just push it to angular repository. Then

(20:24):
you will see your challenge on the on the guitar
on the main guitar repository.

Speaker 7 (20:30):
And inside this one, I also categorize them with.

Speaker 6 (20:36):
The number of the challenge and yeah, so and then
you can look at other challenges inside the repository and yeah,
and start start from here and then and then the
hardest part for people who don't know how to use gits,
it's that they need to twitch brunch if they want
to reserve and you change, that's I can see people

(21:02):
like doing one change pushing it to to get up,
doing anos a change, pushing it to get up.

Speaker 7 (21:06):
You know the pr it's.

Speaker 6 (21:10):
Twenty and so and so on, and that can be that.

Speaker 4 (21:14):
Again, in defense of the people who haven't used git
on GitHub, it can be really confusing. Try to understand, wait,
why is everything in here? And then you spend your
whole time troubleshooting that.

Speaker 5 (21:30):
But is it more confusing on GitHub than on git lab.

Speaker 4 (21:33):
Or honestly, I've never used git lab?

Speaker 5 (21:36):
Okay, is less confusing apparently?

Speaker 3 (21:39):
What really, I don't know.

Speaker 4 (21:41):
I don't even know.

Speaker 3 (21:42):
I don't know what I'm looking at.

Speaker 5 (21:45):
But that's a you I issue and a little bit
of skill issue, probably skill issue.

Speaker 3 (21:49):
Real I feel the same way wet bit bucket, So
maybe it is.

Speaker 5 (21:53):
It's the worst everything that a lession touches us like garbage, garbage, garbage,
that's incorrect. I have I have a serious question. I
know it's hard to relieve, but I have a serious question.
How come that the Dog's website is not wort an angular.

Speaker 3 (22:14):
Good challenge?

Speaker 6 (22:17):
Yeah, this is the because I wanted to create the
dogs very fast from stuff. So I used the Starlight
project from Astro, and also I wanted to learn how
to use astros because for me it's also a good
project to learn. But now I'm trying I want to
to to to to duplicate it or to to rebuild

(22:40):
it from from scratch with Inglian because I had some
a lot of issues with Astro because I am often
not as through but from a Starlight from as true
because I'm trying to to to tweak it too much.
So yeah, so the goal would be to to migrate
it to Angular, but it doesn't have the time to
do it.

Speaker 5 (22:58):
But I would love I think I think this is
a good time to plug Brandon Roberts work on making
Anger work with Astro.

Speaker 3 (23:06):
Oh yeah right, Rocky did that.

Speaker 5 (23:09):
Technically there's an analog plugin to make Astro work with Angular.

Speaker 7 (23:14):
Yeah okay, I didn't know about it, but yeah.

Speaker 5 (23:17):
I know Chow uses this for Angular three.

Speaker 3 (23:23):
The astro plugin or the analog astro.

Speaker 5 (23:27):
Yeah, bad thing.

Speaker 3 (23:29):
Whatever's plugging into a lot. I don't actually understand the
whole things.

Speaker 6 (23:33):
Something something, but also one thing I want to do
because I want to migrated to a unit's mostly to
make it easier for people to compasoration and.

Speaker 5 (23:46):
You should.

Speaker 3 (23:48):
Yeah, maybe one day.

Speaker 5 (23:51):
So one thing I'm a little confused by this houses
process from like okay, once someone opened a poll request
for saying I've answered this question, how does this get
then transitioned into like the legal board and those kind
of things.

Speaker 7 (24:06):
It's busy when you push.

Speaker 6 (24:08):
When you put a pull request, you just there is
like a guit aduction that is looking at your answer,
so you will be like a challenge one for instance,
so you're just putting a ladder to next to it,
and then when you click on the leader board, I
would just pull all the pull requests from Guitar and
process them to know who did what.

Speaker 9 (24:31):
Interesting okay, So if you want, you can just create
pull requests like use let's pull request with the number one,
and it would be okay because before that, like one
year ago, I was reviewing all pull requests.

Speaker 7 (24:50):
But now too much work.

Speaker 4 (24:51):
So yeah, so what kind of help do you need
from the community with us?

Speaker 7 (24:58):
So now if you.

Speaker 6 (24:59):
Want, you don't have to resolve all challenges. You can
contribute by creating new challenges. If you want, people help
me by creating new challenges or real life examples you
can also review other people answers, or you can also
like to just do anything you want with the challenge.

(25:19):
Because it's open source, it's spread to everyone. So if
you have new ideas, a new direction to to to go.
Because last year I was very I was very focused
on it and I had two more three people helping
me a lot, but very it was great.

Speaker 7 (25:36):
But this year was more maintaining it, so it's less.

Speaker 6 (25:41):
Less visual on the on the outside, you can say,
but it's it's still a big work to do because
you have changed a lot. But yeah, I don't know.
People can come and help or can comment, solve the
problem or do whatever they want.

Speaker 4 (25:58):
There's no I think it's a great opportunity for teams right,
Like so I get a lot of like middle to
early career devs. It's it's a good space to be like, hey, guys,
this week, we're going to practice our angular let's all
work on this challenge, push it up, and then there's
nothing to stop like your own team lead from reviewing

(26:21):
your code or from reviewing like there's nothing to stop
you from working with other people to like to form
sort of groups to work on challenges together. From what
it sounds like, which I think it really what you've
created is sort of this great hub for people to
get together just to increase their skills where there's no
risk of bringing production down or.

Speaker 5 (26:44):
You know, like.

Speaker 4 (26:48):
I don't know, like sometimes track commits like, oh, what
are you working on? Like we're clearly working on training.
So yeah, I think there's a good I.

Speaker 6 (26:58):
Think as onboarding or interview process.

Speaker 4 (27:07):
Oh yeah, interview, Like it's a great thing for interview.
Interview challenges are hard because most of the canned ones
are terrible, so especially for Angular. Yeah, we used to
use one and it was just so it was just
barely useful at all because it just the code was

(27:27):
so weird anyway that you're like, why would anyone do
it that way? But then the problem you were trying
to solve wasn't the code that was like written in
a strange way. It was some other thing that you
were trying to solve, so people would get distracted by
how bad the rest of the code was. So that
was hard. So yeah, that's a great that's a great
use for it. Yeah, and also just upskilling your teams.

(27:50):
It's hard to give interns like meaningful challenges in Angular
without being like, go ahead and write it in our
code base, and I hope that it's okay.

Speaker 5 (28:02):
Good morning. You know that moment when your coffee hasn't
kicked in yet, but your slack is already blowing up
with Hey, did you hear about that new framework that
just dropped? Yeah? Me too. That's why I created the
Weekly dev Spur, the newsletter that catches you up on
all the web deaf chaos while you're still on your
first cup. Oh look, another anger feature was just released,

(28:24):
and what's this typescripts doing something again? Look also through
the poor requests and changelot grama. So you don't have
to five minutes with my newsletter on Wednesday morning, and
you'll be the most informed person in your standard. Ah.
That's better the Weekly devsper because your brain deserves a

(28:46):
gentle onboarding to the week's tech matters. Sign up at
Weeklybrew dot Death and get your dose of deafnews with
your morning caffeine. No hype, no clickbait, just the updates
that actually matter. Your Wednesday morning self will thank you.
So the way that anger challenge is set up, it's
a little bit of like choose your own adventure, right,
Like I maybe want to learn about unions versus enoms

(29:10):
and discard enames for good, But what is your philosophy
on like learning path kind of thing compared to like
this choose your own adventure where it's like more guided,
more like, hey, you should maybe go from challenge one
to challenge to challenge three to challenge and so one
and so forth.

Speaker 6 (29:28):
I understand this because this was a woom mark good
people don't know which one to do when they's stuff
from scratch. But my goal was not to do this
type of journey because it's already you can already find
it on the internet, like on the tool of Ero
or something like this. You can already like build your

(29:49):
own applications from scratch and try to learn I think
you a concept from from this one. My goal was
more to have like will will issue from what I've
seen really corbez and so to put them here and
people can come and but yeah, I can understand it's
something I'm trying to figure out how to maybe make

(30:11):
it more easy to find what you're looking.

Speaker 7 (30:13):
For, difficult you are looking for.

Speaker 6 (30:17):
I don't know, it's it's it's not easy to come
and say I want to work on I don't know signals,
I don't know.

Speaker 5 (30:26):
I personally think those are just very two different ways
of learning, and none of them is necessarily better or worse.
It's just like the guy that Eric, the guy that
maintains the reductokit for React. He has a great blog
post series on like how dogs should be structured, and
he basically differentiates between tutorial and recipes and has like

(30:51):
various categories of like how people approach learning. And I
think this kind of applies here in a similar way,
where like, yeah, people that are already familiar with the
base concepts, those more want to learn, like about certain scenario,
how do I fix this particular thing? How do I
tackle this particular thing? Whereas like people that get into
anger and have like no idea what even an enam
is are like, Okay, why should I start there? Versus

(31:13):
somewhere else? So I think those are just very eight
completely different user groups. Some of them might not even
know GitHub I've heard of that, versus also or get
Jesus or GID, and some of them are really just

(31:35):
there to like, Okay, I heard this anger thing is cool,
I kind of want to look into that. I still
think tour of viewers is not a good way into Angular.
It hasn't been ten years ago, and it's still not.
And I no shame for Shade on the Anger team.
Ducks are hard and super hard, but the learning experience

(31:56):
has been bad. Got a little better, but it's still bad.

Speaker 4 (32:00):
Do they still use is it still called tour heros
on the new Dark site?

Speaker 3 (32:04):
I thought so, Yeah, I think so, isn't it?

Speaker 4 (32:08):
I can't remember well, I get numbers, though I ever knew,
I don't know.

Speaker 6 (32:15):
But yeah, But one thing also, it's not intending to
be only for beginners. For instance, I'm trying to add
new change every time there is a new features coming
to Anglia. So for me it's a good way to
learn how to use it. And for although it's also
a very good way to learn how to to migrate frondstand.
When signals came in, old seniors developers didn't know how

(32:36):
to use them quietly. Maybe more still don't. Most a
lot of them are using effect every word that we've
got to do it today. So and for instance, in
V twenty one, when the signal forms are coming and
I will create a bunch of challenges to to start
learning them and to start Yeah, so it's not only.

Speaker 7 (33:00):
Beginnings, and so it's for everyone.

Speaker 6 (33:02):
And when you know, well, it's mostly for me, but
when you know the change or the challenges, it's I'm
always coming back to them because from the for instance,
when I have an issue somewhere, I know that I
have a change about it, and I can come.

Speaker 7 (33:15):
And see some solution and try to figure it out
how to solve it.

Speaker 4 (33:20):
And sometimes it's just a matter of having enough of
the code setup so that you can actually focus on
the problem instead of having Like the hardest thing for
me about learning some of the new features is trying
to figure out the setup around the features so that
I can make it useful if that makes It's like
the same problem of content creation, Like, ah, I want

(33:41):
to make it tutorial, but I don't want it to
be just it can't be so hard that it's difficult
to teach, like to teach what I need to teach,
but it can't be so easy that it doesn't even
make sense to like, it doesn't make sense. And so
even just providing that setup for death to come in
and say, okay, I can really focus on this problem,

(34:02):
Like that's such a valuable contribution to the community. That
I think. I don't think people realize how much effort
goes into that content creation. I just appreciate that you're
doing that for us, but.

Speaker 7 (34:18):
I think it's not well presented because.

Speaker 6 (34:22):
I think more people come and try them or even
get inspired by them to I don't know, because for instance,
there is one project I wanted to create about.

Speaker 7 (34:36):
Store management.

Speaker 6 (34:38):
There is one about it, and the goal invited many
DDS or other angrad developers to store the issue so
to chuse the Signal Store, to use tend stack querry,
to use any solution we have, or even the simple
services as a state of service, and to see how

(34:59):
we can implement them. If if you want to use
the Signal Store, you can come and look at the
solution and you can see how like I don't remember
that it was I don't remember his name who created
the senior.

Speaker 3 (35:13):
Store Marco Who Marco Marco?

Speaker 7 (35:19):
Yeah, so I invented him to to to do the
challenge and so he was his solution doing so. Yeah.
So this is also a good way to try to
to together everything at one place.

Speaker 5 (35:33):
And if you have someone look at that go through
the challenges, what would be like your hope for what
they're taking out of that, what would be a key
takeaway that they should be looking for.

Speaker 6 (35:49):
The should be looking for how to write proper, stealable,
maintainable the with all the new modern with of doing
I'm trying to make it as as close to what
angler should look like in all projects.

Speaker 5 (36:07):
I'm wondering how, because that's partially a thing that bothers
me about anger sometimes, but's also one of the strength
is like how opinionated it is? So do you really
think there is just that angular way of doing things?

Speaker 6 (36:22):
Oh, it's not what I meant. It's not like if
you want to use the signal, so you can, you
can use it. If you want to use only signals
and nothing else, you can do it. But for instance,
the goal is to show people out to use signals
like not if you want to derive a property using
computed and not like using an effect that is setting

(36:43):
a new like how to structure you call inside it.
But if you want to use your your own library
you can do it. Of course, it's not like only
one way of doing it, but there is one good
way of writing.

Speaker 7 (36:57):
I don't know, like a chap component there is.

Speaker 6 (37:00):
If you want to use a short component, try to
use ang content to toll anng trumpet out late to
try to make it as customizable as possible, and they're
doing twenty inputs too.

Speaker 5 (37:15):
Yeah, you use one with an object, right, that's a
proper approach. I'm just joking.

Speaker 7 (37:24):
That's exactly or having one inputs proportion.

Speaker 3 (37:31):
Granularity guys, granularity granular. I.

Speaker 4 (37:36):
So what I would say about Angular is that when
people go wrong with Angular, they tend to do the
same wrong thing. Like I've seen some creative solutions, but
in general, I can show code where I'm like, look
at this code, and people are like, wait, is that
my code? Because when people when Angular goes wrong, it's

(37:57):
kind of in that same direction where it's like, oh,
I'll just add more inputs. Oh oh, I'll now I
got to handle this. I got to write a method
that I call here and then like and I know
there's always going to be exceptions, but but.

Speaker 5 (38:10):
Isn't that the thing in all programming? Now?

Speaker 4 (38:13):
Just so, but I like the okay, so the creativity
and going wrong in React apps, I've seen a wider
it goes wrong in many more directions like it. Angular
keeps you at least going wrong in the same direction,
like there's certain there's like certain guardrails, but like it's

(38:33):
real hard to get around, whereas something like react it's
a little easier to be like and then I'll simply
do this and it.

Speaker 5 (38:42):
Okay.

Speaker 4 (38:43):
Like I didn't think you could put like a whole
bunch of different state management tools into Angular as easily
as you can React. But no, you can. Actually I've
learned that you can. Yeah, it's pretty easy. So but yeah,
I think I think it's good to have examples out

(39:03):
there where people because I think people's inclination is right
the code they know which is fair, like that's this
is comfortable, and it's you know, it's like the ENUM thing.
If you've been using enumes and you haven't been really
bit by them, it might be hard to understand why
you would.

Speaker 5 (39:20):
Not use them general, I agree, but that goes more
into like the like unknown no no unknown kind of thing,
like it's hard to know what you don't know. Yeah,
and I in a way that this applies to all
off that's just.

Speaker 4 (39:37):
What it does. It does, it does, it's not uniquely angular,
but but I think having a challenge in Angular challenges,
that's like why we should switch from enumes to union types.

Speaker 5 (39:48):
At least it's like the first that's very clear. What's
that the first sentence and that should make that very clear.

Speaker 7 (39:57):
But to it's very difficult to know what you don't know.
I think I didn't know about it before.

Speaker 6 (40:05):
But I think you can come to ANDIO Challenges and
see all of these sections and you can look at, oh,
there isn't you can do it this way, I can
do it this way. So I think it can be
a good way to I don't know, to find what
you don't know.

Speaker 5 (40:20):
It also challenge your bias in a way. Not that
anyone is biased here about enoms. No one is.

Speaker 4 (40:27):
No one has ever gone on a tear about that.

Speaker 5 (40:31):
So it's a very objective though. I like that a
lot because I challenge your own way of thinking. It
also puts you into with having the solutions out there.
It puts your approach into perspective and comparing that. That's
often a thing that I'm lacking in like blog poster

(40:52):
where it's like, Okay, you do this thing, you do
that thing, and it's like always like the most logical
next step, so that you're always just like, yeah, this
exactly how I would do it, and then you're writing
it yourself, and it's like completely not how you would
do it, but what about this? Yeah, so I think
this approach is really interesting again for like people that

(41:13):
already wrote a little bit of anger, like familiar with
some of it. It's quirks and edge cases, but really
to like foster a healthy learning experience into a direction
as productive.

Speaker 4 (41:27):
Yeah, I think it's also a great way to like, Okay,
so when you're working at work, when do more than
when like when do you have more than one dev
pick up the exact same ticket and compare what they did,
Like you literally don't that's not how you that's what
you don't do it work. But this is a great
opportunity to say, like, hey, here's here's the same problem.

(41:48):
I want all of us to solve the same problem,
and I want to see how we solve it the
same and how we solve it differently, because honestly like
getting it. I love getting new developers around our key
because they'll bring in new patterns with them. Sometimes I
don't like the pattern or you know, like it's not
gonna work for us. Sometimes I'm biased against the pattern,

(42:09):
but you know, sometimes you're like like, so this is
The funny thing I've learned using like AI, I don't
have to use reduce for everything. Reduce isn't the answer.
Sometimes you just want a fore loop. It took me
a really long time to get there because reduce fancy.
It is great, but sometimes it's not the right tool
for the job, and sometimes you have to go for

(42:31):
a less fancy tool like a for loop and just that.
Sometimes you learn that when you let other people write code,
like solve problems the same problem over and over again.
I think it's a good opportunity. So what I'm saying
was teth why would you not use reduce?

Speaker 5 (42:50):
When would to not use reduce? So because I usually
rather make the opposite rule of never use reduce because
it's mostly too complicated for people to comprehend.

Speaker 4 (43:00):
A lot of times if you're trying, like I have
run into issues where I would have to run reduce
a couple of times to get what I need, whereas
if I run the for loop, I can get it.
It's hard to explain, but like the.

Speaker 5 (43:15):
Exit yeah, yeah, don't make sense.

Speaker 4 (43:18):
But I wouldn't have learned that if I didn't let
copilot write that for me and be like, why are
you using this, and I was like, oh, wait, I
get it. Sometimes sometimes you have to listen to what
other people or machines right or.

Speaker 3 (43:36):
All right?

Speaker 4 (43:37):
So what have you learned writing angular challenges? Like if
you had the idea? If you looking, would you go
back and tell you who had the idea? Yeah, go
ahead and do it. Have you gotten enough out of
it for yourself that it's been worth doing or is

(44:00):
there something you would do different now?

Speaker 6 (44:02):
Most of the time when I was when I started
doing it, it was mostly to to try to answer
an issue that I had that not finding any any
challenges or any any I don't know, like problem I
wanted to try to solve when I was learning angular.

(44:24):
But at the beginning of the story, it was mostly
because when I arrived in Twitter, for instance, when it
was always it was existing, I was asking around about solutions,
and I had a lot of people answering my solution,
like for instance, show who was like spending thirty minutes

(44:45):
to on the call and he didn't didn't know me
and he was answering my programs. I was like, Oh,
who are these peoples? These people so I was trying
to give back to the community. What I was I
had learned before by these people like this helping me.
And then after a couple of challenges it was mostly

(45:07):
for instance, for testing the testing part. I wanted to
learn type press couple of testing, so creating a bunch
of of challenges around this or testing testing library. And
every time I met, like, for instance, a view transitions,
I couldn't do it at work because it was not
the right time to do it. So I'm creating a
small challenge and I'm playing around. And instead of just

(45:29):
playing around with a small challenge that I put on
my shelf, phone on the trash, in the trash, I'm
creating a challenge. So yeah, time I'm trying to to
to resolve was sort of an issue, and just creating
any change it helps me and helps people.

Speaker 5 (45:43):
Hope, Oh I think.

Speaker 4 (45:45):
I think like so Brian. At one point, Brian had
a learning public type thing, and this this very much
is that sort of thing where it's like, this is, hey,
this is what I'm learning right now, and and I
I have run into the problem where like I want
to try something new at work, but are it's hard

(46:06):
to tell if it's not working because like because I'm
not writing the code write or if it's not working
because it's not working in my repo, you know, like
is there something about my code base at work that's
making this not work? Or is it because I'm literally
not doing it right. So at least if you can
extract it out into something where you're like, no, this
should work, you can at least know like, Okay, I'm

(46:27):
doing this right. And then if it's not working at work,
there's something about your setup that's not working. So I
think it's it's a great way to sort of isolate
out those problems for people too, and and give you
like a place to sanity check.

Speaker 5 (46:43):
To be like it is it me or is it.

Speaker 1 (46:49):
Yeah.

Speaker 6 (46:49):
It was also the case when I was in a
client and I had to train junior week and he
was he was struggling with a regis that's weird because
it's very easy. So I had to make it a
small a small like a small project so we can

(47:09):
play with LGS operators and try to figure out what
each operators was doing. So so I put it inside
my challenges as I don't know, like I don't remember
which one, but it was a good way of just
try it challenge and tried to play with it. So
every time you had the chance. Yeah, like you said,

(47:32):
it's not easy, and most of the people, like for
instant it didn't have the courage or the I don't know,
to do it on his own, like opening a new idea,
a new project and you and then creating because Tumblings
was not existing at this point and creating a new

(47:52):
standard project and playing with operators.

Speaker 4 (47:55):
Yeah, yeah, that can be I mean, even with I mean,
I guess maybe I don't know. I don't even know
if like AI makes it a lot easier if you're
trying to like, hey, I want to learn how to
do this, set up a project for me that can
do this for me.

Speaker 6 (48:10):
Like how do you know when you're starting, Because when
you don't know what you're.

Speaker 4 (48:16):
Doing, yeah, exactly, Like let's yeah, you don't know if
what it's giving you is actually valid or if what
it's giving you is garbage to start with. And then
then you're like, oh, it doesn't work because they again
the code around it doesn't work as opposed to what
you're doing. So yeah, because yeah, our exchus is definitely

(48:37):
one of those things. But you either love it or
you hate it. I don't think there's a lot of
middle ground, Like I want to cant, what was it
like fifty percent of angular developers hate it and fifty
percent love it, Like it was some crazy number like that.

Speaker 5 (48:53):
So I guess probably more shift that that people hate it.

Speaker 6 (48:57):
Yeah.

Speaker 4 (48:57):
Yeah, I mean I loved it because it was like
fancy again, Like once you figured it out, it was like, Ooh,
I figured a thing out, and now fancy, I can
use reduce. Everybody check it out.

Speaker 3 (49:13):
Yes, they're on the same level of complexity, right.

Speaker 4 (49:16):
They're basically the same thing. But yeah, I think that's
a great a great reason to do that. Yeah, this
feels underutilized. I feel like everybody should be using this more, honestly,
and in fact, I'm like, sort of I'm adding this
to my list of what I have our interns go
through when they come in, because I don't I haven't

(49:39):
been happy with a lot of the resources that we have,
you know, the certain like different courses, because then they
come in and you're like, Okay, unlearned that thing they
just taught you, because we don't.

Speaker 5 (49:49):
Do it that way. Isn't like a good LinkedIn learning
course just on signals.

Speaker 4 (49:54):
Now, there are so the LinkedIn learning Honestly, they they
have just started to update like most of their most
of their angular track was really old, and so I
think they've had a couple of them. Like I think
they've updated the base, the base entry level courses, and
then my I have a signals course. I think it.

(50:16):
I think it's out now, but I'm not sure. It's
got to be out soon. But you know, it's just
hard to keep up with that content. Like I'm I'm
refreshing courses that I wrote for plural site that I
wrote like a year ago, because things change and so
it's hard to keep It's hard to keep a whole
course updated. It's I'm not going to say it's easier

(50:38):
to keep a challenge updated, but it does feel like
a little less. You don't have to like re record
your audio, which to me is the.

Speaker 6 (50:47):
Big You re record your audio, but you have you
undo all the solution and create new ones.

Speaker 4 (50:55):
Which is a yes, which is still like I like
I said, I don't want to disc count the amount
of effort that goes into it, but it yeah, it's
I think you can you can move slightly faster with
like the smaller the container is like the faster you
can move. So when you're talking like an hour and

(51:15):
a half to a two hour long course. Of course
it's going to take longer to get it updated. Yes,
and then and also then you're dealing with companies. Yeah,
like and then you're dealing with companies, They're like, well,
we don't want to pay to update that yet, So.

Speaker 5 (51:32):
Then I wanted to want to update that. How about that.

Speaker 4 (51:37):
Exactly?

Speaker 5 (51:39):
But yeah, too much I have Uh, I think one
more question and then we should slowly prep things up. Yeah,
if you would have unlimited resources, I know, unrealistic, not
a thing in the world except if you're for Microsoft,
but assume we have unlimited resources to uh do whatever
your heart desires for anger challenge? What would be your

(52:02):
first thing? Be like, Okay, this is what I should
throw money at money slash time.

Speaker 7 (52:08):
What do you mean only for anger challenges?

Speaker 5 (52:10):
Well certainly yes, yes. Basically what I'm asking is, Okay,
if you would have all the time to work on
it that you that you wish you had, what would
be the first thing you would like to address with
anger challenges? Oh?

Speaker 6 (52:23):
The fird thing, And what I'm trying to do right
now is to migrate everything to to to redo the
documentation page to make it easier to brow around the
challenges and also to find to compel solutions, and to
make it even if to make it so I'm a
bit I don't know if I should go this way

(52:45):
or not, but to make it easier to solve challenges
like for instance, maybe using stagbies.

Speaker 7 (52:50):
Inside the broser.

Speaker 6 (52:51):
You can solve it inside your broser, not popping the
project and doing needle new machine. But yeah, if I
had only time for your tategies, is what I was
going to do. Migrate everything, maybe have a better search.
So if you're looking, yes, such is very difficult. So

(53:14):
if you're looking for a specific topic, I want to
make it easier.

Speaker 5 (53:19):
So on the other note, in that sense, if there's
anyone out there feeling super passionate about it and you
feel like you want to help so much with us,
endeavor absolutely.

Speaker 4 (53:28):
Yeah, and that would be contributing, contributing challenges, but also
reviewing challenges for people and just frankly, yeah, making frankly
just using it, like getting in, trying out the challenge,
you know, encouraging you know, like challenge somebody in the
community will have. I mean it's not December yet, but

(53:52):
according to how time goes lately, it's going to be
December in like a week, and we do the advent
of code, Like this would be a great I've been
a code type challenge where you know you.

Speaker 7 (54:05):
Did you want for the two years ago?

Speaker 6 (54:09):
There is one I don't remember the name of it,
but there is one where you need to I think
it's a view transition.

Speaker 7 (54:16):
Uh that came out two years ago, two years ago,
but I had to I don't remember which one is it?

Speaker 5 (54:24):
I created.

Speaker 7 (54:27):
The last year. I didn't have the time to create one.

Speaker 4 (54:29):
Yeah, it's and that's the thing. It's like you get
busy at work and or you just like life, stuff happens,
like last year I moved Yan and Jennifer had a baby, like.

Speaker 5 (54:44):
Ye Jesus that was last year. You know.

Speaker 4 (54:49):
Like Jay's like the CTO at his company, and I'm
sure sometimes they need your attention, right Jay, every spe
tis By?

Speaker 5 (55:00):
Now? Do I know any what do I need tis By? Now?

Speaker 6 (55:04):
No?

Speaker 5 (55:08):
What do you p ct O money for?

Speaker 4 (55:16):
He gets paid in letters? Exactly.

Speaker 5 (55:22):
There's another Now you're a ct f O.

Speaker 3 (55:25):
That's not perfect? Yeah, just what I want?

Speaker 5 (55:27):
I want.

Speaker 3 (55:30):
Anyway. On that note, thank you Tom for coming on
the show. It was really cool to learn about anger challenges.
I'm glad I know about it now for sure.

Speaker 5 (55:40):
I'm definitely gonna be you already knew about it. You
were just like challenging the perception.

Speaker 3 (55:45):
Definitely, yeah, yeah, definitely didn't forget about it like Laura did.

Speaker 4 (55:51):
Hey I moved last year.

Speaker 3 (55:57):
Okay, Okay, I didn't know where with excuses, but that's fine.

Speaker 4 (56:02):
I'm an excuse machine today.

Speaker 8 (56:04):
No.

Speaker 4 (56:04):
But and also like as a senior, you forget that,
like there are these tools out there for you to use,
like this would have been a great place to go
practice doing like some of the new Signals implementation instead
of having to you know, cut a branch on my
repo and try not you know, or for example, if

(56:25):
your repository isn't up to the version that it needs
to be, like what is it with? Feature is a
newer release from Signal Store, and so in order to
use that, I have to bump the version on my repo,
which we're not quite ready to do. So, you know,
what do you do there? Like how do I say

(56:46):
we absolutely have to use this if I've never tried it?
And so if you have places like you know, if
you have little small challenges like this where you can say, Okay,
I tried out this signal feature. I think it's going
to work for us. That's a better ammunition to then say,
now I can bump that version. It makes a good
excuse to bump the version in your actual repository.

Speaker 6 (57:07):
I'm trying to be up to date as soon as possible,
as best as yeah.

Speaker 4 (57:13):
Yeah, and that's a job itself, because they're all just
like between and then NX is like, I'm not even
We're not even just gonna do like six month releases.
We're gonna do like whenever we want, and it's gonna
be real fast. So like the fact that you're already
you know, like you're you're fairly current on that as well,
and so like that's that's impressive because it just it
takes a lot of effort to maintain that. So but yeah,

(57:37):
but the nice thing then is that as a developer,
you can go in and test it out in these
challenges and not have to set up a whole thing
just to see if it works, and then it gives
you ammunition to take back to your team to say
we need to update, and here's why, and this is
how it works. So so yeah, I think I think
this is a great resource for the community. I really
appreciate that you've taken the time to do this. I

(58:00):
mean you've gotten something out of it at least, but
I think what the community gets out of it is
even more. And I think it's something that we could all.

Speaker 7 (58:11):
If you just want to come and help and create
new challenges because you have new ideas, just come and
it will be glad to help you create your change.

Speaker 5 (58:21):
Yeah.

Speaker 4 (58:21):
Absolutely, if you run into something weird at work that
you're like, gosh, I can't find any documentation about this, like,
it's a great place to document it. So yeah, well cool.
How can people reach out to you if they want
to communicate with you?

Speaker 6 (58:38):
If you can reach out to me on x or
on link linked in linked In, Oh, I don't know.
On guitar, you can reach out to me on the
guitar pedge of Angliad Challenges that can.

Speaker 7 (58:55):
Mostly exits.

Speaker 4 (58:57):
Nice, awesome, Well, thank you so much for definitely, thank
you so much for taking your time to be here today. Absolutely,
I'm very excited to be able to promote what you're
working on because, like I said, it's a I think
it's a great resource for all level of Angular developers,
so so definitely if you haven't checked it out, go

(59:21):
check it out, challenge your team to a challenge.

Speaker 7 (59:26):
For the next version.

Speaker 6 (59:27):
Between two one you can come and play with the
new singers SOMs. The goal will be too with a
bunch of challenges there so you can convince your boss
to to redo your old application with singer.

Speaker 4 (59:37):
SOMs exactly because everyone loves forms. Yes, that cool, awesome. Well,
thank you so much for joining us today. I'll let
you wrap up Jay, I'm doing them all.

Speaker 3 (59:52):
Well, it's all good. You can take over whatever you want.

Speaker 4 (59:55):
I believe everybody in the van.

Speaker 3 (59:59):
Thanks so much for coming on today, Talan, thank you Jan,
thank you Laura for co hosting. Appreciate it. Thank you
for the listener for coming today. Hopefully you learned something
learned about Angry Challenges. If you didn't know about it
like I did, go check it out, go contribute to it,
go learn some new things, and we will see you

(01:00:20):
next time for whatever our next episode.

Speaker 4 (01:00:23):
And guest is sure and episode this is when we're
like for an episode of the Angular Plus show.

Speaker 10 (01:00:34):
Thanks everyone, Bye, Thanks, Hey, this is Pressol. I'm one
of the NGI Champions. Writers. In our daily battle to
crush out code, we run into problems, and sometimes those
problems aren't easily solved. Nngcomp broadcasts articles and tutorials from
engie champions like myself that help make other developers lives
just a little bit easier. To access these articles, visit

(01:00:56):
medium dot com, forward slash ngcomp.

Speaker 2 (01:01:00):
Thank you for listening to the Angular Plus Show, an
INGECOMF podcast. We would like to thank our sponsors, the
ingikomf organizers Joe Eames and Aaron Frost, our producer Gene Bourne,
and our podcast editor and engineer Patrick Hayes. You can
find him at spoonful ofmedia dot com.
Advertise With Us

Popular Podcasts

Stuff You Should Know
Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

The Breakfast Club

The Breakfast Club

The World's Most Dangerous Morning Show, The Breakfast Club, With DJ Envy, Jess Hilarious, And Charlamagne Tha God!

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.