Resume
This page is very actively under development. You’ll find typos and missing content. Feel free to refresh now and then :)
Officially I started working in 2008 as a junior developer in Voxcommerce sp. z o.o., but I took odd jobs as a technology consultant years before.
My first paid sysadmin job was in 1999 when I was rewiring network for a family friend’s company. I never wanted to become programmer, as I perceived is as boring kind of work, but as of today I joke that the only difference between work and leisure is whether I’m paid or not.
Roles I have are often connected to task-force problems. I’m fitting where - for some reason - there’s no one else to fit. While I’m often not as great as someone who dedicated their life to single tech I make up for that through knowledge of wide range technologies so my insights sometimes are broader than immediate horizon.
Below is list of my prior work experience, beside that, I:
- … have Bachelor’s Degree on IT Project Management
- … am Agile (non-proprietary form) enthusiast and practitioner
- … have Master’s Degree on Software Engineering with focus on distributed systems and language development
- … am Distributed Systems junkie (and asynchronous processing, too)
- … have finished yearly training on Group Training at TenStep Poland
- … am Mentor at Toptal
- … and newly-in Free Software Foundation Contributor (Emacs)
- … physically unable to ignore inefficient systems (a boon and a curse)
Note that due to ~18 years of experience this list is not complete but I intend to make it so. Missing information:
- Gaps between work period (TL;DR; I unsuccesfully try to create own products)
- Personal projects (work for fun, etc.)
- Contacts to coworkers etc.
Important informations
I have a high-impact mixed-type ADHD. It was diagnosed relatively recently along with frequenty coexisting high-functioning autism. It’s not visible but it has impact on my work in some areas:
- I’m very anxious traveler - all retreats, meetups etc. are associated with a high cost, thus I try to avoid it unless necessary
- Because of high maintenance requirement (physical training, diets, doctor checkups) I prefer flexibility in my work hours. When I know when meetings are happening I can work around them, but I need to have enough leeway to take care of myself.
- I have tendency to burn out and also the more I care about something the quicker I burn. This might take effect during recruitment process.
- I cannot not care about people or things. This makes me bad fit for some environments.
Bluecode AG
I spent 2 intensive but great years at Bluecode, developing, optimizing and modeling various problems or researching state-of-art technologies to use internally. My initial hire was as a Rust specialist, but I was dealing mostly with Elixir systems and working on a tooling.
Leave was a conditional trigger communicated during initial hiring talk.
Project: Distributed Build System
The goal was to optimize build + testing phase, which took long time and caused a lot of distruptions. What started as long research phase of existing systems turned into custom Build System based on Docker and Go.
While early versions allowed to find inconsistencies, project was still WIP in my final days.
Project: Graph Knowledge Extraction
Overarching, multi goal project on the topic of tangling heterogenous codebases, code generation and logic discovery.
This project involved researching, for feasability various existing solutions and writing various utility as a proof of concept in a few lesser known languages.
Project: Temporal Modelling
Subscribe+
One of the best technical stacks I’ve ever seen. Without going into too much details, product was thoroughly tested in distributed way. I still advocate exactly the same approach I’ve seen at Subscribe. Beside that I was able to work at one of the most difficult problems in my career, i.e. untangling old JavaScript stack.
Contract ended as planned.
Project: Visually Distinctive Document Builder
Project: JavaScript Time Machine
This project started as an answer to “how update stack not updated over the long period”. I was working as a lone developer and acted as a time progressed in intervals, slowly updating whole stack.
Project took couple of months but no downtime happened and whole update was relatively safe.
Project: Debugging over MITMProxy
SameSystem LLC
Toptal (Screening)
I spent approx. 1 year being screener at Toptal. While I can’t divulge any information I can disclose that I screened hundreds of candidates and was given opportunity to create new task.
Decided to move on because I cared too much for candidates which made me spent too much of emotional energy for the interviews.
Owens Corning
Work at OwensCorning was one of the best experiences I ever had. I didn’t trust in “The Best Employee” awards, but I never found people so respectful of my time and expertise. During my time at OwensCorning I helped developing various marketing systems with some more complicated than the others.
I moved forward because most of the difficult problems were solved and I felt work was getting stale. We still ocassionally exchange e-mails :)
Project: PostgreSQL Optimization
Page renders were known to be slower than expected, but multiple sweeps of optimizations weren’t able to produce satisfying results.
Upon hooking extra telemetry I found out that the cause was a single table, surpisingly much bigger than the development model which was missing index.
Time-to-render decreased by ~1.5 DOMs.
Project: Roof Builder
Task was to have a virtual roof builder, that would both connect compatibility rules but also look nice. Due to miscommunication with vendor, I volunteered and was tasked to integrate provided model with the data before the marketing event set for the promotion of the feature.
Builder was delivered on time.
AST Linter
Toptal
Fitpeak
Entropy-1 sp. z o.o.
Entropy-1 was a self-founded IT/game company with goal of expanding operations and produce own games. Unfortunatelly we had a falloff in a period where I was awaiting medical procedure and my business partner weren’t able to reassure our sole partner that things are going well.
With funding cut off company had to shutdown, but it existed for couple of years due to complicated legal landscape. Main experience out of it was dealing with documents and navigating LLC like-landscape.
Project: M1
Goal of the system was to provide smart notepad for medical staff so that they can focus on work instead of clicking on fields.
Project failed after initial phase due to lack of funding.
Project: Run, Princess!
Concept for the runner-kind of game with economic layer targeted at young girls to help them make economic decision in the face of omnipresent microtransactions.
Core game was gaining and spending currency while teaching that impulse spending hampers progress.
Project didn’t reach development phase due to lack of financing.
Project: Seyph
WeWantToKnow AS
Project: Savegame Pipeline
Savegame Pipeline was a first Elixir project that I advocated after we’ve noticed unreliability when Ruby-based system connected to Heroku’s database. Feature, while sounding low-priority was crucial for operations, as savegames were used in math students performance evaluation.
Pipeline was running on it’s own, without updates, for years before it was shutdown.
Project: Tooling
Voxcommerce sp. z o.o.
Voxcommerce sp.z. o.o. was my first official workplace. I joined as a zero-formal-experience intern but was promoted to a paid position two weeks later. What started as a small company became a mid-sized company next few years - I was promoted to a senior and then later on to a technical manager.
Voxcommerce’s contracts included the biggest realestates agencies in Poland - in fact almost all digital offer flows were somehow related to us. During the job I also interacted with agency owners which helped me develop people skills.
Project: Django Content Duplicator
Corporate partner wanted to have, what is today known as, content farm. These weren’t popular back then and the heart of solution was to ensure that there sites are visually different and content had differences enough significant so that they wouldn’t decrease search ranking.
I architected solution based on special syntax that would allow variants of parts of text and included custom editor that allowed to check specific version of it.
Implementation was done in Python/Django but my role was limited to guidance during unclear situations.
Project: ETargi
Project itself wasn’t complicated, however 2 weeks before the launch during manual tests what was found is that search engine is inconsistent and has tendency to bleed sesssions.
I was appointed emergency-leader to solve the issue. After analyzing I made decision to completely rewrite search engine, which resulted in getting on time and only 2 days of overtime.
Project: RabbitMQ Processing Pipeline
One of our partners produced gigabytes of real estate offers daily. Most of those were very similar, but differed in branding. Because not all export consumers took incremental packs, big ones were produced, causing almost 24h processing loop.
This project was bootstrapped by myself, both in terms of architecture and documentation for approval by the partner. In gist it was about moving each offer in a multiple “processing belts” and caching results, so one image wouldn’t be processed unless changed, most of the data pack could be cached.
Implementation ran the whole process in less than 15 minutes and allowed our partner to produce even more variation of the offers, with minimal impact on the processing time.