Memoji

Ian Wood

Aspiring Data Engineer

Student Mathematician

Michelin Trained Chef

Musician

Michelin-trained chef turned tech enthusiast.
As a third-year Mathematics and Physics student delving into Computer Science, I thrive on challenges and solving complex problems.

I'm eager to apply my analytical skills in a dynamic tech environment.
If you're seeking a dedicated and hard-working junior developer, I'd love to explore how my background and skills align with your team's goals.

Curriculum Vitae

Selected Project Gallery

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

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.

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.

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, which will allow complex visualisations like Poincaré sections and bifurcation diagrams to be rendered on the fly. Future work will involve refining numerical integration methods to optimise both accuracy and performance in these visualisations.

Python CSS Numerical Methods Web Development Cloud Deployment

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.

Python Data Analysis Web Scraping Geospatial Analysis Dashboard Development

Polynomials & Conic Sections

A Python package leveraging the Factory OOP Method for polynomial manipulation and conic classification

  • Developed a robust string parser to translate plain-text equations into computable hash maps.
  • Enabled automatic classification of conic sections from general equations, utilising the Factory method.
  • Implemented partial differentiation, integration, and root-finding through methods like Newton-Raphson.
  • Visualised polynomial functions and conic sections graphically in both 2D and 3D spaces.
  • Designed low-code tutorials demonstrating linear algebra operations and polynomial calculus for interactive learning.

This project is a comprehensive package for polynomial and conic section mathematics, implemented in pure Python.

The Polynomial module allows users to work with both univariate and multivariate polynomials, featuring intuitive plotting and symbolic conversion using SymPy.
The Conic module automatically classifies conic sections (parabolas, circles, ellipses, and hyperbolas) from general polynomial equations, applying matrix notation for classification and transformations.

Together, these modules showcase a deep understanding of computational mathematics and object-oriented programming. The package is designed for both beginners and advanced users, with future development planned to create a user-friendly learning interface aimed at first-year university students. This project demonstrates strong foundations in computer science and mathematics while maintaining practical usability through clear documentation and tutorials.

Python OOP Mathematical Modelling Data Structures Software Design

Technology Stack

Email