Hello everyone, Welcome to Adventures in Angular, the podcast where we keep you
updated on all things Angular related. This show is produced by two companies,
Stop and Devs and Onvoid. Top and Doves is very great Top and Doves,
so get top and way pay and recognition. We're working on interesting problems
and making meaningful community contributions an Onvoid, which provides remote design and software development
services on a task basis, so clients only pay when tests are delivered and
approved. In today's episode, we will talk about a very at least in
a first glance advanced topic, but perhaps we're going to see that it doesn't
need to be so complicated as it initially seems, which is contributing to Angular.
Yep, it's you, the developer that uses Angular, contributing to the
actual creation of this amazing framework. My name is Lucas Paganini. I'm your
host in the podcast, and joining me in today's episode is the also great
host Subrette Mischa. Hello everyone, and our special guest Santash. Hey,
well, and let me introduce Santage a little bit. So he has a
very long intro if we're going to talk about everything that he does. So
he is a senior software engineer at Seloni's Google Developer expert for Angler, so
he knows what he's talking about. He's a GitHub star and ex champion.
What an MMA winner joke, But yeah, he does have awesome titles.
He loves contributing to Angler and its ecosystem. He's also a co founder of
This is Learning and he is also the author of NGX Builder's package and part
of the nas JAS add onscore team. Besides that, somehow he finds some
free time to also run his own talk show, which is called This is
Tech Talks, where he invites industry experts to discuss different technologies. So,
Santage, thank you so much for taking the time to be here. It's
a pleasure to have you on the show. Yeah, I was looking for
like this this two one selves free and then and I was like, okay,
let's do this exactly great. Okay, so let's just dive into the
subject. So Santage, first off, let's dismistify the complexity of contributing to
Angler. So how hard is it in practice? Because also let's just let's
not pretend that it's like super trivial and any developer that is just getting started
is going to be able to do this. This is probably not for someone
that is just getting started, but how complex really it is? Because I
myself have been working with Angular for many years and I'm not so sure if
I would be able to be a valuable contributor to the Angular cod base.
It just feels too complex and too big of a codase, too big of
a project even to find myself in there. So how would you advise people
that want to make Angular better? Remember, so you don't have to contribute
in every area. And so if you think about Angler as a framework,
you have fonts, you have out there, you have so many things different
packages which gets published inside Anglo. So someone to get started with, I
always recommend to actually start with talks, right, So because talks are like
of course, when you are going, when you're learning Angler, you will
probably end up at the dogs. Right. And if you think like there
is something just missing or which is not well explained, that's or maybe brittain
in a complex way. It depends upon the writer, right, I mean
some engineer, let's say, who is working on Angler. Probably they may
not explain it an easier wing because they know already know stuff which happens with
all of us in all of us right even at day to do ta work.
When we write some design doc as we already know know those things.
We try to complex it unnecessarily because that's the only way probably we can write.
But not that that might not be a good in the terms of someone
who is new to the framer and talks should always focus on making it easier,
like to get new learner, right or someone who is learning the technology
to get into this framework. So that's that's one way you can think about
it, like making your first contribution. Also like and it keeps improving,
so they're adding more features, more and more features. So it's possible that
some dogs are missing because you know, hang, the team is not really
big, right, so it has probably twenty five people who work on frameworks,
so maintaining dogs and everything it is a little bit complex. But they're
doing a great job. I mean they're trying to keep their talks up to
date, uh, which is which is a good thing. But yeah,
that's a that's also your opportunity once you become like and one more thing,
right, I mean, contributing to talks also gives you some idea about how
they get flow works, I mean get because they use get up actions right,
so you know like how how the guitub actions are, what are the
steps are necessary, basically making you're set up on your local machine right and
making sure the build works and you're able to verify all those things locally.
You also learn about a lot of kid concepts, which I mean, I
believe me. When I made my first contribution, I was I had no
idea about repased and of course it's not bad thing, right, I mean
probably never used it. So you learn a lot of concept as well when
contributing to talks, So it makes your future ps much better. But now
let's come back. What after Dogs? I mean, of course you can
still continue contributing to Dogs, but as you said, Tangler is a very
big favor, there are many more areas. So this is what I used
to do when I started contributing. So I used to watch the reposits.
That's the first thing which I did. I just clicked on watch and I
started watching all the issues which are raised and see like which issue can be
like very maybe not easy, but yeah, which issues something which I can
pick up right? Because let's say, if there is there is something which
is a bug, and I think I can I can broadly defert that bug'll
pick it up. So keep and watch. And let's say, if you're
planning to start contributing to framework, just just ortuant click on that subscription button.
Just don't get up, so you start getting all the notification about new
issues and then probably don't jump in. And then of course you saw the
first session and you tried to go it and pick it up. But I
think for sometimes just read it like what people are doing, See the different
piers, like how people probably wrote the code. Try to read the code.
Try to debug it locally. I mean, it's not something you have
to do it in framework because you're already using framework, right if you're an
angry defliper, you are installing Angular and you're using it. So try to
debug it on your local machine. See how code works. For example,
let's say if you're talking about form, just a debugger, right, and
then see like what happens when you try to create a firm group or when
you try to create a firm control, or if you're trying to add a
validation. What are the code which were executed inside the framework, which also
gives you enough ida. I would say, pick up an area to start
with. If you think you want to contribute to forms or if you want
to contribute to Router, pick up one area you also have. So I
mean to give you an idea. Angle has three different repositives. It's not
like onely Angler. So Angler has a framework which is inside Angler slash Angler,
but they have CLA and they have material as well. So if you
think like, okay, the framework is something not maybe you don't want to
contribute that much, go to cl I. I'm in CLS. Everyone is
building CLA right, and that that would be something which may be familiar to
maybe because that's written in a plain time script. Right, there's nothing advanced
up there. You can become many issues there. I think there are still
many open issues in CLA. You can do that. Or if you think
you're someone who is better at designing the component and you know how to do
it, just go angular components, which is nothing but the Angler material.
And yeah, so these are the areas where you can country and what do
we need to keep in So first off, I love that you mentioned starting
with the dogs, because first off, yes, this is the easiest part
for someone just starting out, and it's also the most valuable for the community
as a whole, because in terms of people that are just starting out,
they have a fresh mind because they didn't get used to many of the things
that we might that we might take for granted but maybe confusing to someone just
getting started. So if they do start with the dogs, then they are
the ones most qualified to make it simpler. Right. Of course, they
have the issue that they don't have advanced knowledge the framework, so maybe they
wouldn't be able to understand some of the other things that could be presented,
so that's always a challenge, but they can definitely think about ways to simplify
their understanding, especially if they just finish going through the dogs for the first
time, so it's like someone just read the entire dogs for angular, then
they have most of the knowledge that they need to contribute to it, and
they also have freshened their minds, which were the parts that weren't very easy
to get through. So that's an excellent point. I think it makes total
sense when we do get to the code, though, do you think that,
like you mentioned, oh, perhaps you're not too comfortable with this particular
part of the code, so maybe you can try this other one. But
do you think there's any part that has more or maybe less easier things to
do, Like I know that many open search repositories have issues tagged as good
first contribution, right, but I'm not so sure if there's still room for
that in Angler, because I imagine that if there's anything that is pretty easy,
then the actual team members of Angler would probably address that fairly quickly.
So yeah, how is that in terms of easy tasks to do? In
some of those inner modules of Angler, there are still because I said,
like Angler is not a very big team, and in case they find some
good first issue, they do market as a good first issue because I have
I mean when I started up, of course I have picked up some good
first issues message and mostly like right now, if you want to contribute,
you can find a lot of issues, probably elated totalks because Angler teams like
created a new dog if you remember, like it used to be Angler dot
io and now it's on dot So this is a new website and there are
things to do and anglating needs have help, right, so they marked them
as good first issue. Or you can search for dogs. They might not
be good first issue, but you can just search go to label and just
search for dogs and you'll be able to find some good first issue to contribute
with. But yeah, I mean, if there are some good first issues,
they do market. So it's not like there are nothing or there are
no good first issues in Angular. It's it's not like that. But I
think most many projects have that, and that those can be related to some
migrations, maybe some code which was like there from a long time they wanted
to remove it, maybe some Pluto's those are those are kinds of things which
you can actually pick up from the repository. So I haven't seen many good
first issues in Cli, but of course a good first issues in Angler and
companies, that's fine. Yeah, you have one question like coming to your
minds for a newcomer, Like suppose they come and they know that angle is
quite popular, and suppose they selected doc as a issue or some good good
first issue. There might be that a lot of other similar developer also trying
to create pull request, So how like how to make that your pull request
will be picked up first and to reve it first. There is some criteria
for that, or they have some contribution guidelines and all. Yeah, I
mean, so to make sure like you are not doing the same same thing,
which is which another developer is doing. Make sure that you comment there,
uh and tell them, okay, you're doing it. It's not like
you have to like you have to get it assigned, but you have to
let them know that you are going to take care of it, right,
so the team knows that you're working on it, and anyone else. Like
if I go to the same issue and I see, okay, you have
already commented, so probably I will not do the same now. And it's
it's an unwritten rule in open source that you should not do it. But
I have seen some yeah over curious the purpose maybe and they just squared and
open the PR. But the chances that their PR will be rejected it depends
upon you, right, I mean, if you're already commented that you are
taking care of it, and you already have PR in working, then of
course there are no chances that uh, the other person's PR will be picked
up. So so we need to mark that we are we are looking into
it and then raise a PR, right exactly, just first comment. I
mean, if there are no comments, people will think that okay, no
uncertain moment. So make sure that you have clear intent, right, I
mean you have like you have given your intention that you're doing, you're going
to work on it. Yeah, as you are discussing about, like for
for a complete Wigner, like would you like to like put a light upon
like we need to fog the project than from there, like we need to
create a PF from our projected to that because a lot of people are used
to with a single repotect is the dust clone it posts the code, but
here will it will work a little different? Yeah, sure, I mean
you opensours is different, right, so you trrectly don't push it until unless
you have maintainers probably and if you're someone who's right starting, So the first
stup is, of course quodit for the project. A good thing about I
think the truly has improved a lot. I mean because when I started contributing
back in ninety nineteen, it was it was a little bit of a mess
up because I think they were using vessel. It was not compatible between those
a lot of things and it was hard to set up. But now I
think you also have get a course spieces, which is free for open source.
Right, so let's say you can just fork your project and then you
can start making changes for example, especially in terms of oxychanges, it has
become much easier, right because earlier I had to plan everything, run it
on my machine and make sure that everything is working. But now thanks to
get up giving course spaces for free, you can just open it in core
spaces and then just make your change and push the pier. So it depends
upon how you want to take it. If you are comfortable using code spaces,
of course it's free for everyone, and if you want to do it
on your local, just go it and do that. But one thing which
I'd always recommend in case you're planning to be a long term contributed so newcomers
they have like tendency to actually just push everything into their masterpit brunch and open
a per, which makes things a little bit complicated because what in case you
want to open another per. Let's say in open source, there's this thing,
right, I mean it's open source because and no one has dedicated or
what you can say, see alloted time to do your per. So it
may take one day, it may take a month, it depends, really
depends. But you may have a new per which you may want to work,
or a new issue which you won't become within that month, So always
do this. So in case you're forking a new project, always create a
new branch, create a new brunch, and then open a PR. So
it gives you like, yeah, then what you can do is you can
actually create different branches and you can still work on it. Meanwhile, your
other pier isn't review. So a lot of tebribus actually don't follow this and
then they beat the master branch work it again, and which is a lot
of that makes sense, okay, And we also should talk a little bit
about their commit structure, right because they have a very standardized way to well
to say what your commits are doing. So I know that we have different
scopes and that can be a little an extra acted for first time contributors.
Whenever you're contributing, make sure that you go through the Contributing dot MD because
that's where they define all the scope. I mean, even when I'm open
my first PER, I was not aware of it. I was like,
what is this pynaper keeps failing because there is some Yeah, the commit structure
doesn't match, like okay, what is this? But good thing is,
of course you can go ahead and open any existing merged PR, right,
So in case you're confused. I mean, of course contributing dot md is
where you can find everything. But just in case you're confused, just open
an existing PR and see like how they have permitted and if we give you
a ideal, like okay, this is how I have to follow. This
is what I do generally, because there are let's say, if you have
multiple contributing to multiple open source projects, they have different structure and it's hard
to remember those right after second got to contributing dot MD. But yeah,
I mean the best way is, of course, say the exting per the
close pier and the Nate idea. And one good thing about contributing dot md
is also they like they mentioned the like how you can run it locally,
how you can changes, so everything is that gotcha. Also, just going
back to this commit structure again, So just to contextualize the audience a little
bit, what I was referring to is that Angler standardized a pattern for prefixing
their commit messages with what they do. So you have different types of commits.
You have feet commits, which are introducing new features. You have shore
commits, which are just doing day to day stuff like running well, updating
something or updating some dependency for example. Then you have refactor commits, which,
as you may think of, they are just refractory something but don't really
introducing any functional changes at least in theory. And then you also have like
style which they literally don't introduce any functional changes at all because they're for example,
running the formatter, so they're definitely not introducing any functional changes. So
you have different types of scopes for your commit messages to you. So for
example, you have a feed, but you can put it into parentheses saying
that this feet is for the form's module, so you could say feet under
parentheses forms, and then you have your commit message and the importance of this.
So at first, at first glance, it might seem like just a
convention that humans are using to understand what's going on, and yet that does
help. But they also use it to automatically generate change logs when they cut
new releases. So I'm actually I always wanted to stop and take a look
at how they're generating this, because it seems like it would really save up
a lot of time, even for closed source projects, just for the product
thing, to look at the changes afterwards and figure out what you go into
an email marketing or not. So that's actually valuable even for other projects.
Do you know a little bit more about how that works, Centage, perhaps
we can talk a bit about how to even add that to other projects.
Yeah, I mean, so for example, kit tub already has something called
releases, so you can do from there. So let's say if you have
if you're following this semitic commit, what is the yeah, Sember right,
So if you're following a proper semantic versioning and you're following this comments, you
can generate it using guitub actions, so not get up actions. But I
mean you can also do it with geituba actions. But let's say just forget
about kitab action, you just want to do it manually, you can actually
use gitubs itself. So if you go to geitub dot com and if you
go to your project, there is something called releases, so you can create
a new release, and as soon as you create a new release, it
will create of course a new version, and it will create a creator change
log for you as well. But if you don't want to do it manually,
you can do it by get up actions. So a lot of people
do use guitup actions to do this by automation because you don't have to be
like physically good and click them button right. So choose whatever fits for you.
I mean, if you're doing it, your release is manually get up
actions, that's a very cool thing to do. Otherwise just auto makee using
getub action guitub actions. Also you can see gutub also has the APIs to
extract change log and do it for you. And there are some open source
get up actions as well. We use it internally, I mean, that's
salonest. We use one open source project I don't remember the name, but
yeah, we do have an open source get up action. Now another subject
that, yeah, I think that's a I think after creator Bass, a
lot of things became became easier, like now people cannot come it a lot
of things, but some people like like for now. Some people love the
escort, some people love wame. So say, it depends on what you
like and how how it can push, And it really depends, right,
I mean, for example, so what we're talking about is the committed history,
right, So the important thing is here here is following a commit structure
which fits your use case. I mean, for example, as lucas mentioned
in angler they have feature, then package name and then commit masses. But
it can differ for your fear for your org, so you can choose something
else. It totally depends on how you want to show your change log to
the end user. For example, let's say in our use is for Salonist,
we have a single repository mono repository, and then we have close to
twenty five projects, so of course we want to like group it buy the
project name right, so we actually do in that way, so we make
sure that when when we've come in, we have all this project name tact
There is another way called labels. You can also use labels. For example,
let's say I can define that in case that my my project has something
called project slash even project or project slash way to project, and I want
to group them in my change clock, I can also follow labels. So
labels are also good ideas. And it's easy to define as well. I
mean you can just have a labeler dot biment find, define your path and
define which folder like, define your folder and then define the label name and
then any tools. Of course, if you're creating a changelog, I mean
you can define, okay, how it should be grouped and then it will
it will be visible like that in a change lat. Yeah. One thing
that we haven't talked much about yet, but I think you already hinted on
it was that Angular is not the core code, it's also the ecosystem.
So people can also contribute to Angular, not just by writing code to the
main repository, but also contributing to other community libraries or even creating their own
libraries. Do you think that this would be like when do you think would
be a good moment for people to go to that Would you say that this
should be a first step before they try to contribute to the main core code,
or do you think there's no such thing that people can just never have
experienced contributing to libraries and just go straight to contributing to the car code.
Really it depends. Let's say, if I mean, I generally try to
categorize the contributors into area, right, someone who is a new developer who
have never done Angler, and someone who's experience developer. So if you're an
experienced eveliper, you already know a bunch of libraries because you use it daily,
right, I mean, by using by just using Angler, you can
probably do some limited stuff, but if you need, for example, state
management, you probably will reach out to JX or NGXS or any of the
library and you might have tons of similar libraries in your project. So of
course that's an opportunity for you in case you really want to get interested,
like get involved, because let's agree to this. Everyone wants to contribute to
big project like Angle, right, but no one wants to focus on the
libraries. And that's why a lot of maintenance are open source maintenances are struggling
because of course they have they also have limited time. They also work somewhere
as a full time development, but no one cares about it even though that's
that library has millions of downlows until less it's an old version and then your
employers say say why it's not updated or we want to update Angler, and
we are struggle because this library is not that latest version. Until that time,
no one cares about it. So as an experience developer, in case
you're already using some of those live labels, just go and help them,
right, I mean, you can just probably help them a grede to new
version. That's also contribution, right, that that will help them as well,
and that will also give you an idea like how to contribute to open
source, or you're using some API from let's say, let's say you started
doing state management and you ended up at some issue which is inside eng X,
and if you can debuget and you can contribute back, that will be
a great start as well, right, and that will be helpful for others
as well. Of course, there is organizations which has some policy policy that
they don't want people to contribute to open source because for some experssing reason.
But if your organization does not allow to do it from your own time,
right to do it only your time on your laptop and haven't separate probably a
kid of account. Some employers are really have really happy to do, like
have you use your own account? For example that Saloni ist Selonis is.
Yeah, I can say they're pretty much supportive of these things. So they
don't care. I mean they don't care in the terms. Yeah, I
mean this is good for them as well. Right. They have people who
are contributing to the film. But some companies don't think in that way.
They think that Okay, if you're contributing, you are probably helping your competitors.
I'm not sure how because you're contributing to not toget and you're in.
But yeah, that's a different, different, probably topic to discuss about.
But yeah, this is what you can do, like as an experienced empt
but you have more projects to contribute to. But if you're a new teftlopper,
probably your chances are little bit limited because you just know about Angler,
right, so you can just concentrate on probably picking up something from Angler.
Then try different libraries, because if you think about web, most of the
technologies which you have out, what you will do using them? Probably you
will create some product. It will be same, right, I mean probably
will reach out to similar APIs. For example, let's say try and drop.
If I have to drop and react, probably I'll reach out to some
library which already exists. As a new learner, probably I will also do
the same. But that gives me limited opportunately because I'm not still not aware
of how libraries work, so I have to be like That's why I always
recommend that on day one, don't think about contributing to any project. On
day when your thoughts should be like, because I will give give my six
months to learn about this framework, right, I'll try to understand like how
things work, how I can do this, do that, and then think
about Okay, if once I think I have reached that point that where I
know stuff how to do, probably create my own library. Then as we
go ahead and to try to jump into the libraries and see if I can
do so. Or again, for as an experience developer, let's say if
you working on some internal project and you have use cases because you might want
to implement something which is not there, which is not their noble source.
This is also a good idea, a good opportunity where you can actually create
that profensial project, share it with the community, and probably convince your employer
that we should use this project. Right and if it gives more disability to
your orgnation, why not do that? Perfect? Yeah, and let's let's
bring the contributions to Angular even more closer to the reality of the day to
day. So, for example, what I'd like to do is to explain
to the audience some of the projects that you contributed yourself. So we in
the introduction we already briefly mentioned some of the things that you have already done,
but perhaps we can even talk about some of the contributions that you did
to the Angular core code because that is definitely going to help people bring through
reality the types of things that they can do. Right. Yeah, I
mean my first peer for Angler was actually dogs. So that was the time
like I started exploring the ways how I can contribute to open source and I
was like, okay, what should I do and how should I contribute to
Angler? And then I ended up at an issue that you know, Angler
has librarries, right, can create libraries, so it was not documented,
like the project structure was not documented. There was uh your Angler application like
how they looked like it was already documented. Then I was like, okay,
this is my opportunity, and I went ahead and that I did that.
That was my first pr for Angler. But before that actually opened my
first peer for NGRX. So my first peer was not for Angler. So
I went to NGLs because, as I said, like, if you're experienced
sevenumber, you feel tried to some different things, right, So I was
exploring something called schematics. Strangler as this concept of schematics and prictus, and
I was exploring about schematics and then I figured out, okay, there is
an open issue related to schematics in NGI r X, and I was like,
okay, let's let's take this, let's see how how to do it.
Of course, it took me some time to go through court based like
how they are doing it, and that's that's how I made my first per
for NJRS and then I kept country builting. I mean, I I helped
them with some APIs. For example, if I remember, my last PR
was related to j X data, which I still don't understand. I think
they replicated it any phase, and I also like phase several prs to upgrade
jr X back in days. Now, I don't get that much time,
like because of course you have full time job, and you're mean if you
have been doing a lot of other stuff running a community and every thing,
doing podcasts. So but whenever I get time, like if I see some
open issue which I think I can do it, I take it. I
mean, and most of them probably maybe talks. For example, my last
PR for Angler first talks. So if with new talk side there was a
section where you can migrate to standalone components, and that was missing, so
I just added that because of course I had some free time lovel giveness to
this, but I don't keep myself limited to onunly Angular and in chairings,
I tried to see like if there are in other projects recently, are is
the peer for Solid? So of course I don't work on Solid. But
I was just on a podcast with Ryan Gardian to the creator of Solid and
they're okay, how to contribute to Solid, and believe me, I opened
the PR during the the podcast episode somehow, so Layer can do this.
On the side, I was doing my PR, So it depends. I
mean, now I don't try to keep myself in my last and now there's
a PR which is still open, which is for backstage if if you know
backstage, this is a tool for DevOps, right, so basically your devositve
can create dashboard, different beat of dashboards, documentation, all those. So
depends. So it's not like I'm just contributing to Angular and Angular ecosystem.
Now. I try to help wherever I can, wherever I think, I
think I have time, and I think this is something which I can wrap
up because in continua, contribution is useful, right, I mean I don't
think like this is the first thing which you could remove from your mind that
oh this is very small contribution. No, I mean every contribution is apprecious
because remember, no one else was dreaming it. I mean, there are
millions of developers, but not everyone is actually doing open source right, and
no one, not everyone is actually contributing or making something better even though they
don't right. A lot of times we go to the doc, we find
something wrong, and we just ignore it. So if you're doing it,
you're doing something. Yeah, I would like to ask like a different kind
of non technical questions. So as I as from our conversation and from the
intro asual, A lot of people know that you do. You are doing
a lot. They are doing a lot since a long time. Maybe like
you said from tag nineteen, you might be doing prior to that. So
this is just a from a I'm asking for myself as a how do you
manage your time to do these many things? Or like when you get time
to read what all those? How your taste work? Very complicated because when
people ask me like time management and like okay, do that the wrong person?
I mean I don't know like how how it works, because it works
right somehow, somehow, I'm somehow it works. I try to manage my
time. Probably it really depends when I'm feeling well. I don't try to
push myself now because I have multiple what you can say, yeah, for
good the time, responsib I know responsibility. I'm in a So there was
time like I was not doing anything, so uh yeah, there's a there's
a term for it, right, So now I don't forget about it.
But there were multiple times that I was like not feeling feeling like to do
anything because I pushed myself so much for like six months, and then the
next three months or next six months, I was not doing anything. So
now as I've stopped doing it, it's like, Okay, if I feel
good and I think I want to do it, I would do it.
Otherwise it's okay, I mean because I already have a lot of things to
do. So for example, a podcast, we we do like two poadcasts
per month, so of course that's that's something which also needs time. And
then we are doing virtual this month, not this month, but next month.
This is a great yea, so next month we're also doing a virtual
fun So I'm also a little bit busy there promoting things and every like safe
peace, collecting safe peace, asking people to reinstill, and we're doing it
on our own, so it's not like it it will sponsored or something.
So we're just trying to It's a virtually can basically, so we know like
of course that we need to need for money back. I think we can
manage because our community we mostly focus on free stuff. That's that's our mot
we are. We are for free learning and open learning, mostly being open
source, and my co founder Laws is also big time advocate for open learning
and open source. So that's how we decided to do this. Uh.
But for example, I was just I just came back from a vacation,
so I was on vacation for two weeks. Because of course everyone needs the
time of right, so time management. Yeah, I mean I'm really bad
at retirement. I'm still like I want to record a course and believe me,
it's been friending from a year now, so yeah, not the best
person. That's the only thing is of course some how it works for me.
But don't get motivated from what I do. Just see like how your
should need works, how what you can do. Remember like if you're doing
something community, that's enough, Like you don't have to do everything. For
example, when I started, I was doing mostly open source, right,
so when I started nineteen for India, I was just doing open source.
Then I realized, okay, how long a person can do the same stuff.
I mean, we noment right, be good, we get board.
So I decided to do something and s try something else. So I decided,
okay, let's do this podcast thing. So that worked, so we
are still doing I'm still doing this podcast, but I also have co hosts
just to make sure that in case I'm not there, so other people can
take up. Then, of course, there was a time I was like,
okay, I want to write. I don't write much now, but
there was a time I was like writing every month. So I was like,
okay, that this is my jab right now, and then I was
doing that. So don't care. Don't think about like doing so much stuff
at once. Just just think like what you feel like doing at that moment,
and just do it. I mean, every contribution, as I said,
like, it's a specious for someone who's trying to learn the same thing
which you're planned to write. So just just think about that and keep contributing.
Yeah, it's nice advice, like, don't very so USh to do
a lot of things. Keep doing one things, and after some days,
if you look back, you have done a lot of things. Yeah,
I have another question which is not very technical, but maybe you feel the
here that you have more knowledge about this than time management to to speak about
this, which is the effects of contributing to open source in your career because
a lot of developers they put in their minds that they must contribute it to
open service to get good jobs. And that's not really true, but it
does help. But I'm wondering from someone that did a lot of contributing a
lot of contributions, how much do you think that people can justify their their
time spent on contributing to open source in a way that they're going to think,
oh, I'm doing this to actually this is actually a financial investment because
this is going to increase my salary or or whatever. Like I'd like to
bring a little bit more reality from someone that has dedicated so much time to
it. A good question because I remember when I started contributing the first question,
and so when I was contributing, so I was talking to ngatics team
a lot, and one don't the court team member asked me like, why
you're doing contribution? Of course it is your attention because they I'm enjoying it
and it was like, oh, this is the correct way to do it,
because there are a lot of people who do it for money or they
they want to get a good job. There's nothing wrong in it, right,
I mean, if you if you really think that contributing to that particular
project will get you a better job, I'm into it. Not nothing to
worry about. But my intention was clear of it. Okay, I wanted
to do it because I want to health communitee and this is what I'm enjoying
right now. So have an intention, make your intention clear, like if
you're if you're contributed to a big project, I think having a clear intention
or clear goald is really worth it. And there can be a bad intention,
right, I mean, if you know, if you know about the
new recent project text, See so they did it for two years, right,
It's was not like they just added this back door in a day.
They contributed for that to that project for two years and then they finally saw
a chance and then they added a back to. So intention can be wrong,
but have a clear board intention, like why won't you contribute? Most
of the open source contributors are doing it. They are not doing it for
money or they are not doing it for good job. They are just doing
it because they love it that they love helping people, they love creating something
new. If that's your intention, of course you will. You will contribute
for a longer time. If your goal is to get a job, once
you get a job, you will just manage. You will not do it
because that was your goal, that was your intention. If your intention is
to add a back door like two years after, so that's a that's a
different thing. But but this is a really good question for a lot of
people. So think why you're doing it, and remember you don't have to
be like very like two hundreds of years seven. That's that's something of impossible
until does your working on it full time right And I know some people who
can who are doing it. For example Matthew who is contributing a lot to
Angler. I don't know how it does that, but he is. He
keeps like doing more feature and probably someone from Anger to So he has his
intention right that he wants to do it. He wants to actually invest his
time making this framework amazing and he's doing it. So yeah, have a
clear gold, have clear intention why you want to do it. In case
you want to go longer, just having a passion for doing it will take
you longer. Because of course, if my goal was to get a job,
I mean probably I have I would have stopped a year book or like
after a year probably because I got it. I got a rey more job
and than I'm happy now. And of course the impact right, of course,
the impact of contributions. It can lead you to something better. I
mean because I generally tell this tool everyone that whatever I have achieved is because
of Angular community. Because that there was a day I decided, okay,
we'll go it and contribute to open source. I will that this was not
the goal. This was not the goal to get a good job or come
to Germany, but it helped. It helped me get a visibility in the
community that okay, this guy exists and he's doing something which is amazing,
right, and people started recognizing me and there are people who wanted to work
with. So if let's see, like if your goal was to get a
job, you will get it to any phase in case like if you're if
you're if you're making a bulling back, but have that goal that you want
to actually just follow your passion, you want to actually support this project and
it will help you in long term, because what's the what's the point like
getting banished from everywhere after a year after you get a job, because you
don't be to work on properly that in that oorgation for more than two years
or three years and depends. I mean people work for five years, but
aft of the three years you will come back and contribute to open source to
get another job doesn't make sense, right, I mean making yourself visible takes
time, and once you lose that visibility, it's it's hard to get back
and show that, Okay, you have been doing this because you have start
from zero, right, I mean in two years, the technology change changes,
people change, there will be probably be net put in the community and
you have to start from somewhere again. So yeah, I mean I just
have a have that makes sutal sense, and it's great to give people this
view of sure you can do it if you're just looking to have something in
your resume, but it's probably not going to be a good investment of your
time afterwards, because well for the for the repository owners, it's most probably
not going to be a good investment of their time because if they stop to
train you and then you just leave after you get a job, then what
do they do at that time? But also for you, because if you
don't stick around long enough to really deeply understand how things work in the cow
base, then you're missing out on so many aha moments, you know,
I think I think there's also value in debt. If you work long enough
in a code base built by professionals that are more experienced than you, then
over time, you're gonna internalize more and more some of the decisions that they
made, and you're gonna consciously or subconsciously learn that and be able to apply
that in your own projects. So it's kind of like working with I think
people forget this this aspect of it. It's like, would you want to
work with some of the best engineers in the world. Oh yes, I
would love. I would learn so much from them. But I don't have
a job at Google. I don't have a job at open Aye, I
don't have a whatever. Like you don't really need that because there's so many
open source projects that are maintained by those brilliant minds. So this is also
a great way for you to develop yourself as a professional. And if you
don't want to use this knowledge just to get a job, that's fine,
like create your own startup whatever you know, like you can use that knowledge
for however, you want to make an impact on your life on other people.
So I think that's also something huge to keep in mind. Okay,
guys, we're approaching almost fifteen minutes already. This is a very dense subject,
so I'm sure that we could talk about it for ten hours more.
But I wonder if there's anything you'd like to say before we start wrapping it
up. So, I mean, I'll be a blessest confidence to start so
ted con. This is on con is, which will be virtual ontreen sixteen,
So if you can add that into your description and that will be helpful
to on the listeners then so they can atend because we have more than footy
speakers. That's the t I mean, I'm scared because this is good to
be the first conference if you're doing and we have a little bit ambitious in
terms of getting food these because in two days, but that's simple prob we
can do it. And yeah, okay, Well on my end, I'm
just going to promote the two companies that produce this show, so Top and
DEVS and Void if you're looking to learn more about web development in general,
then there are a bunch of other podcasts and content created about top and dew
so you can take a look at the website. And if you're a company
or just someone looking for outside developers and designers to help you on your project,
then you may have experienced like a situation where you hire someone and you
didn't like the way that the work was presented or the communication and then you
just maybe got frustrated by that. So Void aims to solve this exact problem.
So the way that they work is by feeling you only by task and
only after they are delivered and approved by you, so you have predictable costs
and you also have quality control because if you're not happy with the results,
you can just ask for a change until it is up to your quality standards.
So it is really the best of both forwards talking about outsourced design and
software development services. So if you're interested in that is you and Void dot
com. So on Void. Yeah, so this would be my pro host.
I'm gonna take a look at this link to tell to say a little
bit more about this comft. But in the meantime, Cigarette, why don't
you tell us what you're working on. Yeah, so I would like to
promote my channel YouTube channel which is fund of Furistic, I think mostly on
Anglo, so please guard and watch it. And currently I'm working on like
some new hobbies. I pick up that guy started kickboxing that's trying to see
if it's how how it works, and will continue on that. Yeah cool,
okay, okay, And I will also I will send this to our
team so that they can add the link to the conference in the show notes.
But for those of you that maybe don't have a comment section from where
you're listening this from, it is TI l comf dot Netlify, dot app.
So this is Learning Conference twenty twenty four. So I believe that if
you look that up on Google, you should probably find that eventually. And
it's going to be happening on May sixteen and May seventeen. Just to confirm,
Satuch, this is going to be a remote conference or is this going
to be in person? No, it's so much conference and it's free.
It's free for everyone, so cool to start and end like for a full
day or oh no, So we have planning to do it during a four
to ninety p ANDC team time, so we can cover most of the time
zones. Base and speakers are also from different time zones. So yeah,
this is where I'm scared, as I said, so managing all those forty
speakers in different time zones that will be there. Yeah, yeah, definitely.
Okay, guys, thank you so much, Santage, thank you so
much for being on the show. Please feel free to hop back and whenever
you want to discuss anything, so you have our contact and for just send
us a message and we can find this a lot. It's so it's great
to have you on the show. Thank you so much, Thank you so
Ber, Thank you Gus. And it was great like talking to you.
Of course I missed the Albent but midday. Thanks you chat with him later.
Yeah, thanks a lot for a nice conversation, pretty like knowledgeable for
everyone. Yes, yes, okay, thanks everyone, and I'll see you
in the next episode.