Taras Gritsenko
Software Engineer
Currently at AWS building verified access.
Ex-software engineer at Twitch (June 2020) under the safety systems team. We design business-critical systems that help keep Twitch users safe.
Experienced in software engineering and reverse engineering. In my spare time I am into competitive programming, weightlifting and shipping software for various cool ideas.
Carleton University 2019, BS Comp. Sci Algorithms Stream, Honours
Articles
- Applying GENEVE encapsulation (VPC<->VPC NAT at AWS) 18 Oct 2024
- Twitch layoffs and what's next 29 May 2024
- Porting disk intensive Kubernetes services to AWS Lambda 16 Feb 2023
- Using a SAT solver to do Day 24 of Advent of Code 23 Dec 2021
- Regexing fun 31 Oct 2021
- The future of mcidle 02 Jun 2020
- How I Broke Graal in 2 Days 24 Apr 2020
- Fun Decision Tree Question 30 Mar 2020
- Adding BTTV Emotes to claack + youtube videos 04 Mar 2020
- Why Batch Norm Works Explained With Minimal Math 16 Feb 2020
- Reaching near-perfect accuracy for fish pool detection 11 Feb 2020
- Creating an impressive fish pool object detector with OpenCV/Keras 08 Feb 2020
- Age of Empires 2 DE: Anti-Tampering Bypass 09 Jan 2020
- How I Bypassed Script Enforcer 14 Dec 2019
- Reverse Engineering SA:MP's Packet Obfuscation 29 Nov 2019
- Chrome Extension CORS Security Vulnerability (fixed in 2019) 28 Nov 2019
- Using Ghidra to Reverse Engineer x86 Binaries 24 Nov 2019
- How I Ported Python Code to C++17 to be 625x Faster 10 Nov 2019
- Porting mcidle to C++ with variadic templates 06 Nov 2019
- Building with Boost on Windows 10 using CMake 05 Nov 2019
- RGB Partition Swap Problem 05 Nov 2019
- How I Added Lua Scripting to Minecraft 28 Oct 2019
Projects
DumptruckA Go to Protobuf transpiler for generating RPC services from Go interfaces used at Twitch for converting a database interface into a functional Twirp server.
BiskyLightweight code judge server written in Go for AWS Lambda (powered by Twirp)
mcidle-cppA lite statically-compiled feature rich port of mcidle-python to C++ with Docker.
AI WoW Classic Pool AutofisherAn AI that is able to fish from pools in WoW classic without human intervention. This task requires detecting visible pools, inserting a bobber into a pool, detecting when a fish is caught and whether a bobber is in the pool. Achieves human like performance on all 3 tasks.
ChrolloChrollo is an undetectable injection-based script hook for Garry's Mod that lets you intercept Lua script execution dynamically. Particularly useful for bypassing anti-cheat measures.
Script-Enforcer-BypassA fully undetectable script enforcer bypass for Garry's Mod based on reversing work I did to trick the client to escalate lua privileges.
mcidle-pythonIdling middleware for deploying a remote connection to a Minecraft server to allow reconnection at any time. Supports a full implementation of Minecraft's networking protocol, Protobuf spec, AES-CFB8 decryption/encryption of packets, shared key encryption, packet compression/decompression with zlib, symmetric key-exchange and multi-threaded packet processing.
Works by connecting to the game server using user's credentials, acts as a MITM decoding incoming packets to read the game state (loaded chunks, position, etc) to resume the original connection. Listens for an incoming client and spoofs symmetric key auth to act as a legitimate Minecraft server.
Currently supports only Python. There is a blazing fast C++ version coming out eventually!
TaskyA Minecraft mod that adds Lua scripting to Minecraft powering the development of bots in-game. Features a text-editor for editing scripts at runtime. Implemented using Lua and Forge.
webcryptFile encryption in the browser. Supports encryption of files up to 1gb using AES-CBC (256 bit key). Key generation with 25,000 iterations of PBKDF2 to make it virtually impossible to bruteforce. Each file is salted with a 16-byte checksum to ensure valid encryption.
Deep-Q Collision AvoidanceAn application and implementation of deep-DQNs reinforcment learning as found in DeepMind's Playing Atari with Deep Reinforcement Learning to the problem of collision avoidance for my honours thesis. Developed and tested novel learning algorithm inspired by K-cross-folds validation. Made using TensorFlow.
JPEG DecompressorA jpeg decompressor trained on the CIFAR-10 dataset designed to illustrate how well an autoencoder does at learning to remove compression artifacts generated by the jpeg compression algorithm. Made using TensorFlow.
Chess.com BotA Chess.com bot that pipes board-state into Stockfish to play Chess, controlling the user's mouse too. Uses a computer vision algorithm I developed to identify board-state and convert it into FEN strings. This project was eventually taken down out of respect for Chess.com
Raytracer 3009A recursive raytracing algorithm in C++ that features support for multiple light sources, shapes and shadow illumination.
Research
Unsupervised Learning Techniques for Collision Avoidance (2019)Compared and tested unsupervised learning techniques to the problem of autonomous collision avoidance. Proposed novel algorithm dubbed KF-learning that overcomes overfitting in deep-Q learning. Successfully trained model that avoids up to 97.2% of obstacles. Supervised by Prof. White.
Predicting the controversiality of a Wikipedia article (2016)A presentation I gave that demonstrated a greedy methodology to determine the controversiality of Wikipedia articles. It randomly crawls Wikipedia and assigns controversy scores using h-indexes as well as second moment estimates. Achieved accurate results high in controversy.