Memoji

Ian Wood

Aspiring Data Engineer

Student Mathematician

Michelin Trained Chef

Musician

As a final-year Mathematics and Physics student specialising in scientific computing and mathematical modelling, I combine analytical rigour with practical problem-solving to tackle complex, real-world challenges.

I am eager to contribute my expertise in numerical methods, data visualisation, and software development within a dynamic and collaborative environment. If your team values analytical thinking, creativity, and a methodical approach, I’d welcome the opportunity to discuss how my skills can align with your objectives.

Curriculum Vitae

Portfolio of Work

Michelin Starred France

An analysis of France’s socio-economic landscape in the context of Michelin-starred restaurants.

  • Aggregated diverse datasets using cascading merges, joined by the French postal code.
  • Performed extensive geospatial analysis, integrating demographic and economic metrics with Michelin restaurant data.
  • Conducted year-on-year tracking of changes in Michelin star ratings, logging significant updates.
  • Developed a series of visualisations, making insights accessible to both technical and non-technical audiences.

This project merges data science with culinary insight, analysing Michelin-starred restaurants across France. Using data from the Michelin Guide and INSEE along with geoJSON shape files, we explore the relationship between elite restaurants and socio-economic factors such as demographics, income, and population density. The project includes extensive data processing, geospatial integration, and year-on-year tracking of changes in Michelin star ratings. By visualising these relationships, the analysis offers valuable insights into how economic and geographic conditions influence culinary excellence.

In addition to data analysis, we developed a web-based interactive application using Plotly Dash. The app allows users to view restaurant details, including star ratings, cuisine types, and pricing, and filter results based on location and star rating. The app is updated annually, aligning with new data from the Michelin Guide. The app has been refined for maintainability and scalability by modularising the codebase and improving user interface elements.

This work earned 1st Place in the Plotly Autumn App Challenge 2024, demonstrating excellence in interactive dashboard development and data visualisation. The codebase for this award-winning app can be accessed on GitHub.

Python Data Analysis Web Scraping Geospatial Analysis Dashboard Development UX Design Award-Winning

Double Pendulum Simulation

Numerical integration of equations of motion into an interactive application..

  • Built a web-based interactive app using Plotly Dash and Flask which is deployed on Heroku.
  • Developed DoublePendulum classes to handle numerical operations and visualisations: Lagrangian Model & Hamiltonian Model.
  • Cached computed equations to reduce run-time for repeated simulations and vectorised operations to improve performance.
  • Implemented robust error validation to ensure smooth operation, validating all user inputs for physical constraints to prevent computational overload.
  • Visualised chaotic double pendulum behaviour with interactive plots using Plotly and Matplotlib.

Overview: The Double Pendulum Simulation models the physics of a double pendulum from first principles using Lagrangian and Hamiltonian mechanics. The equations of motion are derived symbolically and integrated numerically, allowing users to interact with and simulate both simple and compound pendulums. The web application, built using Plotly Dash, provides an engaging and visual exploration of this chaotic system.

Future Development: In the development of the chaos page, we are tackling the challenge of performing the millions of floating-point calculations required for accurate simulations of chaotic systems. The goal is to create a cloud-based database capable of handling the vast amounts of data produced by simulations, enabling complex visualisations like Poincaré sections and bifurcation diagrams to be rendered dynamically. Future work involves refining numerical integration methods to optimise both accuracy and performance.

Python CSS Numerical Methods Web Development Cloud Deployment UX Design

Biodiversity in US National Parks

An ETL Pipeline populating a PostgreSQL database optimised for OLAP.

  • Integrated geospatial data to explore species distributions within park boundaries using PostGIS.
  • Extracted, cleaned, and normalised species data with category-specific transformation strategies (e.g., birds, mammals, reptiles, etc.).
  • Resolved duplicates, typographical errors, and inconsistencies, ensuring reliable taxonomic data for each species.
  • Generated detailed logs, backups, and manual review files to ensure traceability and integrity across all transformation stages.
  • Designed the pipeline with modularity, enabling easy extension for new species categories and enhancements in data processing.

This project processes biodiversity data from the U.S. National Parks Service into a structured format suitable for PostgreSQL analysis. A key component is the Extract and Transform Pipeline, which handles the extraction and transformation of raw species data.

The modular design supports easy scalability, while logs, backups, and review files guarantee robust data management. The final PostgreSQL schema supports efficient, complex analytical queries using OLAP and geospatial data, enabling deep exploration of biodiversity trends across U.S. National Parks.

Python SQL ETL OOP Geospatial Analysis

Nonlinear Optimisation

A linear algebra and algorithm-focused project to find local minimisers from first principles, with applications in numerical analysis and machine learning.

  • Implemented the Newton Raphson and Levenberg Marquardt optimisation algorithms from first principles, prioritising mathematical clarity and computational efficiency.
  • Developed matrix-based methods, including custom \(\mathbf{LDL}^T\) decompositions, to solve challenging multivariable optimisation problems.
  • Benchmarked custom algorithms against SciPy’s optimisation library, analysing performance on speed, convergence, and accuracy.

The Himmelblau function (illustrated) is a widely used benchmark in optimisation, defined as: \[ f(x, y) = (x^2 + y - 11)^2 + (x + y^2 - 7)^2 \] It features four local minimisers, making it an excellent test case for evaluating the robustness and accuracy of optimisation algorithms. These minima occur at: \[ \mathbf{x} = (3, 2), (-2.805, 3.131), (-3.779, -3.283), (3.584, -1.848) \] We benchmarked the solvers by starting from various initial guesses to examine their ability to converge to the nearest minimum.

  • Newton-Raphson: Demonstrated rapid convergence in well-behaved regions but occasionally diverged near saddle points due to poor initial guesses.
  • Levenberg-Marquardt: Handled poorly conditioned regions effectively, dynamically balancing between steepest descent and Newton-like behaviour.

Challenging functions provided valuable insights into the trade-offs between computational cost and robustness, emphasising the practical importance of careful algorithm selection for nonlinear problems.

Python Linear Algebra Optimisation Numerical Methods Algorithm Design

Technology Stack

Email