Hi everyone, my name is Patrick you and for today's episode, we
talk about education in software.
The software industry is very unique in that you can actually
teach yourself how to code, but how do you start?
And when you join an organization, what stuff do you
take with you? And how do you keep learning?
I invited YouTuber teacher. And now, even CTO, it has
children to talk about this topic.
I'll put the links to socials in the description below.
And with that being said, enjoy the episode.
A bit into the coding. So I have a multiple passions
around. It's not just about coding or
videos. It's all a mix of things.
Surely coding is what I do. You know, day-to-day life.
And that is what I love. Absolutely.
They are challenging part, but apart from that, I have a huge
interest in video spots. How videos can be in the
Cinematic quality? How can I improve the audio?
How can I make the best polished videos as possible?
So I thought that let's mix up education with these Cinema.
Quality of video so that not only just like guys like Pete
mackanin or Casey neistat. They are pro in making videos.
But what if an educator comes with a pro quality of audio and
video what's going to be that outcome?
So I keep on experimenting with my videos audio gear.
So that is what my passion lies around with the coding and with
the videos and YouTube is a platform that gives me to do
freedom of all of that. Yeah, it's interesting that you
say that especially the name, Casey neistat, I used to be
addicted to those types of videos.
It's not just because they're entertaining but also the video
quality, the edits, the transitions everything around.
It was just really cool to view and to learn from as well.
So I yeah, I totally feel you on that one, but you mentioned
education. Specifically.
Why is it education for you? Education for me is something
which upgrades you that's the simple definition for me.
Anything can be an education. It doesn't need to be a formal
degree or a formal certification.
It just anything anything in the life that upgrades you from what
you were yesterday and what you are now or what you will be
tomorrow, that's education for me.
It can be by a coding. It can be while learning about
the camera gears it can be about anything at all.
So for me education is a really broad topic to discuss if I am
teaching on a coding platform that just how to build even a
tic-tac-toe, a So that is an education for me, if I'm
teaching somebody how to make better audio or better videos,
that's all education for me. Yeah, but the question I was
wondering is why teach because I think the software engineering
community is very distinct, there's a lot of knowledge out
there and a lot of people contribute, but even more just
consumed, right? They want to learn everything
they need to do to do their daily skills.
There's a very distinct few than actually take what they have and
teach others and you're absolutely one of them.
So, oyyy the teaching part. C teaching is something which is
internally built into me because I have faced so much of my time
in solving a problem. And it gives me a feeling that
you should I tell this that I found this problem.
So I should share this that somebody who's facing the exact
same bug exact same problem. He should not face that from now
onwards because I have figured it out.
Yeah. And by the way of putting it out
on the web is that hey I have solved this bug or I have built
this app and this is the problem I faced in this is What you
having to do so that you don't face this.
So that is what teaching makes me exciting and while the other
fundamental of teaching is if you want to upgrade your
Society, your country or your community.
The only way to upgrade that is not why I money.
It's why education. Once people are more educated
about certain things, it not only make them job-ready or
self-sustained it upgrades that are community, so I'm well,
those lucky guys who actually can do it.
So, why not to do it? Yeah, yeah.
I Of that answer. It's it's very simple, right?
Because if you've solved the problem first of all you want to
tell people that you've solved it and teaching them how to do
it themselves. It's just there's a certain
satisfaction in that that they can be like I see all light
bulbs going off in their heads and they actually understand
what you've done which is an awesome thing we do it on kind
of right? Do it on kind of a micro level
right within my team. We pair program, we do knowledge
sharing sessions but what you're doing is on a more global Full
scale, which is insane. I mean, I've seen the video
series. I followed a few of them even
for example, the most recent one on go because I'm kind of fan of
go and I like the way you kind of make them bite sized, right?
Make them very digestible for people to consume and to learn
from because that is still the main goal there.
Yeah, that's the rights for other thing.
Like I wanted to bring this go series to be out there.
This was not intention to be like I'll get a million views on
those cities or something but I wanted to be the The first guy
who actually made this, go programming easier to understand
for everybody. Nobody paid me for that.
I put a huge amount of effort into that, and I wanted to that
go to the more popular. So that anybody who's trying to
learn, go should understand every let details about it.
So I went to dive into the documentation prepared, a lot of
examples around it and when I presented It event, when I meet
people, they say is, hey, I watched your that series, it
feels so great that. Yes, I was able to make a small
impact in somebody's life. If it's really means a lot to
me. Yeah.
Here it can imagine. So, and it must be.
I've seen some of your videos. You started like x amount of
years ago probably five plus years ago.
Did you start with YouTube or were you like a software
engineer before that? No, I didn't start it like five
years. It's been around, almost 10
years, I've been making videos, that's even more.
Yeah, I used to be one of the top-selling instructor at udemy
on iOS. Yeah, and on been testing as
well in the very early days of you dummy when we used to live.
Link YouTube, unlisted videos on udemy.
It was so, I used to do that and before that, I have taught in
couple of American universities as well, on how to code on C and
C++ programming. Awesome.
And I have, I was into pen testing in the initial days of
my journey. I used to do penetration testing
and they've been durability testing for couple of system and
that got my interest that why people are writing bad quality
of the code or or one durable code and then Then I moved into
the software like let me build it myself and then uncle has no.
It's not that it starts simple right?
Yeah. I get that but so you've been
doing this for kind of ten years and there's a lot of different
facets. First of all, in those 10 years
that you've covered and I think things are escalating
speed-wise, right? We have the cloud now Securities
on the next level front and back and different Technologies
popping out of the Woodworks popping out of the ground.
Almost every single day feels like Plus for you to educate
yourself. There's a numerous amounts of
content, right? We have blog posts, YouTube
videos, podcasts, It's wherever you want it, you can find
content to consume. How do you first of all, stay up
to date. And how do you find real good
quality content? Even in the sea of content
that's out there? See, well, the problem of the
YouTube and the entire internet is there's too much of the
noise. So you need to learn and figure
out how to remove that noise as much as possible.
You cannot remove it entirely but try to remove it as much as
possible. I try to consume variety of my
knowledge directly from the resources and subscribe.
All these. So many of the newsletters are
there. So whenever let's just say,
mongodb, as announced an update, or maybe react team is probably
doing some update. So initially it was really,
really tough, but now, I'm actually on to the privileged
position that companies reach out to me that, hey, we are
planning this out. So we wouldn't to get you into
the loop, react team, and mongodb, inradius team and all
those databases, and all the new product they come out to me.
They actually let me know because I can make their voice a
bit louder on the internet and that's what they try to do.
So now, getting updated is not that much of difficult time in
touch directly with the aid of the US team, ready?
Steve mongodb. All these are like kind of a
good friends now and I'm helping helping them that whatever the
product or the update. You are rolling out.
Let me make a video about that. Let me make my community aware
of that. So now I'm kind of a central
point of consuming, those all the updates that are happening
in the, in the coding Community. Yeah.
And it straight from the source, right?
Your kind of advocating their the Formation that they're
either going to bring out. Or as soon as it is out that it
is there, which is really cool. And while the great thing about
them is they also support this quite a lot though.
So whenever I need a resource access or something, all these
companies that qual that thing, best thing I seen in the coding
communities. Everybody's so helping in
nature, if I'm not able to understand certain topics,
whatever that next release they have rolled out, they get an
engineer free out of his busy time and gets it with me.
That. Hey, you explain this?
Today is, what is the new thing? We are rolling out.
I understand them, I back and forth, ask a lot of questions.
Yes, I'm sitting like a sitting, like a dummy and once I fully
understand them, then I tried to kind of a strip off the
complexity out of it and make bit size tutorial so that
anybody can follow it. And that actually what I love
about the community thing, that's so good.
Yeah, that that's a that's a skill, right?
Removing some of the abstractions, some of the
complexity there and making it teachable, right?
Even as am a software engineer on the Today.
And a lot of times you do need to explain what's happening on a
technical level to your stakeholders or to your PO.
And doing that is, it's difficult.
You need to speak a certain language that we can understand
each other, right? Because we have different sets
of skills yet, we do need each other within a team and within
an organization. That is why their toughest
thing. And especially when you make
tutorials, while the toughest thing, let's just say, we have
built a very simple, e-commerce app.
You make a few orders, you create some categories list.
Some products and orders are shipping in and you are just
paying, that's a very basic e-commerce app.
Now, building that e-commerce app is not challenging at all.
Because eventually you will figure out bits and pieces and
you will plug it in the most challenging part is.
Now you have to record that entire process.
You cannot record your hours where you're spending.
Just scared, just staring at the screen to resolve those bugs.
You cannot do that. And let us say, sometimes you go
into a tangent where you have made a mistake, you want to come
back and start on to a different tangent.
That is a difficult process. And the most challenging thing
is still to this date is. Let us say we have built a
product. Now, how we want to record that
entire Journey, that how to build a product that is where
the challenge comes in. You have to strip off first, you
have to decide what models are going to come in controllers.
You have to write, then you have to figure out and explain the
people that this is why I'm doing it.
This is going to be the future impact of this.
That's almost like you are designing a product three times,
exactly. It's almost that that time
consuming. Yeah, so you you actually, I
would have thought Thought, think about it now, maybe it
doesn't make sense, but I would have thought you build it as you
go. But exactly, as you explained in
the even the first few videos you're like, oh this is going to
make sense in the future and I'm like, okay maybe maybe has that
kind of foresight. But actually maybe you've built
already and we're walking through kind of the the more
refined version. Yeah and again problem with the
coding is even though you have written it.
You again, building it. You are going to face new button
and you are sometimes just staring at this.
I did. Part of that, that's a new bug.
And then that's when you explain people that.
Yeah, these kinds of things happen.
So let's just figure out how we are going to fix it.
Yeah, these things happen. Yeah, I get that.
But I mean the benefit of teaching others either being a
trainer or being a teacher, is you go deep into the content,
right? You can't really not know your
stuff because if there's a question either in the comments
or in a class someone asks you a question you want to be able to
still educate them. Help them with that question
that they have. And if you Don't know, even the
basics or a fundamentals on a more deeper level, you're not
going to understand the question.
You're not going to be able to help them.
So I think a really drilling down into the content and making
sure, you know, your stuff. Basically, to be able to teach
to be able to train other people.
That's a that's a next-level kind of skill, I think.
Yeah, I enjoy that too much. And when I joined this company
recently, as a CTO, that our team was happy, a lot of people
were my students up here. They already got job because of
my courses. And they got super happy, that
I'll be able to work with somebody who I have learned
remotely. And now, I'll be able to sit him
just on the nest next desk. And he'll be able to help me in
that. So that gives a lot of thing.
Well, thing also, on top of that is, when you teach something, I
always starts that, Hey, listen, I'm not the guy who is absolute
Pro, I don't know everything. Yeah, and there is no chance,
I'm going to ever know everything.
So let's just clear. This fact up here, that I'm also
reading a lot of documentation, a lot of books.
And then I'm trying to condense that information and pass it on
to you. So there are going to be
chances. You are going to ask me certain
questions that I'm absolutely having no idea.
So instead of just blabbering about it I would love to point
you towards the documentation and together we can move into
that journey of documentation reading and can figure out the
solution. Yeah, I really like that
mindset, right. Because it's every every
information, I mean, every documentation can be read by any
developer, right? We're reading the same
documentation, Maybe you're better because you've been doing
it longer and condensing that information and translating that
to other people. But the documentation is there
at the source is still there for people to read and educate
themselves. That doesn't really change and
even if you don't know the answer I love that.
You're saying let's just partner up and try and figure this thing
out because it is complex, right.
What we're doing is not easy to do it the right way, I'm it
might be easy to just make a solution, but to make it
scalable and really understand kind of the fundamentals there
that is Only complex. Yeah, I would certainly agree on
that. Eventually, after doing this
exact same thing for so long, like, I've been into the very
first day when the Swift programming came into that.
So I've been into Touch of these programming language for so
long. But when you put something on
the YouTube and you become a face of YouTube, it is very easy
for people to just speculate things about you.
And you just assume that, you know, everything at you are kind
of a pro in programming, which is not true.
We are just figuring out things on the go.
I'm just tiny. It better in that because I've
been doing this for a long once you will be.
Also they're doing this for 10 years.
You will be also be probably better than me.
Yeah, I like that right. Anyone can start, it's just,
there's a lot of things in our mind that are like I'm either
not good enough or I'm never going to get there or the kind
of journey ahead is so huge that they forget to start right by
starting small taking smaller steps.
You will get better. You will because you put in the
time and effort to do so. So eventually the time mate,
Very, but you will get better at whatever you want to accomplish.
And on one of the good thing about the new coming generation
that is sold using the word generation.
So well the good thing about the new pressures that are coming in
now you have plethora of resources just flying around on
YouTube on the very very affordable courses on you to be
we all buy you like tens and thousands of courses udemy.
Yes, all of us are guilty as charged of not finishing them.
Probably we don't need to some of these courses.
We just bought two I've watched three or four videos and getting
a sense of who he is and what he's teaching.
So yes I think that should be made us very normal that yes we
buy a lot of courses but we don't finish them because we
don't need to and we're consuming a lot of information
are YouTube and stuff. So I would recommend all of you
don't feel guilty about it. We all do it.
Yeah. Yeah.
But back to kind of the Sea of information that's out there I
love the companies are going to you with the source of
information, right to educate other people.
But if you're new and kind of starting out and you either want
to learn a programming language in, Do certain framework, or
even Cloud, technology, or go more in-depth in testing and
security. There's a lot of information,
write blog posts, everything we just laid out.
What would you advice to someone that wants to really educate
themselves and in where the quality is, is it more of the
paid courses? I mean, you already mentioned
newsletters. What would you advise?
Their I would certainly advise start with YouTube because I
also provide a lot of paid courses but I would never
recommend anybody to jump directly to my paid courses.
If Trying to learn anything new right now.
The media is all about videos and podcasts.
So try to follow up some of your favorite persons on YouTube or
podcast, or wherever they exist on Twitter or somewhere and
don't just hurry up into absorbing that knowledge.
You are going to spend an entire week and figuring it out who are
the top persons in the YouTube space or udemy space or
whatever. The space you are talking about
and then try to figure out your line and well the thing is
people actually are scared of is approaching those instructor.
Yes they might Maybe having big numbers on YouTube and stuff,
but just give them a hi or hello.
I'm pretty sure they are in the community.
We are going to reply you up on that.
So don't be scared of that. Once you have, once you've
figured out that, these are the five top people in my segment
where they are learning spring boot AWS Cloud, etherium
blockchain, whatever. That is, there are only a
handful of instructors who are going to provide you the actual
value. Well, the good thing about this
entire coding Community is they can smell the bullshit white
from far. So there, Stand, that this
person is doesn't actually know the tag, or he's just on the
surface itself. Once you figure out those proper
instructor and you are getting a sink with them that, yes, I'm
able to resonate with this person on the same frequency.
Then you can actually go ahead and try to take their courses or
their recommended books, or just discuss them that this is where
I want to go. Can you recommend me some books,
or some courses, or do you have some material on your side?
So just go ahead and try that out.
I think that's a fantastic start that you can make.
Yeah. Yeah, we like that.
That's that's what I do. Personally, I go to YouTube, I
don't really like to read that much.
So blog posts and stuff like that.
It's not really for me, but the video content as well as someone
just explaining, it makes a lot of sense.
That's kind of for me. How I learn that plus podcast,
just because I can do other stuff while still listening and
learning used to game a lot, which also meant cows at some
point. You're done gaming, you want
something to still kind of stimulate you.
So I would listen to a lot of Just while still gaming, that
would be kind of manual tasks. I also watch a lot of podcast,
not watch, but listen to a lot of podcasts.
I enjoy that because part because I don't have to ask any
question. It just just put up your
headphones and that's it. Somebody is doing a conversation
for you and tarly and you can just enjoy that very meaningful
and very guided conversation with a good audio, of course.
So, I just absolutely love podcast.
Yeah, same here, I kind of lost my train of thought there when
someone's just starting out, right?
We already set the information is really overwhelming, but I
think is more important is you need a certain mindset, right?
You need to keep going, no matter how huge that Hill is in
front of you, you need to be able to digest, be able to put
to practice and kind of teach yourself a lot of things.
Right? You can for sure you can follow
a course, you can go to university get a more formal
education. But with software engineering,
it's very unique that you can actually teach yourself a lot of
stuff because that is already out there.
Yeah, well thing, which I absolutely recommend to a lot of
students is that, hey, I don't just go aimlessly that I have to
keep on going. I have to keep on going because
this might saturate you after sometime what you should do is
set up a goal that what you really want to build the because
it's all about engineering and Engineering is known for
building the stuff, whether it's an application or a website or
maybe you want to produce something there, whatever that
is just set up a goal. What do you want to learn and
why do you want to learn it? What what's the That you want to
achieve. Once you finalize that goal that
I want to build an my own Spotify or I want to build my
own Amazon or something, the setup that as a benchmark, that
whatever I'm going to learn. I'm going to learn to accomplish
that goal. I Want to Build That Thing.
Once you have that goal set, you won't be carrying what comes in
between what technology have to learn whether that's a cloud or
something new, just focus on that thing.
And that has actually helped like millions of students that
you have built up a set of a goal and I've built that I have
accomplished that here. Make sure since the you later
like that because that's how you learn on the job, right?
You don't set your own goal, maybe maybe have a company go or
a team go something needs to happen.
And if you don't know, you make sure you get all the resources
that you can find and try and make it happen, right?
Try and reach that goal. The difference here is you need
to set your own goal and still try and get that instead of
being in a more organizational sense in that way.
Yeah, we're going back to participate in a lot of
hackathons or the community meets or anything that happens
because it's not programming. It's not about just, yeah,
surely movies. And all these tell us that, hey,
we just sit in the dark room like the codes and stuff.
That is one perspective but in reality that is not programmers,
are very friendly, they are very approachable.
Surely, they don't talk to the outside world.
That's why they say that programmers.
I don't like to talk to the world because we don't like to
honestly talk to the outside world but once you get a With
the programmer itself, then it's all nice and happy.
So what I was wondering is you already alluded to earlier that
a lot of the technical problems we can actually solve right in a
technical team or even individually as software.
Engineers technical problems are easier.
What's harder is solving, first of all, the right problems and
doing it in a more organizational setting in a,
more traditional sense in a way, because I do see a lot of
organizations struggling with deliveries deadlines, get moved
up. Requirements are not stable.
Why do you think that is that it is more of a struggle in, a more
organizational sense. So I would say that there are
two specific challenges here that we can address.
The first one is when the fresher actually comes into an
organization, he's following a lot of YouTubers and I'm one of
them and others are there. And our job is to present The
Cutting Edge technology in front of everyone.
And that's why the freshers things that.
Yeah, only best solution is the best and the most latest.
Which is not true in certain cases.
Everybody loves microservices. But sometimes, maybe your
architecture is more of a monolith architecture, that's
where your strength is going to come in.
So don't always go for the latest and The Cutting Edge.
Try to think a little bit onto the board of a robust solution.
And the second problem that I have personally faced and seen
is when your product manager or your, senior cxos doesn't come
from the tech background. Because in order to understand
what, Persons are saying you need to be a tech person because
their language their words are completely different.
So somebody might be absolutely good in his management courses.
But managing programmers is a different game altogether.
You cannot be just an MBA or a manager and can manage all the
programmers. So if a person has written great
amount of code in his life and you push him towards the
managerial position, first of all, that's a challenging in
itself. But if he moves on to that top
hierarchy, He will be able to understand what my fellow
programmers are saying if the deadlines are extending why they
are extending and if the client requirement are not frozen up,
what impact is going to make. So, it's very important that we
push to these managerial positions, the programmers who
have existing Lee written some code.
We need to push them up forward and that's the only way to make
a better organization. Yeah.
But that brings along a lot of other challenges as well, right?
Because if you're in a manager position, all of a sudden, first
of all, you're going to be less on the key.
Keyboard less hands on one of your main strength, should then
be communication educating and kind of cultivating Talent
within your team. And those skills we don't learn
as software Engineers. Sure, we can teach ourselves or
we can learn by looking at what other managers do but those are
very distinct skills that did that me.
I'm looking for those in my manager, right?
And I love when they can talk with me Tech as well, but those
other skills they don't come by default.
That is why these organizations are facing these challenges that
they are not able to communicate better because it is so hard to
make a programmer. Leave his keyboard and make more
managerial decision. It is very difficult and finding
that person is difficult. And that is where the challenge
comes in. As I was mentioning to you
earlier as well that when I joined in as a CTO into this
company, everybody was happy and thrilled that.
Now, we have a person in the senior position who understand
us, who knows how to write the code and who understand that if
something is getting delayed, Why it is delayed.
He can throw all the jargons at me and I'll be saying that.
Yes, these are all good excuses. You can say that yes this is all
something and I except totally that this is not going to be
into production in the next week so we need to hold it off.
So that is where you need to find people who actually
understand the tech and speaks the tech language.
Yeah, here comes from both sides, I used to say a lot,
right? It's from a developer side of
things, they need to be able to, to change their language based
on the people that they're talking to.
But also from the other Side, it helps if you understand
technology, right? If you are a stakeholder, you
know why things get the later. You have an understanding of how
things operate, but from a developer sense, we can change
our language, right? We can dive into marketing can
either? Thanks, I don't think so that
developers are going to change their language anytime soon, I
don't think so that's happening. But I do think like even even
DVD. For example, the finding a
domain defining your language within those Those domains and
making sure you can understand each other and communicate.
Like that is part of that that is part of creating that shared
language. So we can actually communicate
and I do think developers need to understand their domain,
right? Need to understand where their
piece of the check comes in. So they do need to understand.
For example, if you're an e-commerce, it helps to know
what a warehouse management system is what happens in their
logistically, what happens on a more financial level, right?
How do we build? For example, our suppliers or
how do we actually make money by those are not Necessarily
technical facets, they do help you understand the business and
also help speak that language. But from a business side they
don't really care what happens under the hood on a technical
level. So then that dialogue becomes
harder That's why I recommend a lot of people try to do a
start-up like even if it is a small scale, when you do a
start-up, you balance everything on your own from the business
side to how to pay the salaries to how to scale infrastructure
to the tag, just try to do one Standalone.
Start of had, you'll understand everything and you will be able
to speak every language that possibly exist in business.
Yeah I do think he would help if even from an organizational
point of view. We spend a lot more attention
on. I'm kind of getting that
communication. Ation.
Right right. Making sure that the
non-technical people know, little bit of check, making sure
that the technical people know little bit more about their
domain and we're always going to work in teams.
Right. You know need to be an expert in
everything that might be when you're actually in a start-up
that's kind of a different Diamond I guess but it does help
if you know kind of the nuances if you know the surface if you
know the general knowledge that is required there.
Yeah, that certainly helps because and again I do totally
agree on that, that's not easy thing.
That's one of the biggest challenge right now.
All organization is running through that.
Hey, can you find us as good manager who can talk to a team
or our team is not able to deliver the products on time?
The table is not able to deliver the product on time because
probably, you haven't Frozen the requirements or you were not
able to communicate those requirement in a, in a fashion
that they need. So he need a guy who is
intermediate between them. I would say you need a compiler.
Exactly. I like that on your on, your
first point, when you mentioned that, right?
New people, or even existing or more senior Engineers like
trying out new technologies, right?
But there's a certain a certain robustness that you need before
you put it into production, right?
Let's say we have an app on my phone and it's buggy, I'm either
going to go to a competitor or I'm not going to use this app
anymore because it doesn't work right?
From a user perspective. If it doesn't work, you're done,
people have very Short attention spans nowadays.
So the technologies that we use must have certain standards must
be more robust than the more new and up-and-coming things.
But those we love to learn about we love to play around with and
even sometimes we love to put it into production as well.
So this reminds me of all the story.
So, before joining up here, I was working as a kind of
consultant. I was writing some code as well
for the startup and I recommended them that hey, you
are a start-up was focusing a lot on India and Market is more
oriented towards Android shortly.
IOS? Is there.
We cannot lose that, but given the fact that how much budget
you have, I think you should focus more on Android and I
would highly recommend that I already have experience in the
react native domain. So you should start with react
native or just go purely on Android, maybe with kotlin or
maybe with Java. That would give you more
advantage and you will face eventually less of the
bottleneck when things actually go onto the scale.
But a lot of new Engineers were there and They all were a big
fan of flutter and they wanted to go all in with the flutter.
Yeah, because development and building up the UI is in
everything was so great in that. So eventually they decided that
now it is, we are going to go with the flutter.
So I said, that's cool as well. Let's go with that if you are
insisting on that. Yeah.
Now we did spend 1.5 month into the development of building.
The UI is in everything and when it comes to injecting those
apis, that's where we saw some of the Like into the letter, we
found out that there are certain packages which are not ready in
the flutter, especially one of them was we wanted to convert
some of the Json data into SQL and Excel and all of that face.
So many of the issue that we became a situation that either
we need to build a package and publish it or there's no way
going forward. So see this kind of thing comes
up in lot in organization that sometimes you're so much focused
on the new tech that is coming out that you forgot to evaluate
that. What are our requirements?
Quirements, is this framework or is this library?
Or the stick is going to fulfill my requirement or not.
And you need to consult somebody senior, who has been doing this
stuff? So that's where the challenge
comes into the organization's. Yeah.
The hard thing about software engineering is especially when
you put it into practice. There's going to be unforeseen
events, right? Already.
If you're building a smaller project on your own, you're
going to find bugs. You're going to find unforeseen
things, take that, and put it on a huge scale of an organization,
right? With Thousands of users or at
least the aim is to get to. A lot of users you're going to
face a lot of issues and those can be blocking with regards to
progression, right? As you mentioned, with a flower
example, either you need to put in the Technical Resources to
make that package, to actually, make sure you meet your
requirements or you kind of screwed, right?
You need to Pivot as soon as possible Soviet at the
situation, we were at the situation now that we cannot
give it back because we have spent one point five months in
building. That UI is in flutter.
And now, just because one package is There.
And that package was consuming probably 15-20 days more.
So relative position we cannot go back.
We cannot move forward. We are stuck there.
Yeah, exactly. And and stucco is not a place
you want to be. Yeah.
And the only way for us for us at that point was to move
forward and we didn't know that if the same situation is going
to arrive again or not. Yeah, yeah.
And man that must be kind of daunting, right?
Because you're going on a road, first of all your trailblazing
because if you're using a new technology, Hasn't been
established not a lot of content out there yet, people are still
figuring things out. Is this even robust enough to
give to user and to make use of it in production, right?
So that must be very scary as well then yeah, so I'll another
example that I have is I also have one of the company learn
Nest, which handles 12 million users.
So that is already at a scale. And at that time, the like still
to this date. We are on Ruby on Rails because
we find it much more Or solid much more opinionated.
We want something, which is opinionated, which stops us from
doing the wrong things. And at that time, LinkedIn was
doing so much of marketing that we have moved into node.js.
Yeah, so I've been teaching node.js for a while but for a
product of that scale and the requirements, very specific
requirement that he have there. We moved certain of our micro
Services into node.js and immediately we saw the this is
not the way we do. It was performing well but a lot
Of new Engineers were coming. I am and they were using Express
in certain way that we don't want it because these are not
good practices. And teaching every one of them
that this is not good. Practice use this, this is not
good. Practice use.
This was very challenging for us.
In Ruby, on Rails. We didn't need to tell anybody
because there is only one way of doing that things in Ruby on
Rails. Exactly.
Yeah, it's a hard thing, right? And it's harder even to to
communicate, for example, to your business.
That this is an issue, right? Yes, we can use node.js.
Yes, we will have Certain benefit certain downsides but a
huge downside is. It's not that opinionated,
right? Which means we need conventions.
If we don't have those conventions, everyone's going to
do everything. You're going to give them a
paint, a paint bucket, one person's going to paint blue.
One person's going to paint red. It's going to be a mess of
different colors while if your first of all, a language is
opinionated. It has certain colors, right?
Has colors. That harmonize of harmonize,
harmonize if I'm sticking with the same example, or you can
make those conventions. You can be like ahhh Use red
blue and green but you need to actually educate people then
especially new ones. Yeah, exactly.
I teach this in my classes as well.
That you might be a big fan of variables, but I am a big fan of
constants. That's a good one, but the
challenge there is when you learn it's more in isolation,
right? Especially if you're just
starting out, you're going to consume a lot of content.
I don't think you're going to co-create with other people.
Write your first of all, going to teach yourself.
How to do it. It's going to be in a certain
way, probably because you're going to be like, ah, this is
how I do it. This is how I know, this might
be one of the ways, but I think it's the best way because that's
how I know how to do it. You're going to put that into
practice when you come into a team setting, they're going to
teach you. These are the rules.
You can also do it like this. These are the trade-offs, why
did you choose one of these options?
Why did you execute it like this?
And that's when you're learning, kind of kicks in overdrive,
right? Then you're going to have
different opinions different discussions and they're all
Going to contribute to kind of your your Learning Journey and
that way as well. So, that's why I always say that
surely start your journey alone but don't travel the entire path
alone because the community is so vibrant, in that you can join
conferences, you can join hackathons, you can join
internships. A lot of companies, even provide
free to soar the a lot of cohorts that are going in.
So even though there's a lot of them are free as well as most of
the hackathons are entirely free, just walk into them.
Have a discussion with other programmers and see But others
are building the same thing in what Manner.
Well, challenges with the programmers is, when you build
things alone, you don't think too much about the scalability
of the product. So, that's where and the some of
the programmers even I've seen their work in a big companies,
like Amazon and Microsoft are great companies, Great products.
But when you join in as an engineer, You're Building just a
screw of certain things and you don't know where that screw is
will be injected because the Machinery so big now so it take
initial few days in Building either your own startup or join
some startup and do everything on your own that that will make
a lot of changes in here. Yeah, I'm really fan and more,
and more fan of, kind of those co-creation patterns more
programming. And a programming is what I do
the most. I haven't had that much
experience with more programming, but first of all, I
learn how people think how they Implement.
And we have a dialogue, I can ask questions immediately and
they can answer or vice versa and I learned stuff about their
tool set, right? Because you're probably going to
use GitHub, you're going to use some kind of version management
system. They're going to have nuances
the way they use their editors. The hockey's that they use is
going to make them more effective and immediately you
learn about those, right? I can ask questions.
I can be like, is this on purpose or do you want it like
this? Did you know this even existed
and you're never going to get that if you program in
isolation. I really think doing that
together co-creating in that way, has a lot of residual
benefits that is going to make you more.
Active, but a lot of people, and even a lot of organizations,
say, do developers working on the same problem, that doesn't
sound effective. Now, I know I think that's a
totally wrong notion. It is very effective and two or
three great minds work on the same problem because you're
gonna get the best outcome that's possibly coming out of
the three. Best Minds you have hired in
your organization. So I totally believe in that.
And also on top of that, a lot of my videos that I post on
Instagram deals and stuff, they are all about tricks.
So all the tricks that I share their they are not like I have
found them. They came out of the discussion
with other programmers and I'm like hey does anybody knows this
or should I make A video about that.
So most of my videos are all about discussions that we had
around in the conference room or something.
And I try to make a video out of them.
Yeah, exactly. You want to be as effective as
possible, right? And a trick mind sound, bad
initially. But if you have just a huge to
boxing, you can pick and choose and use the tools when they need
to happen. Or when you have a certain
problem, you can pick the best tools in that way, as well, you
can be effective in what you're doing, you're going to be more
efficient, right? Sure.
Might take longer to solve the actual problem.
Mmm, but if you're in fission and everything around that
right, even doing branching, rebasing little tools that you
need as a developer, it's going to make you more effective down
the road. Yeah.
Again, I told you that the whole root of these things are because
management the top Management in some of the big organization,
they are not coming from the coding background, so they look
everything. As where can we get the most
optimized or usage of the resource?
And when somebody has an engineer or somebody as a coder
who reaches out at the top management, that's where you
understand that, what could be, the better Engineers are built
different. They are not regular people, the
coders. They had a thought regular
people at All they're built different.
They have a different language itself and their Community is
different. So management need to understand
this. That we are built differently.
Yeah, you developers are very scarce, right?
And you can do two things. I think from an organizational
point of view, you can take your best engineer.
Make them a manager, but they might be unhappy, right?
You need to give people the option.
Do you want the managed managerial track, right?
This is what it entails. You're going to focus more on
communication. You're going to let go more of
the Hands-On work, but you're going to be Multiplier, right?
You being in that position is going to make other people more
effective is going to make our organization more effective as
no longer one plus one. You're multiplying everyone or
you want to give them the option.
You keep doing what you're doing, you go deeper but you
specialize, you really become the best at the Hands-On work
and be a great mind in that way. And stir, you have huge amounted
to you shampoo use, then you stumble over my words there if
huge amounts of facets there as well, right?
You have Cloud security. Purity, testing architecture and
actually software engineering with different amounts of
languages. It's a huge playing field.
But I think from an organizational point of view,
you want to give people the option.
The option should be there for your existing Engineers or for
new Engineers that you bring in. Yeah, exactly.
Like what we did recently here as well.
There is one great programmer buddy here in the organization.
And we wanted to push him towards the team lead position
as a team manager, but he was not willing to go there.
I said no sir, I want to write more code I'll I'll do that
better. You can have some other job and
then I set with him and explained that see I can bring
another guy from a managerial background but he won't be able
to understand you that much and the team they the team
understands you is way way better.
So What we agreed on that, that in every week.
I'll give him two dedicated days where he'll be purely writing,
code do managerial work at all. And rest of the days, he's going
to manage the things that this is kind of agreement.
We came in. So, I was more than happy to
promote an existing engineer into the managerial position.
And that's what I'm doing here. Yeah.
And I think every engineer, every engineer that I've met
wants to be effective, right? They want to be as effective in
writing code, or they want to be as effective in solving those
problems and just you need To find out what your personal
balance is on that. Is it more Hands-On?
Is it more High over? It's going to be a learning
Journey. You can go high over and then be
like, this is not for me and go back.
That's no problem at all. Just experienced, I think that's
the only way. Exactly.
And I have never met any engineer who wants to push bad
code? And not like the one, not even
one. But again, if you are going to
push so much of pressure of the deadline and releasing the
product is going to do some hacks and he's gonna just make
that Kate Bush. He doesn't want to do it
willingly, so you need to understand that sometimes, if
engineer is saying, hey, this is not good.
We need to hold this release. Listen to him.
He's saying it for everybody is greater good.
Yeah. And then we get into the same
issues. If the people that are involved
in creating those Technical Solutions are non-technical.
I mean, talking about POS here and they help in or they discuss
the Technical Solutions. They'll go for the fastest one,
because that means delivery, that means we're going to make
the deadline Lines. But that has a very short-term
mindset, right? And software is such a long-term
game, right? Those trade-offs that you're
going to make now, are going to have huge impact, or might have
huge impact in the future. The problem is might have, which
is that makes it harder to be. I may have, yeah, we can, we can
remove. This might word found everything
going to put the back and probably you need your entire
code base from the scratch because of those shortcuts that
have taken. So don't take them.
Yeah. I see the often like way more
often, I feel like as Engineers, we should really push back on
those or not even give those as options, right?
Because they shouldn't be options.
If they will have impact in the future - impact, they shouldn't
be an option. Don't discuss with your
stakeholders. I should we write tests.
Absolutely, it's part of your craft is part of what you should
do. That's not even a question,
right? That's in your definition of
done. Absolutely 100% agree on that.
Yeah, I we went kind of all over the place with the mainline of
Education. I really enjoyed this
conversation. Is there anything that's still
missing that you still wanted to share?
I guess that's more about. I can geek out all their coding
practices and what's new coming in high court?
Limb is doing have flutter is stifling but Iris version.
Next is pushing a so I think we we all out of the geeky side so
we can push out a lot. But again, one thing I can Put
in as a check out my channel as well.
That probably that's yeah. It's a I'm going to put all his
socials in the description below.
Check him out and let him know you came from our podcast as
well. The next show we might do is in
person if he touches are in Holland.
Well, actually do this face-to-face and absolutely,
that, that's kind of a one ideal.
I can make with your show one podcast in person that's going
to happen for sure. Awesome.
I'm going to look forward to that one.
Thanks for listening everyone and we'll see you on the next
one. Thanks for listening everyone.
If you like the episode, I want to support the show.
Don't forget to leave a rating better yet.
Share the episode with a friend. Let us know in the comment
section below. What you want to hear.
I will make it happen. Cheers.