Thomas Fishwick

Nice to meet you!
I'm Tom Fishwick
My main experience from work is as a developer for Elite 3E (VB.Net & SQL) and MatterSphere (C#). This involves creating new screens and workflows and integrating them with various APIs. As well as these I have made an ASP.Net site serving a Vue.JS application, and various other JavaScript applications.
In my spare time I have created various apps in Python, JavaScript, React Native and Android. Plus I have some experience in PHP.
Skills
Python
5 Years Experience
SQL (MS SQL Server, SQLite, MariaDB)
10 Years Experience
VB.Net
10 Years Experience
C#
7 Years Experience
JavaScript
12 Years Experience
SQL Server Reporting Services (SSRS)
6 Years Experience
MATLAB
1 Year Experience
HTML
12 Years Experience
Docker
2 Years Experience
Projects

Chart the Stock Market
This project started as my answer to FreeCodeCamp Chart the Stock Market. Here I created a flask app with web sockets. This started life with the JavaScript being in charge of the visualisations in D3. This used a huge amount of code to draw the graph. I then decided to get Python to parse the data and draw the graph, passing the Base64 string back to JavaScript. Jupyter Labs was useful to design the function and then I copied the code out into a python file. After quite a few attempts I got the app onto Heroku. This was quite a bit more complicated than I thought it would be. I first found out about the existence of Gunicorn and then how to use it. From this I also found out about using .env files in Python (something that I had done in Node.JS and thought would be a good idea in Python). This has since moved to first Railway.app and now render.com. With the JavaScript becoming TypeScript and being in charge of the visualisations using ChartJS.
Live Link Source

Predict Health Costs With Regression
This project started as my answer to FreeCodeCamp Predict Health Costs With Regression. Here I created my first Streamlit App, and then discovered how hard it was to put streamlit into a Docker container. Here you can see the difference between the model's predictions and the actual data. You can then use the controls to predict your health costs. I later revisited it to tear out all of the TensorFlow code and replace its model with a Random Forest Regressor
Live Link Source

Cat and Dog Image Classifier
This started out as my answer to FreeCodeCamp Cat and Dog Image Classifier. I created a Node.JS app which uses TensorFlow.JS with the converted model I made to determine whether the image passed is more likely to be a cat or a dog (with not so great accuracy).
Live Link Source

SMS Classifier
This project originally started as my answer to FreeCodeCamp SMS Classifier. In this project I created my first Flask Web App (not including the tutorial I did). Plus my first Docker Container (outside of a tutorial). Originally this used TensorFlow as the machine learning library, but I have now changed this to SciKit Learn. In the web app you can test the classification of various texts, the client side JavaScript will post a request to the API which in turn will consult the saved SKLearn model. You can then press the "Add to database" button, this will push it into the local database (a SQLite database inside the Docker container). In the data table at the front end you can flip the classification of messages between spam and ham. You can also delete that entry out of the database. Pressing the "Retrain Model" button will cause the Flask server to retrain the Machine Learning model on the data in the SQLite database. It will then test the model against the validation data from FreeCodeCamp (the main data is also from FreeCodeCamp). This may take a little while, it will then save the model in the Docker container and then use that. To build the model manually you can run the file modelmaker.py.
Source

XKCD Reader
My XKCD Reader app, which uses React-Native to render the XKCD website. The Android APK file (tested on my phone and in the Android emulator) is available at the link above.
Live Link
Certifications
Contact
I would love to hear about your company and how I could help. Please fill in the form, and I'll get back to you as soon as possible.
Posts
XSLT Pages
I have updated my Sitemap and Atom feeds to display as though they are HTML. Inspired by the idea of not repeating myself, which I wasn’t because generally Jekyll had one copy of this data in the source code, but then two copies in the output.
UI Update
Here I explain some of the main changes, such as the new NavBar and the removal of BootStrap from the site.Blog Questions Challenge
I first saw this challenge on Adactio’s blog.
Ruby Chess
I created a chess game as part of the Odin Project.
React Terminal
We do this not because it is easy, but because we thought it would be easy
- Some guy on RedditReact
The remaining React pages now lives here.
VueJS
Continuing on from my previous post where I moved one of my React Pages, I have now removed VueJS from my main site.
Recipe Box Move
The time finally came when this site got too big and I started moving things.
Farewell to Railway
Recently Railway.app announced a change to their pricing structure, so I took the opportunity to revamp my flask app that ran on there to chart the stock market. It now uses Chart JS instead of MatPlotLib as the most visible difference from before.
Scarlet Sentinels Welcomes New Recruits
The Scarlet Sentinels Chapter welcomes Lieutenant Kieran Cadmus and Librarian Zao Urbane as its first Primaris Space Marines.
End of University
A brief summary of what I did in my university projectsMachine Learning and Model Railway Making
Making a model railway diorama with the help of a machine learning translation modelDifferent Report Types
In my time at McMillan William’s/Taylor Rose MW and as a student at City University I have used various different reporting packages.
Automating Documents with Word
A brief look at various ways of automating Word documentsKill Team
Sargent Griff Snipa stared out at the wastes of Orthanc. His squad of Boyz had set up shop at a way station halfway between two of the hive cities on the planet. They had been dispatched to locate a human relic, an Inquisitor’s digital gun. Said inquisitor had taunted Big Boss Head-Rippa with it and his transport had been shot down over the way station after his retreat from the Orks at Hive Veritas.
Blood Bowl 1st Match
My first Blood-Bowl match, with a few embellishments
subscribe via RSS