Michal Tusnio, Developer in London, United Kingdom
Michal is available for hire
Hire Michal

Michal Tusnio

Verified Expert  in Engineering

DevOps Engineer and Developer

Location
London, United Kingdom
Toptal 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.

Portfolio

DisplayLink
Azure, Kubernetes, Linkerd, Python, Flask, MongoDB Atlas, Flux CD, Pulumi...
Onvi
Amazon Web Services (AWS), Amazon Elastic Container Service (Amazon ECS)...
Client (via Toptal)
Kubernetes, Amazon Web Services (AWS), Istio, GitOps, Flux CD, Python...

Experience

Availability

Part-time

Preferred Environment

Amazon Web Services (AWS), Node.js, Python, Linux, Kubernetes, Terraform, Pulumi, Amazon Elastic Container Service (Amazon ECS), 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.

Work Experience

DevOps Consultant

2022 - 2023
DisplayLink
  • Performed reconnaissance of existing click-ops set up to understand requirements, after which I worked on setting up Pulumi-Python IaC templates for Azure, AKS, and MongoDB. Bootstrapped Linkerd and Flux CD for Kubernetes deployments.
  • Replaced the existing Kubernetes deployments (e.g., RabbitMQ) with Helm charts thanks to Flux CD and further utilized Helm to deploy Grafana, Prometheus, Thanos, Loki, and Jaeger for observability and alerting.
  • Enabled live metrics and created dashboards to allow team managers and product owners to have a direct look at internal metrics. Enabled alerting and helped the team set up metrics for tracking activity of specific clients using queries on Loki logs.
  • Advised the client on the best way to proceed with scaling up a system using RabbitMQ and investigated the codebase to look for ways to test for idempotency/deduplication before scaling out.
Technologies: Azure, Kubernetes, Linkerd, Python, Flask, MongoDB Atlas, Flux CD, Pulumi, Grafana, Prometheus, Thanos, Loki, Jaeger, Monitoring, CI/CD Pipelines, Helm, Infrastructure as Code (IaC), Cloud Infrastructure, Azure Kubernetes Service (AKS), Azure DevOps, Shell Scripting

Lead DevOps Engineer (Contractor)

2022 - 2022
Onvi
  • Overhauled Datadog to enhance monitoring: investigated why a custom Ruby logger is leaving the proper tags in logs, cleaned up service names, introduced tagging for versions, and added support for linking logs with traces.
  • Built Terraform modules to be used for setting up AWS DMS replications. Those were utilized to replicate data for Postgres upgrades and to replicate existing data cross-account into a pre-production environment.
  • Added support for PR environments for Ruby services. Each was based on a shared database and load balancer, making them very lightweight to deploy, requiring a single Amazon ECS and AWS Fargate container.
  • Migrated parts of CI onto GitHub Actions to simplify the choice of technologies (removing CircleCI from our stack). Afterward replaced custom libraries used for CI with direct AWS calls for simplicity.
  • Cooperated with back-end and front-end teams to resolve code issues, e.g., migrating to new Auth0 libraries to change log-in flows, integrating with Appium, and debugging problems with authorization flows in the iOS app.
Technologies: Amazon Web Services (AWS), Amazon Elastic Container Service (Amazon ECS), Datadog, Ruby, JavaScript, Selenium, Appium, GitHub, Monitoring, CI/CD Pipelines, Infrastructure as Code (IaC), Cloud Infrastructure, Shell Scripting

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, Amazon Web Services (AWS), Istio, GitOps, Flux CD, Python, Prometheus, Grafana 2, Elasticsearch, Pulumi, Neo4j, Monitoring, Docker, MongoDB Atlas, Jaeger, GitHub, CI/CD Pipelines, Helm, Infrastructure as Code (IaC), Cloud Infrastructure, Shell Scripting, Amazon Cognito

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), Terraform, Monitoring, CI/CD Pipelines, Infrastructure as Code (IaC), Cloud Infrastructure, Shell Scripting, Amazon Cognito

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, Cloud Infrastructure, Shell Scripting

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 Elastic Container Service (Amazon ECS), Amazon EC2, Agile, Amazon DynamoDB, Amazon Web Services (AWS), Concourse CI, Jenkins, Gatling, JavaScript, Python, Terraform, AWS Lambda, ECS, Monitoring, CI/CD Pipelines, Infrastructure as Code (IaC), Shell Scripting

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 Elastic Container Service (Amazon ECS), Linux Server Administration, Amazon Web Services (AWS), Grafana, Nagios, AWS CloudFormation, Terraform, Ansible, Bash, Node.js, Python, Monitoring, WordPress, CI/CD Pipelines, Infrastructure as Code (IaC), Cloud Infrastructure, Shell Scripting, Amazon Cognito

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, Amazon Web Services (AWS), JavaScript, Continuous Integration (CI), Continuous Delivery (CD), Agile, DevOps, Google Cloud, Bash, Linux, Python, Jenkins, Kubernetes, Docker, Node.js, C++, CI/CD Pipelines, Shell Scripting

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, Real-time Operating System (RTOS), Hardware, Embedded Linux, Python, Embedded C, CI/CD Pipelines, Shell Scripting

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, Amazon DynamoDB, and Amazon 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.

Languages

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

Libraries/APIs

Node.js, React, Protobuf, Pygame, OpenGL

Tools

AWS ELB, Amazon CloudFront CDN, Terraform, Jenkins, Istio, Amazon EKS, GitHub, Amazon Cognito, NGINX, Amazon Simple Notification Service (Amazon SNS), AWS CodeBuild, AWS CloudFormation, Amazon Elastic Container Service (Amazon ECS), Helm, MongoDB Atlas, Azure Kubernetes Service (AKS), CircleCI, Gatling, Ansible, Travis CI, Vault, Nagios, Grafana, Concourse CI

Paradigms

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

Platforms

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

Storage

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

Other

Site Reliability Engineering (SRE), System Administration, Linux Administration, Linux Server Administration, Pulumi, Flux CD, Monitoring, CI/CD Pipelines, Amazon RDS, API Gateways, Infrastructure as Code (IaC), Cloud Infrastructure, Shell Scripting, Networks, ECS, AWS CodePipeline, Serverless, Prometheus, Grafana 2, GitOps, Linkerd, Loki, Jaeger, Embedded Software, Hardware, Real-time Operating System (RTOS), Amazon API Gateway, Thanos

Frameworks

Serverless Framework, Unity2D, Unity, Next.js, Selenium, Appium, Flask

2010 - 2013

Bachelor's Degree in Computer Science

Jagiellonian University - Krakow, Poland

JANUARY 2019 - NOVEMBER 2024

AWS Certified Solutions Architect — Associate

Amazon Web Services

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring