Hi, my name is
Marwan.
I build things for the web.
I'm a Chicago-based software engineer specializing in JavaScript, Ruby, and Python ecosystems with a growing focus on AI/ML applications. My medical background (M.D.) has instilled a methodical approach to problem-solving and meticulous attention to detail that I bring to every project.
Recently, I co-created Pennant, a real-time collaborative computational notebook, and contributed to the development of ZenML Studio, a VSCode extension that brings MLOps workflows directly to your IDE.
About Me
I'm a software engineer based in Chicago, passionate about building intuitive, highly-functional software. My journey started in medicine before I pivoted to code, where I discovered my love for creating systems that simply work.
At CardFree, I developed merchant platform features powering digital ordering, loyalty programs, and promotional campaigns for major restaurant chains. I also designed and built their global search system end-to-end.
I co-created Pennant, an open-source collaborative coding notebook that leverages a CRDT framework for real-time document synchronization and features an async execution stack supporting Python and JavaScript. You can try it here!
My open source contributions include ZenML Studio, a VSCode extension for MLOps workflows. One of the most rewarding challenges was implementing a custom LSP server to bridge ZenML's Python library with TypeScript. The positive reception from the ZenML community has been incredibly fulfilling. Learn more about it here!
Recently, I've been exploring MLOps, training small language models and deploying them to Hugging Face—an experience that brings back the same excitement as discovering Nintendo as a kid.
When I'm not coding, you'll find me tinkering with sound engineering or producing minimal techno.
Here are some technologies I've been working with recently:
- Python
- HuggingFace
- TypeScript
- Next.js
- React
- Vue.js
- Ruby on Rails
- AWS

Experience & Projects
UI Engineer @ Cardfree
May 2024 - Feb 2025
- Developed and maintained Vue.js and Ruby on Rails admin portal features, enabling merchants to manage digital ordering, loyalty programs, real-time order tracking, and promotional campaigns across multiple locations.
- Optimized merchant configuration interfaces through tabbed navigation and batched API requests—reducing API calls by 92% and significantly improving load times.
- Built an end-to-end global search system with fuzzy matching, weighted relevance scoring, full-text indexing, and keyword-based retrieval—enhancing users’ ability to quickly find and manage platform configurations.
- Strengthened role-based access control (RBAC) with CASL and CanCanCan, ensuring secure and synchronized authorization across the platform.
Some Things I’ve Built
Featured Project
ZenML Studio
The ZenML VSCode extension seamlessly bridges the gap between your ZenML environment and your IDE. By providing real-time synchronization and accurate representation of your ZenML setup within VSCode, this extension enables you to efficiently manage and optimize your MLOps workflow without leaving your IDE.
- Python
- TypeScript
- Language Server Protocol (LSP)
- JSON-RPC
- VSCode Extension API
- Watchdog
Featured Project
Pennant Notebook
A realtime collaborative computational notebook with JavaScript code execution. Try it out here.
- React
- Yjs CRDT
- IndexedDB
- Hocuspocus
- AWS Services
- Docker
Featured Project
CloudRounds
CloudRounds is a Permissions-Role-Based calendar platform for managing, viewing, and accessing medical rounds, seminars, and educational events in a more intuitive manner.
- React
- Node.js
- TypeScript
- Prisma
- GraphQL/Relay
Featured Project
SymptomOverflow
SymptomOverflow is a MERN stack application that provides a comprehensive platform for managing symptoms and diagnoses. It allows users to input symptoms and generate a ranked list of differential diagnoses.
- React
- Node.js
- Express
- MongoDB
Featured Project
SnackBin
SnackBin is a web application that allows users to create temporary endpoints (bins) to collect and inspect HTTP requests. It's also tool for debugging webhooks (GitHub, Basecamap), analyzing HTTP headers, payloads, and more.
- React
- Node.js
- Express
- PostgreSQL
- MongoDB
- Socket.io
- Docker
Blog Posts
What’s Next?
Get In Touch
I’m currently looking for new opportunities, and my inbox is always open. Whether you have a question or just want to say hi, I’ll try my best to get back to you!