I wrapped up my batch at Recurse Center a few weeks ago and wanted to capture what I worked on during those 12 weeks. RC gave me the space I needed to dive deep into a passion project, pick up new technologies, and push my comfort zone across many areas of software engineering.
Learning highlights
Collaborative learning through pairing - Gained exposure to a diverse set of projects and development approaches. I didn’t always understand the technologies or projects I paired on, but they often provided inspiration for improving my own work or workflows. Notable pairing sessions included a recipe management app with OpenAI integration, a BPE tokenizer implementation, and programming language development.
Teaching through presentation - Regular demos of flow progress and architectural decisions solidified my understanding and gave me practice explaining complex technical concepts to others. Take a look at my final presentation deck for the overview that I gave on flow’s composable workflows!
Discovering my learning patterns - After a few weeks of experimenting with time management, I settled on a three-day project focus while leaving space for exploration. Using flow itself as a platform for trying new technologies safely turned out to be an effective learning strategy.
Balancing focus and community - The biggest challenge was finding rhythm between deep work and community engagement - there were so many interesting things happening at RC. Writing regular check-ins and reading others’ updates helped me reflect and adjust that balance as desired.
Core project
As I described in 6 Weeks of flow at Recurse Center, I decided to expand my long-running side project flow as my main focus. A little more than half of my flow work fell into these four major efforts, with the remainder spent on bug fixes and UX improvements throughout.
flow CLI v1.0 release - Stabilized platform with comprehensive testing, v2 of the integrated secrets vault, major documentation updates, and CI integration via custom GitHub Action
Desktop app POC - Built proof-of-concept with Tauri, establishing CLI-as-source-of-truth architecture for upcoming first release
Executable generation - Added parsers for makefile, package.json, and docker-compose to streamline workflow migration
MCP server - Built Model Context Protocol integration enabling AI tools to understand flow workspaces and executables natively
Check out my new architecture doc for more details on how I’ve been building this local-first developer automation platform. To continue on with the “learning generously” mindset, I plan to keep it updated as the architecture evolves.
Honorable mentions
Dev environment exploration - Tried various changes to my development editors and workflows, including AI-enhanced IDEs, terminal-based applications, and improvements to local project and dotfile organization. This also included deeper integrations of flow into my productivity, development, and operation workflows as I began to use it to standardize workflows across my side-projects.
“Impossible” experiments - Single-day projects at the edge of my abilities, including a CGo process monitor using C for system process information and a container runtime with runc. Also explored a WebAssembly plugin system for flow - not as impossible as it seemed but informative for future feature planning.
Creative coding - Completely new domain I fell into through RC events. These sessions became a refreshing creative outlet, including mini projects with p5.js, tone.js, Motion Canvas, and the Python Imaging Library. Check out this Codepen for an example of one of my creations.
Vibe coding - Exploration of spinning up complete applications with AI development tools. These weekly sessions gave me better appreciation of AI-assisted coding and helped me understand its current limitations. I’ve since been vibe coding a few small apps for my home lab. It’s also been cool to also see how vibes + flow MCP can produce some neat, standardized workflows.
Community programming - Beyond the creative and vibe coding sessions, I explored topics well outside my main focus through these community activities. System design discussions, a workshop on building Obsidian plugins, and weekly non-programming presentations are just a few that kept me curious about areas I wouldn’t encounter naturally. As a “never-graduated” alum, I’m looking forward to continuing to participate whenever time allows.
WordPress project - Pro bono work for nonprofit Boston HERC. Started before RC but got more time to work on this and launched the first phase of the redesign of their core pages at bostonherc.org. It was interesting finding ways to apply my evolving learning style to evaluating and picking up newer, no-code frameworks like Elementor.
My time at RC ended up giving me much more than I was hoping for. I got dedicated time to tackle ambitious ideas I’d been putting off for a while and learn new-to-me technologies in a supportive environment. The collaborative culture pushed me to share my work regularly and learn from other skilled builders working on completely different problems. As I move into the next phase of my career, I’m carrying forward not just new technical skills but a better understanding of how I learn best and what gets me excited about software engineering.
Want to become a better programmer? Join the Recurse Center!