Hi, my name is
Marwan Zaarab.
I create software solutions.
I'm a software engineer with 4 years of experience building modern full-stack applications. I've co-created Pennant, an open-source collaborative computational notebook, and contributed to the development of the ZenML VSCode extension. My journey into software development has been fueled by an unwavering commitment to mastering the craft through collaborative problem-solving, test-driven development, and continuous learning.
About Me
I'm a Software Engineer based in Chicago with 4+ years of full-stack experience. Currently at CardFree, I build essential platform features for major restaurant chains, enabling merchants to manage digital ordering, loyalty programs, real-time order tracking, and promotional campaigns across multiple locations.
I am the co-creator of Pennant, an open-source computational notebook enabling collaborative coding and shared execution environments. It's powered by CRDTs and an asynchronous execution stack with support for Python and JavaScript. Try it here!
I'm active in open source and recently contributed to ZenML Studio, a VSCode extension for MLOps workflows. This project presented many intriguing challenges, particularly around implementing a custom LSP server to bridge ZenML's Python library with TypeScript. The intuitive interface we developed has been very well received by the ZenML community, and has been one of my most rewarding and humbling experiences. You can read more about it here!
When I'm not coding, you may find me deep diving into sound engineering and music production. If you're a fan of minimal deep techno, check out some of my tracks here!
Here are some technologies I've been working with recently:
- Vue.js
- Next.js
- React
- Remix
- TypeScript
- Ruby on Rails
- Python
- AWS
Experience & Projects
UI Engineer @ Cardfree
May 2024 - Present
- Developed and maintained admin portal features using Vue.js and Ruby on Rails, 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 request batching–reducing API calls by 92% and significantly improving load times.
- Built a global search system end-to-end with fuzzy matching, weighted relevance scoring, full-text indexing, and keyword matching algorithms—significantly improving merchants' ability to find and manage platform configurations.
- Extended granular role-based access control using 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!