Lead DevOps Engineer2021 - 2021Client (via Toptal)
Technologies: Kubernetes, AWS, Istio, GitOps, FluxCD, Python, Prometheus, Grafana 2, Elasticsearch, Jager, Pulumi's, Neo4j, Monitoring, Flux, Docker
- Took up responsibilities as a temporary head of infrastructure to pass the client's infrastructure through compliance and due diligence processes helping secure contracts with major enterprise businesses.
- Planned and delivered the on-time migration of an existing single account, non-IaC defined EKS cluster onto a new, multi-account, IaC EKS setup. Simplified the existing architecture and ensured consistency between the different environments.
- Deployed Prometheus, Grafana, Jaeger, Elasticsearch, and Kiali to monitor the cluster and collect logs. Thanks to Istio and changes in code to propagate traces we were able to capture 100% of the traffic, letting us debug each request separately.
- Set up autoscaling and performed load testing to ensure that the web application can autoscale within minutes to support 10,000 to 20,000 concurrent users, tenfold more than expected to be using the application. Analyzed code for bottlenecks.
- Created, implemented, and tested a disaster recovery solution in the form of a separate, warm cluster. It allowed for an RPO of day one (five minutes on all databases apart from one which was hosted by an external provider), RTO of 2 hours.
- Implemented CloudTrail, and AWS Config to detect and track changes in infrastructure, discover breaches, and automate compliance.
- Used service control policies and IAM policies to limit access to supported regions only, disable unused services in all accounts, and used permission boundaries to prevent privilege escalation.
Lead DevOps Engineer2020 - 2020Toptal Project
Technologies: AWS CodePipeline, AWS CodeBuild, Serverless Architecture, Serverless, Bash, Next.js, AWS Lambda, DevOps, Amazon CloudFront CDN, Node.js, PostgreSQL, Amazon Web Services (AWS), AWS, Terraform, Monitoring
- Built the entire infrastructure from scratch for a greenfield entertainment platform project. Used Terraform and open-source plugins for Next.js to create a Lambda-in-VPC based serverless setup that utilised PostgreSQL based RDS.
- Set up a CodeBuild and CodePipeline CI that performed automatic deployments to environments following the practices of Git Flow. Each PR would trigger automatic test builds, as well as would deploy a new environment from the PR's codebase.
- Supported all developers as the sole DevOps engineer; held biweekly meetings with developers where they could raise issues, suggest improvements, and help prioritize planning of DevOps work.
- Created custom scripts that would dynamically generate Lambdas per each endpoint in Terraform based on the application’s folder structure.
- Set up a Terraform-based onboarding process and docs for all new team members in order to manage access, groups, and permissions easily.
Contract Engineer2020 - 2020Vivacity Labs
Technologies: Protobuf, DevOps, Bash, Continuous Integration (CI), Continuous Delivery (CD), Agile, Linux Server Administration, Groovy, Terraform, NGINX, Jenkins, Ansible, Go
- Parallelized a sequential, multi-architecture, multi-node Jenkins pipeline effectively cutting down build times in almost half.
- Delivered Ansible scripts that configured a box acting as an Nginx proxy for Go back-end applications, and was set up to map a connection based on its URL to the appropriate back-end service.
- Supported the team’s permanent DevOps engineer in managing Jenkins slaves and masters, as well as writing automatic jobs for detecting and remediating common issues—e.g., slaves running out of disk space.
- Wrote Go code for modules to plug into a message processing pipeline. Those involved processing information about a camera frame’s state and vehicle detections, and then outputting data such as vehicle counts, their speed etc.
Site Reliability Engineer (Contractor)2019 - 2020River Island
- Delivered a load-testing setup using Gatling, Lambda, and spot instances—allowing River Island's web store team to write their own Scala load tests and run a Gatling cluster to profile their applications.
- Helped RI's web store team create container definitions for ECS and scaling policies that proved to offer no downtime during sale events and traffic spikes.
- Prepared for a transition from Concourse to Jenkins by providing a cost-efficient setup that ensured automatic recovery on failure, backups, and fully source-controlled versioning of plugins and Jenkins itself.
- Supported RI's transition towards a company-wide standardized Terraform setup by building an MVP solution that generated infrastructure based on teams specifying services they require in YAML.
AWS Solutions Architect2018 - 2019EveryCity
Technologies: Amazon S3 (AWS S3), ECS, CircleCI, PagerDuty, Apache2, NGINX, Networks, Agile, Amazon DynamoDB, AWS ELB, AWS Lambda, Amazon ECS (Amazon Elastic Container Service), Linux Server Administration, Amazon Web Services (AWS), Grafana, Nagios, AWS CloudFormation, Terraform, Ansible, Bash, Node.js, Python, AWS, Monitoring
- Designed the best architecture for new clients and onboarded them onto AWS—setting up their infrastructure, ensuring zero-downtime deployments, and integrating their systems into EC’s monitoring.
- Set up Terraform scripts and Docker containers for an ECS setup to migrate the client’s infrastructure from a traditional VM deployment to a container-based one.
- Worked alongside the client’s engineering team to deliver CI and CD for a serverless GraphQL and RESTful stack on AWS.
- Built a company’s security products as well as CloudFormation and Terraform templates for web hosting products.
- Performed in-depth investigations to find the root cause for application performance issues or downtime.
Software Engineer2017 - 2018Vivacity Labs
- Led a team to develop a pub/sub client for communicating with device management software on over a thousand sensors deployed in the field. This allowed for debugging a failed ML model or code deployments and diagnosing inactive sensors.
- Introduced a Docker-based CI/CD orchestrated via Jenkins pipelines. As a result, this increased the number of back-end deployments from a few manual ones a week to multiple automatic ones per day.
- Built shared libraries to consolidate all continuous integration steps for building and testing of C++ computer vision applications across both x86 and ARM architectures.
- Designed, set up, and deployed a physical server for a highways UK trial. The server acted as a hub for sensors deployed inside the tunnel itself, contained a Raspberry Pi fail-over, and maintained 100% uptime leading to the trial succeeding.
Software Design Engineer2015 - 2017Imagination Technologies
Technologies: Embedded Software, Test Automation, Networks, MongoDB, Jenkins, Agile, Docker, Continuous Integration (CI), DevOps, Continuous Delivery (CD), Linux Server Administration, RTOS, Integration, Hardware, Embedded Linux, Python, Embedded C
- Built a library for common embedded communication interfaces (SPI, I2C, UART among those) for a PIC32 microcontroller. It was later included as an official software offering for IMG's CI40 IoT kit.
- Developed a testing setup for mass-testing hundreds of boards to spot ones that fail to boot properly. This made it possible to remove faulty boards from the logistics chain and shipping the remaining on time to customers.
- Debugged and fixed a critical issue related to packets being dropped due to fragmentation when sent over 6LoWPAN. It unblocked future progress towards providing customers with a working IoT solution.
- Created a library plugged into a CI setup that utilized a logic analyzer to verify clock syncing between two linked WiFi speakers is always below the value guaranteed to end-users.