My Professional Life
I am an experienced and motivated Software Developer and DevOps Engineer. I am comfortable managing both remote and local infrastructure, and have experience implementing mitigations to most of the the OWASP Top Ten. My key skills are:
- Trained sysadmin, primarily working on GNU/Linux systems at small scales - workstations and low-traffic servers.
- Comfortable with Ansible, SSH, Docker, Kubernetes, Openshift, GPG/RSA encryption and various other networking / core infrastructure technologies.
- Experience implementing high-availability systems (including mission critical systems).
- Experience in DevOps, such as building staging databases and test environments.
- Comfortable with Python, Java, C++, Bash and basic SQL. Prefer to analyse tasks to determine the best language for implementation instead of simply using my favourite language.
- Good understanding of best practices in both Web and Application development.
- Experience as a team leader, product owner and scrum master.
- Red Hat Certified Specialist in Openshift Development.
On this page you will be able to see my credentials and find out a bit more about my abilities. I've split it up into:
- Employment
- Education
- Other details
Employment
My professional life has so far been quite varied, on account of me not being totally sure where my interests lay. I'm relatively settled on a role now, that being DevOps. The details are below (in reverse order):
IBM UK and Ireland, December 2019-present, Cloud Software Developer:
I am currently employed as part of the Cloud Pak Acceleration Team (CPAT) at IBM.
Responsibilities and Goals:
- Help customers make use of Cloud Paks that they have purchased.
- Increase adoption of the Openshift Container Platform throughout business.
- Help other members of the team make the most of the Openshift Container Platform, as part of the Platform chapter.
Carril Solutions Pvt Ltd, May 2019-October 2019, CTO/Project Lead:
I spent most of my time at Carril Solutions breaking down an extensive project so that it could then be worked on by a development team - effectively taking on the product owner role. In the end, the project was abandoned, in part due to the realities of the scope of the project, which they had not realised until I explained it to them.
Achievements and Responsibilities:
- Championed Scrum within the organisation and introduced effective working practices.
- Broke down the extensive requirements for the project for which I was hired, in order to prepare it for a development team to work on (Product Owner).
- Held job interviews and made hiring decisions with the help of the CEO.
- Prototyped hardware for the project (with the help of my team).
- Advised sysadmin on how to properly implement HA services using Kubernetes/Docker.
- Managed local computing infrastructure within the office using Ansible.
Freelance, October 2018-April 2019, Web Developer:
This was largely simple part-time work as a stepping-stone to a full-time role. I designed mostly static websites and ensured proper security measures were taken to ensure that common attacks were mitigated (mostly covering the OWASP Top Ten).
Vocal Planet Ltd, February 2016-May 2017, Junior Developer:
I worked as part of a small scrum team in Vocal Planet, primarily focusing on the infrastructure and database requirements of the team. The key things I learned were the software development lifecycle, test driven development and continuous integration. I helped to develop a master data management solution which has yet to enter the market, and made extensive use of JDBC, SQLAlchemy, Django and Flask.
Achievements and Responsibilities:
- Worked on a SaaS MDM platform for the company.
- Organised the Scrum Team (3 developers including myself, not including the Product Owner).
- Managed the testing infrastructure, including automated testing and version control.
- Managed development environments (virtual machines using Vagrant, Docker, and later Openshift).
- Helped write secure software in Java to interact with SQL databases.
- Managed local instances of Teradata and PostGreSQL for testing purposes.
Imperial College London, Summer 2013, Placement at the Applied Modelling and Computation Group (AMCG):
During this placement I learned about fluid dynamics and computational modelling.
I worked alongside computational physicists in the department and delivered a tool to convert templates from the
Ecolab software package to their open source Fluidity program.
The project was done within a Ubuntu Linux environment, and written in Python with the Pyparsing module.
Xerox Ltd, Summer 2011, Assistant Scrum Master:
I worked alongside some of their scrum teams, helping to manage the teams and also to develop tools to measure their metrics and performance. This was primarily done in Python and HTML5.
Achievements and Responsibilities:
- Helped the Scrum Master manage the teams.
- Developed some simple automation to simplify the processes in place already.
- Improved visibility of the existing metrics to help improve the performance of the Scrum team.
Maplin Electronics, November 2009-April 2011, Part Time Sales Advisor
I expanded my knowledge of electronics and computing and proved my problem solving skills. I developed good people skills while working at Maplin.
Achievements and Responsibilities:
- Worked on the shop floor helping to fix customers' problems.
- Dealt largely with computers, electronic components and other technical problems.
- Expanded to deal with more complex problems as I learned from my colleagues.
Xerox Ltd, Summer 2009, Placement
I worked on a commercially sensitive printer technology which has not yet entered the market.
I learned research skills, communication skills and some programming. Despite coming across new mathematical
concepts as part of this, I completed the project to a high standard.
As a result, a patent application was submitted for my work.
EADS Astrium, Summer 2008, Work Experience Placement
I worked in the satellite department to analyse a specific project path for the department to pursue. I had to
collect large amounts of information about current projects similar to the one they were considering. In order to
understand all the information that was available, I discussed the problem with my colleagues and learned from them
to improve my own understanding.
I effectively researched and presented this to my manager.
Education
At a glance:
From | Dates | Qualification |
Red Hat | September 2020 | Red Hat Certified Specialist in Openshift Application Development (Openshift 4.2) |
The Knowledge Academy | September 2015 | Certified Scrum Master |
Imperial College London | October 2011 - June 2015 | BSc Geophysics 2:2, with primarily 1st in maths, physics and computing. |
Knights Templar School, Baldock | September 2009 - June 2011 | A levels - A* in Maths, A in Physics, A in Further Maths |
During mid-to-late 2020, the team of which I was a part within IBM were all encouraged to take Red Hat certifications. As part of that, a number of us were given 1 year learning subscriptions. Within this team, I was the first to pass one of the suggested certifications, earning my certification on September 9th 2020. My digital badge is shown below:
In September 2015 I did a 3-day course with The Knowledge Academy covering Scrum and Scrum Mastering. I passed the course and as a result am now a Certified Scrum Master.
From 2011 to 2015 I studied Geophysics at the Royal School of Mines, Imperial
College London, taking a year out for my health in the middle. I experienced a great deal during my time at
Imperial and learned even more. I graduated with a 2:2 in the end, but I feel that this was in part due to the
relative emphasis on geology in my course. I consistently did well in the maths, physics and computing modules and
it was the others that caused me to struggle.
Imperial College is where I picked up my love of board games and where I learned a lot of organisational skills,
helping to run two student societies during my time there.
Before Imperial College, I did my A-levels at the Knights Templar School in Baldock, Hertfordshire.
Other Details
Computing Experience
- I use Scrum in my own projects on various scales, and am a certified Scrum Master.
- I built my own PC at the age of 13.
- I am fluent in bash/ansible and have experience setting up and running servers.
- I use Linux extensively and am extremely confident with it.
- I am fluent in Python, Java and C++
- I am confident with C, Javascript, HTML and Matlab.
- I have used C#, UML, PICAXE BASIC and Wolfram Mathematica.
- Writing code clearly and documenting it properly are things I do automatically.
- I understand and embrace Scrum and Agile programming methods.
- I have experience developing APIs.
- I have experience using various public APIs including SteamSpy and TfL, working with both JSON and XML.
- I primarily work on backends, but am able to integrate into frontends and have build a few of my own using QT/C++, JavaFX/Java, PyGame/Python and Tkinter/Python.
- I have skill in data processing, including the use of filters to improve the signal to noise ratio in real-life data and large scale simulation.
- I have analysed large volumes of data – sorting and bucketing data appropriately, using tools to remove outliers.
- Currently maintain my own website (you're on it!)
Achievements
- Ongoing: Game Development
- Following the Low-Rez Jam (see below), I've continued to develop video games as a hobby. I largely use Godot but have used other tools a few times when collaborating with others. I've taken part in a few different game jams over the years.
- 2016: Low-Rez Jam
- Myself and a friend took part in a game jam and together we wrote a game limited to 64x64 pixels using python and pygame which is available online today (see Ghost, under Projects).
- 2014: Marked for Death
- I began to write my own tabletop RPG, which was picked up by a publisher in December of that year – it was published in 2016.
- 2012-2015: Imperial College
- I helped to maintain several societies at Imperial College on a voluntary basis, and for two of these years this was a crucial role without which said societies would not have functioned.
- 2011-2015: Gaming
- I created and ran two tabletop gaming groups.
- 2009: Patent Application
- I wrote a proof-of-concept for which a patent application was submitted (see Xerox).
- 2009: Young Enterprise Day
- I took part in and won Young Enterprise day working together with my form in Knights Templar.
- 2007: Maths Challenge
- I represented my school in the Maths Challenge run at the University of Cambridge.