🏠 back home

[WIP] What if AI takes your job

I began writing this essay out of anxiety. AI-powered coding tools have rapidly advanced in less than a year, making me worried about losing my job. Initially, my goal was to identify specific skills or traits I should develop to protect myself against AI. But as I started thinking, I realised AI could impact far more than just me - many industries will soon face disruption. This led me to ask a broader question:

What should anyone learn to remain employable?

My question shifted toward the common denominator of all jobs. Regardless of whether you lose your job due to AI or an economic downturn, you’ll always need to find new work. There are so many things that can go wrong with your job - your own performance, your industry, your company's revenue, your org, etc. The problem becomes simple when you realise that what you need is to be a great person to work with. You'll find somewhere, somewhere good.

So what does it exactly require to be a great person to work with? Customer obsession is a hot word in the tech industry(Amazon's Leadership Principle, Intercom's values). The principle is that we are building software for our customers, so you should think from their perspective. If you take a step back, the first customers of your work are your co-workers. Most code and written document goes to your co-workers before real customers.

So if you think from your work's customers' perspective - your co-workers - you need to do work in a way that it makes it easy for them to work with you.

The best way to learn something is to consistently do something. And luckily, a lot of us are consistently working with people, which means we can learn how to be someone better to work with on the way. It's a form of meta-learning. If you are a dev, you are learning how to code, but you are also constantly learning how to be a better programmer to work with. This is important and good news. We are all constrained by time and if you are conscious of learning something as you do it, you can learn a lot more without putting in extra time.

And this led me to think of all the people whom I found great to work with, and would love to work with again in the future. I have been in start-ups, big tech, and military units, but the traits I find in great co-workers was not much different per industry. The skills are specific per job - being good at Ruby is important for a dev while being a good shooter makes you a good soldier - but the traits are universal. I still have a long way to go for every single one of these. But I have seen people who excel at one or multiple of these at some point of my career, and subconsciously tried to learn by imitation.


Responsibility
  • You need to do what you said you will do. This sounds obvious, but it is easier said than done. When you take a task, there will always be unknown unknowns. Proper responsibility means you abstract these unknowns from the stakeholders, and get the stuff done within the expected timeline. When something comes up that changes the timeline, you should communicate this to stakeholders, and do everything within control and push through.
  • There are many ways to reach this. You could be extremely productive. Or you could just have better work ethics. Growing up in Korea, working more hours has been ingrained into my brain as one of the easiest things to do. It's like spending extra money that you have in budget. Most weeks, you have some time to spare. If all I need to do is just use those extra hours, there is nothing to worry about. All I need to do is what I can already do.
  • If I were to go solve an unknown problem in the tech industry, I would choose some people in my military deployment unit rather than some people I met in tech. The former does not know a single line of code, but I find them more accountable in any situation. If I tell them that if we don't achieve something by a certain timeline with our runway, we will go bankrupt, they will risk their lives to get it done. Now that's some next level responsibility. I am not trying to say we need to risk lives for our 9-6 jobs. But first, there are a lot of jobs that are not 9-6. Military is not. And if I have to work on a difficult problem, and I have the choice to choose someone, I will choose people who are more responsible.
Understanding dependencies
  • This often comes in the form of "This person is very thorough or organised."
  • Let's first take a step back to why it is important to be thorough. It's because things don't break and go as planned. Same for good organisation. As with many other things, it doesn't matter how you get there, but you need a clear mental model of the dependencies between the work you are doing. If you are doing a military op, it would be the risk factors that depend on the operation logistics. If you are refactoring a part of the code, you need to understand the other services that are dependent on the service you are refactoring. Even when you are doing a personal trip planning, I just see some of my friends are so good. They have it all mapped out in their head to make sure we have the potential points of failures identified, and backups in place.
  • Maybe some people naturally have higher levels of anxiety. Or they are simply smarter, so see more dependencies, which makes them more anxious. I am not sure what the causation is here, but I am not inherently good with dependencies. I compensate by documenting everything I learn on the way and asking everyone I can ask early on to find these dependencies. Some people just seem to be naturally good at it though.
  • The thing is, it doesn't matter. As long as you are at a certain level, it is usually good enough. And getting to that level does not require that much inherent talent. If you have the talent, great. If not, you can figure out your own way to get better at this.
Understanding abstraction
  • Abstractions always exist. If you have a good perspective with abstractions, you get two things.
  • You get a good understanding of what you know and don't know.
    • This is great. Whenever I talk with someone else and they don't have a good perspective of the boundaries of their knowledge, it is not easy. I have to keep a close eye on their work to make sure they are not messing something up. It's even worse when there are people who try to brag that they know more than they actually do. It makes work not just stressful, but also miserable. We all don't know everything. If the smartest person did, there would be no Manhattan Project. One person would have figured it out.
  • You get a good understanding of what others know and don't know.
    • You will have to talk to multiple people about the same subject at different levels of abstractions. This happens more often as you get promoted. The stakeholders don't always share the same pool of knowledge, but you need to be the person to make sure they all get the same mental model for a clear goal that you would be working for as a team.
  • This also helps you empathise with the users of your software. Quite often you are making something for someone who comes from a very different background than yours. But if you can see things from their perspective, you just get better. It can be music, code, a cafĂ©, whatever. Good understanding of abstractions help you see things from others' perspective, and this allows you to make better things.
Clear, logical thinking
  • I think this is the one I lack the most. The power to sit down, read, and understand something step by step is easier said than done. Maybe I over-index this value because I lack it and I worked in industries where this is highly correlated to performance.
  • Very often we are not building something entirely new, but fixing something or improving an existing version. There are so many ways you can go about this, but in any case you need to build a clear understanding of what is broken, what and why we need to improve it and so on.
  • If you look in the world of programming, you first need to read the code. Not skim, but read. It's a painful process, but only once you read the code thoroughly, you can then start thinking clearly and logically of what we need to do.
  • So I guess clear, logical understanding is a predecessor to clear, logical thinking. And you need patience and resilience to clearly understand something. The better you are at what you do, the next thing you build or manage will be more sophisticated, so you have to learn how to even do better at the next iteration.
  • I see a lot of people struggle with this. Either their ego comes in their way, or they are just hallucinating that they know something more than they do. But as Richard Feynman said, "Knowledge isn't free. You have to pay attention." If it required him attention, it does for all of us. If you feel like you are so smart that you can get things done while on half-baked multi-tasking mode, this is my strong opinion, but you are simply not working on something that complicated.
  • So this is like gymming. You constantly need to be struggling to understand to clearly understand the thing you are currently working on. Only when you struggle, you know you are on the right track.
Connecting the dots
  • I think the frequently used synonym for this is creativity. I had moments where someone could think of something, and I would go "How the fuck did they think of this?"
  • This is correlated to, the amount of knowledge you have. But it seems to be more than just that. It is more so of how to combine and use the knowledge you have to come up with a solution of some problem. Knowledge is scattered in our brain because that's usually how we learn them. We learn them data by data, class by class, session by session. But when you realise how two different knowledge nodes are connected, it's more than just two nodes. Steve Jobs talks about how him having studied font design affected the creation of Macintosh.
  • I am not too sure how you learn to connect the dots. One way is to keep connecting them. I think writing is a good way to practice it. Everything you know is already known in this world. To write something interesting, you need to draw a path among the knowledge nodes you have that is unique and intersting. There are many permutations of this path.
  • There must be many other ways to do this. Working on something abstract and new, you are probably pushed more to use all the tools you have. One of the most enjoyable days of my life was when I saw someone connect dots with a new path, dots I knew, but a path I did not see.
Kindness
  • Paul graham wrote an essay about why you should be a good person - link.
  • Kindness itself has internal virtue, but in this essay we are focusing on how to be a good co-worker. And in simple words, most people prefer to work with kind people. And kindness can come in many forms from helping someone struggling with a specific task to being nice with words or guarding your direct reports from company politics. But kindness is remembered and often reciprocated. And they are remembered because people like them, the same way they dislike people who are rude.
  • All else equal, everyone will choose to work someone kinder. You are already equal to yourself, so if you learn how to be kind, you become a better co-worker. And a better co-worker has an edge in any industry.

So that's it. To hedge yourself from the AI wave, you have to become a good co-worker by learning things that are useful across different workplaces. The first customers of your work are the people you work with, and if you make it better for them, the someone will be willing to pay you to work with them.

We overcomplicate the problem by trying to find the newest hot keyword of the market or the fastest growing industry, then there are a million things to do. As long as you are a capable and pleasant person to work on X, X can be substituted with anything, you will find a job. And the same things that will make you a better co-worker in X industry will make you a better co-worker where you are. So you need to be conscious of learning the things that will make you a better co-worker, and this will hedge you against the next wave of technology.