From May to July, I had the opportunity to intern at Tinkertanker. The internship allowed me to learn about many different areas from web development and game development to AI workflows, curriculum design, and teaching students of all ages.
It was an experience that not only strengthened my technical skills but also changed the way I think about AI, education, and the future of software development.
Curriculum Development: Teaching Students to Vibe Code the Right Way
I worked on revising some of Tinkertanker’s curriculum to better align with the rise of agentic AI and vibe coding.
Today, AI has made programming more accessible than ever. With tools like ChatGPT and AI coding agents, anyone can generate an application simply by describing what they want. Because of this, people may believe that coding skills are no longer necessary.
However, my time at Tinkertanker has shown me that effective vibe coding is a skill in itself.
The quality of the final product is no longer determined solely by how well you can write code, but increasingly determined by how well you work with AI. Skills such as prompt engineering, planning before implementation, debugging AI-generated code, understanding AI limitations, and knowing how to iterate on prompts all play a huge role in producing higher quality end products.
Anyone can ask AI to “build a to-do app,” but transforming that into a polished, scalable and well-designed product requires knowing how to communicate effectively with the AI. Learning how to break problems into smaller tasks, identify errors, refine prompts and guide the AI through development are all valuable skills that students need to develop.
At the same time, I strongly believe that having programming fundamentals is still important. While AI can generate almost any piece of code, understanding the basics allows students to communicate using the correct technical terminology, understand how projects are structured, and identify an error more easily. Instead of blindly accepting whatever AI produces, they become capable of evaluating and improving the output.
Working on the curriculum reinforced many of these ideas for me. As I revised lesson content, I found myself revisiting programming fundamentals and strengthening my own understanding while thinking about how best to teach these concepts to students.
Learning Web Development Beyond Just Writing Code
Before starting my internship, I only had a basic understanding of how websites worked. I knew how to build simple webpages, but concepts such as databases, backend services, hosting, and deployment were still relatively unfamiliar to me.
Working on the web development curriculum and transcribing recordings from the BrainHack competition allowed me to pick up on many of these concepts. I learnt about different hosting platforms, databases, APIs and the software ecosystem involved in building modern web applications.
What made this even more meaningful was that I was able to directly apply what I learnt to my own university project. As I worked on developing my web application, many of the concepts learnt during my internship became much clearer.
Developing the curriculum also gave me the chance to revisit HTML, CSS and JavaScript fundamentals. Since we were teaching these concepts to students, I had to ensure I truly understood them myself. As the saying goes, one of the best ways to learn is by teaching others.
Exploring Game Development Through Unity and Phaser
Another area I worked on was game development.
Going into the internship, I had very little experience with Unity or C#. Through researching and developing the curriculum, I was introduced to game mechanics, scene management, game editors, and the overall workflow involved in creating games.
I also had the opportunity to work with both Phaser and Unity — two very different game engines with their own strengths and workflows. Working with both allowed me to appreciate the different approaches developers take when building games.
Flappy bird game!
The most interesting concept I encountered was Model Context Protocol (MCP). Before this internship, I only knew about AI conversations confined to the code editor itself. Learning how MCP allows AI agents to communicate directly with external applications like game editors completely changed my understanding of what AI agents are capable of. Seeing an AI interact with development tools beyond just generating code was eye-opening and gave me a glimpse into how software development is evolving.
When designing the curriculum, I followed Tinkertanker’s way of designing the learning journey in two stages. Students first built core game mechanics themselves before introducing MCP to automate more complex workflows.
I really liked this approach because it allowed students to first understand how games are structured and learn the relevant terminology before relying on AI. Game engines naturally have steep learning curves. Between navigating the interface and understanding components, scenes, scripts, and project hierarchies, beginners can quickly become overwhelmed.
By allowing AI to handle some of the more complex navigation and repetitive tasks while students focused on understanding concepts and terminology, the learning process became much less intimidating. Rather than replacing learning, AI became a tool that lowered the barrier to entry while still encouraging genuine understanding.
AI and the Future Workplace
During my internship, I had the opportunity to take an introductory AI class for data engineers.
Unlike the secondary school classes, this session focused on applying AI in professional workflows. We explored concepts such as AI agents, Skills.md files, debugging AI workflows, Ralph loops, reusable skills, and other technical concepts that are becoming increasingly relevant in industry.
While the content was much more advanced, it was a great challenge for me to step out of my comfort zone.
Instead of viewing AI as something that replaces people, I see it as a powerful collaborator that enhances productivity. The emphasis wasn’t on removing engineers from the workflow — it was on enabling engineers to accomplish more by working effectively with AI.
The experience also challenged me to step outside my comfort zone. Many of the concepts were new to me, and I had to quickly pick up technical jargon while understanding how these tools fit into real workplace scenarios. It gave me a much better appreciation of how rapidly AI is changing the software industry and the importance of continuously learning.
Learning Through Teaching
A large part of my internship involved teaching and assisting in classes, and this was one of the most rewarding aspects of the experience.
It was cool to watch students build projects from scratch and gain confidence in using AI. Being able to share what I had learnt and even demonstrate some of the projects I worked on made the lessons much more engaging.
Teaching also challenged me in many ways. Explaining technical concepts to beginners require me to translate complex ideas into simple, relatable language without losing the key message. and still keeping the content engaging.
Beyond improving my communication skills, teaching also strengthened my ability to think on my feet, adjust my explanations in real time, and put myself in the students’ shoes. Depending on the class, I would sometimes follow the lesson slides closely, sometimes expand on the content with my own examples and demonstrations, and other times move away from the slides entirely to explain concepts in a way that better suited the students. The goal was always to ensure that students remained engaged, understood the concepts, and enjoyed the learning process.
I also learnt that pacing is incredibly important. Moving too quickly can leave students feeling overwhelmed or discouraged, while moving too slowly can cause them to lose interest. By adapting to the pace of each class and checking in regularly with students, I found that they were more willing to ask questions, experiment on their own, and stay motivated even when they encountered challenges. Watching students overcome those moments of frustration and eventually build something they were proud of was one of the most rewarding parts of the internship.
Additionally, I learnt a lot from observing the other trainers. Many of them had different ways of teaching and interacting with the students and it was a valuable opportunity for me to learn from their strengths and apply that to my teaching style.
Looking Ahead
As my internship comes to an end, I’m grateful for everything I had the opportunity to experience over the past three months. Beyond learning new technologies, I gained a deeper understanding of how AI is transforming the way we learn, build software and solve problems.
Whether it was redesigning curricula, learning web and game development, exploring AI agents, or teaching students in the classroom, every project pushed me to grow in different ways. More importantly, this internship showed me that learning doesn’t stop once you know how to code. In today’s world, success increasingly comes from knowing how to learn continuously, communicate effectively, and work alongside AI rather than against it.
I’d like to thank everyone at Tinkertanker for giving me the opportunity to contribute, learn, and grow. Over these three months, I not only developed stronger technical skills but also gained greater confidence as both a learner and an educator. I’m excited to carry these experiences forward into my future studies and career, and I’m looking forward to seeing how both AI and education continue to evolve in the years ahead.