September 1st 2024 marks 5 years since I began my career as a software dev. During this time, my perspectives on on technology, engineering, business and the world have changed greatly. I wanted to write this blog post not just as a reflection but also as a note to look back on in the future.
I've split the article into several sections covering various topics. At the end of each I've included a "Bet for the next 5 years". I think it will be fun to make some predictions about the next five years and see how they turn out. But don't take these too seriously!
I had only been working ~5 months by March 2020 when the pandemic hit. I hadn't exactly had a significant period of office work, so suddenly jumping to work-from-home didn't feel so bad. In fact, it probably felt pretty fun at first.
But the novelty quickly wore off. The isolation and lack of human contact quickly tooks its toll. I suppose the only thing keeping us going back in those days was the idea that we would all be back in the office soon.
It's still quite fascinating to me, the idea that an online video call really can't replicate the feeling of physically being in the room with people. Sure there are factors like latency and audio-visual fidelity, but I think it's a non-trivial conclusion to realise that this can't fully replicate in-person meetings.
But it seems it's here to stay. Or at least, "hybrid" work is. Many companies are pushing people back to the office now, but it seems most of them can't get them in for more than a few days a week.
I'm fairly happy with where we've ended up. Hybrid work balances the practicality of not needing workers in the office with the need to bring teams together in person to collaborate effectively.
I do fundamentally believe that a fully remote team can't be as effective as one that regularly meets in person. You can't form effective social bonds with people entirely over the internet and trying to work together in a high-trust environment is difficult if you can't bond. Company culture is also super important to making sure teams are aligned and operating in the correct way. Company culture is almost non-existent in a fully remote team.
Note that here I am talking entirely within the context of software engineering teams. I'm sure that there are more manual admin jobs that might attract a broader/cheaper workforce by offering fully remote work.
There are studies suggesting remote teams operate more efficiently. This may have been true in the short time-frame of these studies, but I reckon that these organisations will slowly grind to a halt as a result of an unmotivated and disparate workforce.
But will hybrid work survive? Hybrid work means that employees aren't actually able to live very far away from their offices. So ultimately, we might find that companies are able to convince their workers back into the office full time.
I think all this has showed us that, at least for the current generation of technology, work will remain in-person.
Bet for the next 5 years: More and more workers will start moving back to the office full time. Some manual admin roles will remain remote and a few companies may hold out with a hybrid setup, but the general trend will be more in-office.
I wanted to discuss Indiehacking next as I think it quite closely links to the topic of remote work. There exists a large group of people building products without having to report to any office any number of times a week. They are working entirely alone!
Indiehacking is a rebirth of the idea of building technology by oneself. The idea from the last 10-20 years that great tech only happened at huge scale companies is slowly dying out.
This idea really excites me.
We've spent many years building up hierarchy, bureaucracy and process around building technology. In the software world we've convinced ourselves that good products are built in dynamically scalable containerised environments with elegantly crafted CI/CD pipelines, 100% test coverage and a swath of monitoring and observability tools. Is this necessary for running Netflix? Yeah, probably. Amazon? Sure. But for a little CRUD wrapper with some API integrations? No, at least initially.
As with most things in tech, it's always a matter of scale. If you want to 100x your users, you probably also need to upgrade your tech to make your system more scalable/manageable. But the ease of use of development tooling over the past decade has meant the dream of fully iterative architecture is getting closer. When you start a new product you're now able to build a small workable prototype super fast without needing to worry about the scalability of your system.
This allows you to build super fast. You no longer have to build from day 1 planning for a million users. You can worry about that later. But the most important thing this enables is the ability to fail fast. If you're not building for a million users, you're more easily able to switch to other products/ideas if that one isn't working out. This enables Indiehackers to build a lot of products very quickly and just find what sticks. Forget about analysing product-market-fit, just build, test and iterate.
Last year I took an attempt at Indiehacking by building: Crudly. Ultimately it failed. I was too ambitious with trying to build a product that essentially took on cloud providers like AWS or Google Cloud. The creed of Indiehacking would be of course to get back on the bike and keep going. This I haven't done yet. So I guess I haven't earned the title of Indiehacker just yet!
A lot of people look at Indiehacking from the perspective of self-management and financial freedom. This stuff is cool, but what excites me most is the idea of technology being built by individuals or small groups in the future. I genuinely believe that this will be the start of a revolution where the majority of the tech we use will come from outside the walls of large corporations.
Bet for the next 5 years: The old startup model of raising funds in investment rounds will become less common and more people will start building their own tech products. A lot of the tech we use day-to-day will be built by individuals or small groups.
It's been almost 2 years since OpenAI showed GPT-3 to the world. Starting as just a simple chatbot, we're now using all kinds of AI products to chat, generate images, code and even videos.
But where's AGI? This is what everyone wants to know. Will it be the next OpenAI model? Will we get it next year? The year after?
To answer this question you need a solid definition of what AGI actually is. This we don't have. From my perspective AGI is already here. ChatGPT may not be super clever yet, but it is indeed a general intelligence. It can do a wide range of tasks on a wide range of subjects.
So I guess we could ask a more interesting question: when does AI get dangerous? I'm definitely in the camp of believers that AI will one day be very dangerous. But I don't believe that day is today. Nor do I believe it's coming any time soon. Silicon Valley is doing a good job of keeping the AI hype cycle going, but ultimately the GPT/LLM model is stagnating a little. Don't get me wrong, the technology still has a long way to go and many improvements to be made, but I think it will take several ChatGPT-level leaps before we get anywhere close to the intelligence explosion.
So what is AI's future in our tech? Well, I'm currently writing this article with the help of GitHub Copilot! I think the idea of a helper/copilot is where AI will stay for a while. There certainly are impressive demonstrations of AI performing tasks by itself, but to reach the point where they run completely unattended will take several more 9s of reliability.
It's difficult to know where AI image/video is going. It is improving rapidly but what is the use case? The fact that we don't know the answer to this question is what makes this all so exciting. We're not only at the begining of a technological revolution but also a product/UX one. The smartphone brought new use cases to the market that weren't predicted before and I think we'll see the same for AI.
It will be interesting to see whether we are still able to tell AI generated content from human generated content in a few years. People got pretty quickly bored of all the DALLE images. Things got better but there are still discrepancies in lighting/texture that are noticable. Some new models are getting scarily good but the principle of diminishing returns might suggest that it will take a lot more effort to close the gap.
Bet for the next 5 years: Engineering professions will continue to make use of AI as a helper tool, but we won't see completely automated agents doing things independantly for a while. Image generation will continue to improve but we likely won't be able to make AI images indistinguishable from reality with high success rates.
As someone who has focussed their career on software, it hurts to say this but I believe that the tech scene is becoming more and more focussed on hardware. I don't think that we're necessarily reducing investment in software, but the market share is shifting more towards hardware.
Moore's law is coming to an end and we are no longer getting free speedups from basic iteration on semiconducter technology. This means we're having to revist the fundamentals. Of course there are many ways to revise these base principals so many new ideas are popping up around physical compute.
There's also an interesting timing aspect going on here. Moore's law has just so happened to come to an end at the same time as an AI hype cycle is starting. This has created a huge demand for compute resources which is naturally causing a large inflow of capital into the space.
I'm really excited about the concept of physics-based-compute. This is the idea that we can start using properties of fundamental physics to define entirely new ways of running computations outside of the usual model of 1s and 0s with transistors. Transistors were so successful initially that it makes sense that there might be better ideas for certain use-cases that we've missed before.
The number one interest in this new world of compute is of course quantum computing. Quantum computers represent a fundamental new type of computation different from classical physics. We already have mathematical evidence that quantum computers can solve certain problems faster than classical ones so now it's just a race of scale. We need to build a device with enough high quality qubits to be able to run our algorithms at a useful scale. In my opinion, it's foolish to bet against this technology. IBM is leading the charge with an ambitious roadmap of exponential scale up in the next 10 years. I think we'll get there!
I really enjoyed studying quantum computing at university and I started writing my own course this year to teach it: QCFundamentals. It's almost finished!
When we get our quantum computers though, we have a problem: RSA. We know quantum computers will be able to factor primes very quickly so all of our modern encryption systems break! Counterintuitively, I think this could be a big win for crypto. The open source decentralised crypto orgs are already building quantum resistant algorithms into their systems whereas big-tech/governments are having to focus more on the short term problems their shareholders care about.
Bet for the next 5 years: A new wave of more purpose-built chips will hit the market to meet the demand for AI compute. Quantum computing will continue to grow but not yet become useful for most applications. We will see a mad rush from governments and big-orgs to suddenly update old systems to be quantum resistant as the technology starts to look more viable.
In December 2022 I moved to China where I've been working now for about 1.5 years.
At time of writing, we're living in an age where it looks like the global economic lead of the US might finally be dwindling and many people are wondering whether China will now take up this mantle.
You can understand the primary difference between the Chinese and US economy simply by looking at the packaging of any Apple product: "Designed in California, Assembled in China". The US has ideas, China builds them. China's economy sits at the bottom of the food chain, producing raw goods and materials and low cost manufacturing while the US has people in suits sat in high rise offices designing and developing.
This leaves the two economies quite intertwined, the US would never be able to afford to manufacture its products without China, but China would lose a huge source of income if the US stopped paying for it's services. This has formed the gentle foxtrot of economic balance between the two nations we see today.
But here's the problem for the US: China is finding it more easy to adapt into a country that can also design and innovate. With it's economic boom, Chinese young people are quickly becoming better and better educated so all China has to do is make sure there's enough money to convince them to stay rather than work overseas. Once China's economy is more vertically integrated they can break their reliance on the US.
But it's very difficult for the US to do the same. With a massively inflated western economy and a highly skilled population, how could you rival the low manufacturing costs that China once provided?
So it seems like the US is stuck in a bit of a rut. However, China has a political challenge to overcome here. The US has done so well in the past because of it's freedom to innovate, the ability to move fast and break things. China is a more strict country with tighter regulations echoing from it's socialist/communist background. Can China truly become a world leading economy if it struggles to foster enough entrepreneurial spirit?
Well, this question has somewhat been answered over the past few years in the form of EVs. China is undoubtedly the top manufacturer of EVs and with the new Xiaomi SU7, it looks like they're finally starting to break free of their reputation for low quality products. The US has already responded by increasing tariffs on Chinese EVs, so it seems they're definitely worried about the economic competation here.
Bet for the next 5 years: If China holds its current course, it will lead the world in EV production. My, perhaps, boldest bet so far is that the Chinese economy will beat the USA eventually by shear scale and vertical integration. India and Africa will be heavily invovled in China's new economic dominance through BRICS. All this rests on the premise geopolitical stability however.