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
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…
January 11, 2021
June 10, 2020
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.
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.
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.
RoR Tutorial
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!
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
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.
Scription
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
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 |