William Caron‑Bastarache
Computer Science student at Université de Montréal building robust, data-driven systems at the intersection of quantitative analysis and software engineering.
About
I design structured, reproducible systems that transform raw data into measurable insight.
I primarily work with Python and Java, with a strong focus on clean architecture and analytical correctness.
I work on a Linux workstation I built and maintain myself, which is where the data pipelines and databases behind my projects actually run.
Skills
Programming
Python, Java, SQL, Bash, C, HTML/CSS, JavaScript/TypeScript
Data & ML
PostgreSQL, Pandas, NumPy, scikit-learn, Matplotlib, psycopg
Backend
FastAPI, REST APIs, asyncio, Docker
Frontend
React, Next.js
Testing & Quality
pytest, JUnit, JaCoCo, PIT, GitHub Actions (CI/CD)
Tools
Git, GitHub, Linux, Make, Maven, Power BI, Claude Code, IntelliJ, VS Code, LaTeX
Systems
pthreads, POSIX, Valgrind, gdb, CMake
Familiar with
OCaml, Assembly, VHDL
Portfolio
In Progress
Completed
Experience
Incoming intern focused on optimisation, data analysis, and quantitative methods applied to operational problems.
Ensure swimmer safety in busy pools; respond to emergency situations; communicate effectively with the team.
Manage night front-desk operations; maintain service continuity and site security; coordinate and prioritize guest requests.
Teach swimming to diverse groups; adapt teaching methods to skill levels; foster progression and participant confidence.
Assist with renovations; support fundraising campaigns; contribute to event preparation and organization.
Education
Relevant coursework: Software Engineering, Algorithms & Data Structures, Operating Systems, Probability & Statistics, Linear Optimisation, Economics
Administration profile with mathematics.
International Education Programme (IEP)
Certificates
Anthropic Academy
Coursework
Selected university courses & short descriptions.
IFT 1015 — Introduction to Programming 1
Introduction to core programming concepts and techniques.
IFT 1025 — Introduction to Programming 2
Follow-up programming course; software construction.
IFT 2015 — Data Structures
ADTs; trees, dictionaries, priority queues, graphs.
IFT 2035 — Programming Language Concepts
Execution models, parameter passing, paradigms.
IFT 2105 — Theory of Computing
Automata/regex, grammars, computability, complexity.
IFT 2255 — Software Engineering
Lifecycle, analysis/modeling, OO design, debugging.
IFT 3913 — Software Quality and Metrics
QA, standards, tests/reviews, product/process metrics.
IFT 1215 — Introduction to Computer Systems
Foundations of computer systems.
IFT 1227 — Computer Architecture 1
Fundamentals of architecture.
MAT 1600 — Linear Algebra
Systems, vector spaces, transformations, diagonalization.
MAT 1400 — Calculus 1
Differential and integral calculus, functions, limits, derivatives.
MAT 1978 — Probability and Statistics
Distributions, LLN/CLT, inference, regression.
ECN 1000 — Principles of Economics
Opportunity cost, supply and demand, consumer choice, firm production decisions, competitive markets, monopoly, efficiency and international trade.
ECN 1700 — Economics and Globalization
Economic analysis of globalization issues and international economic dynamics.
IFT 1065 — Discrete Structures in Computer Science
Propositional logic. Sets. Sequences and functions. Algorithms. Boolean matrices. Mathematical reasoning and induction. Combinatorics. Recurrence relations. Graphs and trees.
IFT 1005 — Web Design and Development
Introduction to the Internet and the Web. Markup languages and validation. Web standards and accessibility. Style sheets for text and graphics. Web design principles. Site optimization. Forms and interactivity. Introduction to content management systems.
IFT 2505 — Linear Optimization
Linear models. Simplex method. Duality. Post-optimization. Sensitivity analysis. Problems with particular structures. Integer models. Cutting plane methods. Branch and bound.
IFT 2245 — Operating Systems
Main functions. Parallelism management. Synchronization. Deadlock. Scheduling. Memory and I/O management. Files. Protection and distributed systems.
STT 1700 — Introduction to Statistics
Data description and production. Probabilities. Inference. Confidence intervals and hypothesis tests. Count data. Contingency tables. Simple linear regression. Note: use of software package.
IFT 2125 — Introduction to Algorithms
Algorithm design and analysis. Asymptotic notation, recurrence relations. Greedy algorithms, divide-and-conquer, dynamic programming, graph traversal, backtracking, probabilistic algorithms.