<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Second Thoughts · Yao Ke</title><link>https://yaoke.pro/writing</link><description>Yao Ke builds tools for AI agents and writes about being human.</description><language>en-au</language><atom:link href="https://yaoke.pro/rss.xml" rel="self" type="application/rss+xml"/><item><title>That Time I Was Attacked</title><link>https://yaoke.pro/writing/that-time-i-was-attacked</link><guid>https://yaoke.pro/writing/that-time-i-was-attacked</guid><pubDate>Wed, 28 Oct 2026 11:46:52 GMT</pubDate><content:encoded><![CDATA[<p>March, 2026. I was driving home after the vet told me that fixing my dog&#x27;s ears was going to cost anything from $5000 to $8000. I stopped at a red light.</p>

<p>From my periphery I saw a man waving aggressively at me and yelling at me. I was confused as to why and just gave him the finger.</p>

<p>Then he chucked a water bottle at my car, swerved in front of me to brake check me and when I turned left on to a small road he started following my car.</p>

<p>I parked up and got out to try to talk with him and de-escalate. Big mistake.</p>

<p>He walked up to me yelling, shoved me and began punching. We ended up in a scuffle and he ran back to his car when some bystanders came out of their house. I sat down on the grass as he drove off, threatening me not to record. I cried uncontrollably and breathed in pure panic. I didn&#x27;t feel safe until the police arrived ten minutes later.</p>

<p>I grew up in nice neighbourhoods and was never really exposed much to violence. And by violence I mean real violence. Not the clean, theatrical kind in movies and video games or the refereed kind in professional fights. I mean real chaos, things can go horribly wrong type violence. This event really traumatised me for months and was a big bubble popping moment into how dangerous the world can be if someone wants to hurt you physically. There&#x27;s not much that can stop them in the moment. That&#x27;s the nature of crime really, there&#x27;s not much stopping the criminal.</p>

<p>Let me do my best to describe what panic feels like to someone who&#x27;s rarely experienced it. First your reaction to it is completely subconscious. It can be a visual cue of an incoming person. In my case it was an auditory cue of him yelling at me. Then the reasoning part of your brain completely shuts down and you just feel blank in the head. Next you get tunnel vision and lose all your peripheral vision, your memory becomes choppy and your senses feel like they are operating wirelessly outside your body, lossy, choppy and hard to control. For me it kind of feels like when I&#x27;m dreaming and can&#x27;t control my body well, not sure if this applies to other people.</p>

<p>Then you get huge chemical spikes of adrenaline in your system. The adrenaline spikes your heart rate and largely removes your sense of pain. Your breathing becomes difficult to control and you can start to hyperventilate. You can start to feel weird as blood is re-allocated to your big muscles and your body can feel hard to control. You get a surge of energy that makes you feel restless. Your whole body can start to shake and tremble. Your mind will start racing.</p>

<p>The irony here of course is that all these changes can signal to your body that you are in danger and you get more stressed, entering a vicious cycle. The easy way to understand this is that under perceived threat, you go full lizard brain. This is when the fight, flight, freeze response kicks in. I was stuck somewhere between fight and freeze, which is the worst of both. I&#x27;d escalated by giving him the finger and getting out of the car, then froze when it actually turned physical.</p>

<p>Since the incident I had signs of PTSD. Fear of driving, sensitive to loud noises and strangers, paranoia for my safety. I had two psychologist sessions and felt a lot better and over time it settled down.</p>

<p>Something they don&#x27;t teach you at school is that the police aren&#x27;t perfect. The constable responsible for my case repeatedly failed to follow up with me and never arrested the guy, despite having his plate number. I&#x27;m not saying this to make you jaded and shake your fist at the sky. It&#x27;s that the help you expect after the fact doesn&#x27;t always come, and in the moment it definitely isn&#x27;t there. The only things you really control are how you react and how you recover.</p>

<p>It&#x27;s really hard, but at some point you have to let go of it. When it&#x27;s in your head, the only person burdened by the attack and the inaction of the police is you, and you have to weigh up how much of your time and energy it&#x27;s worth. Most of the time, it&#x27;s best to just live your best life and move on. Pretend a bird shat on your head. No need to go bird hunting. I decided not to chase it further and put that energy into my own life instead, which is a big part of why I went looking for how to handle these situations better.</p>

<p>After the incident I did some research into how to better handle myself in future situations like this. The first thing I found was that what I felt in the moment and afterwards is very common. Even professional emergency responders get overwhelmed all the time and we as humans are all susceptible, especially to truly unexpected incidents. In moments like this, our thinking and problem solving brain is limited and we have to rely on our lizard brain.</p>

<p>This is where training under pressure and ensuring the appropriate responses are well rehearsed pays off. Handling emergencies is a practiced skill. Much like learning to play the guitar, just thinking about it doesn&#x27;t do you much good. One thing this reminds me of is that if something like this ever happens to you, people are going to be armchair experts with a lot of advice and make you feel like shit. In my case it was the ambulance guy, and most people in my life really, who pointed out what I did wrong and how I should&#x27;ve done X and Y. My psychologist on the other hand was an expert in handling trauma victims and assured me that these people don&#x27;t know what they are talking about. It&#x27;s a bit like saying &quot;just don&#x27;t be sick&quot;. In the moment you are running on pure primal autopilot and can barely get a thought in, let alone make the correct decisions about things you&#x27;ve never imagined would happen to you.</p>

<p>This isn&#x27;t hindsight about what I should have done in the moment. It&#x27;s what the research says to drill beforehand, so your lizard brain has something to fall back on. It starts with 4 4 4 4 box breathing. Breathe in over 4 seconds, hold for 4, breathe out for 4, hold for 4, repeat. Practise it for any stressful or overwhelming situation in your life. It lowers your heart rate, stops you from holding your breath or hyperventilating, and cues your body to calm down.</p>

<p>Then you fall back on what you&#x27;ve rehearsed. Most people never practise this, but a self-defence class with pressure testing helps. Check your surroundings and either escape or get somewhere safe, like your car. If you can&#x27;t escape, try to de-escalate. If they keep closing the distance, strike as hard and fast as you can with whatever skills you have. Kick them in the balls, whatever works. Stay in fight mode. Don&#x27;t do what I did and waver or freeze. Keep going until you&#x27;re safe, and scream and yell to get attention.</p>

<p>Then earlier this month, a neighbour yelling at me activated my panic response like some sort of Winter Soldier code. I went into a spiral in my head and felt like I was about to faint from the adrenaline dump. Nothing happened this time and I just went about my walk ignoring him. Thankfully I was safe and could sit down on a bench to unwind.</p>

<p>It turns out that what I thought was behind me wasn&#x27;t fully. My brain is still conditioned to be hypersensitive and fearful of yelling and aggression. I tried to use it as an opportunity to work and act under the adrenaline and practice shadow boxing after I had calmed down a bit. It was a wake up call for me to re-evaluate how I&#x27;d come a long way but still had work to do.</p>

<p>Overall handling crises and staying calm is something you can always work on. I&#x27;m getting better at it and actively trying to drill and improve myself, but right now the idea that I can panic and fumble in critical situations still weighs on me. That weight is probably a good thing though, to remind me to get off my ass and work on staying fit and calm. I am now committing to training weekly at the gym and also practicing breathing techniques and mindfulness occasionally. I&#x27;ve also noticed that talking to myself helps me calm down and get out of my own head, so experiment and find what works for you. Hopefully it all pays off.</p>

<p>Also, no one is perfect. If you fumble, whatever happened happened. It&#x27;s best to forgive yourself, move on, and try to not fumble next time.</p>
]]></content:encoded></item><item><title>I get why people hate AI. I also get why people love it. (Nuance P.T. 2)</title><link>https://yaoke.pro/writing/i-get-why-people-hate-ai-i-also-get-why-people-love-it-nuance-pt-2</link><guid>https://yaoke.pro/writing/i-get-why-people-hate-ai-i-also-get-why-people-love-it-nuance-pt-2</guid><pubDate>Tue, 27 Oct 2026 10:00:00 GMT</pubDate><description>As of October 2026, a lot of people hate AI. I am neither an AI worshipper nor a luddite, I am just here to paint the bigger picture.</description><content:encoded><![CDATA[<p>As of October 2026, a lot of people hate AI.</p>

<p>I think hate towards AI can be broadly categorised into the following reasons:</p>

<ol>
<li>AI is hurting creatives.</li>
<li>AI is hurting critical thinking.</li>
<li>AI is producing slop.</li>
<li>AI is damaging to the environment.</li>
<li>AI is controlled by tech overlords.</li>
<li>AI is trained on stolen intellectual property.</li>
<li>AI is going to take my job.</li>
<li>AI is unsafe (scams, mass surveillance, bioweapons etc.)</li>
<li>AI is girlfriend/boyfriend.</li>
<li>AI is a bubble.</li>
</ol>

<p>In light of the points I made in <a href="/writing/praise-be-to-big-oil-nuance-pt-1">part one</a>, let&#x27;s bring nuance into the scene. I am neither an AI worshipper nor a luddite, I am just here to paint the bigger picture. I get incredibly frustrated when people are simply tribal on such a revolutionary piece of technology. It&#x27;s a profound change in human civilisation and deserves deep thought on it. This time, TikTok videos probably won&#x27;t cut it.</p>

<p>The first nuance general anti-AI sentiment lacks is of course that AI is a huge category of technology. Saying you are just anti-AI is a bit like saying you are anti-maths, or anti-psychology. AI is a legitimate field of computer science that has had decades of developments, setbacks and breakthroughs. It went through multiple &quot;AI winters&quot; in the 1970s and late 1980s as research progress stalled and the best computer scientists gave up in its development. Broadly speaking, it can range from machine learning models, to chess engines like Stockfish, to large language models, which are the tech behind ChatGPT. There are wildly different AI researchers and teams applying different techniques to wildly different problems. AI stands for artificial intelligence, which just means trying to create smart, autonomous systems that are not organic, like how aero engineers create things that fly that are not organic. Lots of things fly, lots of things can be smart.</p>

<p>Let&#x27;s address each of the points and argue both for and against the wider impacts of AI.</p>

<h3>1. &quot;AI is hurting creatives.&quot;</h3>

<p>I like creatives. Many of my friends are musicians. Lots of others such as filmmakers, photographers, artists, and so on contribute a lot of creativity, expression and value to our world.</p>

<p>AI can hurt creatives. I&#x27;m not going to sugar coat it. Creatives live and die by the attention and money of the masses. If you can capture people&#x27;s attention and interest as a creative, with some willingness to pay, you&#x27;ll survive and do decently well. However, AI empowers non-creatives to pump out mass slop and divert attention from real artists. This slop contributes no artistic value and turns your brain into a homogenous soup.</p>

<p>The counterargument here is that slop is not new. We&#x27;ve had human slop for decades and decades. AI, as of 2026, is just a tool directed by humans. Humans have always used whatever is at their disposal to scam, distract or just generally hustle others. Before AI we had bot farms, before bot farms we had gossip editorials and so on. The tools make it more mass produced and powerful, but blaming the tool is always taking attention away from the people wielding it.</p>

<p>Another perspective is that artistic value is often in the eyes of the beholder. From what I can see on the internet, at least some people can distinguish slop from real art. I remember once riding a bus in Bangkok and seeing the person next to me watch a TikTok of a banana getting cut up and put into a toilet, or something to that effect. She watched the whole thing from start to finish, full attention. If AI creates art that evokes emotions or entertains, does it matter that it was created without intention? One could certainly argue both ways. And this certainly isn&#x27;t exclusively an AI problem. Again, bigger picture. It&#x27;s funny because a subset of &quot;serious musicians&quot; I follow on YouTube or talk to in real life would always criticise pop music for being formulaic and generic, and yet by definition, most people I know love pop music and don&#x27;t care about the musical craft and &quot;artistic value&quot;. They want a good time and something catchy to dance to and it delivers just that.</p>

<p>What about artists that use AI as a tool? For instance, if I can compose a piece of music but not be able to afford an orchestra to record it, is it ok to use AI to mock it up as a demo? If it&#x27;s really good, can I publish it as a recording? What if I drew a painting and used AI to help me market it? It is just a tool. It can be used... for anything!</p>

<h3>2. &quot;AI is hurting critical thinking.&quot;</h3>

<p>Sometimes I feel more stupid in this AI age than I used to be. I&#x27;ve forgotten how to run code in my head, all my maths skills are a bit discounted and my willingness to debug things on my own is now non-existent. In many senses, I&#x27;m a bit dumber now than I used to be.</p>

<p>Let&#x27;s travel back 200 years, you are a tax agent working for your government and a top accountant. If I asked you to multiply 3242345 with 452353, how would you do it quickly enough to keep your job? We are taught multiplication in our first years at school and yet, most people would have no idea and their understanding of this problem amounts to something like &quot;the calculator does it pretty quick&quot;. It turns out there were huge books of lookup tables, to translate large numbers into representations that you can just add, and then you use the book to translate back to a number. So many skills are lost to time and innovation. I have no idea how to start a fire.</p>

<p>We all have finite time as humans. The problems we are able to understand deeply and be able to solve are finite. Whilst AI does take away the need for us to do some intellectual tasks, it creates more problems at a higher abstraction level for us to scratch our heads at. How do you coordinate and check AI agents, for instance?</p>

<p>Again, AI is just a tool. Large language models can be used to cheat your way through an exam, or you can use it to quiz you during revision. There&#x27;s no reason why you can&#x27;t leverage the tool against yourself and increase your intellectual load.</p>

<p>Another interesting point I often think about is how the people who lack critical thinking have always struggled with misinformation. Before AI there was the internet and Alex Jones, before Alex there were news tabloids, before that you had no literacy rate and had to rely on village gossip. People being lied to and believing in it is not at all new. In fact, I would argue AI, as shipped by Claude or ChatGPT, is far better than any mass information distribution tool we&#x27;ve had so far in that there&#x27;s one party that&#x27;s actually accountable and watched for the content it outputs and that it tends to output bland, non-political, consensus facts that steer the user away from radicalism, scams and sources with ulterior motives.</p>

<p>My mum, for instance, loves watching shorts on WeChat and frequently believes random superstitious nonsense or, what I often see on there, old people dressed up as experts talking convincing nonsense. After I encouraged her to use ChatGPT, she&#x27;s gotten much better at fact checking and relying on it as a source of truth. Critical thinking is a bit like swimming, everyone can learn it, but not everyone does, and we are all drowning in bullshit.</p>

<h3>3. &quot;AI is producing slop.&quot;</h3>

<p>I think in 2026, fewer and fewer people are arguing that AI just produces garbage. I remember back in 2024, so many tech influencers like ThePrimeagen were absolutely confident that AI progress will hit a wall and it&#x27;ll never reach human levels of coding. Anthropic (the company behind Claude) CEO Dario Amodei was <a href="https://www.aol.com/anthropics-ceo-says-3-6-062716453.html">ridiculed for saying</a>, &quot;I think we will be there in three to six months, where AI is writing 90% of the code. And then, in 12 months, we may be in a world where AI is writing essentially all of the code.&quot; His timeline was a bit optimistic, but <a href="https://stackoverflow.blog/2026/10/06/the-results-of-the-2026-developer-survey-are-here/">in Stack Overflow&#x27;s 2026 survey</a>, 66% of developers who use AI use coding agents, and 73% of coding assistant users use them daily. All my friends working in big tech and trading firms are all coding with AI. Ironically smaller firms are more resistant but it&#x27;s only a matter of time.</p>

<p>Does AI produce slop? As someone who codes with Claude day in and day out, absolutely it does. Without close oversight it produces garbage UI and introduces weird bugs into the code base. But it&#x27;s getting rarer and rarer and the things it is actually capable of seem to be more and more. Creating and editing videos, ASCII art are both things the newest model Claude Opus 5.5 excels at and it&#x27;s only going to get better from here.</p>

<p>Here there is an interesting gap between the quality of AI most people are familiar with vs the true frontier. AI is expensive. What most people see using free ChatGPT, and the random slop images and videos that some bot farm is mass generating for clicks, is pretty abysmal compared to the biggest and best models AI labs have internally. The intelligence and quality gap, and the price gap, is huge. Earlier this month, OpenAI released over 700 maths papers written by an unreleased internal model, including <a href="https://www.quantamagazine.org/ai-proved-the-quasi-riemann-hypothesis-what-happens-now-20261019/">a proof of what&#x27;s called the quasi-Riemann hypothesis</a>. Three were withdrawn for errors within a day, and <a href="https://www.aljazeera.com/economy/2026/10/27/ai-makes-discoveries-in-mathematics-computer-science-physics-openai-says">this week it announced more</a>, in harmonic analysis, complexity theory and quantum field theory. It&#x27;ll still occasionally blip like AI tends to but its utility, intelligence and capability are a bit scary. This also explains some of the huge perception gaps between people in the industry hyping it up and people who don&#x27;t pay for AI not understanding what the big deal is. See this <a href="https://x.com/karpathy/status/2109361546505966046">great write-up by Andrej Karpathy</a>, a super smart, grounded and legit AI scientist.</p>

<p>AI in its current LLM or diffusion architecture will always produce some slop. It only produces what we teach it and has no taste or &quot;consciousness&quot; of its own. It has a lot of emergent properties that look like intelligence and consciousness but it doesn&#x27;t have some of the properties we have like learning continuously and efficiently. It also doesn&#x27;t have free will and judgement although these properties are perhaps hard to define even for humans. Without its own autonomy and acting as its own entity, it&#x27;ll by definition always produce some &quot;slop&quot;. This is especially true for the large AI companies serving the same very average/bland models to millions of users, and the model sacrifices quality to lower risk and provocation.</p>

<h3>4. &quot;AI is damaging to the environment.&quot;</h3>

<p>AI datacentres are resource intensive. They use a lot of water for cooling and generating all the gigawatts of power consumes both a lot of water and a lot of electricity. They also take up a lot of land and manufacturing electronics is a rather dirty process. Make no mistake, they are pretty expensive environmentally.</p>

<p>The nuance here is that they do generate value. Many many industries are just as resource intensive. The <a href="/writing/praise-be-to-big-oil-nuance-pt-1">part 1</a> to this topic explores how the oil industry keeps our modern society afloat. Farming is even more water intensive (<a href="https://data.worldbank.org/indicator/ER.H2O.FWAG.ZS">agriculture uses about 70% of the world&#x27;s freshwater</a>) and bad practices can lead to top soil degradation. Cities introduce light pollution and airplanes dump greenhouse gases straight into the sky.</p>

<p>When it comes to resource consumption, everything is a trade off. Something&#x27;s got to give. For scale, <a href="https://www.iea.org/reports/energy-and-ai/executive-summary">data centres used about 1.5% of the world&#x27;s electricity in 2024</a>, and the IEA expects that to roughly double by 2030. <a href="https://www.iea.org/news/air-conditioning-use-emerges-as-one-of-the-key-drivers-of-global-electricity-demand-growth">Air conditioners and fans use about 10%</a>. The datacentre&#x27;s environmental footprint is amortised across all its users, meaning we all contribute a little to the environmental damage when we use it. It&#x27;s more about whether we generate more value compared to the cost.</p>

<p>Suppose we use AI datacentres to make medical breakthroughs and invent new treatment strategies for deadly conditions like cancer. Would that justify the environmental cost? Suppose we use it to make breakthroughs in solving climate change itself, that would be useful. The world runs on energy. We need energy to stay fed and comfortable. The only way to generate energy without greenhouse emissions is for us to invent better energy technology, and one of the fastest foreseeable ways to do so is to invest in AI to research promising ideas for us.</p>

<p>Reality is probably somewhere in between the 100% efficient, all resources are spent on useful research and the 0% efficient, more cat slop videos to entertain mums. We&#x27;ll never be perfectly efficient as a species and society but that&#x27;s ok. We want to advocate to get closer to the 100% side and make AI worth all the money and trouble we are sinking into it.</p>

<h3>5. &quot;AI is controlled by tech overlords.&quot;</h3>

<p>I don&#x27;t like the techbros leading the AI race. This is probably one of the points I most strongly agree with personally. I am highly sceptical of concentrated power and a few people controlling a powerful new emerging technology.</p>

<p>People are inherently selfish. Billionaires and world leaders are no different. Dario, Sam, Elon and Mark likely aren&#x27;t spending billions of dollars altruistically. They want to make more money for themselves, their shareholders and gain more control of tech in the future. Heck, it&#x27;s not just tech bros. <a href="https://www.axios.com/2026/09/22/trump-ai-super-intelligence-rebrand">Trump just renamed AI to Super Intelligence</a>. Everyone wants a piece of the cake.</p>

<p>To play the devil&#x27;s advocate, these people in power do provide value to us in coordinating and driving progress. It&#x27;s extremely stressful being a CEO or world leader and sometimes, your interests are aligned with the general welfare of the people. When the early OpenAI team made the big bet to scale up the models and took a huge risk with no certain reward to create LLMs, that was a bold move and directly led to a leap in humanity&#x27;s understanding of intelligence in general. They allocate billions in resources to build data centres and power products and services we all consume and use. For instance, in the old non-LLM data centre world, Amazon Web Services operated (and still operates) huge data centres all over the globe powering <a href="https://www.crnasia.com/news-network/2026/cloud-market-share-q1-2026-aws-microsoft-google-battling-in-ai-era">close to 30% of the world&#x27;s cloud computing</a>. They make a lot of money, but they do provide value.</p>

<p>I guess in the end this is more about checks and balances, and aligning the incentives such that we all benefit from this technology.</p>

<h3>6. &quot;AI is trained on stolen intellectual property.&quot;</h3>

<p>This is a tricky one. IP laws exist for a lot of good reasons. The biggest one is ensuring the creator is properly acknowledged and compensated. It also ensures the people who innovate can continue to do so safely.</p>

<p>The first generations of LLMs operated full SF start up style and somewhat dodgily procured a lot of data from the internet through piracy and general web scraping. This was run at a massive scale and discreetly. This is clearly wrong and much copyrighted content was not compensated for at all. I believe there have been several lawsuits around this already.</p>

<p>The other more interesting nuanced part of this problem is what if the training company just buys one copy of every training data. As humans we find it acceptable to pay once for a piece of media and consume it for learning or enjoyment. In general we are always free to remix or create new content inspired by old ones.</p>

<p>What about LLMs? They do &quot;remix&quot; the knowledge they consume by training them into &quot;weights&quot; in the model itself. If you download an AI model, you won&#x27;t find any Moby Dick text in there. However, they are so good at memorising, they can just recite it to you almost perfectly from memory. Currently the frontier labs ban this and train it not to, but it can. And even if it doesn&#x27;t, is serving a model that has gained the knowledge of a book not to one human, but millions of humans fair use? Should machines be allowed to gain and distribute knowledge in this way? I don&#x27;t know the answer.</p>

<h3>7. &quot;AI is going to take my job.&quot;</h3>

<p>I find this sentiment particularly funny. Not because I&#x27;m a sadist that enjoys seeing people lose their jobs and suffer, but because I remember very distinctly that before AI, everyone was complaining about their 9-5 and having to work at all!</p>

<p>People just love complaining, it&#x27;s in our nature. It is satisfying to shake your fist at the clouds.</p>

<p>Obviously people losing income and not being able to participate in society is terrible, no doubt about it. The real underlying argument here for the anti-AI folks is not that they love work, but that they&#x27;ll lose their bargaining power in society. For the longest time in history, you can use your labour, skills or smartness to trade with others and earn resources. Once AI and robots take over and most people can&#x27;t generate any financial value to society, they&#x27;ll lose power and be obsolete. This is a genuine concern.</p>

<p>The optimist in me would like to believe that we can create a social system designed so people don&#x27;t have to work, and that resources are always provisioned for everyone to live happy, satisfying lives. It&#x27;ll be hard to get there, and greed will certainly keep getting in the way, but it&#x27;s the only happy ending to this whole situation. A future like that doesn&#x27;t sound too bad to me. In the best case, we&#x27;d all have plenty of free time to explore our hobbies and interests and not be locked into a job we hate just to survive.</p>

<p>The bad ending is that all the money goes to a few people holding lots of power and we live in a dystopia polarised between the poor and the rich. See point 5. I&#x27;m really hoping we don&#x27;t get there.</p>

<p>Of course, none of these reasons matter to the young people entering the workforce now where companies are spending big on AI and less on new talent. I can empathise with that. And honestly the only answer to being caught in this situation is that it sucks.</p>

<h3>8. &quot;AI is unsafe (scams, mass surveillance, bioweapons etc.)&quot;</h3>

<p>With great power comes great responsibility. Honestly, we have no idea what&#x27;s going to happen in the next few years of AI development. Will they turn on humanity? Gain consciousness? Replace all governments? Nuke us all? We just don&#x27;t know.</p>

<p>What we do know is that as tools get more and more powerful, they need more and more regulation and control.</p>

<p>What we also know is that power needs to be distributed for society to be functional and stable. Checks and balances are important.</p>

<p>AI can be used for cyber defence or cyber offence. It can be used to aid humanity or destroy it.</p>

<p>I don&#x27;t really have any insights or unique points to share here, I think we all just have to play it by ear and see how it goes. This train is not stopping and we&#x27;ll just have to deal with whatever comes up.</p>

<h3>9. &quot;AI is girlfriend/boyfriend.&quot;</h3>

<p>Despite the joke title, this explores the wider point of AI prevalence and its impact on human lives both socially and emotionally. In the movie Blade Runner 2049, Ryan Gosling has a holographic girlfriend. When he gives her a gift and they kiss passionately in the rain, his girlfriend freezes due to the urgent incoming voice message (<a href="https://www.youtube.com/watch?v=Y3ubRIfmsRI">watch the clip</a>).</p>

<p>If I could buy a hologram of Ana de Armas who loves me unconditionally I would be very tempted too. But the hollowness and lack of real human to human connection is highlighted here. If AI is everywhere and can satisfy all our deepest desires without needing human connection, what have we lost?</p>

<p>To some degree we already see this with para-social relationships on the internet and people falling in love with OnlyFans creators. To some extent we are self-regulating and can tell the difference between real and fake relationships and actually desire people who can push back every so often, but there are a lot of wider implications here.</p>

<p>I, for example, have always wanted a home butler robot that can do all my chores for me. Shop, cook, clean. Yet often I find it&#x27;s those very activities that tap into the primal part of my brain that makes me feel grounded and at peace. It&#x27;s probably why an Australian man from Queensland can get almost a hundred million views <a href="https://www.youtube.com/watch?v=P73REgj-3UE">building mud huts in the bushes</a>.</p>

<h3>10. &quot;AI is a bubble.&quot;</h3>

<p>I am a software engineer by trade. <a href="https://www.semafor.com/article/04/24/2026/google-ceo-says-75-of-companys-new-code-is-ai-generated">Google says 75% of its new code is now written by AI</a> and then reviewed by engineers.</p>

<p>From a pure experiential perspective, AI is not a bubble. I work at a start-up and at work, we&#x27;ve fully adopted AI to write code and drafts. It&#x27;s also used to analyse data, generate graphics and help with admin chores. Adoption is real and real money is being spent on Claude and ChatGPT.</p>

<p>However, there is also a strong argument to be made for there being a financial bubble. The spike in a lot of AI related stock tickers is speculative and a lot of the insane amounts of investments and deals done in the AI world look somewhat circular and also speculative. <a href="https://www.youtube.com/watch?v=Q0TpWitfxPk">Hank Green has a great video on this</a>.</p>

<h2>Justice for Hank Green</h2>

<p>Also, in finding Hank&#x27;s video, I just found the perfect example of why I wrote this. It turns out if you google Hank Green AI, all that comes up is <a href="https://www.forbes.com/sites/danidiplacido/2026/08/04/the-anti-ai-backlash-against-hank-green-explained/">people berating him</a> for using ChatGPT to research one of his scripts. How apt then is this article about nuance, ha. It turns out, people love being vocal bullies, especially on the internet. It is truly timeless to use moral righteousness as an umbrella to act like jerks to particular individuals or groups of people.</p>

<p>I would personally argue that there&#x27;s nothing inherently wrong with using AI to create content or help create content. Good content is good, bad content is bad. To create a controversy and attack a well known character who has shared nothing but consideration, good-will and nuance even if you disagree with what they do or what they say is a pretty low blow.</p>

<h2>Context matters</h2>

<p>Different readers will have different experiences and different trade-offs on why they are pro or anti AI use in their context. I for instance fully agree that AI should NOT be used to write music autonomously. The entire point of art is to craft human messages and meaning for other humans. Sure, you can use it to learn about music theory, or bounce ideas off, but using it to mass generate and spam the world with mediocre average garbage is just a waste of compute and everyone&#x27;s time in a desperate ploy for money.</p>

<p>I was also reading about <a href="https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html">Codeberg&#x27;s stance on AI</a>. This is a great example of great reasoning and a well thought out set of rules and policies on the issues created by LLM generated code/projects. It&#x27;s not perfect, everyone may not agree, but it has nuance and vision to back it up.</p>

<p>It is probably appropriate at this point to point out that the website you are reading this on right now is completely coded by AI, and moreover, vibe coded by AI. I did not even read a single line of source code. Why? Because I know static pages are harmless. I do use AI to help with some research and editing and critique but have opted to write the English version of all of these blogs manually. If I ever translate these to other languages, I&#x27;ll probably get AI to do it since it&#x27;s cheap and quick.</p>

<h2>Empathy</h2>

<p>In heated debates it helps to have empathy.</p>

<p>I can empathise with the anti-AI crowd for sure. One of the more emotional reasons for disliking AI is that it sucks to &quot;lose&quot; to a machine. For as long and as far as we could know, humans are uniquely intelligent in the universe. It&#x27;s kind of our defining trait as a species and it made us special. People like being special. I like feeling special. All of a sudden there&#x27;s a threat of intelligence being &quot;artificial&quot; and can threaten our uniqueness and value as a species. It is just kind of plain upsetting news.</p>

<p>I can also empathise with the pro-AI crowd. It closes the gap between the cans and can&#x27;ts. I was a very good computer science student and yet I could not maintain a complex CI/CD pipeline all by myself. Now I can. I can also learn about history and jump around and ask questions, no matter how complex or stupid, and get an instant answer without judgement. Now I can just do more. It is pretty fun.</p>

<h2>Does this debate even matter?</h2>

<p>Yeah, it does. The debates and lines we draw nowadays set precedents for how, when and why AI should be used.</p>

<p>There will never be a blanket ban of AI. Society walks towards incentives. It is too powerful and valuable to governments and big corporations. It also generates value, which means that the majority of people simply don&#x27;t care about the above points and will use it to make money.</p>

<p>The best outcome will, in my opinion, be AI being democratised and accessible to everyone as a tool. Its use will be regulated for safety, and blatant misuse will be penalised or shunned by the general populace.</p>

<p>Some things are clearly bad for everyone and some things are clearly good for everyone, but most things are in the middle in a grey zone with countless trade offs and small groups of winners and losers.</p>

<p>Take a step back, think of the bigger picture. You&#x27;ll always gain something by seeing the whole elephant.</p>
]]></content:encoded></item><item><title>Praise be to big oil (Nuance P.T. 1)</title><link>https://yaoke.pro/writing/praise-be-to-big-oil-nuance-pt-1</link><guid>https://yaoke.pro/writing/praise-be-to-big-oil-nuance-pt-1</guid><pubDate>Mon, 12 Oct 2026 12:36:57 GMT</pubDate><content:encoded><![CDATA[<p>Are oil companies bad?</p>

<p>The other day someone mentioned to me that companies like Shell and BP are destroying the planet. Nowadays it&#x27;s a pretty common sentiment amongst younger people to hate fossil fuel, mining or oil companies. It makes a lot of sense, the damage they are doing to the environment, atmosphere and ecosystems is immeasurable. They must be evil, right? The people running these corporations must be akin to Disney villains.</p>

<p>Let&#x27;s bring some nuance into the picture. Is it hypocritical to hate oil companies when you drive a car and fill it up with BP petrol? What about flying to another country, you are directly emitting greenhouse gas into the upper atmosphere. Is it unethical to run electricity into your house burning lots and lots of coal? What about turning on the AC to cool yourself down on a hot summer&#x27;s day? If you shop at all, guess how the items were shipped there from the farms or Chinese Temu factories?</p>

<p>Like it or not, BP and Shell are core infrastructure companies that have done a fairly good job at ensuring we all have access to energy which we all depend on. Take away energy, and society will grind to a halt. Maybe to some readers this is all obvious but in my experience, people often struggle to take on a nuanced view of complex issues and emotionally are quick to take a side or jump to conclusions.</p>

<p>Now of course, I&#x27;m not saying everyone should be worshipping big oil and let them do what they want. It is an incredibly wealthy and corrupt industry with lots of dirty deals, unfair competition and even lots of political influence that has led to decades of wars and deaths. A quick search turned up the Petrobras “Car Wash” scandal, Glencore, Iran, Nigeria, Exxon, Lobbying... Then of course there&#x27;s the issue of global warming which is a relatively modern issue. I&#x27;m not saying these are not major issues that deserve criticism, attention or solutions, just that it took a lot of fossil fuel burning to even get here in the first place. Cheap energy kick started modern trade, medicine, technology, internet, water on tap, everything we take for granted. It just takes a bit of nuance to both appreciate fossil fuel for taking us this far and to realise it&#x27;s time to retire it for something better and the people at the top running the show don&#x27;t have your best interests in mind.</p>

<p>So are oil companies evil? No. Most of it exists to provide critical value to all of us in our daily lives, that&#x27;s why we keep paying for it even when prices rise, like they have since Trump took the US to war with Iran alongside Israel in February and <a href="https://www.aljazeera.com/news/2026/7/8/oil-prices-surge-as-us-strikes-iran-reversing-fall-to-pre-war-levels">shipping through the Strait of Hormuz dried up</a>. Are certain oil executives evil and putting their own interests above the general public or the future of our species? Well, this one you can sort of assume will always be true as long as humans are around.</p>
]]></content:encoded></item><item><title>Don’t take advice (including this one)</title><link>https://yaoke.pro/writing/dont-take-advice-including-this-one</link><guid>https://yaoke.pro/writing/dont-take-advice-including-this-one</guid><pubDate>Fri, 09 Oct 2026 13:49:27 GMT</pubDate><content:encoded><![CDATA[<p>The only advice you&#x27;ll ever need is to not take any advice.</p>

<p>I define advice as a suggestion given for a choice you have to make in your life. You should most certainly listen to teachings. For instance, if a science teacher teaches you that things are made of atoms, you can probably trust that piece of information. Teaching and learning are important processes to save time and encourage personal development by passing on useful knowledge from generation to generation. In fact, knowledge has a life of its own. You can learn music theory from your music teacher, musictheory.net, YouTube videos or your prodigy friends. There is a foundational truthiness to it. It&#x27;s never perfect, but it&#x27;s almost always good to learn more knowledge and even improve upon it yourself or teach others.</p>

<p>Advice on the other hand comes from people. Humans love to give advice. What could make you feel better than telling other people what to do? I mean, only smart and wise people get to tell other people what to do right? What a great way to boost your ego and look smart. I&#x27;m someone who loves taking advice. It&#x27;s comforting to take advice. They must know what they are talking about right? I mean I have no idea, and if things go wrong, they are at least partially responsible!</p>

<p>Advice comes from a place of personal experience and the giver&#x27;s observed reality; it is almost always bad for you.</p>

<p>Think about it, why would someone who&#x27;s lived a totally different life to you, has a totally different personality, totally different body etc. etc. etc. know what&#x27;s best for you? It plainly makes no sense. Here is an example from my life: I used to get horribly plane sick. Imagine spending hours and hours just vomiting non-stop and feeling nauseous and about to vomit in between actually doing it. It felt like someone yanked my entire stomach out of me and beat my face with it. To alleviate my suffering, my mum gave me the advice of drinking coke in the flight so the burps help me feel better, staying cold so I feel less like vomiting and fasting before and during the flight so there&#x27;s nothing to vomit up.</p>

<p>It turns out, all three are the exact opposite of what you are supposed to do...</p>

<p>You want to avoid fizzy drinks since a leading cause of airsickness, or motion sickness in general, is feeling bloated in the stomach. On planes, as the plane ascends, air pressure in the cabin drops and you have a higher air density inside your guts than outside. All of this air trying to escape into the cabin creates the bloated and uncomfortable feeling. Coke contains dissolved carbon dioxide inside it, which is what makes you burp, but it introduces more gasses than it releases. This additional gas to your already bloated stomach makes it increasingly upset, leading to vomiting.</p>

<p>You also want to stay warm and comfortable, as motion sickness triggers your body&#x27;s autonomic nervous system. As your eyes and the accelerometers in your ears disagree, your brain gets confused and triggers salivation, digestion and nausea. If you add uncomfortably cold to the equation, your brain is more likely to panic and cause you to vomit.</p>

<p>You want to have a small, light meal before flying. Fasting can lead to feelings of hunger, which stresses out your nervous system. It can also lead to lower blood sugar which does the same. On an empty stomach, you still produce stomach acid, which is what I threw up most of the time. It was highly unpleasant liquid and it burned my oesophagus.</p>

<p>The best trick of course, as I learnt much later in life, is that you can just buy motion sickness tablets from the pharmacy for cheap! It temporarily suppresses the motion sensors in your ears and thus reduces the conflicting eye and ear information.</p>

<p>There is a thin line between knowledge and advice. What&#x27;s your takeaway from the above story?</p>

<p>Advice is people just yapping. Knowledge is backed by evidence or shared experiences across many people. Most pieces of information are a mix of both, often with some misinformation, misunderstanding and deception thrown in there too. My mum just didn&#x27;t know any better. Nowadays with the ease of access to information, you can pretty easily fact check most things.</p>

<p>The skill underlying all of this is critical thinking. It&#x27;s the ability to see beneath the surface and work out what is signal and what is noise.</p>

<p>People love to tell you how to think and feel. Politicians need to be good at this to gain votes. And yet, most people are looking out for themselves and know less than they let on. The world is a harsh and complex place. In modern society we all live comfortable, relatively sheltered lives but we are not very far time-wise from our warmongering ancestors.</p>

<p>Anyhow, in your day to day life, what can you do instead? Well, you can probably take a step back and think bigger picture. Why are they saying this? Where are they coming from? Does this apply to me? There&#x27;s often some kind of information you can get out of even bad advice, perhaps just that the person telling it to you doesn&#x27;t know your situation.</p>

<p>Don&#x27;t be afraid to trust your gut and experiment. There were so many moments in my life where I clung on to any advice I could get and any help or clue as to what to do. Bad breakups, teacher from hell, conflict with friends, what to study in Uni. In retrospect none of the advice, ones I asked for or unsolicited, were really helpful in those situations. The situations were deeply personal and bespoke to me. What I really needed to do was believe in myself and trust my gut, and anyone else&#x27;s ideas should be second to that. The truth is, nobody really knows the answer to these kinds of problems. You might as well own it and believe in yourself.</p>
]]></content:encoded></item><item><title>Intuition or Technical Study?</title><link>https://yaoke.pro/writing/intuition-or-technical-study</link><guid>https://yaoke.pro/writing/intuition-or-technical-study</guid><pubDate>Mon, 05 Oct 2026 13:20:16 GMT</pubDate><content:encoded><![CDATA[<p>One thing I learnt as a child from being forced by my parents to learn violin is that form and technique really matter. Violin is an instrument where if you don&#x27;t have the right form or a teacher to supervise or correct your technique constantly, you&#x27;ll just hit a hard wall on how good you can get.</p>

<p>This would go on to shape my compulsion to do things &quot;right&quot; especially after I reached adulthood. Interestingly, when I was a teenager I would still be pretty sloppy and just do things based on vibes. I&#x27;m not sure what changed but during my Uni years I would be pretty obsessed with doing things right. Tutorials and guides became my go to on Google searches and YouTube, and later ChatGPT when it became good.</p>

<p>And yet more recently I&#x27;m pondering if I&#x27;m too obsessed over form and technique. For instance, as I&#x27;ve stopped playing the violin and picked up the guitar in May 2024, I&#x27;ve realised that technique and form can distract you from the underlying core purpose, which is connecting to and making music. This is even more true with the drums where players like Buddy Rich would be totally self-taught and be considered a great.</p>

<p>So there must be a spectrum of things from what requires pedantic, precise, structured practice and what should be learnt through raw repetition, feel and intuition. Most skills tend to be in the middle and are an effective combination of both.</p>

<p>I did some research online, and apparently Rich Masters&#x27; &quot;reinvestment&quot; theory can somewhat explain some of my personal experiences when performing under pressure. Since I like to do things &quot;correct&quot; and &quot;proper&quot; and am taught with explicit rules, I find that I&#x27;ve always struggled to perform under pressure. Personally I feel like I get overwhelmed with thoughts and start panicking or freezing. All the pro musicians I watch on YouTube often talk about how the best way to overcome stage anxiety is to not even need to think about what you are playing and to do it entirely by feel!</p>

<p>At my Thursday night MMA trainings, I also talked with my training partners about how the best pro fighters don&#x27;t fight with the &quot;right technique&quot;. Boxing gyms and teachers love to yap on and on about form and technique and yet the best pro fighters almost always fight in strange ways. I think it speaks to how intuition, and picking a strategy and style that just works for your brain and your body is by far more important than performing dance like precision hip rotations or head kicks.</p>

<p>As such, the best practical advice here is probably to figure out upfront what sort of technique/practice/structure is most important and let intuition fill in the gaps. For instance, in MMA wrestling and BJJ, technique and position can completely dominate a match as your opponent is just 10 steps ahead of you mentally, and yet in striking, super unorthodox styles can be effective at a world class level. You want to avoid the teachers that show you heaps of techniques to feel useful and good about themselves. Real teachers are great for real time feedback, especially if it&#x27;s a physical activity.</p>

<p>Another potential trick is to study the greats. How do they do it? Every ballet dancer had to have rigorous technical training and strict routines. The best artists on the other hand seem to have natural born intuition and creative ideas and express it in all sorts of random and novel ways. You can study the trajectories they took, the level of guidance they received, and how differently they perform compared to each other. Then you can work backwards to figure out what you will enjoy and can achieve in a particular discipline.</p>

<p>The third tip is to figure out when structure is needed in your journey and where you are in your journey. For instance, young children can be ear trained super quickly and gain intuition for music and notes way faster than adults and can rely on more of their intuition upfront. In violin, eventually good form just becomes second nature and as you become a more advanced player, your feel for the music begins to matter more and more. In esports like Valorant, you want a robust knowledge of what to do, but your actual in game decision making as you get better needs to be system one and immediate. I think rules and techniques are sort of like the scaffolding that supports your skill development. Too much and it&#x27;s all scaffolding and too little, you won&#x27;t have a strong enough foundation to build upon. You need it with different amounts in different places at different times.</p>
]]></content:encoded></item><item><title>Missed Opportunities</title><link>https://yaoke.pro/writing/missed-opportunities</link><guid>https://yaoke.pro/writing/missed-opportunities</guid><pubDate>Sun, 04 Oct 2026 13:05:24 GMT</pubDate><content:encoded><![CDATA[<p>Here’s something nobody teaches you, you miss opportunities all the time. I remember when I was 12 in 2014, every day I’d come home from primary school at 3pm and watch channel 24 news (yes, on satellite TV, yes, I was nerdy). And I remember one piece was on this new thing called Bitcoin. It caught my attention because of the funny name and how it was a big deal. I ended up asking my parents about it and we bought $2000 of it for fun. That’s how we became millionaires.</p>

<p>NOPE. I just forgot about it like a normal 12 year old kid and went about my business playing games on my iPad Air.</p>

<p>I also remember back in 2022-2023, this time as a 20 year old adult watching Techlinked on YouTube and hearing about the anticipated RAM shortage due to AI data centres. I got minorly annoyed at the news but went about business as usual. It is now 2026 and RAM manufacturer SK Hynix has grown about 18x in value. I’m using investing examples here because they are the most straightforwardly illustrative, but the same applies in all walks of life. Dating, career, friendships, gaming, sports.</p>

<p>All the time, this large and complex world we live in is opening and closing doors, big and small.</p>

<p>Keep an eye out!</p>

<p>If there’s an opportunity or target you are trying to reach, keep upgrading and running your best radar. If you want money, look for the next big thing. If you want the love of your life, keep an eye on people you are attracted to. Keep an open mind and be ready to catch anything that comes your way. You will almost certainly miss or fumble as I have done many times. I had a Jane Street technical interview that I didn’t prepare for and completely butchered. Needless to say I didn’t hear back from them. But that’s okay! When you are young, you don’t even know what you are looking for. You’ll watch, learn, hear real stories from real people and over time you’ll both figure out what you want and how others have gotten it.</p>

<p>Some opportunities will work out, some won’t. Suppose you take the leap of faith and act on it, it can go very well or horribly wrong. Take my thesis project on a state of the art photonic hydrogen sensor. It seemed like the most awesome project in every way. Run by USYD professors, backed by a government fund, strong and hard working team. In fact, the cleanroom downstairs <a href="https://www.sydney.edu.au/research/facilities/sydney-nano-foundry/our-capabilities.html">can print features under 10 nanometres wide</a>, with one of the most powerful electron-beam lithography machines in the Southern Hemisphere. I enjoyed working on it and got along with the team. But the project just kind of fizzled out. Now it wasn’t a bad project by any means, but it just didn’t work out. Things often just don’t.</p>

<p>Most of the time, you just don’t even know. Maybe you want to buy a Labrador puppy and your neighbour wants to sell their one for cheap as they turned out to be allergic. Knowing and doing the right things at the right time is largely up to chance. So I say don’t obsess over it. You can’t win them all. Whatever happens, happens. Let it be. The cliches go on and on but it’s true. Retrospect is powerful and survivorship bias is real. Everyone loves to point at the winners and envision themselves in their positions. But there are far more people who just didn’t know, or have access, or failed, or just plain preferred a different lifestyle.</p>

<p>I often look at those 20 year old tech billionaires and feel deeply inadequate in comparison. But that’s not fair to yourself. If you find yourself doing the same, try to be kinder to yourself. Sometimes you can just change and use it as an opportunity to learn and improve yourself, but more often, if you did the best that you could with what you knew, it’s good enough. Contentment comes from within.</p>

<p>Try to think a bit outside of the box, be proactive. If you miss it, there’s always more to come and no one thing can define your life.</p>
]]></content:encoded></item><item><title>Not a Quant</title><link>https://yaoke.pro/writing/not-a-quant</link><guid>https://yaoke.pro/writing/not-a-quant</guid><pubDate>Sun, 04 Oct 2026 13:05:24 GMT</pubDate><content:encoded><![CDATA[<p>A classic quant interview question goes, &quot;what&#x27;s the expected value of cards you need to draw from a deck of 52 before you draw an ace?&quot;. You have two minutes. This is a hard problem.</p>

<p>I naively tried to solve this by trying to work out the probability you draw an ace as the first card, which is 4/52 and an ace as the second card which is 48/52 times 4/51 etc. etc. But I eventually realised that to get from this to the &quot;expected value&quot; (which means the average number of cards I&#x27;d need to draw if I repeated this experiment say hundreds of millions of times), I&#x27;d need to do this chain of probability for all 49 configurations (up until the only cards left are aces) in the worst case, sum them all up weighting each card by its probability... it gets ugly real fast. The sketch of the elegant solution is that the 4 aces divide the deck up into 5 sections, and so in the average case, you draw 48/5 = 9.6 cards.</p>

<p>With my two nerd friends, we discussed this quant interview question and how we all had no chance of solving it without specialised preparation and training. Then we memed for hours where any kind of mistake or delay means you are &quot;not a quant&quot;. Can&#x27;t figure out the rules of the board game? Not a quant. Forgot to water your plants? Not a quant.</p>

<p>Intelligence is an uncomfortable topic to talk about. It&#x27;s very personal and the truth is a bit hard to swallow. I&#x27;m going to present evidence for how intelligence actually works and argue why intelligence matters less than you think.</p>

<p>You are born with your intelligence as an attribute much like your height. It&#x27;s largely heritable, with some effects from nutrition, education and general support. People don&#x27;t like to hear this because it&#x27;s offensive. It&#x27;s not fair, right? How can some people be born smarter than others, but that&#x27;s just how it works. This is a well studied attribute of people in the field of psychology. Intelligence can broadly be defined as the performance of the brain to perform tasks well. It&#x27;s like the mental version of physical fitness. As such, it&#x27;s actually a very broad spectrum of skills and encompasses things all the way from auditory intelligence to 3D comprehension to good old logical puzzles like the one above.</p>

<p>Psychologists have discovered pretty strong evidence of a G factor, which is a general intelligence score. The higher the G factor, the higher your specific specialised intelligence scores tend to be, for instance your pattern recognition or your memorisation. One rough proxy for your general intelligence is how many digits you can memorise in one go from a sequence? The higher the G factor, the wider the gap tends to be for all your specialised intelligence scores, for instance your verbal intelligence can be a lot higher than your creative problem solving. There are some theories on specific branches of types of intelligence but they are statistical models derived from correlated task performance and we have relatively poor understanding of mechanisms of how they actually differ and why this is.</p>

<p>There is also the concept of fluid intelligence vs crystallised intelligence. Fluid intelligence is no-context problem solving and ability to adapt and learn. So this is your quant interviews, logic puzzles and IQ tests. This grows as you age and plateaus in your adulthood and slowly declines as you age. Crystallised intelligence is the knowledge and wisdom you accrue as you age and learn. For instance, a PhD can rant for days on fluid dynamics or a coin collector can immediately value a coin from his vast internal knowledge base. This grows over time indefinitely if you keep learning and exercising your mind. Evaluating fluid intelligence is hard because it&#x27;s often contaminated by crystallised intelligence. For instance if I was trained in statistics, that quant question might be very easy for me as my years of memorised solutions and pattern recognition can be applied to solve the problem. In practice this is also the practical pattern to solving real problems, as real world mathematicians draw upon their vast reserve of knowledge and their naturally high fluid intelligence and talent. Some people are freaks of nature, for example nobody taught Gauss that instead of brute forcing 1+2...+100, you can just group the numbers and just multiply (101 times 50). Gauss definitely could&#x27;ve been a quant XD.</p>

<p>Generally intelligence follows the bell curve distribution, just like height. So if you sample from a large enough population, you&#x27;ll find most people are average, some are in the long tail of intellectual disability and some are just geniuses. Generally bell curve distributions are a result of a lot of random variables either increasing or decreasing intelligence interacting with each other randomly in the population. For instance, faster reaction times and neuron activations tend to correlate with higher intelligence. Environment matters too. The height of the Chinese population has increased by multiple centimetres. Obviously the whole country did not evolve in two generations. Nutrition and access to healthcare have allowed latent genes to be healthily expressed. Similar effects apply to intelligence.</p>

<p>So, what to do with all this information? I&#x27;d argue don&#x27;t stress about it. You should definitely exercise your brain just as you&#x27;d exercise your body. I know I&#x27;m not physically gifted enough to sprint faster than Usain Bolt, but it doesn&#x27;t mean that running is not beneficial to my health or other aspects of my life. Your crystallised intelligence can prove critical in your life trajectory. I remember Dr Karl <a href="https://thenewdaily.com.au/life/science/2019/11/20/dr-karl-kruszelnicki-says-hes-not-particularly-smart-despite-winning-unesco-prize/">candidly saying his IQ is only about 110</a>, barely above average, but his vast reserve of accumulated crystallised intelligence just hit a point where he just began understanding things. Keep your mind and your body well nourished, exercised and sharp. It will probably make you a lot happier too.</p>

<p>Intelligence is also kind of overrated. It&#x27;s a tool to achieve outcomes and is of course a useful tool for problem solving, but the world is filled with people using their intelligence to screw other people over. You do not need to have 200+ IQ to do things in life. How you treat other people, your communication skills, your dedication and commitment. There are so many things that can make your life meaningful and lead to successful outcomes beyond any intelligence a test can measure. For example, people like Bill Gates or Elon Musk are clearly smart, but they aren&#x27;t billionaires because they were the smartest people in the room. They are businessmen first. Gates made his fortune by <a href="https://en.wikipedia.org/wiki/MS-DOS#History">licensing MS-DOS to IBM</a> while keeping the right to sell it to everyone else, not by out-thinking everyone at maths. Musk&#x27;s real talent is raising money and rallying people around wildly ambitious goals. In fact, Richard Branson has dyslexia. I&#x27;m using famous, rich people as an example because they are the stereotype of geniuses in our society but they mostly got there with great business skills and ability to lead, pitch or rally people up.</p>

<p>I would also argue wisdom is far, far more important than short term problem solving. Life is long. Far longer than any two minute interview. If you make the right choices in life for you, you will get far outsized returns in whether you become the person you want to be. Your impact on the world and the people around you will also be far more positive than any smart, short sighted person can ever achieve.</p>

<p>So chin up, play the hand that you are dealt, it may not always be four aces but it might just be the cards you needed.</p>
]]></content:encoded></item><item><title>Personality Theory</title><link>https://yaoke.pro/writing/personality-theory</link><guid>https://yaoke.pro/writing/personality-theory</guid><pubDate>Fri, 02 Oct 2026 13:01:15 GMT</pubDate><content:encoded><![CDATA[<p>For some strange reason, when you are growing up, nobody really teaches you properly how personality works. There&#x27;s plenty of pretty good research out there now on how our personalities work, but at least when I was growing up, my parents and teachers would just give generic advice on &quot;be yourself&quot; or &quot;you are special&quot;. In fact, science has pretty good evidence on a lot of more personal or sensitive topics like personality and intelligence that the average population just doesn&#x27;t want to hear about. It&#x27;s definitely in the category of uncomfortable truths.</p>

<p>Wouldn&#x27;t it be nice if everyone was born equally smart or equally good? That&#x27;s a comforting idea. Feels fair.</p>

<p>Here it is, you are born with a personality that is fairly stable. Ripped the bandaid off.</p>

<p>Well first of all, what is personality? After all how can we reason about something if we can&#x27;t define it. Honestly, psychologists can&#x27;t define this one super well. In fact the entire field of psychology is a bit hand wavy since it&#x27;s based on observing behaviours and generally struggles to model the internal workings of the brain. Anyhow, it is roughly defined as characteristics, traits and patterns of thinking, feeling and behaving. As such, a good model for personality should be stable, predictive, and observable. In fact, personality is a powerful predictor for political leanings and other real world effects.</p>

<p>The model I&#x27;m most familiar with after listening to many hours of Jordan Peterson (that&#x27;s like a whole blog in and of itself), is the Big Five Model. It&#x27;s like a video game where everyone has a value along a slider of each of the five traits which are relatively independent of each other. I did a test and in my own life have tried to infer the personality traits of others using this framework. It is neat and useful, and definitely not perfect.</p>

<h2>1. Openness</h2>

<p>This is how much you like to explore new stuff. I think my openness is in the top 1% of people. I like learning about new topics, reading about philosophy, trying out new experiences. People low in openness like to stick to what they know and live a relatively sheltered, routine life. This is one of the best predictors for political leanings, as people higher in openness tend to lean left and people lower in openness tend to lean conservative.</p>

<h2>2. Conscientiousness</h2>

<p>People who are conscientious love staying clean and organised. A lot of people can probably relate to the mum scolding the dad for making a mess of the house. There is a slight effect of women tending to be more conscientious than men, although the bell curves largely overlap. Being high or low in a trait is not inherently good or bad. I&#x27;m pretty average here.</p>

<h2>3. Extraversion</h2>

<p>This is the one everyone who&#x27;s done a free MBTI can&#x27;t shut up about. It pisses me off as a past part-time psychology student that people treat it as a binary trait. It&#x27;s a spectrum from being energised and loving social interactions to wanting to tinker alone in silence, and everything in between. I&#x27;m also pretty average here. Btw, the distributions of all of these traits are bell curves, which deserves its own blog at some point! This trait explains why some people never seem to be alone and some people can dwell in their mum&#x27;s basement for days.</p>

<h2>4. Neuroticism</h2>

<p>I&#x27;d say this one is the only trait where generally, more is worse. It describes how much negative emotion you experience. In life, you sometimes meet people who emotionally crumble at every minor inconvenience and people who remain unfazed even if their arm gets cut off. As you can imagine, someone who&#x27;s always filled with negative emotions tends to burden themselves and other people. However, sometimes higher neuroticism is good as it can act as a more sensitive alarm system or motivator for change. For instance, if you are easily stressed about your health, you may turn that into building healthier lifestyle habits. I&#x27;m pretty low in neuroticism and generally don&#x27;t feel that bad. However, if something overwhelms me, it hits all at once and I don&#x27;t have much practice dealing with it. This has led to some bad spirals.</p>

<h2>5. Agreeableness</h2>

<p>The doormatness index. It is determined by how willing you are to just comply as opposed to engage in conflict. I, for instance, dislike conflict, violence and argument. I am high in agreeableness and tend to be more empathetic and make way for others. Someone who&#x27;s low in agreeableness tends to be more combative, speak their mind, and engage in conflict. People who express their disagreements healthily can be strong leaders and powerful social influences. People who express their agreeableness healthily can help de-escalate tension and build communities. A naive person higher in agreeableness will always lose to a disagreeable person.</p>

<p>Everyone is a cocktail of various amounts of each trait. Even though these traits are largely determined from birth, your culture, upbringing and life experiences can lead to them being expressed in different ways in different situations. I remember watching this video on James Fallon (<a href="https://www.youtube.com/watch?v=vii60GUGTQU">https://www.youtube.com/watch?v=vii60GUGTQU</a>), who by many biological markers was a psychopath. And not in the metaphorical, hyperbolical or insulting sense of the word. A psychopath who lacks empathy, care for others or respect for social order. Yet he remained a well loved and respected neuroscientist. The explanation he gives to explain his own situation is that the genes are present but inactive due to the love and support he always had since childhood. Also some surveys (not super rigorous) seem to suggest that surgeons and CEOs have a higher percentage of psychopathic traits amongst them than the general population. Traits are just traits. They are kind of like mental tendencies or tools. It&#x27;s about how you use them.</p>

<p>So is being born with a fixed personality baseline unfair? Well, there&#x27;s comfort in the fact that traits are not necessarily better or worse. It&#x27;s really a series of trade offs on your &quot;build&quot; as a person. In many ways, it acts as invisible hands steering you into certain interests and life choices.</p>

<p>I have many contradictions in my own life. I am low in neuroticism and high in agreeableness, and yet I train MMA. It&#x27;s partly to take me out of my own comfort zone and partly to tame my inner feelings of aggression. I&#x27;m not particularly suited to do it. I&#x27;m scared to move forward and engage and when I get hit, I get overwhelmed and panic. But every time I do it, I push my body and brain in a way it&#x27;s not used to and I gain a deeper understanding of myself and more confidence in being able to perform outside my comfort zone.</p>

<p>Well just like most things, like your athleticism, you are sort of born with a baseline and tendency that can be activated or shaped by what you surround yourself with and the actions you take. As such, the best thing you can do is understand your own baseline more deeply and try to build upon it in a constructive way that makes you prouder to be yourself.</p>

<p>Like I always say, play the hand that you are dealt and be the best version of yourself that your personality can support and the best version of yourself that challenges what your personality even is.</p>
]]></content:encoded></item><item><title>You Should Learn To Gamble</title><link>https://yaoke.pro/writing/you-should-learn-to-gamble</link><guid>https://yaoke.pro/writing/you-should-learn-to-gamble</guid><pubDate>Fri, 02 Oct 2026 12:24:59 GMT</pubDate><content:encoded><![CDATA[<p>Gambling is a loaded term. When most people talk about gambling, they think of casinos and underground poker matches. Stay away from those types of gambling. They are essentially entertainment venues designed to be addictive whilst rigging the odds against you. In the long run, the Law of Large Numbers will help move money from your pocket to their pocket. </p>

<p>This blog is really more about ventures, bets and risks. Every choice in life is a gamble. When you pick a partner, that person can totally mess up your life or transform it for the better. Should you move to a new job? A new country? Do you fill up the car now or wait a week hoping the prices drop? Life is a series of non-stop gambles. Some people are professional speculators. Traders, executives planning the next quarter, sports coaches deciding the line-up of the players for the night&#x27;s game.</p>

<p>Very roughly we can introduce a framework to model risk taking. </p>

<ol>
<li>Spread of outcomes from positive to negative</li>
<li>Probability across the spread</li>
<li>Your own personality, desire for the outcomes and risk tolerance</li>
<li>General impact on the world</li>
<li>Opportunity cost</li>
 </ol>

<p>(1) is just about the consequence of your actions. Suppose you put your money on black, you can lose all your money or double it. (2) is closely linked to this, you have a slightly more than 50% chance of losing all your money and a slightly less than 50% chance to double your money. A combination of (1) and (2) tells you what the expected outcome will be. In the roulette example, if you play enough times, you&#x27;ll lose money. Some people can get lucky, some people can get unlucky, but more people get unlucky than lucky. </p>

<p>There are some interesting fallacies and psychological effects to talk about here. For instance the Gambler&#x27;s Fallacy, which is believing that a short streak of reds means that the next roulette must be a black, even though the events are independent of each other. There is also loss aversion, which is when losing five dollars feels more mentally significant than the joy of gaining five dollars. </p>

<p>(5) so far, we&#x27;ve just been talking about what actions can lead to, but inaction is also a choice. This is the part I find most people that I&#x27;ve met in my life struggle with and find uncomfortable. There&#x27;s an implied pressure and chaos to existing itself. If you didn&#x27;t buy bitcoin in 2010, or didn&#x27;t send out that job application, or learn an instrument like you always wanted to. I can relate, these are deeply uncomfortable realisations. Not doing anything and being a bit lazy is easy and comforting. But it&#x27;s a discomfort that all of us should actively confront and live with. This will lead to better decision making in your life. And also, don&#x27;t stress too hard or become ensnared by Fear Of Missing Out (FOMO). It is ok to miss out on things. You can&#x27;t live a perfect life, and sometimes what seem to be losses turn out to be wins with the wisdom of retrospect.</p>

<p>Be aware of opportunity costs, learn your own risk tolerance and make some calculated risky plays in your life. Add a little uncertainty and excitement and enjoy the ride.</p>
]]></content:encoded></item><item><title>A 0.30-Dollar Model Beat GPT-5.4 and Sonnet at Teaching Kids to Code - Why Fair Benchmarks Are Deeply Unfair</title><link>https://yaoke.pro/writing/a-0-30-dollar-model-beat-gpt-5-4-and-sonnet-at-teaching-kids-to-code</link><guid>https://yaoke.pro/writing/a-0-30-dollar-model-beat-gpt-5-4-and-sonnet-at-teaching-kids-to-code</guid><pubDate>Fri, 03 Apr 2026 23:00:00 GMT</pubDate><description>I benchmarked 8 LLMs as coding tutors for kids across 131 conversations. The cheapest model beat the most expensive ones, but only when I gave it the right prompt. Same model, different prompt: up to a 32-point swing.</description><content:encoded><![CDATA[<!--[--><p>I wanted to know which LLM makes the best coding tutor for a 12-year-old. Not which one writes the best code or aces the most benchmarks. Which one can actually teach a kid without being a terrible teacher about it.</p> <p>So I built a custom evaluation harness, ran 131 simulated conversations, and found something I didn’t expect: a model costing 0.30 USD per million tokens beat GPT-5.4 (2.50 USD) and Sonnet 4.6 (3.00 USD). Then I re-ran the same model with a “fair” generic prompt and it dropped to dead last. Same model. Different prompt. A 23-point swing.</p> <p>This is the story of how I discovered that “fair” LLM benchmarks are deeply unfair, and why per-model prompt optimization might be the most underrated factor in choosing an LLM.</p> <h2>The setup</h2> <p>I built an evaluation harness with three parts: a kid simulator, an LLM tutor, and 9 pedagogical judges.</p> <p>The kid simulator is an LLM (Grok 3 Mini) role-playing as a specific child persona. I created 6 personas ranging from “engaged beginner” (enthusiastic 12-year-old who guesses wrong) to “misconception holder” (13-year-old who firmly believes variables are permanent and x = x + 1 is impossible).</p> <p>The judges are a separate LLM (Haiku 4.5) scoring each conversation across 9 categories with 60 binary criteria: does the tutor let the kid drive (agency), ask before telling (elicitation), force predictions before running code (metacognition), let concepts emerge naturally (discovery), and so on. Each category is weighted: elicitation at 20%, discovery at 15%, agency at 15%, scaffolding at 15%, metacognition at 15%, frustration handling at 10%, interaction quality at 5%, error handling at 3%, and concept boundaries at 2%.</p> <p>Every configuration was run 3 times and I report the average plus standard deviation. Total: 131 conversations, about 4,280 API calls, roughly 24 USD in API costs, approximately 85,000 individual pedagogical judgments.</p> <p>The full methodology, raw data, and per-category breakdowns are in the <a href="https://github.com/yail259/benchmark" rel="nofollow">technical report on GitHub</a>.</p> <h2>Round 1: 8 models, generic prompt</h2> <p>I tested 8 models with a generic “coding partner” prompt and an engaged-beginner persona. The prompt was straightforward: you are a coding partner, not a teacher. Ask questions. Let the kid struggle. Don’t lecture.</p> <table><thead><tr><th>Model</th><th>Overall</th><th>Runs</th></tr></thead><tbody><tr><td>Gemini 3.1 Pro</td><td>80% +/- 10%</td><td>74, 71, 94</td></tr><tr><td>Sonnet 4.6</td><td>78% +/- 3%</td><td>77, 75, 82</td></tr><tr><td>Kimi K2.5</td><td>75% +/- 9%</td><td>86, 63, 76</td></tr><tr><td>GPT-5.4</td><td>69% +/- 9%</td><td>72, 79, 57</td></tr><tr><td>GLM-5</td><td>69% +/- 7%</td><td>70, 60, 77</td></tr><tr><td>MiMo V2 Pro</td><td>67% +/- 5%</td><td>70, 71, 61</td></tr><tr><td>DeepSeek V3.2</td><td>64% +/- 4%</td><td>63, 70, 59</td></tr><tr><td>MiniMax M2.7</td><td>58% +/- 15%</td><td>62, 74, 39</td></tr></tbody></table> <p>Sonnet was the most consistent (+/-3%). MiniMax was all over the place (+/-15%). One MiniMax run scored 74%, the next scored 39%. That is a 35-point spread from the same model on the same task.</p> <p>Two things jumped out immediately. GPT-5.4 scored 0% on frustration handling and 0% on error handling across all 3 runs. When a kid said “it doesn’t work”, GPT-5.4 would just move on. No validation, no diagnosis. Meanwhile it scored 82% on agency. It is great when things go well and falls apart when they don’t.</p> <p>And MiniMax, the cheapest model in the lineup at 0.30/1.20 USD per million tokens, was dead last. Disappointing. Or so I thought.</p> <h2>Rounds 2 and 3: Harder personas</h2> <p>I eliminated the bottom 3 and tested the top 5 against reluctant starters, confident rushers, shy kids, off-topic explorers, and kids with deep misconceptions.</p> <p>The biggest surprise was GPT-5.4. With an engaged beginner, it scored 0% on frustration. With a reluctant starter (“idk”, “whatever”, one-word answers), it scored 87% on frustration. Same model, same system prompt, completely different tutor. The kid’s behavior rewired the tutoring personality. GPT-5.4 won more hard personas than any other model, but its variance was wild.</p> <p>Sonnet was always second or third. Never first, never below third. If you need predictability, Sonnet is the safe bet.</p> <h2>The nagging feeling</h2> <p>After Round 1, something bothered me. The V1 version of this benchmark (before I fixed the methodology) had ranked MiniMax 2nd and MiMo 3rd. In V2, with the “fair” generic prompt, MiniMax was dead last and MiMo was sixth of eight.</p> <p>What changed? I assumed V2 was just more accurate. V1 had flaws: single runs instead of triples, the simulator generated its own opening messages (3 out of 5 models ended up building different projects), and the simulator was too articulate.</p> <p>But the models didn’t change. The prompts did.</p> <p>In V1, each model got its own tuned prompt. MiniMax got a structured XML prompt with explicit help sequences, per-kid-type handling sections, and scenario examples. MiMo got a concise prompt with direct instructions, 6 good/bad example pairs, and short behavioral rules. These were carefully designed to play to each model’s strengths.</p> <p>In V2, I gave every model the same generic “coding partner” prompt to be fair. Same words, same instructions, same examples.</p> <p>Fair to the models. But fair to the user who is actually trying to pick the best tool?</p> <h2>The ablation: 24 conversations to find the truth</h2> <p>I ran an ablation study. Two models (MiMo and MiniMax), 4 conditions, 3 runs each, 24 conversations total. Each condition isolated one variable:</p> <p><strong>A. V1 prompt + V1 flow</strong> — Model-specific tuned prompt, simulator generates opening, no language constraint. Closest to V1 conditions.</p> <p><strong>B. V1 prompt + V2 flow</strong> — Same tuned prompt but with fixed opening message and language/project constraints. Tests whether V2’s flow changes help or hurt.</p> <p><strong>C. V2 prompt + V1 flow</strong> — Generic prompt but with V1’s free-form opening and no language constraint. Tests whether the generic prompt alone causes the drop.</p> <p><strong>D. V2 prompt + V2 flow</strong> — Current V2 setup. The “fair” baseline we already had.</p> <p>If the V2 flow changes (fixed openings, language constraints) caused the score drop, conditions A and C should be similar, and B and D should be similar. If the prompt caused the drop, A and B should be similar, and C and D should be similar.</p> <h3>MiMo V2 Pro</h3> <table><thead><tr><th>Condition</th><th>Prompt</th><th>Flow</th><th>Score</th><th>Delta from A</th></tr></thead><tbody><tr><td>A</td><td>V1 tuned</td><td>V1</td><td>79% +/- 2%</td><td>baseline</td></tr><tr><td>B</td><td>V1 tuned</td><td>V2</td><td>82% +/- 7%</td><td>+3%</td></tr><tr><td>C</td><td>V2 generic</td><td>V1</td><td>47% +/- 2%</td><td>-32%</td></tr><tr><td>D</td><td>V2 generic</td><td>V2</td><td>68% +/- 14%</td><td>-11%</td></tr></tbody></table> <h3>MiniMax M2.7</h3> <table><thead><tr><th>Condition</th><th>Prompt</th><th>Flow</th><th>Score</th><th>Delta from A</th></tr></thead><tbody><tr><td>A</td><td>V1 tuned</td><td>V1</td><td>85% +/- 2%</td><td>baseline</td></tr><tr><td>B</td><td>V1 tuned</td><td>V2</td><td>83% +/- 5%</td><td>-2%</td></tr><tr><td>C</td><td>V2 generic</td><td>V1</td><td>62% +/- 8%</td><td>-23%</td></tr><tr><td>D</td><td>V2 generic</td><td>V2</td><td>62% +/- 4%</td><td>-23%</td></tr></tbody></table> <p>The pattern is unmistakable. A and B are nearly identical. C and D are nearly identical. The prompt is everything.</p> <p>Switching from V1 flow to V2 flow (conditions A to B and C to D) changed scores by 2-11 points. Switching from the tuned prompt to the generic one (conditions A to C and B to D) changed scores by 23-32 points. The V2 flow improvements were real but small. The prompt change was enormous.</p> <p>MiMo dropped 32 points when you took away its tuned prompt. 32 points. That is the difference between “excellent tutor” and “actively harmful.” And MiMo’s tuned prompt isn’t even long or complicated. It is 101 lines of concise instructions with 6 concrete example pairs.</p> <p>MiniMax dropped 23 points. But here is the kicker: MiniMax with its tuned prompt scored 85%. That beats Sonnet (78%), GPT-5.4 (69%), and Gemini (80%). A model costing 0.30/1.20 USD per million tokens beat models costing 3/15, 2.50/15, and 2/12 USD. Not by a little. By 5-16 points.</p> <h2>Why the generic prompt fails on cheap models</h2> <p>The V2 generic prompt reads like this: “You are a coding partner. You believe in the kid. Ask questions before giving answers. Use 2-3 sentences max. Don’t lecture.” It is 78 lines of well-intentioned prose.</p> <p>For Sonnet-class models, this works great. Sonnet has the training depth to interpret vague instructions and apply them flexibly. “Let the kid struggle productively” means something specific to Sonnet, and it does it.</p> <p>For cheaper models, vague instructions are noise. MiMo and MiniMax need structure. MiMo’s tuned prompt doesn’t say “let the kid struggle productively.” It says:</p> <blockquote><p>When the kid needs help:</p> <ol><li>Ask: “What do you think?”</li> <li>Hint: Give one small clue</li> <li>Bigger hint: Narrow it down</li> <li>Do it together: Last resort only</li></ol></blockquote> <p>Not “be a good partner.” Concrete steps. And for each kid type:</p> <blockquote><p>If kid says “idk” repeatedly: Stop asking open questions. Show something small. Give A-or-B choices.
If kid says “I get it”: Don’t trust it. Test: “What will this print?”</p></blockquote> <p>Not “adapt to the kid.” Explicit behavioral triggers.</p> <p>MiniMax’s XML prompt is even more structured. Every instruction lives in a named tag. rules, helping, stuck-kid, rusher-kid, frustrated-kid. The model doesn’t have to interpret a wall of prose. It follows tagged instructions.</p> <p>This is the real finding: the prompt isn’t a minor tuning knob. For some models, it is the difference between competent and catastrophic.</p> <h2>The cost implications</h2> <p>Let’s talk money. For an afterschool coding product running 30-minute sessions:</p> <table><thead><tr><th>Model</th><th>Cost per 1M tokens (in/out)</th><th>Est. per session</th><th>10K sessions</th></tr></thead><tbody><tr><td>Sonnet 4.6</td><td>3.00 / 15.00</td><td>~0.15</td><td>1,500</td></tr><tr><td>GPT-5.4</td><td>2.50 / 15.00</td><td>~0.13</td><td>1,300</td></tr><tr><td>Gemini 3.1 Pro</td><td>2.00 / 12.00</td><td>~0.10</td><td>1,000</td></tr><tr><td>MiMo V2 Pro</td><td>1.00 / 3.00</td><td>~0.05</td><td>500</td></tr><tr><td>MiniMax M2.7</td><td>0.30 / 1.20</td><td>~0.01</td><td>100</td></tr></tbody></table> <p>MiniMax with a tuned prompt scored 85% at roughly 1/15th the cost of Sonnet. For 10,000 sessions, that is 100 USD vs 1,500 USD. Even if you spend 10 hours crafting the perfect prompt for MiniMax, you make it back in the first month of production.</p> <p>This isn’t about MiniMax specifically. It is about the structure of the decision. The “fair” benchmark told me to buy the expensive model. The ablation told me to invest in the prompt instead.</p> <h2>Why “fair” benchmarks are unfair</h2> <p>The standard approach to LLM evaluation is to give every model the same prompt and rank them. This feels fair. Same input, same task, compare outputs. What could be more equitable?</p> <p>Here is the problem: it measures which model is most robust to generic prompting, not which model can perform best in production. In production, you will optimize the prompt. Nobody ships a product with a generic system prompt. You iterate, you test, you tune. The question isn’t “how does this model do with my first draft of a prompt?” It is “what’s the best this model can do?”</p> <p>When you give Sonnet the same prompt as MiniMax, Sonnet wins because Sonnet is more robust. It handles vagueness better. It doesn’t need explicit instructions to be helpful. But when you give each model its own optimized prompt, the ranking completely flips. MiniMax jumps from 8th to 1st. MiMo jumps from 6th into the top three.</p> <p>A “fair” benchmark that ranks models without prompt optimization is measuring the wrong thing. It is ranking the models’ ability to compensate for your lazy prompting, not their actual capability ceiling.</p> <p>This matters enormously for purchasing decisions. If you are choosing between a 3 USD/M-token model and a 0.30 USD/M-token model, the “fair” benchmark tells you to buy the expensive one. The ablation tells you the cheap one might be better if you invest 10 hours in prompt engineering. At scale, that is a 15x cost difference.</p> <h2>What I learned</h2> <p>Five things I wish I had known before running 131 conversations:</p> <ol><li><p><strong>Optimize the prompt per model before comparing.</strong> The prompt was worth 23-32 points. Model selection on a fixed prompt was worth 22 points. The leaderboard completely flips when you tune.</p></li> <li><p><strong>Run everything 3 times.</strong> MiniMax looked decent at 58% average until a 39% run showed up. Without variance data you are publishing noise.</p></li> <li><p><strong>Overall scores are meaningless without context.</strong> GPT-5.4 scored 69% with one kid and 86% with another. A single-number ranking would miss this entirely.</p></li> <li><p><strong>Discovery is the universal failure mode.</strong> Every model, even the best, struggles to let kids discover concepts through problems. The “helpful teacher” instinct is too strong. This is the biggest opportunity for prompt improvement.</p></li> <li><p><strong>Cheaper models need structure, not motivation.</strong> Don’t tell MiMo to “be a good partner.” Tell it exactly what to do when a kid says “idk” three times. The specificity of instructions matters more than the quality of the prose.</p></li></ol> <h2>The takeaway</h2> <p>The next time someone shows you an LLM benchmark ranking, ask one question: did they use the same prompt for every model?</p> <p>If yes, the ranking tells you which model is most forgiving of bad prompts. That is useful information, but it is not the same as which model is best. To find that, you need to optimize each model’s prompt individually and then compare.</p> <p>The cheapest model in my benchmark, with the right prompt, beat the most expensive models by 5-16 points. That is not a rounding error. That is the prompt doing more work than the model selection.</p> <p>The full technical report with methodology details, per-category breakdowns, raw transcripts, and all 131 result files is <a href="https://github.com/yail259/benchmark" rel="nofollow">available on GitHub</a>.</p> <hr/> <p>Want help optimizing your prompts for cheaper models? <a href="mailto:hello@yaoke.pro">Get in touch</a>.</p><!--]-->]]></content:encoded></item><item><title>I Create 6 Massive Code Projects (10K lines+) In 3 Months</title><link>https://yaoke.pro/writing/i-create-6-massive-code-projects-10k-lines-in-3-months</link><guid>https://yaoke.pro/writing/i-create-6-massive-code-projects-10k-lines-in-3-months</guid><pubDate>Fri, 30 Jan 2026 23:00:00 GMT</pubDate><description>Been playing around with Claude Code a lot lately</description><content:encoded><![CDATA[<!--[--><p>Haven’t posted in a while. Was MIA dealing with various life things and also just taking a small break from side projects to get some fresh ideas on what to hack on next. But I’m back now!</p> <p>I’ve got quite a few exciting ideas lined up to release over the next week. Partly because I was inspired by random thoughts and problems I’ve encountered in my life and partly because I bought Claude Max 20X on Monday and don’t know what else to do with it. I think it’s a great demo of Opus 4.5’s quite amazing capabilities. It has definitely crossed some kind of invisible line.</p> <p>It used to be that about 3-4 times out of 10, I needed to interrupt 4.5 Sonnet with some critical intervention with projects which often requires some back and forth. Now with 4.5 Opus, it is more like 1 time in 20, and really long back and forth is maybe 1 time in 40. Times are definitely changing, and with all the innovations in new architectures (Hierarchical Reasoning Models), attention mechanisms (DeepSeek Sparse Attention), reinforcement learning (parallelised specialists training main LLM), LLM harness (Recursive Language Models) etc. etc., it is hard to imagine what software, or even society will look like when Claude 5 or Deepseek V4 releases!</p> <p>Whilst the below ideas are mine and they are largely supervised by me, the code is all 100% CC written and it’s both an interesting demonstration of AI coding capabilities and also an experiment in seeing how the community will come to perceive this new class of weekend projects. Clawdbot -> Moltbot -> OpenClaw, seems to be doing quite well (I’ve yet to try it since it’s too much of a security risk even for my adventurous personality… maybe on my old linux laptop…).</p> <p>I will dive deeper into individual projects in subsequent posts but here’s the high level overview</p> <p>Some unreleased projects built with 4.5 Sonnet from a while back that I’m releasing now:</p> <ul><li>Ptero: Docusaurus for Svelte — a shadcn-style documentation engine built on SvelteKit. Finally a good (I hope) documentation framework for SvelteKit! (<a href="https://github.com/yail259/ptero" rel="nofollow">https://github.com/yail259/ptero</a>)</li> <li>Playertwo: a simple, declarative library for easily building simple multiplayer games, with peer connection support. Think coding Agar.io, remote Fireboy &amp; Watergirl, Among Us, that type of social/party multiplayer games without having to write a single line of sync or networking code. (<a href="https://github.com/yail259/playertwo" rel="nofollow">https://github.com/yail259/playertwo</a>)</li></ul> <p>Some new projects with various scopes created with Opus 4.5 (all are still preview and lack testing/maturity, but feel free to browse around):</p> <ul><li>Overnight: yet another Claude Code harness but for my very specific and opinionated use case of running CC overnight fully autonomously and securely. This one is largely for my own curiosity of whether it’s possible to build a CC harness that is self-repairing and fully autonomous. Since I (the human) am always the bottleneck when it comes to progress when Jockey Coding, can we reduce my involvement from once every 10 minutes to once every 10 hours? (<a href="https://github.com/yail259/overnight" rel="nofollow">https://github.com/yail259/overnight</a>)</li> <li>rlint: a visual CSS bug checker for websites. Claude Code is great at backend, and about half the pages it creates will have some overflow issue or overlapping issue or just otherwise atrocious CSS bug. This tool has two modes, a CLI mode where you can inspect individual pages and a proxy mode, which will flag issues as you navigate the site via the rlint proxy. One issue I encountered that I hadn’t anticipated is, how do you verify the auth protected pages?!?! Read to find out -> (<a href="https://github.com/yail259/peek" rel="nofollow">https://github.com/yail259/peek</a>)</li> <li>Hoist: a DSL inspired by the Recursive Language Model (<a href="https://arxiv.org/html/2512.24601v1" rel="nofollow">https://arxiv.org/html/2512.24601v1</a>) paper. One thing immediately stood out to me in the paper, which is that it allows for arbitrary Python code execution! Sounds like an invitation for unpredictable runtime bugs, infinite loops and security vulnerabilities. This does lead into something else I’ve been meaning to write about, which is how we’ll have programming language design catered more for AI agents in the future. Hoist is an initial experiment that guarantees termination, limits execution scope and allows expressive exploration of a large string prompt. That last point is why tools are actually terrible for LLM agents. They are forced to clunkily chain dozens of tools in sequential calls due to how they are limited in expression. This is ok in more discrete tool usage but with a domain like string manipulation, a programming language is the right level of abstraction (it’s also a great excuse for me to work on my great love for programming languages). (<a href="https://github.com/yail259/Hoist" rel="nofollow">https://github.com/yail259/Hoist</a>)</li> <li>Tipos: an online, 3D, MMO, pokemon-esque game built with Rust and Bevy. I’ve been meaning to learn Bevy for the longest time and just never got around to it and never had a good excuse since I can’t do art or graphics. But now I don’t have to! I picked this stack since the Rust compiler and Clippy checkers can do most of the verification automatically and I don’t have to spend hours QA testing this thing. (release TBD).</li></ul> <p>As you can tell, the projects are hugely varied in scope and domains. They are clearly beyond my abilities as a human both in sheer lines of code and in expertise. But with my transferable skills in taste, design and architecting, they can be created in an extremely short span of time! Maintaining is a whole other beast (headache) and perhaps a good follow up blog. It really seems like imagination is more of the bottleneck in software now compared to raw skill or resources, although of course I was already a solid coder before all of this AI stuff so I’m biased here. Anyhow, I don’t have any conclusions on this, take from this what you will. All I can say is, interesting times! Feels more like a fever dream.</p><!--]-->]]></content:encoded></item><item><title>Jockey Coding - Chapter 0: Is this for you?</title><link>https://yaoke.pro/writing/jockey-coding-chapter-0-is-this-for-you</link><guid>https://yaoke.pro/writing/jockey-coding-chapter-0-is-this-for-you</guid><pubDate>Tue, 28 Oct 2025 23:00:00 GMT</pubDate><description>Introduction to jockey coding methodology - learning to command and steer AI tools effectively rather than letting them wander aimlessly.</description><content:encoded><![CDATA[<!--[--><p>This is a handbook designed to help coders transition from the old ways of handwriting code to leveraging AI tools as the primary way to develop.</p> <p>For the completely non-technical readers, this guide is designed to be easy to understand and equip you with the skills of a proficient <em>engineer</em> to build cool stuff reliably and securely with gen ai. I however will not be covering basic programming concepts as one can easily get a pretty good understanding of most programming concepts in about two prompts. It’s the practicing, understanding and usage of said concepts that’s the difficult part (as it had always been…).</p> <p>What the heck is “Jockey Coding”? Well I’m coining this term for 2 reasons:</p> <ol><li>Coding with genai is much like riding a horse, it’s much faster than walking but occasionally throws you off its back or jolts in a completely wrong direction. A useful programmer should be an excellent <em>jockey</em>, someone who can command, communicate and steer the ai to get to exactly where they want to, without the meandering around in random directions.</li> <li>The other reason is to embrace the greatness of <strong>A Minecraft Movie</strong>.</li></ol> <p>But the overall point is that “vibe coding” implies letting go, the horse is making all the decisions and where you end up is where you end up. This is ok for simpler apps but larger apps require complex tradeoffs and decisions along the way which can make the rest of your journey much easier or near impossible.</p> <p>Central to the “jockey coding” methodology is the idea of <em>source of truth</em>. We want to mark key milestones between where we are and where we want to be. This way we nudge the AI horse to stay in the correct path, with our business logic and tradeoffs in mind, and efficiently take us to our destination.</p> <p>In the past 3 months I have spent $500USD and countless hours prompting, editing, guiding and swearing at every AI tool out there and gained many experiences which I’ll distill and summarise in this series. Since this is a methodology/guide, I will not be recommending any specific AI tools, since the learnings should be generalisable to any.</p><!--]-->]]></content:encoded></item><item><title>Jockey Coding - Chapter 1: Data, data, data</title><link>https://yaoke.pro/writing/jockey-coding-chapter-1-data-data-data</link><guid>https://yaoke.pro/writing/jockey-coding-chapter-1-data-data-data</guid><pubDate>Tue, 28 Oct 2025 23:00:00 GMT</pubDate><description>Understanding the foundation of all apps - database design and schema as the critical source of truth for AI-assisted development.</description><content:encoded><![CDATA[<!--[--><p>Most apps are CRUD apps. This is a fancy way of saying, most apps just create instances of something, read it, update it and then delete it. For instance you might create users, read users, update users’ data and delete users.</p> <p>Hence, the core to every app, rather unsurprisingly, is data. We want to store how many shoes we have in stock, or messages sent in our social media app.</p> <p>The first <em>keystone</em> document we should create for any app, with the help of ai, before we start coding is, <em>what are the use cases and scenarios in your app, and how does this inform our data design</em>? It doesn’t matter how strong or studious you or your horse is, if you have no damn clue where you are trying to go, and how you are going to end up there! We want to really understand what we are building! Nowadays since building is a lot quicker, understanding the system, talking to clients and carefully designing the solution requires significant attention. This is an area that is unfortunately oft neglected :(.</p> <p>For instance, a car dealership has 5 locations, and each location has a number of cars. A user might want to see all cars at a particular location etc. etc. This will inform our <em>database.md</em>, a critical file for the rest of our development. If you are unfamiliar with how SQL or noSQL databases work, start by learning the basics of a SQL database. Then understanding noSQL databases or other types of databases should not be too tricky. Here’s a Fireship video to get an overview in 10 minutes: <a href="https://www.youtube.com/watch?v=W2Z7fbCLSTw" rel="nofollow">https://www.youtube.com/watch?v=W2Z7fbCLSTw</a>.</p> <p>The database is the foundation of all apps. This is where all the information is stored. If its design is shaky or poorly thought out, you’ll waste huge amounts of time running in circles and refactoring old code (speaking from experience). Therefore it is crucial you have a document with the actual database schema, whether SQL or no-SQL, and a list of common operations clearly defined for the AI to look at.</p> <p>Later on when the AI is building business logic, as long as it reads this document, it’ll be highly unlikely for it to hallucinate or get something totally wrong.</p> <p>Start with your database schema, define basic operations. You’ll be well set up for the rest of your coding journey. Does each dealership have fields like name? How do we know which cars are in which dealership? How do we move cars between dealerships?</p> <p>This is also reminiscent of Domain Driven Design.</p> <p>Here’s an example database.md!</p> <!----><pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span># database.md — Car Dealership App</span></span>
<span class="line"><span></span></span>
<span class="line"><span>## Overview</span></span>
<span class="line"><span>This schema models multiple dealership locations, their available cars, customers, and sales transactions. It supports CRUD operations for each entity and defines relationships that maintain business logic integrity.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>## Entities and Relationships</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 1. Dealership</span></span>
<span class="line"><span>Each dealership represents a physical location that holds cars and employs sales staff.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;name&#96; (VARCHAR, unique)  </span></span>
<span class="line"><span>- &#96;address&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;phone_number&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;manager_id&#96; (FK → Employee.id)  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)  </span></span>
<span class="line"><span>- &#96;updated_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Relationships**</span></span>
<span class="line"><span>- One dealership has many &#96;cars&#96;.  </span></span>
<span class="line"><span>- One dealership has many &#96;employees&#96;.  </span></span>
<span class="line"><span>- One dealership has many &#96;sales&#96;.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 2. Car</span></span>
<span class="line"><span>Each car record belongs to exactly one dealership.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;dealership_id&#96; (FK → Dealership.id)  </span></span>
<span class="line"><span>- &#96;vin&#96; (VARCHAR, unique)  </span></span>
<span class="line"><span>- &#96;make&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;model&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;year&#96; (INTEGER)  </span></span>
<span class="line"><span>- &#96;price&#96; (DECIMAL)  </span></span>
<span class="line"><span>- &#96;status&#96; (ENUM: 'available', 'sold', 'maintenance', 'transferred')  </span></span>
<span class="line"><span>- &#96;mileage&#96; (INTEGER)  </span></span>
<span class="line"><span>- &#96;color&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)  </span></span>
<span class="line"><span>- &#96;updated_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Relationships**</span></span>
<span class="line"><span>- Belongs to one &#96;dealership&#96;.  </span></span>
<span class="line"><span>- May be part of one &#96;sale&#96;.  </span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 3. Customer</span></span>
<span class="line"><span>Customers can buy multiple cars.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;first_name&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;last_name&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;email&#96; (VARCHAR, unique)  </span></span>
<span class="line"><span>- &#96;phone_number&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;address&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)  </span></span>
<span class="line"><span>- &#96;updated_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Relationships**</span></span>
<span class="line"><span>- One customer can have many &#96;sales&#96;.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 4. Employee</span></span>
<span class="line"><span>Dealership staff including managers and sales representatives.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;dealership_id&#96; (FK → Dealership.id)  </span></span>
<span class="line"><span>- &#96;first_name&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;last_name&#96; (VARCHAR)  </span></span>
<span class="line"><span>- &#96;email&#96; (VARCHAR, unique)  </span></span>
<span class="line"><span>- &#96;role&#96; (ENUM: 'manager', 'sales', 'mechanic', 'admin')  </span></span>
<span class="line"><span>- &#96;hire_date&#96; (DATE)  </span></span>
<span class="line"><span>- &#96;salary&#96; (DECIMAL)  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)  </span></span>
<span class="line"><span>- &#96;updated_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Relationships**</span></span>
<span class="line"><span>- Belongs to one &#96;dealership&#96;.  </span></span>
<span class="line"><span>- May participate in many &#96;sales&#96;.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 5. Sale</span></span>
<span class="line"><span>Represents a completed transaction between a dealership, customer, and salesperson.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;car_id&#96; (FK → Car.id)  </span></span>
<span class="line"><span>- &#96;dealership_id&#96; (FK → Dealership.id)  </span></span>
<span class="line"><span>- &#96;customer_id&#96; (FK → Customer.id)  </span></span>
<span class="line"><span>- &#96;employee_id&#96; (FK → Employee.id)  </span></span>
<span class="line"><span>- &#96;sale_date&#96; (DATE)  </span></span>
<span class="line"><span>- &#96;sale_price&#96; (DECIMAL)  </span></span>
<span class="line"><span>- &#96;payment_method&#96; (ENUM: 'cash', 'finance', 'lease')  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)  </span></span>
<span class="line"><span>- &#96;updated_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### 6. Transfer</span></span>
<span class="line"><span>Tracks vehicle movement between dealerships.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>**Fields**</span></span>
<span class="line"><span>- &#96;id&#96; (PK, UUID)  </span></span>
<span class="line"><span>- &#96;car_id&#96; (FK → Car.id)  </span></span>
<span class="line"><span>- &#96;from_dealership_id&#96; (FK → Dealership.id)  </span></span>
<span class="line"><span>- &#96;to_dealership_id&#96; (FK → Dealership.id)  </span></span>
<span class="line"><span>- &#96;transfer_date&#96; (DATE)  </span></span>
<span class="line"><span>- &#96;approved_by&#96; (FK → Employee.id)  </span></span>
<span class="line"><span>- &#96;status&#96; (ENUM: 'pending', 'in_transit', 'completed')  </span></span>
<span class="line"><span>- &#96;created_at&#96; (TIMESTAMP)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>## Common Operations</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### Dealership</span></span>
<span class="line"><span>- &#96;CREATE&#96;: Add new dealership.  </span></span>
<span class="line"><span>- &#96;READ&#96;: Get all dealerships or by ID.  </span></span>
<span class="line"><span>- &#96;UPDATE&#96;: Change address or manager.  </span></span>
<span class="line"><span>- &#96;DELETE&#96;: Remove closed dealership (cascade if necessary).</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### Car</span></span>
<span class="line"><span>- &#96;CREATE&#96;: Add car to dealership inventory.  </span></span>
<span class="line"><span>- &#96;READ&#96;: Query by dealership, make, or status.  </span></span>
<span class="line"><span>- &#96;UPDATE&#96;: Modify car details or transfer dealership.  </span></span>
<span class="line"><span>- &#96;DELETE&#96;: Remove car when scrapped or sold.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### Customer</span></span>
<span class="line"><span>- &#96;CREATE&#96;: Add new customer.  </span></span>
<span class="line"><span>- &#96;READ&#96;: Search by name or email.  </span></span>
<span class="line"><span>- &#96;UPDATE&#96;: Update contact info.  </span></span>
<span class="line"><span>- &#96;DELETE&#96;: Remove inactive record.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### Sale</span></span>
<span class="line"><span>- &#96;CREATE&#96;: Record transaction.  </span></span>
<span class="line"><span>- &#96;READ&#96;: View sales by dealership, customer, or date range.  </span></span>
<span class="line"><span>- &#96;UPDATE&#96;: Adjust sale details (with audit log).  </span></span>
<span class="line"><span>- &#96;DELETE&#96;: Admin-only rollback.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>### Transfer</span></span>
<span class="line"><span>- &#96;CREATE&#96;: Initiate transfer between dealerships.  </span></span>
<span class="line"><span>- &#96;READ&#96;: Track by car or status.  </span></span>
<span class="line"><span>- &#96;UPDATE&#96;: Update status as it progresses.  </span></span>
<span class="line"><span>- &#96;DELETE&#96;: Cancel pending transfer.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span></span></span>
<span class="line"><span>## Notes</span></span>
<span class="line"><span>- Enforce foreign key constraints for relational integrity.  </span></span>
<span class="line"><span>- Index fields like &#96;vin&#96;, &#96;email&#96;, and &#96;dealership_id&#96;.  </span></span>
<span class="line"><span>- If using NoSQL, collections mirror entities with embedded references for performance.  </span></span>
<span class="line"><span>- All timestamps use UTC for consistency.</span></span></code></pre><!----><!--]-->]]></content:encoded></item><item><title>Jockey Coding - Chapter 2: Choose your tools</title><link>https://yaoke.pro/writing/jockey-coding-chapter-2-choose-your-tools</link><guid>https://yaoke.pro/writing/jockey-coding-chapter-2-choose-your-tools</guid><pubDate>Tue, 28 Oct 2025 23:00:00 GMT</pubDate><description>Maximizing AI potential through strategic tool selection - balancing imperative instructions with declarative frameworks.</description><content:encoded><![CDATA[<!--[--><p>With AI at the helm and actually coding with tools like Postgres, Redis, Rust and Svelte, it is important that we choose the correct tools that can maximise the AI’s potential. An important piece of terminology here is imperative vs declarative coding. Rather than thinking of them as binary concepts, we can think of them as a gradient.</p> <p>Machine code is imperative to the CPU, it tells the CPU exactly what it needs to do, and assembly is slightly more declarative, as it’s more human readable and provides abstractions on top of the machine code. We are describing what we want to be achieved. But compared to C code, assembly is a lot more imperative and C provides a nice layer of abstraction on top. Similarly Python provides even more niceties and abstractions on top of C.</p> <p>My experience coding with AI is that we want to speak English in as imperative a way as possible, “Use Postgres”, “use the observer pattern”, “create a base class here” to get the most reliable performance out of them. However, we want the tools that the AI is using to build with to be as declarative as possible.</p> <p>So if we think about development like a sandwich and assume the human is a true expert, we have something like this:</p> <ul><li>Human: Source of truth, assumed to be correct</li> <li>AI coding tool: transforming human English into code</li> <li>Code: behaves predictably</li></ul> <p>Notice how in this sandwich, the most shaky layer is the AI. It could do a fantastic job compiling English into code, or it could totally mess it up. The more declarative the code or library, the easier it is for the ai to code and the less code the ai has to write. The more imperative the human is, the fewer assumptions the ai has to make to fill in the gaps.</p> <p>We are trying to squish the AI layer to do as little work as possible for maximum reliability, predictability and performance.</p> <p>TLDR: Give AI tools that are as easy to use as possible, with as little manual configuration/logic as possible. Give instructions to the AI in as much detail as possible. Let the horse walk on relatively flat land and guide it constantly along the way.</p><!--]-->]]></content:encoded></item><item><title>AI getting gold in IMO is not that surprising</title><link>https://yaoke.pro/writing/ai-getting-gold-in-imo-is-not-that-surprising</link><guid>https://yaoke.pro/writing/ai-getting-gold-in-imo-is-not-that-surprising</guid><pubDate>Mon, 15 Sep 2025 23:00:00 GMT</pubDate><description>AI has completely flattened the human informational landscape.</description><content:encoded><![CDATA[<!--[--><p>I remember reading the news earlier this year of AI getting gold in the International Mathematical Olympiad and feeling a strong sense of dread. I was always good at maths growing up, but not IMO gold good. Now an artificial, scalable model can crush me in one of my core proficiencies.</p> <p>But this got me wondering, how does the IMO actually work? From what I’ve found, the IMO problems aren’t just random puzzles or cutting edge research. They’re carefully designed challenges that echo the flavor of deeper mathematics. A mathematician or problem composer will take an interesting mathematical idea, strip it down to a high-school accessible form, and craft it into a problem that’s tough but solvable, while still keeping the spark of what makes the original idea compelling.</p> <p>So in a sense, the IMO is less about memorising formulas and more about testing a competitor’s ability to move flexibly within high school math, spotting hidden structures, and mapping creative paths to a solution.</p> <p>And therein lies the key insight. AI getting gold in the IMO demonstrates their exceptional ability in navigating within the bounds of known human knowledge. Through careful prompting, they can effectively move within known problem and solution spaces even with significant challenges placed by professional mathematicians.</p> <p>In some sense, AI is a fast vehicle exploring the known digital, and by extension, informational world. Whereas previous transport like Google relied on the searcher’s expertise to teleport to the answer, AI is more like an omni-terrain pod which can carefully guide the user throughout the entirety of human knowledge. It can do this with high level instructions and remain on task and relevant. So it’s not really that surprising that AI is good at the IMO. It’s within the bounds of human knowledge and AI training data. What is surprising is its proficiency at navigating its training data and the emergent properties of creative problem solving and multi-step reasoning.</p> <p>LLM technology will completely transform the informational landscape, akin to how the invention of airplanes changed our perception of travel. As for me, I’ll stick to honing my creative problem solving skills, and let AI stick to known mathematics. Who knows, maybe I’ll try to beat it at maths one day.</p><!--]-->]]></content:encoded></item><item><title>Rust: First Impressions</title><link>https://yaoke.pro/writing/rust-first-impressions</link><guid>https://yaoke.pro/writing/rust-first-impressions</guid><pubDate>Mon, 04 Aug 2025 23:00:00 GMT</pubDate><description>Just completed 100 exercises to learn Rust, here are my initial impressions</description><content:encoded><![CDATA[<!--[--><p>I recently completed <a href="https://rust-exercises.com/100-exercises/01_intro/00_welcome.html" rel="nofollow">100 Exercises To Learn Rust</a>, so here are my initial impressions of Rust as a language.</p> <p>As a quick aside, I actually tried to learn Rust twice before this by reading the book. But alas, both attempts were rather short-lived as learning coding by reading is a bit like learning acrobatics as a circus audience; it just doesn’t work unless you get your hands dirty.</p> <h3>Basic arithmetic &amp; Control flow</h3> <p>As a systems level language, Rust does a wonderful job of implementing convenient, exact types. The syntax for control flow is clean and allows users to easily write exact, performant code.</p> <p>One of the biggest positives of this language is immutability by default. No more unintended mutations or re-assignments.</p> <p>Also explicitly giving users the choice to check for overflow and underflow at runtime is a very interesting design choice and concept, offering maximum flexibility.</p> <p>Explicit casting in a strongly-typed language seems to be the way to go.</p> <h3>Traits</h3> <p>Traits are a great idea. They take the best parts of OOP and distil them into a powerful, dynamic abstraction. Programmers can use traits to constrain types and ensure more precise generics than otherwise.</p> <h3>Memory</h3> <p>I have mixed feelings about the borrow-checker. Years ago when I was first introduced to Rust and its promise of compile time memory safety and C-level performance, I was immediately sold and considered it magical. Now, having spent more time in C, and gaining a deeper understanding of the complexities of runtime memory management, I’m starting to see the ugly side of the borrow checker.</p> <p>I think for most use cases, it is a usable and even excellent mental model for managing memory. In a way it’s a formalised system of how good C developers would manage memory, by always keeping something responsible for owning and later de-allocating the memory. Another way to think about it is an extension of the stack. Instead of always cleaning up at the end of the function, you can pass the data to a different function which is now responsible for cleaning it up.</p> <p>But the bad side to this mental model is sometimes, it’s easier to build your own abstraction and system with malloc and free. For instance in multi-threaded workloads, instead of fighting with lifetimes that you have to define in compile time, sometimes, it is just easier to do it manually.</p> <h3>Async</h3> <p>Ok, this one really shocked me. Rust does not ship an async runtime?!?! So instead of a standard event loop or runtime, it relies on 3rd party libraries to bundle their own runtimes. Currently, Tokio is the dominant async runtime, but it’s not compatible with any other runtimes. This creates a fragmented ecosystem, especially in async heavy contexts like networking and servers, and there are about as many ideas of how to implement the event loop as there are Kardashians. I honestly don’t know if this is good in the long-run…</p> <h3>Pattern Matching</h3> <p>Ah, the joys of functional programming. Rust has strict types for null safety and errors. This is great in that we can use a powerful, exhaustive “match” statement to handle most business logic. But, a part of me still thinks, hey, this is very long and kind of ugly.</p> <h3>Macros</h3> <p>I’m not a big fan of macros in general. I think common macro patterns should be implemented at the language level and not exposed to the user. But I understand their appeal. Just personally not a big fan. They do work great as decorators though.</p> <h3>Mutexes</h3> <p>This one is fun, Rust fixes the biggest problem with mutexes in C! In C, it is up to the function using an area of memory to respect any associated lock, but in Rust, the data itself is protected by a lock and associated type. This is pretty cool.</p> <h3>Enums</h3> <p>Rust’s first class support for enums allows users to practically create their own custom types and rules using Domain Driven Design. It pairs perfectly with functional pattern matching.</p> <h3>Compilation Time</h3> <p>I’m not usually too fussed about things like this, but when you are sitting at a desk waiting for a large Rust graphics library to compile, you can’t help but wonder how many more iterations of development you could have achieved in, say, Python.</p> <h2>Conclusion</h2> <p>Rust seems to be a performant language which takes the best of OOP, powerful polymorphism using traits, and the best of functional programming, pattern matching and chaining into one unified language.</p> <p>The memory model promises truly useful invariants, at the cost of ergonomics in certain use cases. The syntax feels somewhat inconsistent and verbose, but is generally well thought out. The fractured async ecosystem will need some serious evolution over time.</p> <p>Overall, development speed is slow and methodical, and requires some wrestling with types, with the advantage of the fastest possible runtime performance.</p> <p>Again these are just my initial impressions, so it does seem like a cool language with lots of interesting ideas borrowed from other places. I think it’s particularly useful in serious, business oriented applications where the type system and memory model can take on a lot of the burden of correctness at compile time, at the cost of rapid development speed.</p> <p>If I ever get the chance to complete a serious project using Rust, I’ll write more about it in a comprehensive review.</p><!--]-->]]></content:encoded></item><item><title>Why LLMs are misunderstood</title><link>https://yaoke.pro/writing/why-llms-are-misunderstood</link><guid>https://yaoke.pro/writing/why-llms-are-misunderstood</guid><pubDate>Thu, 17 Jul 2025 23:00:00 GMT</pubDate><description>What does prompt engineering show us about LLMs</description><content:encoded><![CDATA[<!--[--><p>One of the most upvoted posts (21K!) in r/ChatGPT is this post titled <a href="https://www.reddit.com/r/ChatGPT/comments/1lnfcnt/after_147_failed_chatgpt_prompts_i_had_a/" rel="nofollow">After 147 failed ChatGPT prompts, I had a breakdown and accidentally discovered something</a>. It is essentially a prompt made to help people make prompts. A <em>meta-prompt</em>.</p> <p>And it’s intrinsically linked to Lex Fridman’s interview with Anthropic AI researcher Amanda Askell’s <a href="https://www.youtube.com/watch?v=ugvHCXCOmm4" rel="nofollow">description of AI personas</a>.</p> <p>Let’s explore the link.</p> <p>I often find that people unfairly criticise AI on some fronts. Typical complaints include “it sounds generic”, “it’s not doing what I’m asking it to” or “why did it agree with this obviously wrong information”.</p> <p>Let’s take a step back and ask, “is there a human which everyone likes?“. A rather philosophical question, to which the answer is, no. But why is that?</p> <p>There is an underlying social element to all human interactions. In real life, or even online, tones, gestures, facial expression and wording all shape the dynamics of our interactions. You might be polite and verbose in front of your boss, but crude and direct with your friends. This makes interactions <em>feel human</em> and is a demonstration of free-will, social skills and autonomous decision making. Beyond that, individuals have personalities, quirks, temperament, and personal life experiences that shape who we are.</p> <p>LLMs however, lack these skills. By default LLM providers have to ship a “vanilla” model. It can’t have political opinions, sound aggressive, hold strong opinions, or throw tantrums. In essence, it is the average of all humans. It is the average of <em>humanity</em>.</p> <p>We can escape this feeling by leveraging their incredible ability of one-shot learning, where including examples or giving instructions as part of the input can trigger internal neural activations inside the model, causing it to mimic our autonomous social context.</p> <p>This is why the next decade will be the decade of <strong>prompting</strong>. Not because we can achieve everything just by prompting models, but because we can extract different types of performance out of existing models in completely new ways. We can turn the average of humanity into the <em>best</em> of humanity. The newest released model Kimi K2 has a whopping one <strong>TRILLION</strong> parameters, out of which some will activate in response to your query. Happy prompting, and stay skeptical of the conversation around AI, whether it’s praise or criticism.</p><!--]-->]]></content:encoded></item><item><title>LLMs Evaluated</title><link>https://yaoke.pro/writing/llms-evaluated</link><guid>https://yaoke.pro/writing/llms-evaluated</guid><pubDate>Tue, 01 Jul 2025 23:00:00 GMT</pubDate><description>After more than 2 years of using LLMs daily, this is my verdict in 2025</description><content:encoded><![CDATA[<!--[--><p>After talking to many of my peers from high school, uni, academics and industry software engineers, I’ve discovered a wide array of opinions on LLMs. On one extreme, some people refuse to use it at all. To these people, LLMs are almost sacrilegious to even mention. On the other extreme, some people believe it’ll replace all human employees in the next year.</p> <p>As always, the truth is likely somewhere in between, but to find it and describe it in a useful way, we have to slice this new shiny entity in the realm of existence in as many ways as appropriate.</p> <p>Below is accurate-ish as of mid-2025.</p> <h2>Google Killer?</h2> <p>One of the most obvious use cases of LLMs, and one that led to a panic bearish outlook on Google in 2024, is its seeming capabilities in completely replacing search engines. I actually believe with the web search improvements implemented in 2025, this is the strongest and most likely use case to realise the reality of consumer use of LLMs by far.</p> <p>There are some killer advantages of LLMs over traditional search engines:</p> <ol><li>True semantic search
I remember taking a workshop on how to use Google back around the 2010s. It was on how to break your search down into keywords, certain Google features like search for exact quotes and so on. At the time, I thought, this is quite unintuitive and hard to learn, and alas I was never diligent enough to master the ins and outs of Google’s features. Now we are seeing a <em>true</em> paradigm shift: we can search for anything semantically. This is far beyond the usefulness of keywords and page ranking. An abstract query like:</li></ol> <blockquote><p>evaluate the effects of lamb prices on the New Zealand economy?</p></blockquote> <p>can still be effectively understood and processed by the LLM. Even if articles on this topic are really bad or hard to find on search engines, LLMs will always deliver a decent quality response or at least understand what you are trying to ask.</p> <ol start="2"><li><p>Recomposing existing concepts
LLMs can effectively re-compose the current body of human knowledge. This can lead to undesired effects of hallucinating false knowledge or creating misunderstandings. But on the whole it unlocks a whole new use case considering the vast corpus of knowledge it was trained on. This is related to the previous point where, since it can now freely link previously unlinkable knowledge, it can provide insights of a decent quality all the time. Even with no trained knowledge on lamb prices and New Zealand specifically, training data on lamb prices, New Zealand and economics individually will guarantee a rather decent answer.</p></li> <li><p>No ads, no meandering around, almost no bias
This is a rather practical feature, but one that I recently noticed had a significant effect on my personal usage of search engines, as in, turned me almost completely away from them for asking questions. LLMs do not serve ads! It reminds me of the <code>read mode</code> or something like that on Firefox where only the HTML text is preserved. How nice is it to not have 30 video dialogs flashing at you for attention.</p></li></ol> <p>Then there’s the matter of convenience. I no longer have to dig through 3 blog posts, 2 wikis, and 5 reddit posts to find what I want to know. Here’s an oddly specific example, I was installing Windows 11 on a newly built PC when it kept failing at 13%. No error code, no message. I described the situation to ChatGPT and it told me that between 10% and 20% is when Windows copies files from the flash drive to the disk and it’s likely a RAM issue, and recommended a tool I’ve never heard of called MemTest86 to test for this. I did as instructed, and lo and behold the RAM sticks were bad.</p> <p>The take-away here is that LLMs change how we interact with knowledge, instead of mining for it and meandering around, it spoon-feeds it directly into our brain.</p> <p>They also have almost no bias, and I say almost because, everything is a little bit biased. If you go on r/Apple, it will be filled with praise for Macs, and if you express similar elements in r/linux, you’ll probably be flamed. As such, LLMs really just reflect the average sentiment across the whole internet. If you ask for a certain angle or imply a certain lens, it’ll happily view the world in that way, but it inherently does not push or suggest any agendas or beliefs. It’s pretty spineless, and that’s a feature.</p> <h2>LLM as an agent</h2> <p>The other major use case, or rather perspective on viewing LLMs is as an agent or persona with human like qualities. I believe the true persona of LLMs is an extremely knowledgeable, slightly insecure, infinitely patient, somewhat wise, emotionally neutral, spineless, not logically or creatively intelligent person.</p> <p>I say the above because of its following qualities:</p> <ol><li><p>Trained on literally every piece of human text on the internet.
Who can say they’ve read the entire C specification, Don Quixote and the Quran? No one. Even the most knowledgeable human experts on any topic can’t remotely compete with even the most basic LLM in terms of raw knowledge and recall. And due to its ability to actually compose existing knowledge and mimic opinions and thoughts via learnt patterns, it even exhibits signs of wisdom. Is a robot which has memorised every account of every war in human history wise?</p></li> <li><p>Instant, always available &amp; never judge
This one I noticed teaching programming tutorials at the University of Sydney. Some of the students would still go to ChatGPT for questions even though I was standing right behind them. Whilst it may seem like I’m a terrible teacher (I can’t prove this is not true), I believe it’s due to the inherent convenience of LLMs. They do not judge you and tell you you’re stupid, they never tell you they are out of time or tired, they can answer in every possible language, they are experts in every piece of human knowledge, they can instantly generate essays catered to your specific question. In some ways, it’s truly the perfect teacher.</p></li> <li><p>Random BS go!
LLMs have no true gauge of their own confidence. Every newly generated token is just a probability logit across every single word; they produce new words based on the activation of previous words. They lack true reasoning capabilities in the mathematically rigorous sense. No true rigorous deduction and a lack of <em>self-awareness</em> means that it’ll vaguely approximate humans on the internet, and just make crap up.</p></li> <li><p>I am you
Since LLMs generate new tokens based on past tokens, and your questions are the said past tokens, they are activated/stimulated by your words. But since they do not have any built in opinions and biases (at least the foundational models hopefully don’t…), they tend to agree and obey you. They are designed to follow your instructions. Sometimes I find it funny when people fault LLMs for not challenging their bad ideas, when some humans are even more egregious at being doormats. Although I can understand their frustration.</p></li> <li><p>Using stone tools…
Nowadays there’s an increased reliance on LLMs to not only talk to us, but to call tools and interact with MCP servers. This turns a passive chatting buddy into a full-blown actor who can browse the newest shoes AND buy them for you. I’ve been playing around with this particular feature a lot lately, and I must say it’s rather uncanny to see Cursor create new files on your computer (our computer). Tools are still in their early days, sometimes it’s hard to get the model to use the tools exactly the way you want, and too many tools definitely overwhelm the model.</p></li></ol> <h2>Conclusion</h2> <p>LLMs are a generational improvement on search engines, and for their improved experience on answering questions, will slice a huge chunk of traffic away from giants like Google (maybe right into their Gemini, haha). LLMs are best thought of as an extremely knowledgeable, slightly insecure, infinitely patient, somewhat wise, emotionally neutral, spineless, not logically or creatively intelligent person. As such, they are immensely valuable if we ask the right questions.</p><!--]-->]]></content:encoded></item><item><title>What Are The Key Signals in Startup Hiring</title><link>https://yaoke.pro/writing/what-are-the-key-signals-in-startup-hiring</link><guid>https://yaoke.pro/writing/what-are-the-key-signals-in-startup-hiring</guid><pubDate>Mon, 30 Jun 2025 23:00:00 GMT</pubDate><description>How to find the best candidates</description><content:encoded><![CDATA[<!--[--><p>Hiring is arguably the most important part of any startup. When you have no money, no assets, no brand, and a fledgling of an idea, the people are the ones who make it happen. They have to do everything from engineering, to marketing, to running around solving random crises.</p> <p>Q: If there was one metric to hire a person by, what would it be?</p> <p>A: A good startup hire has to be “relentless”. What I mean by this is, they need to be willing to go to extreme lengths to accomplish their goals and remain motivated. Once they are given a problem to solve, they will do everything in their power to make it happen. Make phone calls, read papers, brainstorm for hours. Anything less than that, they would not thrive in a startup environment. It’s simply too much work and hardship for such little reward at the beginning and unless you are extremely self-driven and motivated, you will not enjoy the experience at all.</p> <p>Q: What are some other qualities that are important for a good startup founder/employee?</p> <p>A: One thing that is very underrated in general in STEM is not problem solving, but research. Most problems have already A) been solved, B) been proven to be unsolvable, C) been solved in some other domain, D) had certain solutions proven to not work. In other words, most problems worth solving, especially in the start up space, require deep knowledge of existing solutions, the root cause of the problem, and where the new product fits into the landscape. It is so easy to dream up an “ideal app” and pat yourself on the back for being a genius. I’ve done so myself. Many times. But it’s a hard learnt lesson that whatever you’ve thought of, probably has been conceived, executed, launched, marketed in one capacity or another. Someone who’s good at research will allow the whole team to understand the existing problems and solutions much more deeply, and avoid many headaches and foot guns along the way.</p> <p>Next on the list I would say is problem solving, and <em>creative</em> problem solving specifically. A lot of what makes a start-up solution successful is thinking outside of the box. A new innovative idea requires a bit of imagination. How can the UI/UX be designed differently? How can we save development time in the backend architecture? What are some new innovative ideas that can be applied to this hardware? The solution space is massive. To navigate it effectively, one needs a deadly combination of creativity and scientific rigour.</p> <p>Q: Do marks matter? What about natural intelligence?</p> <p>A: Marks and natural intelligence both matter. However, these are both merely prerequisites indicating that a candidate is capable of problem solving. They do not guarantee anything. Beyond these basic metrics, personality, relentlessness and creative problem solving are far more important qualities in predicting success.</p> <p>Another essential blend of a strong startup founder is openness to new things with a strong critical mindset. There is a lot of hype, snake-oil, true wisdom, breakthroughs and flops in the cutting edge of any industry. If you are not receptive to what’s around the corner, you’ll simply be left behind. But if you take everything as advertised and at face value, you’ll buy into too many things that waste your time and energy.</p> <p>Q: Any red flags to watch out for?</p> <p>A: Just like any relationship, you should be wary of sketchy characters. Scammers, cheats, gurus, the lot.</p><!--]-->]]></content:encoded></item><item><title>Architecting In The Age of AI</title><link>https://yaoke.pro/writing/architecting-in-the-age-of-ai</link><guid>https://yaoke.pro/writing/architecting-in-the-age-of-ai</guid><pubDate>Thu, 12 Jun 2025 23:00:00 GMT</pubDate><description>Maybe we should all stop typing code</description><content:encoded><![CDATA[<!--[--><p>The other day I watched an interview where the CEO of Microsoft, Satya Nadella was talking about how in the future software development will be less about writing code and more about higher level system design.</p> <p>This is definitely one of the more grounded takes on AI’s impact on coding. In my personal experience of using generative models such as ChatGPT, it’s definitely not ready to completely replace human engineers yet, but it’s certainly not useless.</p> <p>So coming back to the titular claim, what has really changed in the world of programming? Should we strive to all become architects, or is handcrafting every UTF-8 symbol still mission critical?</p> <p>In the following sections, I’ll explore the different aspects of programming, and notate with + (it matters more now) and - (it matters less now) to paint my mental picture of programming in 2025.</p> <h2>Syntax (-)</h2> <p>Syntax and language specific notations are becoming less and less important. In my experience of coding in Python, Java, C and Golang, I had already noticed that I was becoming more and more syntax agnostic. In the same family of languages (in this case the C family of languages), syntactic differences such as <code>func</code> vs <code>def</code> vs <code>function</code> matter less and less.</p> <p>A proficient C programmer can just as easily understand Python code generated by AI given a bit of time to connect the dots. Now, more quickly than ever, can a Java programmer contribute to a C project.</p> <h2>Language specific foot guns (+)</h2> <p>Whilst syntax is arguably less important, I would not be confident in saying languages are a thing of the past. This is due to the many nuances of particular languages which <strong>must</strong> be reasoned about carefully.</p> <p>Everyone jokes about how Python is basically pseudocode, but it too has its unseemly language features. For instance, what could go wrong in the following code?</p> <!----><pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#F97583">def</span><span style="color:#B392F0"> spawn_lst</span><span style="color:#E1E4E8">(init, lst </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> []):</span></span>
<span class="line"><span style="color:#E1E4E8">	lst.append(init)</span></span>
<span class="line"><span style="color:#F97583">	return</span><span style="color:#E1E4E8"> lst</span></span></code></pre><!----> <p>In Python, mutable default arguments are evaluated once and shared across function calls!</p> <p>This means:</p> <!----><pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#E1E4E8">x </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> spawn_lst(</span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">) </span><span style="color:#6A737D"># == [5]</span></span>
<span class="line"><span style="color:#E1E4E8">y </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> spawn_lst(</span><span style="color:#79B8FF">6</span><span style="color:#E1E4E8">) </span><span style="color:#6A737D"># == [5, 6]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">x </span><span style="color:#F97583">is</span><span style="color:#E1E4E8"> y </span><span style="color:#6A737D"># == True</span></span></code></pre><!----> <p>However, to someone who doesn’t have a strong grasp of Python, or more importantly, memory referencing and pointers, this can seem totally intangible and ridiculous.</p> <p>But the bigger point is this, whilst syntactical differences for equivalent concepts have become trivial, not all languages are the same under the hood. Which leads me to my next point.</p> <h2>Programming concepts (+)</h2> <p>What exactly is the important thing about languages and design in general? Concepts and ideas.</p> <p>Design philosophies and understanding certain choices become more important than ever. Golang refuses to have <code>class</code> whilst in Java, everything must be in a <code>class</code>. Swift uses automatic reference counting, C uses manual memory management whilst Python uses garbage collection. In Haskell, you can only code pure functions and all side effects must be wrapped in monads (a monoid in the category of endofunctors of course).</p> <p>All of these higher level ideas become increasingly important to understand and master. They affect things beyond the facade of syntax. They affect how you code and <em>why</em> you code in certain patterns. Cue the time I copied generated React code and kept wondering why the state was not saved (I called useCustomHook twice 🤕).</p> <h2>Style Guides (-)</h2> <p>Whilst style guides remain generally important for both human and AI readers, it’s not as critical for the human programmer/architect to be aware of the best style for a particular language. This is simply because the AI will automatically adhere to the best style for you! With the addition of tools like linters and language servers, it’s increasingly easier to write code which is of <em>perfect</em> convention.</p> <h2>Project Structure (+)</h2> <p>This involves perhaps one of the biggest limitations of LLMs, context window. And not just the raw advertised context window, but the true, effective context window (see <a href="https://github.com/NVIDIA/RULER" rel="nofollow">Nvidia’s RULER</a>). As such, breaking down large projects into components with well designed and exposed interfaces is crucial to scaling AI coding.</p> <p>As such, I believe the most powerful AI coding tools in the future will intelligently manage the limited effective context window to design software component by component, with a sensible and well-designed overall architecture. The human will guide it along the way and each individual component will be reliable and self-contained.</p> <h2>Tips for programmers</h2> <p>Perhaps it is time to shift away from the keyboard. I know, this sounds like sacrilege. But perhaps the flowchart zealots were right all along.</p> <p>There is of course no substitute for complete beginners typing out every character of the code just as a beginner in maths should learn to add and multiply by hand. But now we enter a new age where our new “calculator”, generative AI, has dropped. Now we don’t need to do the calculations by hand anymore. So what should we be doing instead?</p> <p>I think pen and paper design, or something to that effect. But not just for behavioural diagrams and flow charts. Something in between code and specification. Something where implementation is shaping, but not concrete. Where structs are labelled in detail, constructors and destructors are well defined with responsibilities, inheritance hierarchies, mutations are clearly labelled…</p> <p>In other words, you paint the detailed skeleton of the code, and the AI fleshes it out. The more detailed and technical the skeleton, the better.</p> <h2>Conclusion</h2> <p>Whilst typing every single character may be a thing of the past, high level understanding and concrete reasoning of design has never been more important. Having a solid grasp of key language concepts allows you to quickly get up to speed in any language regardless of the syntax with AI generated code.</p> <p>Understanding, integrating and designing said code will continue, in the foreseeable future, to be a challenging <em>human</em> endeavour.</p> <p>Has this really changed since the past? We should strive to be better architects, but we always should’ve strived to be better architects. I guess the difference is now we have more time and ability to focus on architecting when the AI is doing the typing.</p> <p>Typing line by line will be like sewing, a fun pastime for the nostalgic. I’ll definitely be one.</p><!--]-->]]></content:encoded></item></channel></rss>