Pablo Porto

Pablo Porto

At work

Some of the projects I took part over the last 7+ years. You can also take a look at my preferred tech stack.

  • Site to site VPN on AWS

    2018

    Team size
    x 6
    Role
    Infrastructure Engineer
    Location
    Manchester
    Tech stack
    TerraformInspecPythonPyTestAWSSophos UTMGitlab CI/CDDockerDocker Compose
    About

    I was assigned as a platform engineer to help build a secure site-to-site VPN on the cloud between two big organizations in the UK. The VPN provides a mechanism for these organizations to exchange PII information securely. In my role, I contributed to bringing the platform into production by:

    • Automating the configuration of an off-the-shell VPN product (Sophos UTM) using Python/Pytest. Orchestrating this configuration using Gitlab CI/CD.
    • Helping training and coaching team members on how to do infrastructure as code following continuous delivery practices.
    • Testing Sophos UTM configuration using Pytest.
    • Helping with communications with external team through different connectivity testing phases to ensure smooth integration.
    • Implementing and deploying public key infrastructure with client certificates to comply with security requirements.
  • Loan assessment platform

    2017

    Team size
    x 12
    Role
    Fullstack Developer
    Location
    Glasgow
    Tech stack
    ReactReduxES6ClojureJava 8RabbitMQGoCD
    About

    I was assigned as a fullstack engineer to help to evolve a loans assessment platform for the government. In my role, I contributed to bringing the platform into production by:

    • Leading the design and implementation of a SPA application using React/Redux/ES6.
    • Leading the effort to introduce a shared design system and react component library to enable the different teams to deliver UI functionality faster and consistently.
    • Extending the functionality of Clojure and Java microservices to support new types of products/loans.
    • Introducing pipelines as code to enable different teams to create new microservices faster.
    • Implementing different asynchronous integration patterns between microservices using RabbitMQ.
    • Acting as an internal tech lead for one of the teams and helping the team adopting TDD, pair programming, continuous delivery, and continuous feedback practices.
  • Private PaaS for a bank

    2016

    Team size
    x 7
    Role
    Infrastructure Engineer
    Location
    Madrid
    Tech stack
    KubernetesDockerAnsibleTerraformOpenshiftAWSOpenstackELKConcourseCIRHEL/FedoraRakeRuby
    About

    I was assigned as a platform engineer to build a custom PaaS solution for one of the biggest banks in Spain. The PaaS was built using Openshift/Kubernetes and deployed on top of AWS first and then in OpenStack. The goals were to minimize the time to market for the different digital services the bank offers, reduce costs and improve the developer experience. In my role, I contributed to the platform by:

    • Deploying a scalable and reliable Openshift/Kubernetes cluster in AWS using Terraform, Ansible, and ConcourseCI.
    • Designing and implementing multi-region and multi-AZ network topologies in AWS to meet scalability and resilience requirements.
    • Deploying a scalable and reliable Openshift/Kubernetes cluster in OpenStack using Terraform, Ansible, and ConcourseCI.
    • Automation of deployment, infrastructure testing (serverspec), and pipelines as code tasks using Rake and Ruby.
    • Helping with the design and implementation of a continuous delivery pipeline for infrastructure changes using ConcourseCI.
    • Advocating for DevOps principles and practices across product and platform teams.
  • Digital membership cloud platform

    2016

    Team size
    x 4
    Role
    Infrastructure Engineer
    Location
    Manchester
    Tech stack
    TerraformPuppetEC2S3CloudFrontRDSKMSIAMElastiCacheCodeDeployJenkins
    About

    I was assigned as an infrastructure engineer to help reduce the gap and bring together the development and platform teams within a program to re-platform and rebuild a digital membership service for a big company in the retail industry. In my role, I contributed to bringing the platform into production by:

    • Helping with the design and implementation of a continuous delivery pipeline using Jenkins.
    • Advising and helping the development teams to build self-deployable microservices. Decoupling the apps (Dropwizard) from the platform.
    • Building a robust and scalable platform on AWS using EC2, S3, CloudFront, RDS, KMS, IAM, ElastiCache, CloudTrail, and other AWS services.
    • Helping teams to implement infrastructure as code and continuous delivery of infrastructure changes using Terraform, Puppet, Packer, and Jenkins.
    • Improving the deployment of microservices by replacing an unreliable deployment process with AWS CodeDeploy.
    • Enabling zero down-time deployments and autoscaling of the different services.
    • Advocating for DevOps principles and practices across product and platform teams.
  • Mobile web application and platform

    2015

    Team size
    x 7
    Role
    Fullstack Developer
    Location
    Hamburg
    Tech stack
    React/ReduxHTML5SASSJavaGoCDKubernetesDockerGoogle Cloud
    About

    I was assigned as a full stack developer to deliver a custom mobile web application for a big wholesale retailer. The system, build with a React/Redux stack for the front-end and Spring/Java/Cassandra for the back-end, helps drivers with the process of delivering goods to customers. Other tasks:

    • Work closely with the client to define the user experience of the MVP.
    • Implement a mobile-first and responsive UI for the MVP using HTML5 and SASS.
    • Creating and managing an infrastructure based on containers (Docker) on Google Cloud. Design the infrastructure to be portable to the client's private cloud.
    • Lead, plan and automate the deployment of the whole system into a Kubernetes cluster using Google Container Engine.
    • Automating the build, testing, and deployment of the different apps using GoCD as a continuous delivery tool and Docker container images as build artifacts.
  • Custom CMS

    2014

    Team size
    x 12
    Role
    Fullstack Developer
    Location
    Manchester
    Tech stack
    RubyJavaScriptJQuerySASSGraphiteGoCDELKRackspaceDocker
    About

    I was assigned as a full-stack developer to deliver and operate a custom content management system for thoughtworks.com. The CMS, built with a Ruby/Sinatra/Javascript stack, enables content managers and editors from different business areas (marketing, recruitment, sales) to easily inline edit, create and publish heterogeneous content using the same user interface as the company’s website. Other tasks:

    • Improving ThoughtWorks digital presence by implementing mobile-first designs and by empowering editors to create content through rich user interactions (JavaScript, SASS).

    • Integrating third-party services to the platform by consuming external RESTful APIs.

    • Keeping the project automated test suite healthy by implementing unit, integration, functional, and end-to-end automated tests.

    • Managing the project’s cloud infrastructure by automating deployment tasks (Rake, Fabric) and improving configuration management (Puppet, Packer).

    • Enabling continuous delivery by supporting and managing monitoring (collectd and Graphite), logging (logstash and Kibana), and CI/CD tools (GoCD).

    • Improving provisioning, deployment and build scripts to enable migration from snowflake servers to phoenix servers.

    • Adopt Docker to easily build local development environments.