Arrivederci Allegro!
Context
Allegro has played a huge role in my life - it attracted me at the beginning, then kicked my ass and then pushed me to become a better person and engineer giving me lot of satisfaction and joy along the way. Today it’s my last day here and I decided to celebrate it by writing few words down.
If you are at the beginning of your career and you struggle - reading this may encourage you to push harder. If you met me somewhere during this journey - maybe some flashback will hit you and you’ll smile. Otherwise, it probably won’t be worth reading.
Getting Started
I joined there by accident. During my 2nd year of college I read about these hackathon thing. I looked up what’s around and I found BrainCode - hackathon organized by Allegro. Back then I was figuring how all this tech work and figuring things out was going… well… slowly. I showed up on the hackathon anyway, joined 2 random guys who were kind enough to take me into the team. Throughout the hackathon I delivered zero value, but guys were awesome and delivered great MVP. They won the competition by delivering barcode scanner redirecting to [https://allegro.pl/] page to particular item if it was found in the “database” (harcoded dictionary in memory ofc).
It wasn’t the most pleasent experience overall (constantly exposing my ignorance and showing what I don’t know) but I learnt a lot on the way. Oh, and the prize for winners was internship at Allegro (or at least taking part in the interview process)!
Even if I brushed up my knowledge before the interview - I think it didn’t go well. However, for some reasons I got the call and got the call and soon I was an intern in team working at launching Allegro SMART!.
Cringe Time
As you may suspect, I haven’t magically learnt everything I should know to perform well at my new role. Saying that I was overwhelmed would be understatement. Slack, Jira, BitBucket, Bamboo, Git, IntelliJ, Gradle, Scala, Mongo, Spring Boot, Kafka, DDD, TDD, Event Storming, Product Owners, Agile… I had to learn a lot. Even if I was putting lot of time and effort into it - I was drawning. Just so you can imagine it a bit better:
- I needed constant hand-holding driving everybody crazy - I barely could deliver anything on my own
- Once I did
git push --forceto master lot of rubbish making everybody uncomfortable (now I know that it wasn’t only my bad - why didn’t have branch protection set 😉) - Once I need help with “Why this project is not building?” - the answer was me editing build.gradle by accident
I still have the feedback after this 3 months. Reading it back then - I was devastated. Reading it now - I think it was bit too soft 😉
Learning about “Industry Standards”
After this summer experience I worked in few other places. In some I was interacting with ugly, huge codebases without tests where DB calls were being inlined into JSPs. Where code was being released once per two weeks, where one week of code freeze was a norm and it was a time for testers. I saw places were after incident the blame loop was being started and “who’s fault is it” was more important then the root cause. I saw teams pushing tickets from left to right without even knowing what their system is supposed to do. I saw people completely apathetic, unwilling to learn, explore and build. Interested only in moving things from “it’s my problem” to “it’s not my problem” in the shortest possible path.
I mean - I saw some interesting and cool things along the way (i.e. building maps at TomTom was great!) - but the amount of problems that simply were non-existing during my internship at Allegro but dominating in other places was depressing. And even worse - most of these people didn’t perceive these things as problems!
So it’s not strange I was trying to get back into Allegro. I was reading lot of books, blogs, figuring things out and getting know what else I need to learn. I failed interview process 2 times along the way.
I still remember doing my third interview process from random Coffee Shop in Kenya and then getting feedback after interview few days later in Dubai’s mall. It was “downgrade” from mid position to junior position. But back then I knew it was the best decision I could have made.
Working on Boring Domain (Thankfully with Interesting People)
So I was back. Much more confident then the first time. However, I still had a lot to learn. Thankfully, I’ve joined the best team I could ever imagine. I’ll just shortly enumarate things I’m grateful for before I’ll jump into “why I moved further”.
Things that were really great:
- We cared about each other’s growth. I mean it. If somebody noticed I’m missing some skills - he or she will just show me how can I do something better / faster. Later on I learnt to give back as well.
- We demanded from each other a lot. On my first PR I got around 100 comments. At the beginning I thought that I won’t make trial period in this job. However, I learnt that almost anybody joining the team was getting lots of comments - even if it was somebody with Senior title.
- We had shared understanding of how things work and how they supposed to work. We were talking a lot, doing presentations to each other and caring about thing we were building (even if the domain wasn’t the most interesting - at least for me).
- We had many software enthusiasts on the board. Discussion club about DDD, doing Advent of Code together, meeting with Venkat Subramanian about Event Sourcing, doing some Code Katas, Geek Cofee (sharing some interesting ideas i.e. about traits in Groovy) - heck - even putting Event Sourcing into less critical project to play with this idea.
- Feeling of working on something important. If our product didn’t work well - we would know about it from many sources and we would know about it fast. Since we were dealing with money, the acceptable error rate was pretty low.
- Team Leader who cared a lot about my development. Konrad, you set the bar very high to all my future managers! Thanks for challenging me on every step (there were times I didn’t like it, but from time perspective I appreciate it a lot), supporting when I was flying low and being great role model for me.
Before I moved on I tried team tourism, twice:
- In frontend team learning frontend - I remember it as a chill and cool time and great learning experience
- In security team building org-wide security scanner and just for few moments I could feel like a real h4xx0r 😆
In this team I did most of my journey - from Junior to Senior - it wouldn’t be possible if not my demanding and simultaneously supportive teammates.
If so many things were great there - why did I decide move forward?
- Mostly curiosity. I knew how things work around me - I wanted to check out how things work somewhere else
- I wanted to move faster. The domain we were working in (taxes) was unforgiving in terms of errors - I knew that there are places where errors are less painful
- Oh, and I met this guy called Bartek Gałek.
Working at the (almost) forefront of Allegro
Bartek is an incredible human being. He just makes thing happen. Whenever you looked around at Allegro, he was there. So the moment he said I could be working in his team - the decision was already made. During my tourism at security team - he pushed me to build centralized solution from which whole company could benefit (service that interacts with every pull request by firing up workflow and commenting PR) rather than building solution only for our needs.
Also he dragged me into building Space Panic - game for Allegro Tech Meeting and taught me how to install Heroes 3 on MacOS 😆
So I ended up in Opbox Platform - team managing Allegro’s frontend.
Things that were really great there:
- Opportunity to work on super unique piece of technology. I still think it’s a pretty clever idea!
- Being exposed to performance issues - I could learn a lot from my teammates and the situations we were encountering on daily basis
- Team working both on frontend and backend side. This way we could deliver things end to end.
- Knowledge sharing. I copied Geek Coffee from previous team and it kinda worked - I enjoyed lot of presentations shared at this meeting!
- Being in the centre of things. Lot of initiatives had to expose frontend to users somehow - our team was exposed to so many different problems - there was no time to be bored.
- Team leader who trusted me. Sometimes probably even too much 🙈 but it was very interesting working this way!
If so many things were great there - why did I decide to move forward?
- Well… money. I have a mortgage that the faster is paid off the better. When joining Allegro as Junior I downgraded my salary but I knew that it will pay off in long term - Allegro was the best place to learn back then. I was getting better offers in terms of money each year but I was staying in the place where I felt that I’ll learn the most. I’m not sure anymore if it’s still the place I’ll learn the most. But I’m sure the money I’ll be getting is better.
- Curiosity. After all these years at Allegro I wanted to see what does it look like to work in smaller org.
So what’s now?
I don’t know. The chance is that I’ll just look around, make sure that world outside of Allegro sucks and I’ll come back. Until I’m not back - you can follow my further adventures here and reach me whenever you want :)
Arrivederci Allegro!
Comments