Python & SQL
Data manipulation and analysis
Pandas, NumPy and SQL are my base tools: cleaning, joining and querying data of any size, turning raw information into something ready to analyse.
Organisation & data storytelling
Cleaning and interactive presentation
I take messy, disorganised data and make it trustworthy, then turn the result into interactive dashboards anyone can explore and understand.
AI as a reviewer
Claude & Copilot, after the work is done
The analysis, the code and the conclusions are mine. Once I finish, I use Claude and Copilot as a second reader: checking numbers, pointing out mistakes and answering syntax questions. When a suggestion holds up, I fix it and explain the change.
English
Fluency applied at work
I write documentation, present results and talk to clients in English without friction. The fluency I brought back from the exchange in Canada is a daily work tool now, not just a memory from the trip.
Statistical visualisation
seaborn & matplotlib
Boxplots, distributions and comparison charts across sprints 6 to 14: the plots that carried each finding, from platform sales to ride durations under bad weather.
Tableau
Dashboards on Tableau Public
Sprint 12: a published dashboard with four views, date and country filters applied to every sheet, percent-of-total calculations checked against pandas, and the data caveats written into the dashboard itself. Sprint 14: a repurchase dashboard filtered by month, state, rating and delivery, reading the same numbers as the notebook.
Machine learning
scikit-learn
Sprint 13: logistic regression and a random forest compared against a baseline, a stratified split, precision and recall beyond accuracy, a leakage test that drops the suspect feature, and K-Means with a dendrogram and silhouette to segment 4,000 customers.
Hypothesis testing
SciPy
Welch and Student t-tests, Mann-Whitney on skewed revenue, variance checks before every test, and a hand-written z-test for proportions with a Bonferroni correction across 20 tests. In sprint 14, chi-square before the pairwise z-tests, a Holm correction, 95% intervals and the smallest difference each test can detect at 80% power, so a "no difference" is read alongside its power. Sprints 6, 7, 9, 11 and 14, each with the test choice justified in the notebook.
Analysis design
Decomposition & cohorts
Sprint 14: the business question split into five hypotheses and their KPIs before touching the data, a cohort where every customer had the same 180 days to come back, and the main results re-run with 90- and 365-day windows.
Web scraping
BeautifulSoup & requests
Scraped Chicago weather records from an HTML table and joined them to trip data by timestamp for the Zuber hypothesis test in sprint 7.
Git & GitHub
Versioned portfolio
Every sprint lives in its own public repository, and this site ships from a Git-connected pipeline: branch, preview, merge, production.
Power BI
Coming soonSelf-study · next step
Business dashboards and DAX are my next step after TripleTen. This card fills in when the first real report is done.
Advanced SQL
PostgreSQL
Sprint 14: CTEs that aggregate each table before the join, window functions (RANK and SUM OVER) for rankings and shares, and LEFT JOIN … IS NULL integrity checks across a five-table books database, building on the PostgreSQL work from sprint 7.
Excel
Coming soonSelf-study · next step
Pivot tables, lookups and analysis workflows for the teams that live in spreadsheets. Next on my self-study list.