My Experience at the Recurse Center

A School Without Teachers

The Recurse Center (RC) is often billed as “a writer’s retreat for programming” where programmers come to dedicate 3 months solely to becoming better at their craft. It works.

The programme is a form of unschooling meaning that it has no curriculum, no teachers and no exams.

Attendees (recursers) choose what to focus on based on their own volition and guided by three self-directives:

  1. Work at the edge of your abilities — make sure you are pushing yourself to grow and not just focusing on what is already comfortable and easy to you.
  2. Build your volitional muscles — don’t just follow the crowd but work out what is interesting and important to you and then take the initiative to work on it.
  3. Learn generously — share what you learn with others, so that they too can learn and develop.

The programme offers light touch structure with weekly presentations, challenges and workshops.

However one’s time is spent working on whatever one finds interesting! The general rule of thumb is that:

  1. Pairing is a great way to learn and exercise the three self-directives.
  2. Generally the more code that people write during their time at RC, the more they will get out of the experience.

For the last 3 months I have been attending (remotely) the Spring 2026 Batch of the Recurse Center (RC). In short it has been incredible.

Learning with the Spring 2026 batch

It is striking to me how much I saw people push themselves in pursuit of following their interests. I saw people diving deeply into projects in a way that I have rarely seen in formal education or outside of RC!

We had a lot of fun, we learnt a lot through pair-programming where we would share what we were working on with others, and collaborate to solve problems and make progress.

Weekly presentations kept us up to speed with people’s updates – always super fun and engaging.

Finally “interest groups” like the game-dev interest group provided great round-tables for people to share their work on a specific topic in more depth while also soliciting feedback and asking for guidance. I know I took many problems I was having with game-dev to the round-table and received several great pointers for how to proceed.

My aims & results at RC

I went in with two aims:

  1. Get better at making incredible Swift apps
  2. Learn more about AI, LLM’s and agentic workflows. What are they? How are they useful? How do they work behind the scenes?

While I was able to do both of these things, what surprised me most was how many other areas I touched upon.

I was amazed by how much my general knowledge of the technology world grew just from being around so many talented individuals working on so many diverse projects.

In short:

  • People working on similar things to myself were great to pair with. We would chat about the things we knew and work together to understand things that we didn’t know.

  • People working on completely different projects to myself opened my eyes to new aspects of the technological landscape.

My Projects

During my batch i worked on several projects I’m proud of (and a few that barely got off the ground). Here are my 10 main projects:

1 – Sunset Getaway (Java Script 3D renderer) 🚘

AI couldn’t help me with this problem 🤖 When extending my lightweight HTML-Canvas + JS game-engine to run a driving game, everything was rendering in 2D. Mapping that to a 3D projection was ambitious for an HTML Canvas. 

AI couldn’t work out the maths required, no luck with Cursor or ChatGPT.

It was easier todo the maths myself, and work out the series of coordinate transforms required to map the 2D game state into a 3D representation that could be projected onto an HTML Canvas. 

https://github.com/Tawfiqh/DrivingGameV1

https://tawfiq.co.uk/wp-content/uploads/driving/carDrive.html

2 – Sunset Getaway V2 (Swift)

I then ported that from HTML/JS to native Swift/SwiftUI code: – Using native iOS frameworks i added In-App Purchases to the game – I added a BE (in Django/Python) that allows server-side customisation of the game, as well as syncing state of purchases and subscriptions. – Finally I added a GameBoy skin and some sound effects to complete the retro look.

https://github.com/Tawfiqh/SunsetGetawayV2

3 – 3D Minesweeper

🧠 Minesweeper but now in higher dimensions!

Part of the “Twisted game Jam”. Take the source code to a classic game and put your own twist on it!

What better way to get Minesweeper ready for spatial VR than to make it 3D!

🤖This was my first project in Godot, and it was a lot easier than I expected! Godot made managing state and setting up views very easy, as well as exporting to different platforms such as web and iOS. 📲

🧑‍💻It still required a lot of debugging to scale the game-logic into 3D. At one point a recursive algorithm was causing a stack-overflow! Somewhat ironic to be spending my time at the Recurse Center, fixing a recursion – and doing so without using StackOverflow! 🥁

Anyway I’m super happy with how it turned out and you can play it now online:

https://tawfiq.co.uk/wp-content/uploads/minesweeper

https://github.com/Tawfiqh/Minesweeper-Godot

4 – Sunset Getaway V3

Returning to my driving-game I ported the whole game to Godot. In doing so I learnt a lot more about Godot and how it works.

My main aim was to generate the serene feeling of driving at sunset and I worked hard on realism and chill sunset vibes. Ultimately it turned out to be more of an artistic challenge than a technical one.

I watched several tutorials around realistic lighting in Godot and saw some great results from some simple metallic textures, bump maps and a realistic skybox that supports directional lighting.

A lot of my experience as a photographer came into play, tweaking the variables of the skybox to make an aesthetically pleasing image. I worked on getting the exposure just right so that the scene was bright enough to see but without colours becoming washed out. Likewise I wanted the scene to have strong contrast without being too dark. For the sky itself I tinted the highlights a touch orange and the shadows a little purple to give a more dramatic sunset picture.

In the end I was really happy with the result – you can play a simplified proof-of-concept online (without the mountains unfortunately).

I look forward to extending this further in the future to support more dynamic road generation and hopefully also spatial VR once Godot builds support for VisionOS.

https://tawfiq.co.uk/wp-content/uploads/sundown-getaway/ (Godot engine link – loads in browser but takes a minute)

5 – 3D Snake!

Another episode of “Twisted game Jam”. This time we started from scratch but I paired with Michael T to make Snake in 3D.

I learned a lot more about how Godot works while building this and how best to architect code through Singletons for managing game-state in a simple game.

I did a little work on optimising the movements, managing the collisions, rendering shadows and bump-maps.

https://tawfiq.co.uk/wp-content/uploads/snake/ (Godot engine link – loads in browser but takes a minute)

https://github.com/Tawfiqh/3d-snake

6 – “Sunnah Search” = RAG AI System for Researching Islamic texts

RAG serch for Islamic texts. Hosted online at Railway.

“Sunnah Search”: A RAG driven search-engine that allows one to search Islamic primary texts and it always returns references to which texts it is referring to. As well as hyperlinks to the actual text on websites that have indexed the canon.

This is super handy for when writing my blog as often SEO for these texts can be bad, and using ChatGPT leads to a lot of hallucinations or bad references.

The vector-search alone returns nothing useful or related — it can’t really parse my question and just seems to be matching some keywords. e.g: Exercise as generally exercising ones own volition, as opposed to physical-exercise.

Powered with Django as well as a vector-db that stores and compares embeddings.

https://sunnahsearch.up.railway.app

https://github.com/Tawfiqh/SunnahSearch

7 – BabyTime = Locally hosted privacy conscious baby monitor

A privact-first baby monitor that is hosted locally and accessible only on local wifi!

http://github.com/Tawfiqh/BabyTime

Runs on any old device that has a camera, browser and internet connection:

A server runs on my Mac using FastAPI

  • Meanwhile an iPad or phone sits next to baby on “camera mode” and live streams via websockets to anyone in the house who connects.

  • Viewer can login using another device as the viewer.

  • Also logs sound levels over time so you can easily see if there are any disturbances or screaming in the room.

8 – Mars Invaders – networked Godot game

https://tawfiq.co.uk/wp-content/uploads/marsInvaders

https://github.com/Tawfiqh/Mars-Invaders

A radial version of space-invaders!

I spent lots of time adding networking. While setting up the networking connection was relatively easy, working out how to synchronise state between the client and server was more complex.

Required some exploration of various trade-offs in terms of latency and payload size, working out when best to send data and how to update state based on received data.

Super interesting project — I really enjoyed throwing around ideas for optimisations and pairing on this!

9 – Zulip Knowledge (&TUI)

https://github.com/Tawfiqh/rc-ask-zulip

RC uses Zulip as an internal messaging board / forum:

  • Each recurser aims to leave either a daily or weekly update on their progress and what they’re working on.
  • This app scans Zulip via the API and then categorises each check-in message using a local LLM (running via Ollama)
  • It then shows the results nicely in a FE
  • Finally the UI provides a quick button to DM the person that you’re interested in working with them!

10 – Best Audio Books by You!

A sample project to explore iOS in-app payments in detail:

  • The Django BE serves 10,000 books that are scraped from Gutenberg(~2000 word excerpts)
  • The FE displays these and allows users to subscribe to the entire catalogue or purchase books individually
  • Also supports user uploaded books, subscriptions and subscription management within the app.

10.1 – Purchase Manager (StoreKit 2 wrapper)

Key parts of this project also involved creating a simple drop in class that can be added to any SwiftUI project as an @EnvironmentObject.

https://github.com/Tawfiqh/StoreKitIAP

10.2 – Sync IAP to App Store Connect

Another fun milestone was creating a Python script that syncs local Xcode testing configs to App Store Connect.

Allowing developers to manage app store connect more easily through automation, or directly from their IDE without having to manually navigate and input data to ASC.

https://github.com/Tawfiqh/SyncIapToASC

Project Summary

That roughly maps to:

  • Week 1: JS Racer
    • Also spent one evening vibe-coding Hupoe’s Ramadan deck before hosting it via CloudFlare pages: https://hupoeramadan26.pages.dev / hupoeclub.com/ramadan
  • Week 2: Swift port of Sundown Getaway
  • Week 3: IAP for for Swift port of Sundown Getaway
  • Week 4: Finalised Minesweeper in full 3D!
    • Also learnt a lot about MCP and AI
  • Week 5: Realism within Sundown Getaway (using the Godot game engine)
    • Twisted Game Jam Snake in 3D!
  • Week 6: Sunnah Search – RAG AI system for searching a large corpus
    of Islamic texts
  • Week 7 – 9: “Best Audio Books By You” Audio books app
    • Researched Ollama and local AI
    • Paired with others and supported their projects in Godot, React & Typescript
  • Week 10: Baby Monitor = Local hosted, privacy first Baby Monitor using web sockets
    • Music classification with Essentia
  • Week 11: Mars Invaders = Radial Networked version of space invaders
    • TUI – using react to make a terminal user interface
  • Week 12: Finished off and hosted Zulip Knowledge

50 Things I learned at RC

While the above 10 projects were my main focus I also spent lots of time pairing with people. I learned and heard about so many amazing technologies that I had simply never come across before!

Read more about them in my follow-up post: 50 Things I learned @ RC

Summary

For people with a genuine interest in tech, coding and working at the edge of your ability, I would highly recommend you to apply to the Recurse Center.

It is a lovely community, filled with generous and knowledgable people, I learnt a lot, made some great friends and even got a job at the end of it!

It’s remarkable how much progress you can make just by being in the right environment, surrounded by great people and a mindset dedicated to growth.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *