Skip to content
View squalor0's full-sized avatar

Highlights

  • Pro

Block or report squalor0

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.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

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

Report abuse
squalor0/README.md

Hi, I'm Blake Murphy

I'm a recent Computer Science graduate interested in machine learning, AI-assisted tools, web development, and user-centred software design. I do not have formal industry experience yet, but I have built a range of working projects across Python, JavaScript, Node.js, Express, testing, machine learning, and applied AI.

This page highlights the projects that best represent my current work.


Featured Projects

Salmon Survival Machine Learning Dissertation

My final-year dissertation investigated whether machine learning could be used to predict survival patterns in Snake/Columbia River spring–summer Chinook salmon, using annual smolt-to-adult return rate data alongside environmental, ocean, timing, and policy-related features.

The project began as an investigation into possible tipping-point behaviour, but developed into a more cautious modelling study focused on validation, uncertainty, and avoiding overclaiming from a small annual dataset.

Key work included:

  • exploratory data analysis of salmon survival and predictor variables
  • feature grouping and feature engineering
  • time-aware validation
  • predictive modelling experiments
  • residual analysis
  • threshold and regime analysis
  • comparison of model performance against simpler benchmarks

Main tools: Python, Jupyter Notebook, Pandas, NumPy, Scikit-learn, Matplotlib, Seaborn


Emotion Classification with CNNs

This project explores facial emotion classification using convolutional neural networks in TensorFlow/Keras. I built a full image-classification workflow, including preprocessing, model comparison, final evaluation, and visual error analysis.

Key work included:

  • image loading and preprocessing
  • class distribution analysis
  • majority-class baseline
  • CNN model training
  • dropout, batch normalisation, augmentation, and regularisation experiments
  • MobileNetV2 transfer learning
  • validation-based model comparison
  • final held-out test evaluation
  • confusion matrix and classification report
  • misclassified image inspection
  • Grad-CAM visualisation

Main tools: Python, TensorFlow/Keras, NumPy, Pandas, Matplotlib, Scikit-learn


Classical Machine Learning Classification

This repository contains two classification notebooks: one implementing k-nearest neighbours from scratch, and one comparing supervised learning models for credit default prediction.

The credit default task focuses on imbalanced classification, where accuracy alone is not a suitable metric. I used cross-validation, F1-based model selection, recall-focused tuning, and threshold optimisation.

Key work included:

  • Euclidean, Manhattan, and Minkowski distance functions
  • 1-nearest-neighbour classification from scratch
  • k-NN, Decision Tree, Random Forest, Bagging, AdaBoost, and SVM models
  • RandomizedSearchCV and GridSearchCV
  • imbalanced classification metrics
  • threshold optimisation
  • final held-out test evaluation

Main tools: Python, NumPy, Pandas, Matplotlib, Scikit-learn


Web Development Projects

Shape Runner

Shape Runner is a fitness-focused web application built with Node.js, Express, EJS, MySQL, and Leaflet. It allows users to create running routes, snap drawn routes to real roads using openrouteservice, save routes, and log completed runs.

Key features:

  • user registration and login
  • bcrypt password hashing
  • session-based authentication
  • MySQL-backed persistent storage
  • route drawing with Leaflet maps
  • road snapping using openrouteservice
  • run logging with date, duration, notes, and ratings
  • dotenv-based credential handling

Main tools: Node.js, Express, EJS, MySQL, Leaflet, openrouteservice, bcrypt, dotenv


Bertie's Books

Bertie's Books is a small online bookshop application developed as part of my Dynamic Web Applications work. It demonstrates persistent database use, authentication, validation, sanitisation, and basic access control.

Key features:

  • Express routing
  • EJS templates
  • MySQL database integration
  • user registration and login
  • bcrypt password hashing
  • login audit logging
  • server-side validation
  • input sanitisation
  • protected routes using sessions

Main tools: Node.js, Express, EJS, MySQL, bcrypt, express-session, express-validator


Express Lab Projects

I also completed several smaller Express projects while learning server-side web development. These include simple multi-page apps, dynamic routes, EJS-rendered pages, form handling, search routes, survey submission, and basic static asset handling.

These projects show the progression from simple Express routing through to more structured applications using templates, routers, forms, and persistent data.

Main tools: Node.js, Express, EJS, HTML, CSS


AI and Tooling Projects

Study Helper – AI Tutoring Prototype

Study Helper is an unfinished but substantial AI-based study assistant developed as a second-year final project. It was designed as a modular tutoring system with multiple learning modes, note support, and a locally hosted LLM connection.

The system uses a Node.js backend with controllers, services, models, database abstraction, routes, and Jest tests. The chat system connects to a locally hosted lightweight LLM through a streaming API and processes responses incrementally.

Key features:

  • mode-based AI prompting
  • learning modes such as steps, examples, and flashcards
  • streaming LLM responses
  • custom JSON stream parsing
  • conversation history management
  • Quill-based note interface
  • WebSocket-related note/session components
  • modular controllers, services, and models
  • Jest tests for controllers, services, and models

Main tools: JavaScript, Node.js, Express, EJS, Axios, WebSockets, Quill, SQLite, Jest


Code Annotator

This is a small AI wrapper application I built for fun. It allows a user to paste short JavaScript snippets into a web page, sends the code to a locally hosted Ollama-compatible LLM endpoint, and returns concise explanatory comments.

Key features:

  • simple Express server
  • browser-based code input
  • local LLM API request
  • generated code comments
  • JSON response handling
  • basic client-side validation for code length

Main tools: Node.js, Express, HTML, JavaScript, local LLM API


Testing Work

Dynamic Form Field Validation Tests

I built a browser-based validation and testing project for form input logic. The validation checks individual fields and relationships between fields, while the test script runs edge-case inputs and logs clear PASS/FAIL results.

Examples of tested cases:

  • empty or whitespace-only names
  • invalid characters in names
  • email format validation
  • date of birth and age consistency
  • leap year handling
  • invalid dates such as February 30
  • country and country-code matching
  • phone number format checks
  • required terms checkbox

This project helped me practise test-driven thinking, edge-case handling, and separating validation logic from test cases.

Main tools: HTML, JavaScript, DOM validation, manual test runner


Skills Shown Across These Projects

  • Python data analysis and machine learning
  • model evaluation and validation
  • deep learning with TensorFlow/Keras
  • Jupyter Notebook workflows
  • JavaScript and Node.js
  • Express routing and middleware
  • EJS templates
  • MySQL and SQLite database use
  • authentication and sessions
  • testing with Jest and custom JavaScript tests
  • local LLM integration
  • streaming API handling
  • user-focused application design

Currently Exploring

  • more robust validation for small datasets
  • interpretable machine learning
  • AI-assisted education tools
  • local LLM applications
  • interactive learning interfaces
  • complexity science and systems modelling

Contact

I'm open to feedback, collaboration, internships, and junior developer opportunities.

Email: palimpsest9@yahoo.com


Thanks for visiting.

Pinned Loading

  1. cvanbeck/study-app cvanbeck/study-app Public

    JavaScript 1 4

  2. TDDtests TDDtests Public

    Tests written for a website with a range of inputs

    JavaScript