William Fish
Software Engineer
ABOUT ME
I am a senior software engineer with experience in Public Services and Insurance and Fintech startups specialising in telematics, behavioural profiling and e-commerce. I am passionate about delivering well-tested and good quality code and I am a fast learner. I am a good communicator and am happy to resolve problems as a team. I like simplicity in code that others are happy to read and extend. I am interested in developing my knowledge of modern programming languages and infrastructure tools and am keen on developing skills using modern javascript frameworks including React and Vue.
SUMMARY
Ruby, Rails, RSpec, Cucumber
Expert (6 years)
Linux, Bash, Git, Chef
Advanced (6 years)
Terraform
Advanced (4 years)
Postgres, Javascript, AWS, Redis
Intermediate (5 years)
Elixir, Phoenix, Absinthe, Docker, Python, Rust
Intermediate (1 year)
C++, C
Beginner (5 years)
Java
Beginner (1 year)
EXPERIENCE
April 2020 - now
Software Engineer, Ministry of Justice (Contract)
- Achievements
- Designed and built an improved event log
- Significantly improved the flexibility of our reporting process making MoJ hub happy
- Resolved a large architectural issue with the service design
- Implemented versioning to support non-disruptive supplier integrations
- Upgraded Rails and Ruby and multiple gems continually
- Key Technologies
- Ruby, Rails, PostGres, RSpec, Swagger, json:api, Docker, AWS S3, Kubernetes
November 2019 - April 2020
Senior Software Engineer, Impero Software (Contract)
- Achievements
- Significantly improved our server configuration and deployment times
- Added integration testing for all configuration management manifests in Puppet
- Significantly improved test coverage in the existing web application
- Upskilled the team in testing principles and practice
- Key Technologies
- Ruby, Rails, RSpec, Mariadb, Puppet, NGinx, Docker, Azure
January 2018 - October 2019
Senior Software Engineer, MyDrive Solutions Ltd, London
- Responsibilities
- Supporting and providing relevant training for team members
- Mentoring junior developers
- Speaking with customers about integrations and requirements
- Understanding and aligning with product owner on technical priorities in the backlog
- Keeping aligned with overarching business goals
- Running daily standups, leading refinements and facilitating retrospectives
- Achievements
- Upgraded projects from Rails 4 to Rails 5
- Sped up unit testing in Jenkins ci by as much as 90%
- Enabled first day commits for new developers by improving workflow
- Implemented coding standards to speed up developer review process
- Worked with SRE team to migrate from EC2 to ECS, Codebuild and Codepipeline
- Key Technologies
- Ruby, Rails, Postgres, Redis, AWS, Terraform, Docker, Jenkins
January 2015 - January 2018
Software Engineer, MyDrive Solutions Ltd, London
- Responsibilities
- Building api and customer support portal services in Ruby, Rails, Postgres and Redis
- Adding features to behavioural profiler in Ruby and C++
- Working closely with mobile engineers on end-to-end features implementation
- Achievements
- Wrote tooling for performance benchmarking different infrastructure and project configurations
- Built cassandra infrastructure from scratch with chef as part of a migration
- Converted our Rails apps to follow 12-factor principles (https://12factor.net) and dockerised our Rails apps for production and ci
- 100% code test coverage of all new code
- Major refactor of reporting service
- Defined and implemented end-to-end testing project in Ruby and RSpec preventing many outages/bugs
- Key Technologies
- Ruby, Rails, Postgres, Redis, AWS, Terraform, Jenkins
July 2014 - January 2015
Linux Systems Administrator, MyDrive Solutions Ltd, London
- Responsibilities
- Configuring new infrastructure services needed by our apps (i.e. exposing logs in an ELK stack)
- Permissions management in AWS IAM
- Onboarding new customers and building their infrastructure in AWS
- Boostrapping servers with bash and chef
- Achievements
- Implemented a process for validating map database updates
- Migrated chef code to be more modular/easily maintainable
- Key Technologies
- Ruby, Ubuntu, Postgres, AWS, Terraform, Jenkins
December 2013 - July 2014
Linux Systems Administrator, Powa Technologies Ltd, London
- Responsibilities
- Maintaining infrastructure
- Resolving live issues (especially during deployment windows)
- Supporting developers with access to systems and data
- Extending reports in Java
- Achievements
- Migrating from manual to automated deployment processes
- Migrating legacy products from Rackspace to AWS
- Resolving complex issues with our backup infrastructure
- Key Technologies
- Java, CentOS MySQL, AWS, Rackspace, Puppet, Jenkins, Bacula, Apache Tomcat
CERTIFICATIONS
- University of Washington, Programming Languages (94.40%)
- AWS, AWS Solutions Architect Associate
- AWS, Big Data Specialty Training
- Pragmatic Studio, Ruby Programming
- Pragmatic Studio, Mastering Ruby Blocks & Iterators
- Pragmatic Studio, Ruby on Rails 5
EDUCATION
2010 - 2011
King’s College London, London, MSc Philosophy of Psychiatry (2.1)
2007 - 2010
Swansea University, BSc Psychology (2.1)
FRAMEWORKS
Kanban, Scrum, Agile
INTERESTS
Reading, Cycling, Walking