🔥 It’s not just fascination — it’s an obsession. 🔥
Lately, I’ve been on a journey (yes, a journey 🚀) to write like AI. Not just write with it — write *like* it.
This means: 💥 Starting every post with a high-impact one-liner. 🏑 Using em-dashes — this punctuation, “—” — as many as four times — in a single sentence! 🔄 Not just stating things outright — starting with the negative, then escalating into hitherto unparallelled levels of hyperbole. 🤡 Using emojis as bullet points. ✅ Leaving **all kinds of Markdown** in my posts accidentally when copying and pasting. 🗺️ And — of course — calling everything a journey.
It’s not just about automation. It’s about amplifying impact. It’s about unlocking potential. It’s about showing up authentically while sounding completely manufactured. 🤖💡
Am I the problem? Possibly.
Will I stop? Not until I’ve crafted the perfect post that’s not just content – it’s connection.
Since my last post, I’ve settled on Claude Code for AI coding. Pedagogical questions aside, I seriously have not had this much fun playing with new tech for a while. My Git commit history is currently filled with random side projects I’ve put off for years, which I now “work on” in between classes. It’s exhilarating, and the exciting part is how fast the tech — and hence possibilities –* are growing.
(I got tired of Claude telling me “You’re absolutely right!”, so I told CLAUDE.md to respond in Singlish.)
* Unfortunately, I also now have to use two single-dashes instead of my favourite em-dash to not sound like AI. Screw you, AI!
Some thoughts on coding with AI (or, that awful, awful name, “vibe coding”):
It’s my kid’s PSLE year*, and I got bored of reading spelling words to him.
So I thought, why don’t I write an app for that?
45 minutes later, I had something fully-functional — not because I’m fast, but because I used Cursor (pictured). AI coding tools like Cursor, GitHub Copilot, and Windsurf can help programmers write full code, in-editor, soaking in the full context of the existing codebase.
This is different from “asking ChatGPT” because of the in-editor and full-context parts. In the “bad old days” of… 1 year ago, I’d have had to copy my code over to ChatGPT, give the AI context about what language and framework I was working with, get some code back, and hope that the generated code was easy enough to just plug back into my codebase somewhere. So much cognitive overhead!
This new tech, however, is remarkable; I really just ask for a feature, get the code inserted into my project. I check if it works, request some modifications, and repeat the process. AI researcher/influencer Andrej Karpathy calls it vibe coding:
I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it.
This is mind-blowing, and poses all kinds of new and frightening questions for programming educators. For my Swift Accelerator app development class in particular, I realised that the app I “made” in 45 minutes was comparable to what they’d take 2 weeks to struggle through. Wouldn’t it be better for students to have a working product quick, and then iterate on it? We could just teach students the basics, then get them to “vibe-code” their way to awesome apps.
I posed this thought to my co-instructors at Swift Accelerator Jia Chen and Sean — both former students, from the first batch in 2018 — and I was surprised at the vehemence of their feedback. They worry about:
How it’ll degrade the students’ learning
Students generating code they might never understand
AI generating the wrong code
How it just changes what the class is.
All valid points! But I wonder about students who fall behind in my class — would this help engage them more? The feeling of creating something so quickly with AI can’t be understated. Then again, I do acknowledge it’s short-cutting the hard work of comprehension, understanding, and perhaps creativity that comes with “manual” programming.
I don’t have any answers yet, but for this year’s class, I’m intending to take a couple of groups with which to run this experiment.
* Positive vibes appreciated. Kiddo knows about Perplexity and he knows the AI is great at finding answers from specific questions from specific practice papers — a power he’s abused to spend more time playing video games. Gahh!
In June, a programmer, Nolen Royalty or “eieio”, released a web-based mini-game, onemillioncheckboxes.com, which allowed users to check or uncheck any of 1,000,000 checkboxes — and when they did, it changed for everyone viewing the site simultaneously. The goal was to get everything checked at once, which was nigh-impossible. The site went viral: 500,000 people ended up checking more than 650 million boxes in just two weeks. The Washington Post described it as “the most pointless site on the internet; it’s fantastic”.
In August, eieio detailed an unexpected, and remarkable, outcome of the game in this blog post :
Some technically-savvy teens discovered they could do more than just random clicking.
They realised they could encode the messages as binary data (1s and 0s), and began doing all kinds of weird tricks to send secret messages and graphics to anyone who could decode them.
eieio followed the breadcrumbs, and found the teens on a private Discord chat!
He had a great time chatting with them, and was just genuinely blown away by their ingenuity.
I loved this!
First, because the initial product was about making something useless and fun — and I always love seeing useless and fun things my students create with code.
Second, because this useless and fun thing managed to inspire young people to form their own learning communities, share discoveries, and build on one another’s ideas.
It speaks to what I’d like to achieve as an educator — create spaces and enable students to explore, experiment, and find their own paths to understanding, perhaps in ways that I never anticipated.
I found this so moving. As a kid, I spent a lot of time doing dumb stuff on the computer, and I didn’t get in too much trouble for it, like when I, for example, repeatedly crashed my high school mail server. There’s no way that I would be doing what I do now without the encouragement of people back then. So providing a playground like this, getting to see what they were doing, getting to provide some encouragement saying, “Hey, this is amazing!”, was so special for me. The people in that Discord are so extraordinarily talented, so creative, and so cool. I cannot wait to see what they go on to make.
The blog post and video are great, but watch out for some swearing and crude humour in the screenshots, if any teachers reading this want to send them along to students ????
My wife, who every day, brings all her primary school teacher experience to bear for our kids’ education, especially in Chinese language;
My parents, with over 60 years of teaching experience between them, part of which convinced them to spend weeks persuading me not to take a teaching scholarship 25 years ago;
My teachers, most of whom might no longer be teaching, but whose lessons still resonate after all these decades;
My teacher friends and peers, especially those still in the service, because look at all the lives you’ve touched! Could you have imagined that 20+ years ago when we started?;
My ex-colleagues, wherever you are now, for having supported me as a beginning teacher who unfortunately never quite stayed long enough to outgrow that term;
My current colleagues, who create curriculum and programmes and still step into classrooms to teach our odd little non-academic subject;
My kids’ teachers, who my wife and I try to bother as little as possible, because we know the kids love you and that’s really nearly all that matters;
All the teachers we work with, for giving us a chance to bring our lessons to your students;
And finally, to my 25-year-ago self, who — as teenagers are wont to do in the face of sound parental advice — thought a teaching scholarship to go study in the US couldn’t have been *that* bad an idea. I’m glad for the choices we made, and I’m grateful for the people who got us here.
This week, I finished my final weekly volunteer session with my Code in Place section for 2024. Code in Place is a free online introductory programming course offered by Stanford University, teaching the fundamentals of Python programming based on the university’s flagship CS106 course.
CS106 has been a huge inspiration for me ever since I took the class in fall quarter of freshman year (in 1999!), and especially since I took CS198, the course where they taught us to run our own sections. I don’t think I’m overstating things when I say that CS106 + CS198 have been transformative experiences for me: My times section leading for CS106 were some of my fondest Stanford memories, and the inspiration and energy from then have informed my career for the last 15–20 years as an educator here. I’m not certain we’d have Tinkercademy or Swift Accelerator now if I hadn’t been through those.
Thanks to all my students, mostly from halfway around the world, for showing up every week, putting in the work, and for participating actively in class. This was some of the most fun I’ve had teaching an online class in a while. (Yes, the cat made an appearance during section.)
The Code in Place team remains a huge inspiration — thanks to profs Chris Piech, Mehran Sahami, and the rest of the team at Stanford CS for this opportunity, all the teaching training materials, and for making this available to everyone.
Super cool too that I managed to reconnect with Leoson — an ex-student from over a decade ago when he was in high school — as a section leader whose post I happened to stumble upon in the forums!
Pictured: A screenshot of the section homepage, showing “Next section: 2 days and 2 hours ago” ????)
My company, Tinkertanker, is moving from our Bukit Merah office of 5 years over to Jalan Pemimpin.
It’s our fourth “real” office after we moved out of a study, and I’ll remember it as an office where we hosted a lot of friends, partners, and visitors; where we had a meeting room the laser cutter venting went through (loudly); where we got through the pandemic (and when Engineering Good kept the lights on during lockdown) and published a book; where we over-engineered our automations and decorations; where we continuously got complained at by management by putting random nonsense like a TARDIS outside our door; where we watched colleagues and students and interns join, leave, visit and grow.
I’ll miss the nearby noodle queue, the mysteriously large number of roadside chickens, and the vague worry that the mezzanine would collapse on us in the meeting room whenever there were too many people upstairs.
Pictured: Memories from the old office; the old office being cleared out; fun electronics projects we really should have thrown away earlier; a preview of the new office with fun pink stairs and a lift that I got trapped in on the very first day.
About a year ago, Daniel, a 19-year-old New Zealander, gave me a call, and asked if he could just come by our office and hang out and learn things quietly on his own. He wasn’t sure what to do for university, or if he even wanted to study at all. He was aware we had a techie internship programme, but didn’t feel qualified enough to join us and get paid for it.
We thought, why not? The worst that could happen was he’d come in, and stop showing up after a while. (Which is what happened with some other guy.)
He never stopped showing up.
He learned a whole bunch of programming, made himself very useful, we offered him a proper paid internship, and now he’s off to study CS. Read his story at our blog.
We started Tinkertanker in 2011, and haven’t written much about the company and what we do. As a result, we now regularly get emails from people who think we run an actual tanker.
Maritime recruiters, please stop sending us crew member CVs! We don’t run a ship! We’ll let you know when we buy one okay, but COEs are expensive
So, here we go:
A paper version of TKrobot, our mascot. We squished him once accidentally, and he’s been mad at us since.
Who we are. Tinkertanker is a technology and education company. We’re coders who enjoy teaching, teachers who enjoy coding, and coders who enjoy teaching, and people who repeat themselves. (Did we mention we’re teachers who…)
Our products. We run Tinkercademy, where we teach coding and electronics to students of all ages; GuestDay, an iPad-based guest registration service; Get Hacking, an online store for technology toys and tools; and various smaller tech projects, like 125andup, which we recently retired, and our IC Photo app, which, uhh, we should probably get around to updating before Apple kicks us off the App Store.
What we do. Our core strengths are in building software, teaching technology, and creating with electronics; essentially, we spend our time making cool stuff with technology, or teaching folks how to do the same. Not everyone in our team codes and teaches, but we all enjoy tinkering with open-source frameworks, electronics, 3D printing, laser cutting, design tools, and more.
The office. Our office at Tai Seng is a workshop, lab, and warehouse, with a well-stocked pantry that usually doesn’t contain solder or wood chips. We have three Michelin-starred eateries within walking distance, so that lets us get pretty fat.
Our technology stack. While most of our current production code is in Ruby and Objective-C, we have projects implemented in other languages — Python, PHP, Clojure, Squeak. We teach in Python, Swift, Java, HTML, CSS, flavour-of-the-year JavaScript framework, Unity C#, Arduino C, Scratch, and more. Our upcoming projects are an Android app (Android Studio, Java), an iOS app (Xcode, Swift), and a micro-controller compiler (a healthy mix of C++, JavaScript, and staring at one another suspiciously).
So, there we go, an introduction to this little company we call our own. We’ll keep this post updated as we evolve, and we hope to tell you more about what we do in future posts, which may or may not take another 6 years. Stay tuned!
After I left a five-year stint in the Ministry of Education, I started Tinkertanker in 2011 with two of my closest friends.
We created our very first invoice for teaching a programming class, did some software consulting, made a couple of apps, hired our first full-timers, started teaching a boatload* of programming classes, started an online store, hired a boatload* of technical interns, worked with IMDA on projects, exhibited at events, designed some hardware, and now we can’t describe what we do in a sentence any more.
… where we get to adapt all these emails and blurbs we’ve written about the company over the years into something we can share. Take a look, and let us know if you have any feedback, want to work with us, or know anyone awesome we can work with.
* Boatload because “tanker”, get it, get it, hur hur hur