Petteri Zitting

About me

A smart and detail-oriented DevOps Engineer from Finland who enjoys programming. Experienced in Cloud Infrastructure and modern DevOps solutions. Worked in the service industry before game engineering studies after which moved to the games and tech industry. Have been hacking away at computers and electronics since the early 2000s. Always looking for new things to research or learn! Avid gamer.

Me elsewhere

Skills

Cloud infrastructure and cloud solutions

  • Google Cloud Platform (GCP)
  • Amazon Web Services (AWS)
  • Microsoft Azure

Build and process automation (CI/CD)

  • GitLab CI
  • Jenkins
  • GitHub Actions

Full-stack development with a focus on the backend

  • Typescript/Javascript backends and simple frontends
  • Golang backends and tooling
  • Python backends and tooling

Projects

Check out these past projects!

📦 Infinigolf (Unity)

Android

Overview

Mobile game development in the form of an “infinite runner” -style minigolf game.

  • Prototype developed solo in about 3 months
Acquired expertise
  • Algorithms and data structures (procedural generation)
  • Advanced cameras and directing (Cinemachine)
  • Data tweening (DOTween)
  • 3D modeling (ProBuilder)
  • Node-based shader progamming (Shader Graph)
  • Object pooling (LeanPool)
  • Query building (LINQ)
  • Market research (Mobile)
  • Publishing (Store requirements)
Languages
  • C# (Unity)
  • GLSL
  • (Shader Graph)

📦 www.puttehi.eu infrastructure and service automation

Linux

Overview

My personal cloud server configuration.

  • Development services behind authentication
  • Single command deployments
Acquired (rather, used) expertise
  • Infrastructure automation (Terraform)
  • Service automation (Ansible)
  • Reverse proxy (nginx)
  • Cloud services (Linode)
  • Domain ownership (GoDaddy)
  • Remote workstations (automated personalization)
  • Authentication layers (Vouch)
Languages
  • Terraform (HCL)
  • Ansible (YAML)
  • Nginx configuration

📦 Python Slacktube

GitHub

Overview

Initially a side-project to dump YouTube links from a #jukebox Slack channel to a YouTube playlist for easy listening. Turns out automation was much more interesting.

  • GitHub automation
  • Modern Python package automation
Acquired expertise
  • GitHub Actions (CI/CD)
  • Dependabot (GitHub)
  • Sphinx documentation generation
  • Read The Docs automation
  • Python Package Index (pip) automation
  • Modernizing old Python project templates
  • Git hooks (pre-commit)
  • Python environments (Poetry)
Languages
  • GitHub Actions
  • Python

📦 Simplechat

Windows

Overview

Modern Windows application development in the form of a server/client chat application.

  • Prototype developed solo in 1-2 months
  • Chat commands (/me, /slap, /time)
  • Server timestamps with optional client timestamps
  • Persistent chat history with optional saving on clients
Acquired expertise
  • Qt framework (C++)
  • Websockets (QtWebsocket)
  • qmake and GNU Make
  • Messaging protocols
  • Sharing server/client code
  • UI/UX design
Languages
  • C++
  • GNU Make

📦 React applications

Android, iOS, Web

Overview

Modern mobile and web app development in the form of over a dozen small apps. Developed for a summertime course.

  • Apps developed solo in 2-3 months
  • Over a dozen different apps
Acquired expertise
  • React
  • React Native
  • Expo
  • Ads
  • Native toasts
  • PWAs
  • Cross-app traversal
  • Google products (Maps, Places, etc.)
  • Web APIs, fetching and parsing)
  • NPM
Languages
  • Javascript

📦 Neuroevolution inside a game clone

Web

Overview

Playing around with AI by cloning a classic mobile game and making it play itself better than any human ever could.

  • Prototype developed in about a month
  • Trained model surpasses scores of 100 000+
Acquired expertise
  • Neuroevolution and machine learning basics
  • AI modeling
  • Reward functions
  • Tensorflow.js
  • Real-time web development
  • p5 framework
Languages
  • Javascript

📦 Easily extendable Discord bot

Linux, Windows

Overview

A Discord bot built for my friend groups private Discord server. Initial idea was to support the release of New World with Discord-integration.

  • Easily extendible command palette with a permission system
  • New World API integrations
  • Web scraping with parameter-based navigation and automatic screenshot threads
Acquired expertise
  • Discord API
  • Chat-bot development (commands, user groups, admin tools)
  • External APIs (New World World Status)
  • Web scraping (Puppeteer)
  • Screenshot generation
  • Local caching
  • Online caching and data storage (MongoDB)
Languages
  • Javascript
  • Bash

📦 Discord lunch bot

Linux

Overview

A Discord bot built for my friend groups private Discord server. Announces local lunch menus daily.

Acquired expertise
  • Python dependency management (Poetry)
  • Discord API
  • External APIs (Lounaat.info)
  • Web scraping (BeautifulSoup)
  • Parsing HTML trees
Languages
  • Python

📦 Bitburner scripts

Windows/Linux (Steam)

Overview

Bitburner is an “idle game” played through programming. The goal of the game is to create the best botnet you can.

Acquired expertise
  • JSDoc
  • Typescript
  • Distributed (local) systems i.e. a botnet
  • Migrating from Javascript to TypeScript
  • Code editor integration in-game through game API (VSCode)
  • Reverse-engineering a custom botnet UI
  • Optimization
Languages
  • Javascript
  • Typescript

📦 Routa Engine Tutorial

Cross-platform

Overview

Routa Engine is a game engine developed by students, for students in-house @ KAMK. No one knew how to use it though.

  • 3-man team
  • Developed a single platformer game
  • Wrote a tutorial on Routa basics for first-year students
Acquired expertise
  • More advanced C++
  • C++ build systems
  • Entity Component Systems (ECS)
  • Technical writing
  • Learning a new, big codebase
  • Fixing a lot of low-level game engine bugs
  • Tilemap creation (Tiled editor)
Languages
  • C++
  • Markdown

📦 Chroma styler

Linux, Windows, Mac

Overview

Did you want to customize your Hugo blogs code highlighting outside of the pre-made themes?

Did you notice that it’s hard to know what CSS class you should be using for what language to get the desired results?

Did you find out there’s a bunch of Chroma token names that map to who-knows-what CSS class names?

Did you manage to write some sort of XML already but have no idea how to map it into CSS?

Time for a tool to help with the process :)

Features
  • Render every supported language in a single HTML page to see what your styles look like
    • (as well as getting every possible class you can even encounter in the single page)
  • Dump all the Chroma XML entry->CSS class name entries
  • Generate a CSS file ready to ship
Languages
  • Go
  • XML
  • CSS

Work experience

🏢 Solita

🏢 Critical Force

🧑‍💻 DevOps Engineer

📅 02/2023 - 03/2024 (~1 year)

Migrating an “on-prem” datacenter to Google Cloud

Cloud architecture, networking, tunnels, migrations, …

Evaluating and designing infrastructure for a monitoring platform

Different types of collector agents, metric backends, log backends, backups, cloud storage options, response times, historical data, …

Designing and building a GitOps platform over its skeleton (GKE)

GKE Autopilot, Shared VPC, private clusters. Kubernetes administration networking, volumes, ingress-nginx, external-dns, cert-manager, kustomize overlays, namespacing, security, migrations, …

Maintaining company infrastructure

Tooling and service upgrades, maintaining and improving internal tooling and services, modularizing, improving git hygiene, …

Helping others grow while doing so myself

Assisting others while learning from them myself

🧑‍💻 Junior DevOps Engineer

📅 01/2022 - 02/2023 (~14 months)

Broadening expertise to other infrastructure

Amazon Web Services, game backends, game servers, Linux servers, internal tools and services, …

Designing and building analytics platforms

Automation-first, git-driven, reusable modular platforms to support many products

Improving the DevOps culture

Automating and documenting manual processes, empowering developers, embracing git, improving Infrastructure as Code, …

Maintaining and optimizing the larger tech stack as a whole

Terraform/Kubernets/Python/Go upgrades, maintaining and improving internal services, right-sizing workloads, improving traffic balancing, migrations to modern patterns, …

Helping others grow while doing so myself

Learning never stops; Guiding the local university towards modern tech solutions, onboarding new joins to tech and company practices, …

🧑‍💻 TechOps Intern

📅 06/2021 - 12/2021 (~6 months)

Google Kubernetes Engine (GKE) migrations

Migrating unknown complexity towards known simplicity of dedicated servers, monitoring/alerting, …

Learning the analytics backend

Building data and CI pipelines for stakeholders, maintaining internal and external services, patching data, …

Maintaining the tech stack

Terraform upgrades, Kubernetes upgrades, Python upgrades, …

Growing to an engineer from an engineering student

Studying, researching, asking lots and lots of questions to absorb knowledge from our awesome seniors.

🏢 Neste Sotkamo

🧑‍💻 Cashier

📅 09/2013 - 08/2019 (~6 years)

Customer service & experience

Face-to-face, by phone and by email. Only happy customers!

Social media marketing

Building the company Facebook account. Designing and implementing marketing campaigns to Facebook. Improving social media and web presence.

Website maintenance

Keeping the company website running steady and its information up to date.

Troubleshooting and maintenance

Ranging from connectivity issues to malfunctioning burger toasters.