Detailed Notes
In the fast-evolving world of software development, having a robust developer toolkit is essential for growth. This episode of our podcast dives deep into how developers can effectively build their toolkit, not just by learning new programming languages but by focusing on problem-solving techniques, productivity hacks, and leveraging automation tools like code generators. Let's explore the key takeaways.
Read More ... https://develpreneur.com/building-a-strong-developer-toolkit-enhancing-skills-and-productivity
Stay Connected: Join the Developreneur Community
We invite you to join our community and share your coding journey with us. Whether you’re a seasoned developer or just starting, there’s always room to learn and grow together. Contact us at [email protected] with your questions, feedback, or suggestions for future episodes. Together, let’s continue exploring the exciting world of software development.
Additional Resources
* Updating Developer Tools: Keeping Your Tools Sharp and Efficient (https://develpreneur.com/updating-developer-tools-keeping-your-tools-sharp-and-efficient/)
* Building Your Personal Code Repository (https://develpreneur.com/building-your-personal-code-repository/)
* Your Code Repository and Ownership of Source – Consulting Tips (https://develpreneur.com/your-code-repository-and-ownership-of-source-consulting-tips/)
* Using a Document Repository To Become a Better Developer (https://develpreneur.com/using-a-document-repository-to-become-a-better-developer/)
Transcript Text
[Music] oh okay we're back uh we'll pretend that I clicked record because I actually this time I didn't have to but the time before it was a bit bit too much of a challenge for me so what are we gonna do for this episode so we talked about getting off the plateau we're getting towards the end of this uh developer Journey as we call it and now we're up to another topic what do we want to go now the last one actually worked out really good I think the whole like getting into a little bit of like certifications as a educational tool was was really good um code reviews and testing we've we've talked about many times um have we touched on so that was was really good you know we touched on a lot of good topics with that would it be advisable to talk because we've thrown out you know you should have your gith hubs you should have your kitchen sink apps and things like that to kind of showcase your work should we maybe get into all right so now you here you are at this point in your development Journey how you know what are some things you can do what within your current flow or again like last episode to Excel and to continue to grow to take what you've been doing and build those libraries to build that portfolio in GitHub or wherever because we we've kind of talked about doing it but I don't think we've really walked through the mindset of how to think about going about doing it like when is what I'm doing something that is important enough to put out there in that tool Suite I like that um you'll probably find a better way to word that but I'm trying to think that because it just as you're going through that it it triggered another idea and I'm trying to decide if it's too separate the other it triggered idea of passing that that information on so it is what do you do like okay you know some stuff how do you grow other developers basically is it sort of like getting to that point is now you've gotten to certain point in your career it is passing that on it is training other people whether it is things like documenting your own code and making sure that it is very useful which we've talked about to others and how you uh position some of that but I think it was a little more of like how do which gets a little bit into that idea of like how do you as part of and it goes into that training side that we talked about actually in the prior episode how do we get off of that and say okay we know some stuff I'm thinking about more I think about it's actually stuff we've probably covered in that so let's punt on that let's swing back around to the repository thing or the the kitchen sink or building your utilities building your libraries yeah sort of building your own personal toolkit and repository things like that it's like adding adding arrows to your quiver we'll start with that very generic like weird sort of like sprawling kind of topic and let's see what happens because I think we can find a way to bring it home hello and welcome back we are continuing our season of growing better developers we're on the developer Journey we started way back at hobbiton or whatever it is and we're on our way to smogs Lair it's been a while since I read that so if I got it wrong I think it was the Shire is where they started but that's okay nevertheless trying not to geek out too much I am Rob Broadhead I am one of the founders sadly so one of the founders of developer n building better developers also a founder of RB Consulting where we help you Wrangle those dragons of technology and we help you through integration simplification and automation find ways to actually like Focus that energy to take all of that stuff out there all of the the time the effort the data entry and all the stuff that goes into using technology and leveraging it for your business and find a way to streamline that stuff and give you a better return on investment for the time and the money that you put into your tools uh I'll go ahead and do the good thing bad thing I'm g go with the really simple bad thing is and this is maybe a little bit of a cautionary tale right before I was doing all this I was all lined up I was going to do this little demo for a customer I'm going to record all this stuff and be like you do step a step B step C boom boom boom boom when I got to step too and I was like I should probably cut it off here but I was like no I'm going to go a little bit further and I went a little bit further and Bam right into a bug there was something that was like I something wrong something was like you know it turned out to be something very simple that I did but nevertheless be careful with those kinds of things it's better to do stuff in a bite-sized chunk uh good stuff oh this one may be near and dear to your part your heart we have had a customer a project that we' been working on and one of the things we need to do is deal with Facebook meta we have we it's API integration stuff with the Facebook meta place we aren't doing anything crazy it's not a Facebook application it's not really anything other than we just want to use the API to access publicly available data we're not trying to get something off of us or anything should be super simple we have spent three weeks I think now trying to work through the whole approval process to make sure that we cross our te's right dot our eyes properly and label and categorize our applications so that they actually understand what we're doing and say oh yeah go for it and and approved us and we finally got approval after all of these like headaches and they would send us stuff that was totally useless information to say here's how you could approve it you could you know submit it better and it had nothing to do with our application so their process very painful we got through it big V big victory more of a victory is you now to listen to Michael and his good and bad thing and his introduction of himself go for it hey everyone my name is Michael Mage I'm one of the co-founders of developer Nur building better developers I'm also the founder of Envision QA we're a new rebranded company from L Consulting we help small to midsize businesses and clinicians build software tailored to you what your business needs are instead of you buying all these cookie cutter software packages that are out there that may give you part of what you need maybe not and you have to build all these manual process we eliminate that we help you automate your processes good and bad for the week uh good I have taken the step back I'm finally taking a vacation and getting some nice RNR ah thankfully and the weather decided to participate so we're finally not as hot as we have been the bad side wife just found out she has to go travel for two weeks so I will be a bachelor for two weeks with a bunch of animals to deal with and kids and uh it's going to be a scheduling nightmare but hey if I follow our own practices I should be fine there you go this episode we're gonna talk about basically get into we've talked about like having your own personal repositories or having like your your quiver of arrows and how do you get technology in there how do you grow how do you become a better developer how do you build these skills well one of the things is now instead of just want to talk about this episode is not just general skills like hey I'm going to go out and I'm going to learn to program code and C or cobal or Java or Ruby or blah blah blah whatever the language is it's really about which goes back to it's about problem solving it's about having tools and utilities and ways for us to more quickly get the job done now one of the ways one of the the most I think like complete ways to help yourself learn something something better to learn some really cool problem solving to improve your your general ability to get stuff done and productivity levels is actually code generators anything you can do that is either using a template of some sort and then just using that to just like Bam Bam Bam crank out the tasks that we do every day which is you will see these in a lot of idees they'll have their little like Source generate and it'll do things like get all my getters and Setters or just throw you know template comments everywhere so that I've got boilerplate for my classes or um adjusting like parameters and some things like that that are just very common tasks that you go through the AI tools that are out there now you'll see that where it's like it knows because we do this a billion times it knows that you're about to create a class and then walk through all of the properties of the class and assign a value out of that or copy it from another one or whatever it is and you'll see AI will just be like bam you've got all your code and you'll have to double check it because it will guess some of your properties wrong but generally speaking those kinds of things those repetitive things that we have are excellent candidates for us to learn how to use a tool better but also to scratch our own inch to make sure that the next time we do task X we're going to be able to do it faster these are the utilities that are very helpful for us to have for our own purposes also to use if you want to have have a for example like a GitHub public repository that you can show off your skills those are great tools to throw out there now if you're building you know something that's like super secret that's like really awesome you don't want to do that because you don't want to you know you don't want to release all that you want to go make your commercial product and do your side Hustle but if it's a especially a little tool utility kind of thing that's a common task simple stuff like the the things that I remember when I started out it was things like just finding files within a bunch of directories or finding files of a certain size or like one I had is it was literally just a little tool that allowed me to spin through a huge text file and do some very simple manipulation things like I wanted to take a this back in the day when space was a bigger issue I wanted to take like a you know a 2 gig file and just go through and wipe out every third row from this big nasty CSV so I could get it to some that was more manageable or things that you can do like there are tools out there and some of you that are yelling you know Unix does all of that okay fine yeah I get that it does to some extent but maybe instead of yes you can do that you've got like a little shell script that goes and does the you know the a or the said stuff that you would normally do to do all of that processing also you can do this in things like Java or python or C or pick your language of choice and it's a way for you to play around with that language to show off your skills it's going to be a small bite-sized kind of thing which makes it really easy to like knock it out of the park have really good comments be really you know intentional about how you name your variables and how you comment along the way and how you package it and maybe if you have a read me or things like that all of that stuff is a great start for your personal repository or your as Michael likes to talk about your kitchen sync app where it's just like these are the things these are the the T tasks that I'm going to do or that I run into on a regular basis and so I want to be able to have a quick way to get that done and this is actually even useful I found if you jump languages so if you have uh like let's say a series of things that you did in Java that are all these like basically code Snippets that are this is how I solve this problem this is how I solve that problem here's an example of me doing this and maybe you can run it in Java and you can do it in a small way but also maybe use that as a template so now I'm going to go to C it's like well all right I'm going to just pick up that Java code drop it in the C app it's not going to compile but I can look at that and and it basically now gives me you know my step-by-step approach okay this doesn't work how do I do this in C which becomes an easy thing to throw out into a search engine or go look it up in a reference however it is so that you can then translate into whatever that you know that language is or you may even be able to just look at existing examples and walk through the code and go oh this is how we do it in this language and the next thing you know you've been able to you know quickly do maybe some very complex problem solving in that new language or that new environment thoughts on that Mike boy uh you brought back some memories I know I talk about kitchen sink apps a lot and like the utilities you know especially if you're in Java you know you got Maven you've got all these third party tools out there and Apache comments and things for that for a lot of utility classes you know like how you manipulate strings for example a lot of this to me I kind of went through this process years ago back in the 90s when the web first got popular we had to start wearing HTML back then the internet was still in its infancy and you couldn't really Google wasn't a thing you really didn't have something that you could go look up all these tools so way back when I was learning HTML I actually wrote something very similar to what is w3c schools today which is a website of nothing but examples for like HTML CSS JavaScript and typically today I call that a kitchen SN because as you're building these code libraries as you're writing things as you're learning things you're going to write specific functionality that is going to be very powerful to you to be reused in other applications for example in one project you might actually have to encrypt customer data so now you have to write an encryption tool well that encryption tool if you follow best practices is probably going to be an encryption tool that can be reused again and again and again other things like string manipulations now again I mentioned uh you know if you're using Java you probably should be using the Apache common libraries for this but you could write your own string utility class to determine how do you lowercase uppercase how you strip out special characters but the other thing is this utility class could be a specific functionality it could be hey this is how we handle strings for banks this is how we handle strings for like epidi or this is how we handle strings for Asi so you could actually build these utility classes for specific functions not only is that good for a kitchen sink app but this could also be your own way of tapping into the Apache orgs library or other utility libraries that are open source and shared by the community so you can also get your name out there in the industry some other things I've run into like Rob mentioned the boiler plate code I talk about test automation all the time one of the biggest annoyances is a lot of the Frameworks that are out there for building testing require a ton of boiler plate and if you do the boiler plate or if you follow it correctly you're essentially duplicating code for every single test that you do within your application well one of your kitchen SYNC apps could be how do I generate that test and build a framework for doing this within a spe like selenium or test NG or cucumber that way you go into the next project you push a button boom there's all your test cases you don't have to reinvent the wheel and finally the other thing I really love about this idea is with containers so now we live in a world where we have cloudbased we have containers we have Docker we have kubernetes so now you can actually build a kitchen syn app that can be deployed for anyone and can be expanded reused so you could build a mail server using srid uh compose it build it drop it in your kitchen sink now you don't need to put customer proprietary information in that but you now have this little kitchen sink utility that oh I need a s grid app Click Boom I now have a fully functional environment to test with or to configure for sending email to a specific client or customer so there are other ways you can do this within your kitchen syn app to not just build utilities not just you know navigate The Boiler playay code but you could actually build your own customer utilities you can contribute to the open- source industry of the open source community you could create something Innovative and kind of give it your free we hey here's an introduction to this check it out and then maybe bring them to your site to sell them the actual software and finally build custom environments so you can go from one environment to the other by a push of a button you build these configurations out there you reuse them and then you just tweak them as you need them so it's a lot about Automation and know we talk about AI a lot because AI is getting popular but the thing is AI is not quite there yet I still test it every now and then say hey build me X and I'll get something close but nine out of 10 times I have a utility or I have a kitchen sink app that does it better so while you may rely on AI to get started as you get better as you're building your skills look at Best Practices AI isn't always there yet but it's a tool use all the tools in your toolbox to make sure that you're moving forward you're getting better and you're always pushing the envelope always trying to find that next best thing so that you're not getting stale and you're always learning you're always looking for that next thing rob you touched on something that we we haven't really gotten too much into but I think is is really useful particularly in the the container world and it's something I've actually gotten so I do more often now granted I've I've done it a lot of times by just having like an AWS you know ec2 server up and I have it set up but it's it's configuration in particular you know Common configuration things for example most of us probably at some point have had to use Apache and configured a virtual host most of us at some point have probably configured Apache with a virtual host host and had a typo in there or something that wasn't the right you know we had like a some those uppercases instead of lower case something like just those ridiculously annoying little configuration problems that can cost us days and create incredible headaches it is really useful to have as part of our kitchen snc app something that runs like a complete you know Soup To Nuts things that runs particularly in a in a container because then we can do stuff like say okay I'm going to take that thing and I'm going to see what happens if I like for example bump it up to the new version of PHP or python or whatever it happens to be or Apache or the operating system or the database where am I going to hit problems with that or potentially it's like where is it my problems are just I didn't type the configuration string properly or I didn't get that key right or something like that versus this is actually something where it's like it's a code issue it's those kind of things I've had a lot of those it's it's amazing how often I will get into it and I will have multiple servers this is even as part of development where I'll have multiple servers available and I'll go hit it with a database and then I'll go post it you know have a different database or slightly different snapshot of data like the data that works over here and now when you do it over here it doesn't work and I'm like well it seems like it should work and then if you just copy the data over you realize that oh it's only data that's a different thing it's one of those things we can talk about is like how do you it's really it's isolating the problem and if you have a a stable static environment of stuff or your you your utilities whatever they happen to be your tools it allows you to have something that gives you like a a foundation to work off things like string manipulation or uh searches within strings particularly if you get into the road of like red you know red regular Expressions rexes and stuff like that they could be really annoying basically now some people are you know Rex Masters and you've got all this stuff but for most of us you use it here and there but you don't use it enough that you really have maybe some of the ins and outs of things like how do you how do you find a an email string you know somebody or a phone number when the phone number could have dots or dashes or parentheses or things like that you know there's there's these things that we're starting particularly if you go into the world of like data scraping and stuff like that or even just trying to clean data in a free form database where people have entered things 18,000 different ways finding that data and cleaning it up and things like that it's really nice to have those utilities where you have a known quantity you have something that you know works for maybe X problem but now that you've maybe tweaked that problem or massage that problem a little bit more and you're trying to write that solution at least you can go with one that's you like you know it's 90% there or 80% there it's like okay this works for these cases so at least I know that's right so if I'm especially if I'm having to write all new stuff or in a whole different environment I have a it's really it's like my own little unit test or my own sanity test to say does this at least cover what this thing does am I actually making an improvement I maybe maybe going a little off track there but the configuration stuff such a headache it is such a challenge in so many cases where it's just like this should be up there I should be able to spin this up in five minutes and two hours you're still walking through it because you're trying to figure out which file which letter or where is there a space or where did you you know like those little things that it's nice to have something you know this works so you can go verify that and then you can just do a diff from that and the one that you created things of that nature uh closing thoughts on that yeah the only thing I would Tech on kind of with our conversation from last time is as you do this as you build these these kitchen SYNC apps these GitHub repositories the code you know portfolios for yourself you know it if you build these you're not just going to want to let them sit out there so once a quarter once a year maybe every six months you're going to want to constantly go back out and make sure that it works with the latest versions because typically if it's it's something you put in there it is a complete piece of code it's a complete unit of functionality that as long as you keep it updated the next time you need it you just go pull you know it's going to work boom you're working you don't have to reinvent the wheel every time like I said you find something to do encryption or email put it out there next time you need to do email just go pull it in kick it off and you're done uh tweak it you know and if you write these well and you write them clean enough you make them module you can even make it to where you just pass into configuration or some parameters and you're going to get what you want from it so it's again it's a very compact piece of code and that honestly is where you can turn those things this could eventually become a little money maker for you that was one of the one of the early companies I worked for we had a bunch of tools that had come out of uh we built software but we also had consultants and there were tools that the Consultants used and there were tools that we used as part of our development and we got together at one point and actually turn that into a product in itself that was just a suite of tools that you could use to improve your development experience in that in that technology on that platform so there's a lot of ways that this stuff can benefit you particularly as Michael said if you're constantly going back to that thing and reusing it every time you do it you may find like a little bug or a way to improve it or something like that and eventually you have something that maybe has been you know trial you know trial by fire multiple times it's really tried and true it's been proven in a lot of different environments and now you have something that is you know maybe a rocky little library to either you know as itself sell as like a little you know add-on somewhere or maybe it's a piece of it's a start into a a larger you know solution or product same way we like to take your emails and those little things that you give us and all that little advice and turn that into bigger things like an episode or maybe even an entire season so please shoot us an email at info developer.com leave us comments here uh wherever you get your podcast if you're listening to this or here if you're on YouTube which you can always go to the YouTube channel develop andur you can see these and so many other things we've been around for I think five or six years maybe it's probably more than that now we have literally hundreds of from you know 15 bit minute Snippets to 30 60 Minute full-on presentations and things like that it's a lot of information out there uh that's all in the YouTube world you can also find it out on the at developer.com we've got links to all of that kind of stuff not to mention blog articles and all kinds of other funest literally over a thousand articles out there and links to data uh to content to examples and you can also go to if you if that's too much you can go to school. developer.com and you can find some much more uh focused classes some of them are free some of them aren't but some some material there to just like maybe get to know some of these things a little bit better and figure out where you want to go next maybe get yourself off of your uh Plateau that you have reached that being said I want to respect your time and so wrap this one up go out there and have yourself a great day a great week and we will talk to you next time bonus material so the biggest thing I'll add to this because I find it very useful and this again is a bit of a self plug for Envision QA because I'm very QA focused on a lot of things if you build these kitchen syn apps if you are building your code repositories please add unit testing add integration testing add stuff to test your code because six months from now a year from now you may forget how to use it and your tests are very good snapshots of hey this is how you implement and use the code the other thing is if you're using Java or python or whatever and you go to a new version and your code breaks you already have the test you just need to fix the code so you save yourself a lot of headache and it makes it easier for maintainability down the road so don't forget your testing and it is if you're using it as a uh some sort of like a you know portfolio app or something like that it is really nice to have that kind of stuff in particular if you've got you know pipelines and cicd and some of those kinds of things you've got build scripts and all of those that it does a build but it also kicks off tests or at least some form of the build that can kick off the test and there is just something that's very comforting about having code that you haven't touched in six months and the first thing you do is you run your test and you see that like it ran 400 tests and they were all successful you know or if one failed then you're like okay now I got to go figure out what did I change what did I break what it what configuration file am I missing things like that um those are very helpful and are the kinds of things that help us round out our tools and make them helpful in the long run uh bonus stuff if you weren't here if you missed the last one next season we're going to talk about tips and tricks for how do you become how do you personally do things to become a better developer and we're going to maybe have some challenges or gamify it a little bit and have a you know each episode have something that you can do and action it to say all right this is what I'm going to do for the next you know week month whatever it happens to be to work towards becoming a better developer V ER we would love to hear suggestions and and even questions and things like that you guys that that you guys have feedback on that or if you have future Seasons that you would love for us to tackle shoot us an email at info developer.com as we've always mentioned and um other than that we're going to wrap this one up we've gone a little bit long so check out come back here before you know it we'll be hitting record again we'll have the next episode and we'll just be continuing on getting closer and closer to the end of our developer journey of you know going to land This Plane fairly soon soon and then move on to the next season have a great one and we will talk to you guys next time [Music]
Transcript Segments
[Music]
oh okay we're back uh we'll pretend that
I clicked record because I actually this
time I didn't have to but the time
before it was a bit bit too much of a
challenge for me so what are we gonna do
for this episode so we talked about
getting off the plateau we're getting
towards the end of this uh developer
Journey as we call
it and now we're up to another topic
what do we want to go now the last one
actually worked out really good I think
the whole like getting into a little bit
of like certifications as a educational
tool was was really good um code reviews
and testing we've we've talked about
many times um have we touched on so that
was was really good you know we touched
on a lot of good topics with that would
it be advisable to talk because we've
thrown out you know you should have your
gith hubs you should have your kitchen
sink apps and things like that to kind
of showcase your work should we maybe
get into
all right so now you here you are at
this point in your development
Journey how you know what are some
things you can do what within your
current flow or again like last episode
to Excel and to continue to grow to take
what you've been doing and build those
libraries to build that portfolio in
GitHub or wherever because we we've kind
of talked about doing it but I don't
think we've really walked through the
mindset of how to think about going
about doing it like
when is what I'm doing something that is
important enough to put out there in
that tool
Suite I like that um you'll probably
find a better way to word that but I'm
trying to think that because it just as
you're going through that it it
triggered another idea and I'm trying to
decide if it's too separate the other it
triggered idea of passing that that
information on so it is what do you do
like okay you know some stuff how do you
grow other developers basically is it
sort of like getting to that point is
now you've gotten to certain point in
your career it is passing that on it is
training other people whether it is
things like documenting your own code
and making sure that it is very useful
which we've talked about to others and
how you uh position some of that but I
think it was a little more of like how
do which gets a little bit into that
idea of like how do
you as part of and it goes into that
training side that we talked about
actually in the prior episode how do we
get off of that and say okay we know
some
stuff I'm thinking about more I think
about it's actually stuff we've probably
covered in that so let's punt on that
let's swing back around to the
repository thing or the the kitchen sink
or building your utilities building your
libraries yeah sort of building your own
personal toolkit and repository things
like that it's like adding adding arrows
to your
quiver we'll start with that very
generic like weird sort of like
sprawling kind of topic and let's see
what happens because I think we can find
a way to bring it home hello and welcome
back we are continuing our season of
growing better developers we're on the
developer Journey we started way back at
hobbiton or whatever it is and we're on
our way to smogs Lair it's been a while
since I read that so if I got it wrong I
think it was the Shire is where they
started but that's okay
nevertheless trying not to geek out too
much
I am Rob Broadhead I am one of the
founders sadly so one of the founders of
developer n building better developers
also a founder of RB Consulting where we
help you Wrangle those dragons of
technology and we help you through
integration simplification and
automation find ways to actually like
Focus that energy to take all of that
stuff out there all of the the time the
effort the data entry and all the stuff
that goes into using technology and
leveraging it for your business and find
a way to streamline that stuff and give
you a better return on investment for
the time and the money that you put into
your
tools uh I'll go ahead and do the good
thing bad thing I'm g go with the really
simple bad thing is and this is maybe a
little bit of a cautionary tale right
before I was doing all this I was all
lined up I was going to do this little
demo for a customer I'm going to record
all this stuff and be like you do step a
step B step C boom boom boom
boom when I got to step too and I was
like I should probably cut it off here
but I was like no I'm going to go a
little bit further and I went a little
bit further and Bam right into a bug
there was something that was like I
something wrong something was like you
know it turned out to be something very
simple that I did but nevertheless be
careful with those kinds of things it's
better to do stuff in a bite-sized chunk
uh good stuff oh this one may be near
and dear to your part your heart we have
had a customer a project that we' been
working on and one of the things we need
to do is deal with Facebook meta we have
we it's API integration stuff with the
Facebook meta place we aren't doing
anything crazy it's not a Facebook
application it's not really anything
other than we just want to use the API
to access publicly available data we're
not trying to get something off of us or
anything should be super simple we have
spent three weeks I think now trying to
work through the whole approval process
to make sure that we cross our te's
right dot our eyes properly and label
and categorize our applications so that
they
actually understand what we're doing and
say oh yeah go for it and and approved
us and we finally got approval after all
of these like headaches and they would
send us stuff that was totally useless
information to say here's how you could
approve it you could you know submit it
better and it had nothing to do with our
application so their process very
painful we got through it big V big
victory more of a victory is you now to
listen to Michael and his good and bad
thing and his introduction of himself go
for it hey everyone my name is Michael
Mage I'm one of the co-founders of
developer Nur building better developers
I'm also the founder of Envision QA
we're a new rebranded company from L
Consulting we help small to midsize
businesses and clinicians build software
tailored to you what your business needs
are instead of you buying all these
cookie cutter software packages that are
out there that may give you part of what
you need maybe not and you have to build
all these manual process we eliminate
that we help you automate your processes
good and bad for the week uh good I have
taken the step back I'm finally taking a
vacation and getting some nice
RNR ah thankfully and the weather
decided to participate so we're finally
not as hot as we have been the bad side
wife just found out she has to go travel
for two weeks so I will be a bachelor
for two weeks with a bunch of animals to
deal with and kids and uh it's going to
be a scheduling nightmare but hey if I
follow our own practices I should be
fine there you go this episode we're
gonna talk about basically get into
we've talked about like having your own
personal repositories or having like
your your quiver of arrows and how do
you get technology in there how do you
grow how do you become a better
developer how do you build these skills
well one of the things is now instead of
just want to talk about this episode is
not just general skills like hey I'm
going to go out and I'm going to learn
to program code and C or cobal or Java
or Ruby or blah blah blah whatever the
language is it's really about which goes
back to it's about problem solving it's
about having tools and utilities and
ways for us to more quickly get the job
done now one of the ways one of the the
most I think like complete ways to help
yourself learn something something
better to learn some really cool problem
solving to improve your your general
ability to get stuff done and
productivity levels is actually code
generators anything you can do that is
either using a template of some sort and
then just using that to just like Bam
Bam Bam crank out the tasks that we do
every day which is you will see these in
a lot of idees they'll have their little
like Source generate and it'll do things
like get all my getters and Setters or
just throw you know template comments
everywhere so that I've got boilerplate
for my classes or um adjusting like
parameters and some things like that
that are just very common tasks that you
go through the AI tools that are out
there now you'll see that where it's
like it knows because we do this a
billion times it knows that you're about
to create a class and then walk through
all of the properties of the class and
assign a value out of that or copy it
from another one or whatever it is and
you'll see AI will just be like bam
you've got all your code and you'll have
to double check it because it will guess
some of your properties wrong but
generally speaking those kinds of things
those repetitive things that we have are
excellent candidates for us to learn how
to use a tool better but also to scratch
our own inch to make sure that the next
time we do task X we're going to be able
to do it faster these are the utilities
that are very helpful for us to have for
our own purposes also to use if you want
to have have a for example like a GitHub
public repository that you can show off
your skills those are great tools to
throw out there now if you're building
you know something that's like super
secret that's like really awesome you
don't want to do that because you don't
want to you know you don't want to
release all that you want to go make
your commercial product and do your side
Hustle but if it's a especially a
little tool utility kind of thing that's
a common task simple stuff like the the
things that I remember when I started
out it was things like just finding
files within a bunch of directories or
finding files of a certain size or like
one I had is it was literally just a
little tool that allowed me to spin
through a huge text file and do some
very simple manipulation things like I
wanted to take a this back in the day
when space was a bigger issue I wanted
to take like a you know a 2 gig file and
just go through and wipe out every third
row from this big nasty CSV so I could
get it to some that was more manageable
or things that you can do like there are
tools out there and some of you that are
yelling you know Unix does all of that
okay fine yeah I get that it does to
some extent but maybe instead of yes you
can do that you've got like a little
shell script that goes and does the you
know the a or the said stuff that you
would normally do to do all of that
processing also you can do this in
things like Java or python or C or pick
your language of choice and it's a way
for you to play around with that
language to show off your skills it's
going to be a small bite-sized kind of
thing which makes it really easy to like
knock it out of the park have really
good comments be really you know
intentional about how you name your
variables and how you comment along the
way and how you package it and maybe if
you have a read me or things like that
all of that stuff is a great start for
your personal repository or your as
Michael likes to talk about your kitchen
sync app where it's just like these are
the things these are the the T tasks
that I'm going to do or that I run into
on a regular basis and so I want to be
able to have a quick way to get that
done and this is actually even useful I
found if you jump languages so if you
have uh like let's say a series of
things that you did in Java that are all
these like basically code Snippets that
are this is how I solve this problem
this is how I solve that problem here's
an example of me doing this and maybe
you can run it in Java and you can do it
in a small way but also maybe use that
as a template so now I'm going to go to
C it's like well all right I'm going to
just pick up that Java code drop it in
the C app it's not going to compile but
I can look at that and and it basically
now gives me you know my step-by-step
approach okay this doesn't work how do I
do this in C which becomes an easy thing
to throw out into a search engine or go
look it up in a reference however it is
so that you can then translate into
whatever that you know that language is
or you may even be able to just look at
existing examples and walk through the
code and go oh this is how we do it in
this language and the next thing you
know you've been able to you know
quickly do maybe some very complex
problem solving in that new language or
that new environment thoughts on that
Mike boy uh you brought back some
memories I know I talk about kitchen
sink apps a lot and like the utilities
you know especially if you're in Java
you know you got Maven you've got all
these third party tools out there and
Apache comments and things for that for
a lot of utility classes you know like
how you manipulate strings for
example a lot of this to me I kind of
went through this process years ago back
in the 90s when the web first got
popular we had to start wearing HTML
back then the internet was still in its
infancy and you couldn't really Google
wasn't a thing you really didn't have
something that you could go look up all
these
tools so way back when I was learning
HTML I actually wrote something very
similar to what is w3c schools today
which is a website of nothing but
examples for like HTML CSS
JavaScript and typically today I call
that a kitchen SN because as you're
building these code libraries as you're
writing things as you're learning things
you're going to write specific
functionality that is going to be very
powerful to you to be reused in other
applications for
example in one project you might
actually have to encrypt customer data
so now you have to write an encryption
tool well that encryption tool if you
follow best practices is probably going
to be an encryption tool that can be
reused again and again and
again other things like string
manipulations now again I mentioned uh
you know if you're using Java you
probably should be using the Apache
common libraries for this but you could
write your own string utility class to
determine how do you lowercase uppercase
how you strip out special characters but
the other thing is this utility class
could be a specific
functionality it could be hey this is
how we handle strings for banks this is
how we handle strings for like epidi or
this is how we handle strings for Asi so
you could actually build these utility
classes for specific functions not only
is that good for a kitchen sink app but
this could also be your own way of
tapping into the Apache orgs library or
other utility libraries that are open
source and shared by the community so
you can also get your name out there in
the industry some other things I've run
into like Rob mentioned the boiler plate
code I talk about test automation all
the time one of the biggest annoyances
is a lot of the Frameworks that are out
there for building testing require a ton
of boiler plate and if you do the boiler
plate or if you follow it correctly
you're essentially duplicating code for
every single test that you do within
your application well one of your
kitchen SYNC apps could be how do I
generate that test and build a framework
for doing this within a spe like
selenium or test NG or cucumber that way
you go into the next project you push a
button boom there's all your test cases
you don't have to reinvent the
wheel and finally the other thing I
really love about this idea is with
containers so now we live in a world
where we have cloudbased we have
containers we have Docker we have
kubernetes so now you can actually build
a kitchen syn app that can be deployed
for anyone and can be expanded reused so
you could build a mail server using srid
uh compose it build it drop it in your
kitchen sink now you don't need to put
customer proprietary information in that
but you now have this little kitchen
sink utility that oh I need a s grid app
Click Boom I now have a fully functional
environment to test with or to configure
for sending email to a specific client
or customer so there are other ways you
can do this within your kitchen syn app
to not just build utilities not just you
know navigate The Boiler playay code but
you could actually build your own
customer utilities you can contribute to
the open- source industry of the open
source community
you could create something Innovative
and kind of give it your free we hey
here's an introduction to this check it
out and then maybe bring them to your
site to sell them the actual software
and finally build custom environments so
you can go from one environment to the
other by a push of a button you build
these configurations out there you reuse
them and then you just tweak them as you
need them so it's a lot about
Automation and know we talk about AI a
lot because AI is getting popular but
the thing is AI is not quite there yet I
still test it every now and then say hey
build me X and I'll get something close
but nine out of 10 times I have a
utility or I have a kitchen sink app
that does it better so while you may
rely on AI to get started as you get
better as you're building your skills
look at Best Practices AI isn't always
there yet
but it's a tool use all the tools in
your toolbox to make sure that you're
moving forward you're getting better and
you're always pushing the envelope
always trying to find that next best
thing so that you're not getting stale
and you're always learning you're always
looking for that next thing rob you
touched on something that we we haven't
really gotten too much into but I think
is is really useful particularly in the
the container world and it's something
I've actually gotten so I do more often
now granted I've I've done it a lot of
times by just having like an AWS you
know ec2 server up and I have it set up
but it's it's
configuration in
particular you know Common configuration
things for example most of us probably
at some point have had to use Apache and
configured a virtual host most of us at
some point have probably configured
Apache with a virtual host host and had
a typo in there or something that wasn't
the right you know we had like a some
those uppercases instead of lower case
something like just those ridiculously
annoying little configuration problems
that can cost us days and create
incredible headaches it is really useful
to have as part of our kitchen snc app
something that runs like a complete you
know Soup To Nuts things that runs
particularly in a in a container because
then we can do stuff like say okay I'm
going to take that thing and I'm going
to see what happens if I like for
example bump it up to the new version of
PHP or python or whatever it happens to
be or Apache or the operating system or
the
database where am I going to hit
problems with that or potentially it's
like where is it my problems are just I
didn't type the configuration string
properly or I didn't get that key right
or something like that versus this is
actually something where it's like it's
a code issue it's those kind of things
I've had a lot of those it's it's
amazing how often I will get into it and
I will have multiple servers this is
even as part of development where I'll
have multiple servers available and I'll
go hit it with a database and then I'll
go post it you know have a different
database or slightly different snapshot
of data like the data that works over
here and now when you do it over here it
doesn't work and I'm like well it seems
like it should work and then if you just
copy the data over you realize that oh
it's only data that's a different thing
it's one of those things we can talk
about is like how do you it's really
it's isolating the problem and if you
have a a stable static environment of
stuff or your you your utilities
whatever they happen to be your tools it
allows you to have something that gives
you like a a foundation to work off
things like string manipulation or uh
searches within strings particularly if
you get into the road of like red you
know red regular Expressions rexes and
stuff like that they could be
really annoying basically now some
people are you know Rex Masters and
you've got all this stuff but for most
of us you use it here and there but you
don't use it enough that you really have
maybe some of the ins and outs of things
like how do you how do you find a an
email string you know somebody or a
phone number when the phone number could
have dots or dashes or parentheses or
things like that you know there's
there's these things that we're starting
particularly if you go into the world of
like data scraping and stuff like that
or even just trying to clean data in a
free form database where people have
entered things 18,000 different ways
finding that data and cleaning it up and
things like that it's really nice to
have those utilities where you have a
known quantity you have something that
you know works for maybe X problem but
now that you've maybe tweaked that
problem or massage that problem a little
bit more and you're trying to write that
solution at least you can go with one
that's you like you know it's 90% there
or 80% there it's like okay this works
for these cases so at least I know
that's right so if I'm especially if I'm
having to write all new stuff or in a
whole different environment I have a
it's really it's like my own little unit
test or my own sanity test to say does
this at least cover what this thing does
am I actually making an improvement I
maybe maybe going a little off track
there but the configuration stuff such a
headache it is such a challenge in so
many cases where it's just like this
should be up there I should be able to
spin this up in five minutes and two
hours you're still walking through it
because you're trying to figure out
which file which letter or where is
there a space or where did you you know
like those little things that it's nice
to have something you know this works so
you can go verify that and then you can
just do a diff from that and the one
that you created things of that nature
uh closing thoughts on that yeah the
only thing I would Tech on kind of with
our conversation from last time is as
you do this as you build these these
kitchen SYNC apps these GitHub
repositories the code you know
portfolios for
yourself you know it if you build these
you're not just going to want to let
them sit out there so once a quarter
once a year maybe every six months
you're going to want to constantly go
back out and make sure that it works
with the latest
versions because typically if it's it's
something you put in there it is a
complete piece of code it's a complete
unit of functionality that as long as
you keep it updated the next time you
need it you just go pull you know it's
going to work boom you're working you
don't have to reinvent the wheel every
time like I said you find something to
do encryption or email put it out there
next time you need to do email just go
pull it in kick it off and you're done
uh tweak it you know and if you write
these well and you write them clean
enough you make them module you can even
make it to where you just pass into
configuration or some parameters and
you're going to get what you want from
it so it's again it's a very compact
piece of
code and that honestly is where you can
turn those things this could eventually
become a little money maker for you that
was one of the one of the early
companies I worked for we had a bunch of
tools that had come out of uh we built
software but we also had consultants and
there were tools that the Consultants
used and there were tools that we used
as part of our development and we got
together at one point and actually turn
that into a product in itself that was
just a suite of tools that you could use
to improve your development experience
in that in that technology on that
platform so there's a lot of ways that
this stuff can benefit you particularly
as Michael said if you're constantly
going back to that thing and reusing it
every time you do it you may find like a
little bug or a way to improve it or
something like that and eventually you
have something that maybe has been you
know
trial you know trial by fire multiple
times it's really tried and true it's
been proven in a lot of different
environments and now you have something
that is you know maybe a rocky little
library to either you know as itself
sell as like a little you know add-on
somewhere or maybe it's a piece of it's
a start into a a larger you know
solution or
product same way we like to take your
emails and those little things that you
give us and all that little advice and
turn that into bigger things like an
episode or maybe even an entire
season so please shoot us an email at
info developer.com leave us comments
here uh wherever you get your podcast if
you're listening to this or here if
you're on YouTube which you can always
go to the YouTube channel develop andur
you can see these and so many other
things we've been around for I think
five or six years maybe it's probably
more than that now we have literally
hundreds of from you know 15 bit minute
Snippets to 30 60 Minute full-on
presentations and things like that it's
a lot of information out there uh that's
all in the YouTube world you can also
find it out on the at developer.com
we've got links to all of that kind of
stuff not to mention blog articles and
all kinds of other funest literally over
a thousand articles out there and links
to data uh to content to examples and
you can also go to if you if that's too
much you can go to school. developer.com
and you can find some much more uh
focused classes some of them are free
some of them aren't but some some
material there to just like maybe get to
know some of these things a little bit
better and figure out where you want to
go next maybe get yourself off of your
uh Plateau that you have
reached that being said I want to
respect your time and so wrap this one
up go out there and have yourself a
great day a great week and we will talk
to you next
time bonus
material so the biggest thing I'll add
to this because I find it very useful
and this again is a bit of a self plug
for Envision QA because I'm very QA
focused on a lot of things if you build
these kitchen syn apps if you are
building your code repositories please
add unit testing add integration testing
add stuff to test your code because six
months from now a year from now you may
forget how to use it and your tests are
very good snapshots of hey this is how
you implement and use the code the other
thing is if you're using Java or python
or whatever and you go to a new
version and your code breaks you already
have the test you just need to fix the
code so you save yourself a lot of
headache and it makes it easier for
maintainability down the road so don't
forget your testing and it is if you're
using it as a uh some sort of like a you
know portfolio app or something like
that it is really nice to have that kind
of stuff in particular if you've got you
know pipelines and cicd and some of
those kinds of things you've got build
scripts and all of those that it does a
build but it also kicks off tests or at
least some form of the build that can
kick off the test and there is just
something that's very comforting about
having code that you haven't touched in
six months and the first thing you do is
you run your test and you see that like
it ran 400 tests and they were all
successful you know or if one failed
then you're like okay now I got to go
figure out what did I change what did I
break what it what configuration file am
I missing things like that um those are
very helpful and are the kinds of things
that help us round out our tools and
make them helpful in the long run uh
bonus stuff if you weren't here if you
missed the last one next season we're
going to talk about tips and tricks for
how do you become how do you personally
do things to become a better developer
and we're going to maybe have some
challenges or gamify it a little bit and
have a you know each episode have
something that you can do and action it
to say all right this is what I'm going
to do for the next you know week month
whatever it happens to be to work
towards becoming a better developer V ER
we would love to hear suggestions and
and even questions and things like that
you guys that that you guys have
feedback on that or if you have future
Seasons that you would love for us to
tackle shoot us an email at info
developer.com as we've always mentioned
and um other than that we're going to
wrap this one up we've gone a little bit
long so check out come back here before
you know it we'll be hitting record
again we'll have the next episode and
we'll just be continuing on getting
closer and closer to the end of our
developer journey of you know going to
land This Plane fairly soon soon and
then move on to the next season have a
great one and we will talk to you guys
next time
[Music]