Posted on ::

The following will be a series of blogs going through real skills needed in the age of AI.

What is a skill?

There are multiple definitions of what a skill is, but the one I like the most is the second one that is from the Merriam-Webster dictionary.

"a learned power of doing something competently : a developed aptitude or ability"

lets break down each phrase and parse it into a form we can understand better

"learned power" -> an ability to solve a problem or a class or related problems by way of experiencing it through an amount of time.

"doing something competently" -> you can apply the said ability above to effectively solve the problem to reach your desired outcome

Skills in the age of AI

The sentiment on linkedIn and in the general tech zeitgeist is that the skills needed by technology professionals will vastly and dramatically change and are changing by the advancement of AI. This claim is made without any real evidence to back it up other than prototypes or demos developed with AI coding tools that can whip up a todo app 100x faster than a human would have. There is no production level software or tool that was built using AI coding tools that is on the scale of millions or billions of users that anyone can point to as a refernce of a successful profit generating ai product. The skills that were previously used heavily by the most successful technology professionals such as understanding the core tech deeply, debugging a bug or problem, and in every sense of the word "owning" technology products and solutions is disappearing day by day.

AI has diluted the meaning of code itself. As engineers we recognize that every line of code can have real impact. Impact in the codebase, on the business, and other tangible and non tangible artifacts that the effect of that line touches. In the age of AI, when the AI can generate 100x lines of code that a human could in the same amount of time, then the value of each individual line diminishes and the notion of 'assessing the agent's intent' is given preference. All the while we realize that the devil is in the details. When the AI can spin up a whole codebase for an ecommerce site with product pages, an order pipeline, and integrated email and messaging notifications for customers. But the details of how its querying and upserting records, how its reconciling the front end user state with change, how it can translate the product's needs to code(which it cant since it will always by default give you positive affirmations for any prompt).

Why this series exists

I can go on an on about the harms of AI to real hard software skills but now lets get to the solution. I want to go through building small pieces of software that can help the new journeyman in the world of software engineering as well as the master that needs to sharpen his craft again after letting the agents do most the thinking for a while.

What we will focus is on building very frequently used components in server software like proxies, load balancers, etc. These are typically software that no one looks under the hood of nowadays and I wanted to do exactly that so that we can all learn how do these critical pieces of software work, why they work that way, what are their tradeoffs and benefits, and how caring about your craft and working through the micro problems that come up in making software ultimately will give us that 'skill' of competently crafting our power to build software.

What programming language will be used and why?

Clojure :), The reason is that it's a language I've always wanted to use but didnt due to my workplaces not using them. I'm excited about diving deep into these software solutions with everyone and I hope I can learn and anyone reading along learns and enjoys the ride as well.

Table of Contents