Throughout history, there have been countless advances in all aspects of life. Generation after generation people have passed along what they have learned and accomplished to their family, friends, and neighbors. Without those exchanges of wisdom, this very article would likely not be written. We can find at the core of nearly every aspect of life a rabbit hole of how it came to be - Who developed it? Who thought of it? Where does it come from? How was it inspired? What was it built on? And what was THAT built on? etc. In one form or another, society has "paid it forward" over and over again; continually sharing the what, where, how, and why of ideas, manufactures, and methods.
There is no shortage of paying it forward it the tech world. There are numerous websites, forums, and blogs from which to pull material, read documentation, and to ask questions. Some of my favorites, and the most commonly used by my peers, include stackoverflow.com, css-tricks.com, baeldung.com, github.com, scotch.io, dzone.com, and countless Medium blogs. And that doesn't scratch the surface. To top it off, there are decades of goodwill in the form of open-source software that have enabled an explosion of capability. All of which I have benefited from in my software career.
It is because of the benefit that I have started this blog; as a way to "technically" pay it forward (pun intended). Over the past couple of years I have felt the need to share what I have learned. After enduring, on many occasions, hours of frustration trying to get something working, it typically ends by spinning around in my chair with both fists pumped high in success like a double Judd Nelson from The Breakfast Club.
I reached that nirvana due to others paying it forward. And now it's time for me to do so. I plan to write posts that include useful code and configuration nuggets and full solutions to a broad spectrum of software related topics including, but not limited to:
- Languages: JavaScript, TypeScript, Java, Groovy, C#, C++ and undoubtably, over time, others
- Front-end web development: HTML, CSS, App Frameworks and Libraries
- API development: RESTful Web Services, HATEOAS, Microservice Design, Spring, NodeJS
- Software Engineering: Data Modeling, SOLID Principles, Abstraction, Architecture Patterns
- Testing: Unit, Integration, and Functional tools, runners and libraries
- CI/CD: Jenkins and others
- Cloud Hosting, Containerization and Orchestration: Docker, Docker Compose, Kubernetes, Google Cloud Platform, AWS
You might be interested in this blog if you're:
- a middle or high school kid trying to figure out how to just run that little line of code that you saw in a tutorial where all the details were skipped and assumed you already knew the prerequisites.
- that college student who wants to learn how functions and classes of your unrealistic coding assignments apply to the "real world".
- wondering how your pet project prototype can be built into a reliable, maintainable, and affordably hosted app.
- looking for solutions to common problems due to lacking documentation and examples.
- a software engineering expert who wants to critique my posts, challenge solutions, and tell me how wrong I am (constructively, I hope).
I hope you find value in these posts and will consider, in turn, paying it forward.