Software Development Concepts e-book collection
As some of you might know, I’m the author of a book about the TypeScript programming language. It was my first experience with the publishing world and it taught me a lot. The writing experience in itself was interesting, but seeing people reading and learning from my own book felt great.
I want to continue to contribute to the IT community, and writing is my main medium for now. I plan on creating video lessons in the next couple of months, but that’s for next year ;-)
The Dev Concepts book will be released in March; until then, I’ll be sharing progress updates regularly here and on the dedicated newsletter.
Why another book and what is it about?
My first book was about the TypeScript programming language and how to use it with various modern Web frameworks/libraries. That book was 800+ pages long, so it was quite detailed (heh), but it “only” covers a quite narrow subject: modern front-end development. And the thing is that front-end software development is only a part of a much larger picture.
Of course, it is useful to have books and content in general that focus on specific parts of software development since the devil truly is in the details. But it isn’t enough, because a front-end does nothing much without a back-end; a back-end without a data source is also limited and if none of those can be deployed/hosted, then it’s still pretty much useless.
Through my 1:1 coaching sessions (which have been a blast). I’ve found myself repeating the same explanations over and over, about concepts that I believe to be so important, but often seem to be left out in schools and never touched on in many online courses.
Having worked in IT infrastructure, IT security, software development, and project/team management, I have a relatively “rare” perspective of many different aspects of IT.
With this new book, I want to zoom out a little and talk about software solutions as a whole; from the business goals to achieve to the expression of how those goals will be met: architecture, design, back-end development, front-end development, IT infrastructure, as well as overarching principles like IT security.
I’m now busy drafting the outline (i.e., selecting all of the subjects that I’ll cover), but the goal is clear: give you a much more comprehensive mental model of software development.
Who should read it?
Almost everyone! Why? Because we are all “stuck” in some specific parts of the software world and have a limited perspective. Some of us work full-time on front-end applications; others on back-end systems, and yet some others in IT infrastructure or IT security. Few of us actually work on different parts and even fewer on all of the fronts.
Still, since IT solutions are made of many different parts, it is super useful to (at the very least) have a basic understanding of what the other parts entail, even if you’re not responsible/involved in that part on a daily basis.
When developing a back-end, data and data security (confidentiality, availability, integrity, validation, etc) is a key focus point. When doing front-end work it’s more about UI and UX, but there’s much more than that.
Whether you’re a back-end developer, a front-end developer, an IT architect, a pentester, a tester, infrastructure manager, team/project manager, junior or senior, then this book has something in store for you.
I’m already a seasoned full-stack developer, why should I read this?
Well, you might have tons of experience with the full software lifecycle, but you might not be that experienced with IT infrastructure and/or IT security. For instance, do you have a clear understanding of PKIs, what Root CAs are, what CAs are, what’s a certification chain, what’s a certificate, what are Web Application Firewalls, How so-called next-gen firewalls differ from old-school ones, what are load balancers, reverse proxies, DNS, the difference between A and CNAME records, etc?
Do you have a clear understanding of what it means to create a highly available solution? Have you heard about quorums, leader election algorithms? Do you know about IAM, RBAC, ABAC, LDAP, why LDAPS is to be preferred, or what zero-trust security models are? Have you dived into containerization, Docker, and Kubernetes so far? Do you have experience with NoSQL databases and what the implications are for your applications did you use both in production?
Do you know about the OWASP Top 10, XSS, CSRF, important security headers like the Content Security Policies, HSTS, and the like? Do you know the difference between symmetric and asymmetric crypto?
Well, you might have answers for many of those questions, but probably not to all of those. And there are so many more things that are worth knowing about.
The path towards software craftsmanship and full-stack software development includes being aware of the overall solution architecture, the impact of decisions made on the back-end for front-end systems, the IT infrastructure consequences of choosing an architectural style or another, how to scale a solution, etc. There are tons of aspects that are important, which I want to touch on in this upcoming book.
Of course, a single book just can’t have all the answers, but my hope is that this one will bring you enough awareness and knowledge for you to have a broader understanding.
If you want more details about the preparation, then I’ll also share details over at IndieHackers: https://www.indiehackers.com/post/devconcepts-book-journey-kickstart-0c0a2eb71a
That’s it for today!