About
I’m a recent business graduate and backend developer / machine-learning practitioner at the beginning of my career. I like building useful, reliable systems—from clean APIs and data pipelines to lightweight ML services. My background in business (HEC Montréal, bilingual program) shapes how I frame problems, define success, and make trade-offs. I value clarity, measurable outcomes, and steady execution.
What I build
- Production APIs & services: FastAPI/HTTP services with clear contracts, pagination, caching, and observability behind Nginx.
- Data & pipelines: SQL schemas, ETL/ELT jobs, feature generation, artifact/version management, and scheduled jobs with safe rollbacks.
- ML components when useful: retrieval/ranking, simple predictive models, or embeddings—chosen when they improve the product, not for novelty.
How I solve problems
- Frame the outcome: identify the user action or business goal; pick metrics that actually reflect it.
- Ship a baseline: create a simple, verifiable version early (straightforward SQL/API or heuristic) to de‑risk the path.
- Iterate with evidence: add complexity only if it demonstrably improves results, latency, or reliability.
- Design for change: stable interfaces between components (ingest ⇄ store ⇄ serve) so each can evolve independently.
- Keep ops simple: idempotent jobs, explicit rollbacks, structured logs, and basic dashboards to answer “is it healthy?”
Engineering practices I care about
- Readable code: small modules, consistent naming, guardrails (assertions/invariants), and good boundaries.
- Reproducible data: deterministic exports, documented transformations, and leakage‑aware evaluation.
- Performance budgets: aim for predictable tail latency; cache or precompute when it simplifies serving.
- Documentation: short design notes and runbooks that explain intent, interfaces, and failure modes.
Selected project
Book Recommender (production): end‑to‑end system with normalized SQL schema, ALS candidate retrieval, subject embeddings with attention pooling, LightGBM reranker, and a FastAPI service that serves real‑time recommendations. The pipeline retrains on a schedule and hot‑reloads artifacts, balancing accuracy and latency.
- Retrieval: ALS for behavior; subject‑embedding similarity for semantic cold‑start; hybrid option for similarity pages.
- Reranking: LightGBM that blends embeddings, overlap/cosine signals, and lightweight metadata; tuned for stable tail latency.
- Operations: separate training/inference hosts, artifact versioning, and explicit rollback paths; Nginx in front for TLS and caching.
- Developer ergonomics: clear feature contracts, deterministic data exports, and notebooks/scripts that mirror production I/O.
Before programming
From age seven to sixteen I practiced karate, eventually earning a black belt at fifteen. It was the first skill I truly mastered, and it taught me discipline and perseverance—showing up, training hard, and pushing through setbacks. A few months after reaching black belt, I managed to break a cement block with my bare hands, something I would have thought impossible when I started. Karate proved that limits could be surpassed with time and dedication, and it gave me a framework for how to bring any skill to an advanced level.
Around the same period, I ran a small student lawn-mowing company from ages 15 to 18. I found clients, managed schedules, and even employed friends. It was my first attempt at building something entirely on my own, with no one above me to rely on. More importantly, it forced me to take myself seriously at a young age—not just as a kid doing odd jobs, but as someone accountable to paying clients and responsible for outcomes. That experience taught me independence, early leadership, and what it means to be fully responsible for a project from start to finish.
A bit later, I dove into music production. Unlike karate, where I had teachers, or lawn care, where the service was clear, music was something I had to figure out entirely on my own. I had never played an instrument, but I started from scratch on my computer, learning how to compose, produce, and eventually release music online. It was the first time I taught myself a completely new skill without guidance, and it gave me a lasting meta-skill: learning how to learn. I built confidence that even in fields where I had no background, I could teach myself from zero through curiosity, persistence, and iteration. Although I eventually shifted my focus to programming and machine learning, I still enjoy creating music from time to time.
Business background
While I was building side projects like the book recommender and experimenting with music, I also completed a bilingual bachelor’s degree in business at HEC Montréal, with a specialization in information technology. That gave me the business mindset most engineers lack—thinking in terms of value, trade-offs, and strategy— while my projects and technical learning gave me the technical depth most business grads don’t have, especially in machine learning. This combination means I approach problems with both the technical tools to build and the business context to prioritize.
Learning & certifications
- FreeCodeCamp: Back End Development & APIs, Quality Assurance, Information Security, Scientific Computing with Python, Data Analysis with Python, Machine Learning with Python, Foundational C#.
- Courses: MIT Missing Semester, MIT Intro to Deep Learning, fast.ai (Parts 1 & 2), DeepLearning.AI AI for Everyone & Generative AI for Everyone.
- Microsoft Learn: Azure cloud and C#/.NET paths.
- University coursework — SQL; Python for data analysis; Cybersecurity fundamentals.
- Self-study & references — Web fundamentals (HTML, CSS, JavaScript, PHP) via W3Schools tutorials and MDN Web Docs (reference; not a certification).
- Current focus: systems design for low‑latency services, robust data contracts, and practical ML for ranking/prediction.
Tech I use
Languages & frameworks
Data & infra
How I work with others
- Clear communication: concise design notes, explicit trade‑offs, and honest status updates; bilingual (FR/EN).
- Ownership: I’m comfortable carrying a feature from design to rollout, and writing the docs/runbooks that stick around.
- Mentorship-by-default: leave the codebase easier to understand than I found it—naming, comments, examples, and tests.
What I’m looking for
I’m looking for roles where I can build backends and ML-assisted features that deliver real value, taking ownership of data pipelines, training jobs, and real-time serving. I want to keep learning while also using my business background to guide prioritization, metrics, and product decisions.