Verified Expert in Engineering
Technical Writing Developer
Phillip has many years of experience in all aspects of the software development lifecycle, with particular expertise in problem-solving, coaching, training, and DevOps and Agile philosophies. He advocates Agile, test-driven development, the DevOps culture, and has coached several developers and testers to adopt DevOps methodologies. Phillip has been developing applications using Google Firebase and lifting and shifting applications from AWS and Heroku to GCP.
Go, Python 3, Google Cloud Platform (GCP), Kubernetes, Docker, Java, MacOS, Linux, Bash, GitHub
The most amazing...
...thing I've done was to write software in Java and Go which uses NASA data to predict astronomical events, including sunrise and sunset times.
Reward Gateway, Limited
- Deployed existing PHP applications in Docker containers.
- Set up and configured CentOS virtual machines using SSH.
- Deployed applications in Docker Swarm using Docker secrets routed through an NGINX proxy.
- Implemented global logging using Logstash, OpenSearch, and Kibana.
- Implemented application and infrastructure monitoring using New Relic.
Okta | IAM Expert
- Wrote training materials on the use of Okta authentication and IAM.
- Developed a proof of concept (POC) for using a command-line interface to create Okta resources.
- Created software for timing and recording OAuth 2.0 login times.
- Wrote tools in Python 3 to automate the creation of Okta applications using the Okta API. This greatly improved teams' productivity and reduced their dependence on support teams.
- Implemented secrets management in Python for HashiCorp Vault, 1Password, and Google Secrets Manager.
- Developed an application and wrote an article on the Python Tornado framework with authentication.
- Built an application and wrote an article on Go and Gin, securing it with authentication.
- Constructed Elasticsearch applications in Python and Go and wrote articles on them.
- Created and implemented serverless containers on GCP, Azure, and AWS and wrote an article comparing the clouds.
- Implemented HCL to deploy applications using Terraform and wrote an article on the implementation.
- Separated production from test environments by creating a separate GCP project and a Kubernetes cluster.
- Simplified existing Kubernetes deployment using Helm charts.
- Assisted developers in deploying their applications in a GCP Kubernetes cluster.
Senior Site Reliability Engineer (SRE)
- Ported four Heroku and AWS cloud applications to the Google Cloud Platform.
- Assisted three teams of developers in porting their applications to GCP.
- Created Docker builds to containerize the legacy application.
- Deployed applications in GKE using Helm and CircleCI.
- Created Kubernetes clusters in GCP/GKE and configured IAM permissions.
- Configured Kubernetes ingresses with static IP addresses and created DNS entries. Also configured load balancers to handle HTTPS traffic.
- Developed SDLC workshops to migrate development teams to Agile and Scrum.
- Created a workshop on serverless mobile development using Google Firebase.
- Enhanced a REST application using Go and Go templates.
- Built a REST back end using Python and Flask to access Google APIs.
- Designed REST APIs using Open API specifications to access Google APIs.
- Produced webinars promoting Firebase and Kubernetes solutions on Google Cloud Platform (GCP).
- Developed and supported applications running on GCP.
BNP Paribas Fortis
- Convinced teams to adopt new technologies and DevOps practices.
- Ran test-driven development (TDD) kata sessions in Java.
- Assisted teams in creating Jenkins pipelines to build, test, and deploy their code into the cloud.
- Led contract-first workshops to design REST APIs and build stub services.
- Held workshops on how to safely refactor legacy Java code.
- Performed as an engineering and operations guild lead, managing technical coaches.
Senior Java Developer
- Designed a cloud-based replacement for a legacy system.
- Implemented back-end system components in Java and deployed them to the cloud.
- Performed peer code reviews for the development team.
- Deployed system components into the AWS cloud using Jenkins and Marathon.
- Coached colleagues on microservice implementations.
Trainer | Coach
- Developed and delivered training programs on a range of subjects, including Java and Python, to several companies.
- Created a Kubernetes course for Airbus, which enabled them to migrate an imaging application from a data center to the Google Cloud Platform (GCP) within a few months.
- Delivered a number of workshops on Apache Camel.
- Created workshops on how to use test-driven development (TDD) effectively.
- Developed and presented a DevOps course.
Technical Subject Matter Expert | Trainer
Royal Bank of Scotland
- Worked with subject matter experts to design a training program to make new developers desk-ready.
- Wrote and reviewed the course modules defined by subject matter experts.
- Built the course software for in-course workshops in Java and SQL.
- Coached the course pilot in India to a group of software developers.
- Taught or co-taught all of the courses that were held in both London and India.
- Ported the key TV viewing figures application from AIX to Linux.
- Replaced legacy Cobol components with PL/SQL stored procedures.
- Improved the overnight batch processing performance and reduced the processing time from four hours to one hour.
- Improved the unit test coverage of legacy code that had no documentation.
- Implemented a web services application in Java and Apache CXF.
Taking Firebase Serverlesshttps://www.toptal.com/google/firebase-serverless-mobile-and-web-apps
Pandoc and Docker Publication Chainhttps://www.toptal.com/docker/pandoc-docker-publication-chain
First of all, data files; I purchased a NAS, which has RAID backup, and most of the files are also in the cloud in Github. Simply NFS mounting the NBAS drives means that multiple machines can access them, and there is no need to copy files other than to the NAS.
Installing and updating software is always tricky. This is particularly true if there are dependencies. A solution to this is to run the software in Docker images. I decided to use this approach. The complex Docker run command can be wrapped in an alias, a function, or a script.
Another issue is documentation. Documents are often required in multiple formats, including HTML, PDF, and proprietary. The other issue is that documents are ideally in a text format for versioning. There is an ideal solution. Markdown is a commonly used document format. The Pandoc software can easily convert markdown to other formats, eliminating the need to have multiple copies of the same document.
Astronomical Predictions and Simulationshttps://dr-phill-edwards.eu/
Most of the current literature is based on unexplained approximations. Still, I found the NASA JPL Ephemerides Data, which allows the accurate calculation of the positions of the sun, moon, and planets between the years 1550 and 2550.
The application is currently being rewritten in Go.
Spring Boot, Spring, Marathon, OAuth 2
Apache, Google Kubernetes Engine (GKE), Shell, Jenkins, Apache Maven, GitHub, Terraform, Eclipse IDE, Docker Compose, Git, SonarQube, Helm, HashiCorp, Jira, NGINX, RabbitMQ, CircleCI, Confluence, Systemd, GitLab CI/CD, Ansible, Amazon EKS, Puppet, Keycloak, Mesos, Auth0, CAD, Amazon Elastic Container Service (Amazon ECS), Traefik, Gradle
Continuous Integration (CI), Continuous Delivery (CD), Microservices, Agile, REST, Service-oriented Architecture (SOA), DevOps, Test-driven Development (TDD), DevSecOps, Serverless Architecture, Unit Testing, Continuous Deployment, XP
Apache2, MacOS, Eclipse, Firebase, Kubernetes, Docker, Linux, Google Cloud Platform (GCP), Amazon Web Services (AWS), Android, iOS, Oracle, Azure, AWS Lambda, Amazon EC2, Amazon
PL/SQL, Google Cloud, Google Cloud SQL, MySQL, Oracle 11g, NoSQL, PostgreSQL, Elasticsearch, Amazon S3 (AWS S3)
Cloud, Cloud Architecture, Site Reliability Engineering (SRE), Scripting, Architecture, Okta, Cloud Platforms, Mathematics, TCP/IP, Shell Scripting, Identity & Access Management (IAM), System Administration, Technical Writing, CI/CD Pipelines, Science, Information Technology, Technical Documentation, APIs, Training, Technical Writer, Networking, SSH, Security, Firewalls, Linux Administration, Networks, Writing & Editing, Technical Hiring, Source Code Review, Task Analysis, Containerization, Consulting, Mentorship, Infrastructure as Code (IaC), Container Orchestration, Cryptography, Encryption, DevOps Engineer, Agile DevOps, Web Security, Google Cloud Functions, Firebase Cloud Functions, Virtualization, Containers, Infrastructure, Documentation, Cloud Computing, Interviewing, High-availability Systems, SOC 2, Cloud Security, Cloudflare, SecOps, Tornado, Computer-aided Manufacturing (CAM), English, Amazon RDS
PhD in Computer Aided Design and Manufacture
University of Nottingham - Nottingham, United Kingdom
Bachelor of Science Degree in Mathematics
University of Manchester - Manchester, United Kingdom
UML Professional Fundamental
OMG | Object Management Group