Michal Tusnio, DevOps Engineer and Developer in London, United Kingdom
Michal Tusnio

DevOps Engineer and Developer in London, United Kingdom

Member since January 21, 2020
Michal has over six years of varied but balanced experience—building apps (Python, C++, and Node.js), CI/CD processes for their deployment, and AWS, Kubernetes, and Serverless architectures for hosting them. He's worked as an embedded engineer, set up pipelines for real-time data streaming, and maintained hundreds of sensors in the field. All in all, with his expertise, experience, and work ethic, Michal is a good fit for tackling any challenge.
Michal is now available for hire

Portfolio

  • Client (via Toptal)
    Kubernetes, AWS, Istio, GitOps, FluxCD, Python, Prometheus, Grafana 2...
  • Toptal Project
    AWS CodePipeline, AWS CodeBuild, Serverless Architecture, Serverless, Bash...
  • Vivacity Labs
    Protobuf, DevOps, Bash, Continuous Integration (CI), Continuous Delivery (CD)...

Experience

Location

London, United Kingdom

Availability

Part-time

Preferred Environment

Amazon Web Services (AWS), Node.js, Python, Linux, Kubernetes, Terraform, Pulumi's, Amazon ECS (Amazon Elastic Container Service), Serverless

The most amazing...

...achievement was leading a client away from a patchy, black-box infrastructure towards an IaC, auditable setup which let them ace Google's compliance review.

Employment

  • Lead DevOps Engineer

    2021 - 2021
    Client (via Toptal)
    • 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.
    Technologies: Kubernetes, AWS, Istio, GitOps, FluxCD, Python, Prometheus, Grafana 2, Elasticsearch, Jager, Pulumi's, Neo4j, Monitoring, Flux, Docker
  • Lead DevOps Engineer

    2020 - 2020
    Toptal Project
    • 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.
    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
  • Contract Engineer

    2020 - 2020
    Vivacity Labs
    • 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.
    Technologies: Protobuf, DevOps, Bash, Continuous Integration (CI), Continuous Delivery (CD), Agile, Linux Server Administration, Groovy, Terraform, NGINX, Jenkins, Ansible, Go
  • Site Reliability Engineer (Contractor)

    2019 - 2020
    River 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.
    Technologies: Groovy, Linux Server Administration, Amazon ECS (Amazon Elastic Container Service), Amazon EC2 (Amazon Elastic Compute Cloud), Agile, Amazon DynamoDB, Amazon Web Services (AWS), Concourse CI, Jenkins, Gatling, JavaScript, Python, Terraform, AWS Lambda, ECS, AWS, Monitoring
  • AWS Solutions Architect

    2018 - 2019
    EveryCity
    • 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.
    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
  • Software Engineer

    2017 - 2018
    Vivacity 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.
    Technologies: Vault, Test Automation, Linux Administration, AWS, Amazon Web Services (AWS), JavaScript, Continuous Integration (CI), Continuous Delivery (CD), Agile, DevOps, Google Cloud, Bash, Linux, Python, Jenkins, Kubernetes, Docker, Node.js, C++
  • Software Design Engineer

    2015 - 2017
    Imagination Technologies
    • 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.
    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

Experience

  • LetMeCreateIoT
    https://github.com/CreatorDev/LetMeCreateIoT

    One of the projects at Imagination Technologies was a Ci40 IoT kit—shipped as a dev board running Linux, two PIC32 constrained devices with Contiki RTOS on them, and a few small pluggable click boards that housed motion and thermal sensors.

    After a colleague of mine developed and implemented an API for common embedded interfaces (I2C, UART, GPIO, SPI), I took it upon myself to do the same for the PIC32 microcontroller. I ironed out a few issues and then the two implementations were compatible with each other, which then allowed us to write device drivers for click boards that could be developed once and used anywhere. As a result, we could offer our end users the option to write their drivers on Linux using LetMeCreate API and then deploy the same applications on Contiki by simply compiling it with my LetMeCreateIoT library instead.

    Eventually, both libraries became an integral part of the Ci40 IoT kit software offering and were featured in the official documentation as a go-to solution for writing click-board drivers.

  • Visapp
    http://visapp.uk

    Visapp is a project that I developed as part of my push towards building social tech. The Home Office provides all Tier 2 visa applicants with a list of registered sponsors; however, that is done only in a PDF format. This makes finding companies in specific locations and industries extremely difficult for non-EU residents.

    The application is both a back end and front end that serves data but also daily converts the sponsor's PDF into a database-friendly format. On top of that, a company's house is scraped for information about industries of sponsors, as well as extracting job site data to find and fuzzy match jobs to sponsors.

    The web application was built with the API Gateway and Lambda to minimize cost along with AWS S3 for hosting the React front end and JavaScript for all other purposes.

  • Good Vibes Hotline

    A pro-bono project for Ikasi Youth, a South African charity. As part of Coronavirus-relief fundraising effort, Ikasi came up with the idea of having a Whatsapp service that, upon receiving a message, can send back a positive piece of content that's been created by children from the families the charity supports.

    Over a few evenings, another engineer and I, built a Python bot utilizing AWS Lambda, DynamoDB and API gateway, and deployable using the Serverless framework, with the Whatsapp message handling support provided by Twilio. Thanks to this we took advantage of the free AWS tier to avoid any cloud costs, and the only running costs were message handling fees by Twilio themselves.

    During the first three weeks of the campaign, we handled about 600 messages without any downtime or errors. Additionally, I provided Ikasi with a Google Sheets script that extracts all message data from Twilio and inserts it into a spreadsheet for further impact analysis.

  • IoT Device Management Tool

    A common issue at Vivacity was the inability to detect when commands sent to hundreds of sensors failed, and which sensors specifically failed. This often meant that during deployments—anything from zero to a few hundred sensors could fail to download new code or ML model; however, there was no visibility on how many (if any) failed.

    To solve this problem, I architectured a client application with defined high-level actions—model updates, code updates, and commands to change sensor configs. Those actions could be executed on specified sensors and perform all operations needed to bring a sensor into a new state, as well as could recover from failures if possible.

    In the end, a clear state would be reported—success or failure—with a full log of what happened that lead to them being achieved.

    I led a small team of two developers and myself to implement the client and later built a testing suite around it that allowed us to replay messages sent between the client and sensor to spot issues. With the client operational, the software team did not have to perform deployments or SSH into sensors, and all of the deployment process management was successfully handed over to the hardware team.

Skills

  • Languages

    Python, Bash, JavaScript, C#, C++, C, PHP, Go, Groovy, SQL, Java, Embedded C
  • Frameworks

    Flux, Serverless Framework, Unity2D, Unity, Next.js
  • Libraries/APIs

    Node.js, React, Protobuf, Pygame, OpenGL
  • Tools

    AWS ELB, Amazon CloudFront CDN, Terraform, Jenkins, Istio, Amazon EKS, GitHub, NGINX, AWS Push Notification Service (AWS SNS), AWS CodeBuild, AWS CloudFormation, Amazon ECS (Amazon Elastic Container Service), Helm, CircleCI, Gatling, Ansible, Travis CI, Vault, Nagios, Grafana, Concourse CI
  • Paradigms

    Continuous Integration (CI), Continuous Delivery (CD), Test Automation, DevOps, Serverless Architecture, REST, Agile
  • Platforms

    Linux, Docker, Kubernetes, Amazon Web Services (AWS), Amazon EC2 (Amazon Elastic Compute Cloud), AWS Lambda, PagerDuty, Google Cloud Platform (GCP), Twilio, Apache2, Contiki OS, Embedded Linux, WordPress
  • Storage

    Amazon S3 (AWS S3), Amazon DynamoDB, MySQL, Redis, Elasticsearch, Google Cloud, PostgreSQL, MongoDB, Neo4j
  • Other

    Site Reliability Engineering (SRE), System Administration, Linux Administration, AWS, Linux Server Administration, Pulumi's, FluxCD, Monitoring, CI/CD Pipelines, AWS RDS, API Gateways, Infrastructure as Code (IaC), Cloud Infrastructure, Networks, ECS, AWS CodePipeline, Serverless, Prometheus, Grafana 2, GitOps, Jager, Embedded Software, Hardware, RTOS, Amazon API Gateway

Education

  • Bachelor's Degree in Computer Science
    2010 - 2013
    Jagiellonian University - Krakow, Poland

Certifications

  • AWS Certified Solutions Architect — Associate
    JANUARY 2019 - NOVEMBER 2024
    Amazon Web Services

To view more profiles

Join Toptal
Share it with others