A picture of the site author, Anthony

I'm Anthony, a final year CompSci student and part-time software developer at Plymouth Software - which really means I spend most of my time listening to music and struggling with UI design.

I currently work primarily with Ruby on Rails and React for web applications and Flutter for mobile development. This site itself is built on Jekyll (which compiles Markdown, Liquid, HTML & SCSS into static websites), using Tachyons for styling and containerised with Docker

You can find the GitHub repo here

Introduction

Anthony is a software developer and student. He is a firm believer in the value of small, agile development teams - regular meetings should be held to reflect on and plan future progress, and larger teams carry a communication overhead that makes this difficult to manage. Equally fundamental is a balance between effective communication and bureaucracy - a lack of excess of either can lead to a lack of internal organisation or restrictive over-management, either of which can infringe on productivity.

Outside of work Anthony is an avid creator and consumer of literature. He specialises in short, introspective fiction and has a growing anthology of poetry. In this he is frequently inspired by music (and indeed spends most of his life with a backing soundtrack) and the emotions evoked, particularly nostalgia and escapism.

Anthony is a proud advocate for equality, and realises it cannot be achieved until marginalised groups are sufficiently supported

Black Lives Matter · Trans rights are human rights · Tax the rich

Articles

A picture of a tree on a hill
GitHub Basics

October 19, 2019

At time of writing, I’ve just finished the second year of my CompSci degree and am taking a placement year in industry…

Here is a short series of guides for using Vue with a primarily Rails-based application. They cover everything from the creation of a new app and installation of Vue through to having an inline, validated, editable table for your model.
A picture of a whale breaching the surface of the ocean
An article following the creation of a dockerised Ruby on Rails application, complete with a dockerised Webpack development server running parallel. Worth a read if you're trying to dockerise a modern, reactive application

Portfolio

My second year at Plymouth brought with it an interesting introduction to full-stack development. In teams of 4, we were to develop a ticket booking system for trains. This was to incorporate a mobile app for customers, a Java desktop app for staff use, and a web app for administration (plus a database and web API so they could interact).

Unfortunately as a university-managed task, the GitHub repo has since been removed.

Train Booking System

My role in this was building the desktop app, web app, and co-authoring a Java library that handled our API connections that we could simply import to every project. The primary lesson I took from this course was, well, which frameworks to avoid. I'd be content to not touch Java Swing or Kotlin for the rest of my career.

A steam train

Alongside my studies, I educated myself in fundamentals of VBA so that I could create a procedurally- generated mazemaker in Excel. This, very simply, created a random maze using the Excel sheet as a grid. The process was to create a `Master` path from the center of the given range, which would repeatedly select 'valid' (ie unblocked) adjacent squares until it couldn't find any other valid paths or reached the end of the selection.

The code would then traverse along this path (with a given step size so you could adjust complexity) and create a 'child' path wherever it could.

Mazemaker

This was created purely as an exercise to see if I could. It was used very briefly in a Dungeons and Dragons session, but the project ended with vague plans that concepts from it could be taken to apply to bigger projects as needed.

It was, however, refreshing and exciting at the time to work on something entirely for myself; this passion for programming is something I intend to keep.

A maze made from white lines over a black background

In preparation for my placement at Plymouth Software, I taught myself the basics of Rails and created a test application (following Michael Hartl's wonderful tutorial). The application earned the colloquial name 'Young Forest' following it's deployment to Heroku.

The project was expanded beyond the tutorial during my first few weeks on placement as a learning exercise. Additional features such as private favourites were added, and the codebase was used as a testing ground for significant migrations required in other applications to work out any major issues.

This highlighted the importance of spike applications when undergoing new, challenging, or large changes; recreate the issue in a smaller, simpler app and work through the problems in a simpler environment first.

Learning about so many new technologies made me excited to try them outside of work. So I made this!

This website is my personal practice in development. I'm using GitHub for version control (and to a better standard than I have before) and have it deployed via Netlify. Feel free to check out the repo for more information on how it's been built :)

I'll be the first to admit that I have a lot of unresolved issues with Javascript. But, despite my best intentions, the programming community are determined to keep digging it up. When a university course required us to learn ME*N stack (Angular excluded for health and safety reasons), I decided to take the opportunity to learn React as well... And promptly fell in love.

Vignette is another gratuitous, self-indulgent project. It's designed to help writers struggling with writers block by motivating them to write flash fiction that is posted publicly, anonymously, and deleted after 30 days; no pressure, no need to write anything good, just an opportunity to write something. It is, in essence, the app I needed in college.

At time of writing this is hosted on Heroku, and once university allows I'll make the source code publicly available.

Does the colour scheme look familiar?

This is also around the time I started caring about accessibility. The internet is a wonderful thing, and everybody should be able to use it. So a key requirement of this app was it's accessbility - the colours chosen are visibly distinct when tested with colourblindness simulators & the site is easily navigatable via keyboard. The app scored 95 in Google's Lighthouse test for accessibility, and this is the bar I set for myself and developers I deal with.

And this brings me to now, to this year. At time of writing I'm in my final stage at university, and for my course I have complete freedom to make a project of my choice to be developed during the year. True to form, I'm making something nerdy and self-indulgent - a Dungeons & Dragons notes organiser.

With the complete technical freedom for this project, I've combined some of my favourite things. A Ruby on Rails API with a React web app, (soon-to-be) Flutter App, all wrapped in Docker and hosted on Heroku.

Enter Scription. This is designed to be a quick-reference for notes during a session. You define notable characters, locations, or items and then write notes about them. Then should you need to fact-check yourself or deal with annoying players, you can quickly see the information about a given notable. Once again, this is designed to be accessible-first. To check progress, this app is hosted here

Experience

Plymouth Software

As a placement year during my studies, I worked as a developer at Plymouth Software, a company specialising in Ruby on Rails consultancy and upgrades. I worked closely with clients in a “lower-case ‘A’ agile” team to story-point and complete feature requests and bug reports. Here, I gained valuable experience in Ruby on Rails for web application & API building, especially with modern, reactive front-end frameworks such as Vue.

Beyond this, I worked with Flutter and Dart on an Android and iOS mobile application; this similarly provided a refreshing change of pace to use more modern technologies.

Education

University Year Two
Design Patterns Object Orientated Software Engineering with Design Patterns 79.35%
UX Design User-Centred Interface Design 74%
Database Development Database Applications Development 71.5%
AI Computation Theory and Artificial Intelligence 62.5%
Embedded Systems Embedded Programming and the IoT 63%
Integrated Project Computer Science Integrating Project 71.52%
University Year One
Software Engineering Software Engineering 80.89%
Database Design Database Analysis, Design and Development 71.4%
Infrastructure Principles of Infrastructure 69.33%
Cybersecurity Cybersecurity Essentials 70%
Algorithms Algorithms, Data Structures and Mathematics 74.39%
Introduction Immersive Introduction 65.75%
A-Level
Biology Biology B
Chemistry Chemistry B
Statistics Mathematics (Statistics) B
Creative Writing Creative Writing B
GCSE
AAAAAAAABB