Monday, August 25, 2025

Dead Internet Theory

Anchorage in Summer...
The fear of AI replacing software engineers comes a lot across our discussions. The issue I see is more of a self-fulfilling prophecy. Students regressing to "vibe coders" and using shortcuts, rather than getting fundamentals. Such behaviors could make them easily replaceable by AI or more likely by those who don't even have a CS degree. An enthusiastic manager may decide to "vibe code" themselves, rather than hiring a fresh CS graduate to vibe code for them.

On the other hand, if the CS graduate is very talented and knowledgeable in their fundamentals and latest technologies, they may become the ones who build the AI/LLM tools. After all, we still need CS folks to build those AI tools. Those tools don't build themselves. At least not yet.

Another argument that favors CS degrees are, at least for now, LLMs are good at individual programs - but they are not sufficiently sophisticated to configure and deploy complex systems. You can write some Python (or Java, Erlang, Go, ...) code with LLM. But it is still not possible to build a hybrid cloud architecture with load balancing and security policies configured. I can compare it with dishwashers. Dishwashers may wash the dishes - but you still need to do the initial cleaning (don't throw dishes in with huge chunks of food waste in them), loading, and unloading. These tools may have made our life easier - but did not eliminate house work completely (sadly).

Similarly, the AI/LLM tools may help eliminate redundant, repetitive, and boring tasks. But they won't replace the software engineers completely. But, if our undergraduates let the AI/LLM replace them, it will replace them (individually, not collectively). I emphasize in all my courses that students should see the AI/LLM tools as an extension to themselves, rather than a replacement to themselves.

Sadly, some students tend to misuse AI/LLM in places where it won't even function properly (for example, to summarize videos; ChatGPT cannot even watch a video!)

Another point is, coding is not the only job of a software engineer. It may be just 10 - 50% of the time. Rest of the time goes with attending meetings, making presentations, design decisions, testing, ... These cannot be replaced by vibe coding after all...

I also wonder... if humans stopped making content (blog posts, videos, drawings, audio recordings, ...) AI will continue to train on the slop it itself produced and keep regurgitating recycled slop. YouTube comment sections, Twitter feeds, LinkedIn comments, even YouTube videos themselves are AI slop. We are getting close to the dead Internet theory. Hopefully, it is just a minor, temporary phase.

Thursday, August 14, 2025

Academia and how it distorts your perception of age

9-month academic contracts and
a little vacation in Barbados
Being a student can be fun. Yes, childhood and school days are fun. But I am not talking about that. I am referring to the university life. Especially if you do not have to earn separately for that. A lot of people, including me, lived with their parents during their undergraduates. It is very common when your university is in the same city where you already lived with your parents or family. That makes the undergraduate life more of an extension to the high school. For me, the real fun started when I went to grad school - two years after the graduation from my undergraduate program. For most grad students, one year gap between their undergraduate studies and grad school is inevitable. Because, you apply when you are done with your undergraduate program (usually in the fall semester) and that means, you are accepted for the following fall - making it a year-long wait. Some choose to apply for grad school while they are still in their final year of their undergraduate program. Works best if they already are extra-ordinary. But does not work for most. However, working a little before applying for grad school can be good idea if your grad school is going to be in a foreign country. So I worked for one year before applying for grad school. That gave me a two years of job experience in between my undergraduate program and grad school. In Sri Lanka, school years is meant to be 1 - 13. It shifts the US K-12 system by 1, with kindergarten becoming grade 1. So, there is no additional time. But our A/L exams, at the time I was a student happened in next year August (a delay incurred by 2004 tsunami) and then the university entrance was following year's August. Two extra years added! I was among the youngest in my undergraduate batch and I was among the oldest during my MSc... because of these two additional years and that I had worked for two years - compared to 0 to 1 year of the others.

Then, in Europe, compared to countries like Australia and the US, you usually must do a masters before starting a PhD. However, their BSc programs are usually 3 years compared to our 4 years. Oftentimes, in the EU, students do an integrated MSc of 5 years, where they complete their BSc coursework in 3 years and do the MSc courses in the last two years. For me though, that was a 2 years of MSc followed by a separate PhD program. In the US, MSc is often coupled with the PhD. You could start your PhD with just a BSc, and you could quit with an MSc in around two years if you have completed the necessary credits, on your way to acquire your PhD. I went on to do a PhD in Europe (Erasmus+ for the win!). I loved it. I was not in a rush. I spent five years to complete my PhD. I had scholarship after all. It allowed me to live comfortably. While US grad programs usually last up to 5 years, my MSc + PhD was 7 years. This added two more years, compared to my US peers.

I went ahead and completed a postdoc for 4 years, before moving on to my tenure-track position. In the US, a postdoc is usually considered a trainee. Or even a "student." Being referred to as a "postdoctoral student" was annoying to me. Postdocs are not very common in computer science. I did mine in biomedical informatics, as part of the school of medicine. Postdocs are more common in medicine after all. They last up to 5 years. Anyway, compared to many of my CS peers in tenure-track positions, my postdoc added 4 more years. So, I started my tenure-track position after a whole ten years, compared to someone who entirely studied in the US and then went on to their tenure-track position without spending time in a postdoc position. A decade spent extra indeed: one extra school year, one gap between school to undergrad program, two years working in middle, two extra years during MSc + PhD, and the four years of postdoc! I started my tenure-track position at 36. This is basically the early career in the academia, whereas, one in IT industry in this age will be in a mid-senior level as an engineer director or manager. The tenure-track assistant professor position lasts up to 6 years before you get tenure and get promoted to associate professor. These "early-career" years give you some benefits - such as additional training opportunities and grants targeting just you! You are young again, while you are heading towards tenure and (first) promotion in your life, in your early 40s! Fine, I just admitted I spent a whole decade with the slow academic progress due to my Sri Lanka -> Europe -> US migrations and long years spent due to these circumstances. But I tend to believe academia in general makes you feel younger since you are early career while those who went to industry are well into their mid-career. I know there are goods and bads in how this distorted perception of age. That probably is for another post.