Skip to content
View MRLintern's full-sized avatar
  • Scotland UK
Block or Report

Block or report MRLintern

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
MRLintern/README.md

Hello 👋, I'm Matthew Lintern-Monro, but I go by Matt

Who am I?

I consider myself to be a polyglot programmer with various interests. If I'm unfamiliar with a language and its technlogies (frameworks, libraries etc), I will teach myself these to get a project done, something I've had to do in and outside of industry. I'm always intrigued by using a different language to develop a project I've already completed. This can be a good experiement or a bad one; the below example I feel is a good on. For example, the project Systems Monitor similar to htop was developed in Modern C++. Could there be an advantage in writing this application in Rust or Golang, given these are both System Level languages? Anyway, what do I usually do in the workplace? Read about that below.

My past experience includes working in the Oil & Gas Industry and Retail Sector (BI & HR Analytics), utilising a wide range of technologies, allowing Stakeholders to make informed business decisions. My experience in these industries has seen me work on a wide range of projects. For example, from developing shell scripts to load, process and unload large Seismic data sets, to using Machine Learning to try and understand employee absence rates for Tesco and reduce the £2million pa financial loss.

What I'm up to?

  • 🌱 I’m currently working on:

    • Bash-Hacks. A folder of mini Bash scripts which perform all manner of automation tasks. Working on this now and then so I'll always be adding to it when I'm not doing something more substantial.

Ideas for Possible Projects

  • Developing a Multithreaded 2D Chanel Flow Solver for the Navier-Stokes Equations, using the Finite Difference Method and the Successive Over-Relaxation Method, in a variety of languages: e.g. C, C++, & Fortran. Will use the OpenMP API for Multithreading.
  • Developing a Linear & Non-Linear Covective Heat Flow Solver, in C++, using the Finite Element Method and solved via the Successive Over-Relaxation Method
  • Employing Fortran and the GPU to build a Linear/Non-Linear Shallow Water Equation Solver.
  • Physics-Informed Machine Learning. Applying this to Inverse Problems in Geophysics. E.g. Seismic tomography and Geomagnetism.
  • Developing a Compiler using the LLVM Project.
  • Developing a Compiler in C/C++.
  • Developing a Multithreaded Linux Kernel.
  • Developing an Interpreter &/or Compiler in Go.
  • Deloping a basic Operating System in C.
  • Learning the SYCL Programming Model and creating some basic applications with it.
  • Creating a simple Crypto Trading Platform in C++.
  • Creating a Cryptocurrency Trading Bot with a User Interface in Python.
  • Creating a simple Trading Bot in Java. I've never worked with Java and I've always been put off by it; Might be a good time to see why!
  • Creating a basic Online Oil & Gas Data Management System called OGManager, developed in Golang.
  • Could a Physics Game Engine be used for Scientific Simulation/Modelling?
  • Writing a solver for the (Discrete) Fast Fourier Transform using OpenCL. I studied Geophyics so I'm naturally interested in applications of Signal Processing.
  • GPU Programming and Fluid Dynamics: Taking a look at the SYCL Framework and using it to develop a solver.

What do I love?

  • C.
  • Modern C++.
  • Fortran.
  • MATLAB.
  • Data Structures & Algorithms.
  • Bash Scripting.
  • High Performance Computing: I love seeing how HPC can help with Scientific/Simulation problems. I'm keen to start learning about the SYCL framework too.
  • Computational Science. Like my repo's show, I love developing Numerical Algorithms to solve Scientific and Engineering Problems.
  • Systems Programming: I love knowing how things work under the hood. E.g. Compilers and Operating Systems (Linux).
  • Data Science.
  • Data Engineering.
  • Scientific Programming: Modelling and Simulation of problems in Fluid Dynamics & the Physical Sciences.
  • Applied Mathematics: E.g. Numerical Analysis, Linear Algebra, Ordinary/Partial Differential Equations and (Computational) Fluid Dyanamics.

What are you interested in?

Take a look at these repositories; some of my applications might interest you and might help you out in some way. Or you might look at them and think "Why on Earth has he done it that way, when he could have done it this way!". If thats the case, please let me know as I'm always looking to better myself and my applications.

Systems Programming

Scientific Software Engineering

High Performance Computing Applications for Physical Simulation

Geophysical Fluid Dynamics

Data Science and Machine Learning

Data Engineering

What I've used in Industry

  • Python. E.g. used for: Automation, small-scale Software Development and Machine Learning Algorithm implementation.
  • Data Science Stack: E.g. Pandas, NumPy, Matplotlib, seaborn, SciPy, sci-kit learn, Keras and TensorFlow.
  • Machine Learning Algorithms: E.g. Natural Language Processing, Multilinear Regression, Logistic Regression, K-Means and Support Vector Machine (SVM).
  • Tableau.
  • Microsoft SQL Server.
  • PostgreSQL.
  • Excel/VBA.
  • Linux/Bash Scripting.

Contact Me:

Employment History (Technical Positions Only)

  • Sword Group: September 2019 - November 2019: Geo-Data Scientist.

    • Looked into using Natural Language Processing to search for key information regarding Reservoir Formations in reports.
    • Using Python, developed software which converted folders of reports from docx to PDF format.
  • Tesco CEC: July 2018 - September 2019: Performance Insight Analyst.

    • Automated weekly reports for KPIs such as company performance and staff absenteeism.
    • Worked with the Absenteeism Stakeholders to provide a new dashboard using Tableau rather than Excel.
    • Worked with the Absenteeism Stakeholders to investigate Absenteeism Rates across the year. This was an important project because Tesco CEC was loosing £2million PA due to staff absences. Technologies used in this project: Python, SQL, Tableau and Multiple Linear Regression.
  • Schlumberger: November 2013 - November 2014: Geophysicist & Data Scientist.

    • Assisted Senior Geoscientists with training for clients using Petrel and Techlog software.
    • Provided general Data Management solutions for Stakeholders as and when required.
    • Joined the BP Chili Data Migration Project. This involved migrating all of BP’s Data Assets from OpenWorks DM Software to Petrel and Studio Manager.
    • Acted as a Focal Point for the BP Chili Project in the Schlumberger Houston (Texas) Office. E.g. Producing documentation on the Migration Techniques being employed in the Aberdeen Office.
  • Halliburton: November 2012 - November 2014: Seismic Data Scientist.

    • General duties: Seismic (SEG-Y and P1/90) Data Loading/Unloading and Bash scripting.
    • Developed reports for clients on the life-cycle of their data assets.

Education

  • University of Edinburgh: 09/2022 - Present: MSc High Performance Computing (Online Part-time).

  • University of Aberdeen: 2014 - 2015: MSc Geophysics.

    • Dissertation: Forward Modelling of the Seismic Response of the Sherwood Sandstone Group of the Rhyl Gas Field.
  • University of Liverpool: 2008 - 2012: BSc (hons) Geophysics (Physics).

    • Dissertation: Rate of Change of Earth’s Magnetic Field due to Various Outer Core Fluid Flows.

Tools and Technologies

Programming Languages
Scripting
Data Analytics
IDEs & Text Editors
Databases
Other

Pinned

  1. NavierStokes-2D-ChannelFlow NavierStokes-2D-ChannelFlow Public

    2D Navier-Stokes Equation. Discretized using Finite Differences and solved via the Successive Over-Relaxation (SOR) Method.

    Fortran 2

  2. cppHTOP cppHTOP Public

    System Monitor similar to htop which displays Computer System Processes in Real-Time.

    C++

  3. 2D_Heat_Equation-MPI 2D_Heat_Equation-MPI Public

    2D Heat Equation for a bottle Discretized by Finite Differences; Pallelisation of Linear System of Algbraic Equations acheived via the MPI API

    C

  4. Shallow_Water_Equations Shallow_Water_Equations Public

    Application of the Shallow Water Equations to Oceanography & Planetary Atmospheres

    MATLAB 1

  5. 2D_Poisson_Equation_OpenMP 2D_Poisson_Equation_OpenMP Public

    2D Poisson's Equation. Discretized using the Finite Difference Method & Solved by Parallelising the Jacobi Iterative Method via the OpenMP API.

    C 1 1

  6. Boundary-Value-Problem_Library Boundary-Value-Problem_Library Public

    A C++ Designed Library used for Solving Boundary Value Problems (BVP)

    C++