Continuous learning is at the heart of every tech company. At Picnic we recently launched our Tech Academy. Through this Tech Academy, our ever-growing tech team gets the opportunity to learn from experts. In this post Phil Werli, who participates in the pilot group of the Tech Academy, shares his experiences.
After graduating from university, I finally wanted to apply my learned skills in practice. I’ve had enough of small scale student or research projects using ancient technologies. It’s time to write real software in a team of professionals. Picnic checks all my personal boxes for tech: Java, modern frameworks, and focused on a high quality codebase. The latter was repeatedly pointed out during the interview process, so my expectations were high. Also for myself, as I wanted to contribute right from the get-go.
In the first weeks at Picnic, I spent a couple of hours every day studying, going through Reactor and Spring WebFlux documentation, coding small examples and just navigating through the codebase. In a way, it felt a little like going back to university. It was exciting! And whenever I couldn’t figure something out, my teammates were there to answer all kinds of questions, ranging from architectural insight to deep knowledge of Reactor’s operators. It set the foundation for my work as part of the Store team on the backend of our customer facing apps. By now, my technical responsibilities include designing and building new functionality to be used within these apps. Examples range from implementing two-factor authentication to designing crucial steps in our ongoing migration from a monolithic to a microservices architecture.
Picnic’s Tech Academy
With Picnic’s tech team growing at a rapid pace, most teams have new joiners in similar situations. Our recruiting process ensures highly talented engineers join, but most simply have little experience working with certain technologies or codebases at such scale. After all, universities give you a strong theoretical foundation, but not necessarily a practical background on cutting edge technology. Self-study and learning on the job only gets you so far, though. That’s why I was happy to join the pilot group for Picnic’s newly minted Tech Academy.
For new Java developers (including me), Picnic launched a first iteration of an internal Tech Academy program. In multiple two-day courses we so far discussed core design patterns and clean code principles, but also dove into the Spring framework with industry veteran and Java Champion Victor Rentea. Each day was super interactive and fast-paced, but always with enough room for in-depth questions and discussions. Additionally, all sessions were recorded and available for participants to re-watch.
To not make the academy an individual affair, participants form buddy pairs to navigate through the whole program. Before the clean code session, each team solved a code kata, a small coding exercise, which was then discussed with our trainer, Victor. Seeing different solution approaches and discussing them, gave valuable insights.
After each course, there’s an internal reflection session where buddy pairs present the learnt material using examples from the Picnic codebase. These sessions help translating theory into practice, ultimately transforming knowledge into understanding. One of these reflection sessions was all about finding positive and negative examples of clean code principles in our codebase. In another reflection session we explore Spring features (in my case Web MVC vs. WebFlux), discussing how various projects within Picnic apply these features. Sharing the experience is always nicer and keeps you more engaged.
So far, Picnic’s Tech Academy helped me take another step in my technical development. The sessions inspired me to question existing and future design decisions even more, as well as diving further into technologies, both deepening and broadening my technical knowledge. Throughout the academy, concepts already known to me such as SOLID or Spring’s dependency injection were dissected and discussed until real understanding was achieved. Some powerful concepts previously vague were made clear, in particular some of Spring’s annotation, security and aspect-oriented programming functionality. But I’ve also picked up some tips that were not on the agenda, though helpful on a daily basis: pair program more, manually refactor less (IntelliJ does it safely for you) and scroll horizontally using CTRL.
And I was certainly not the only one benefiting. To make the process continuously better, Picnic collects anonymous feedback from all participants after each session block. The last session block on the Spring framework scored a staggering 9.6 out of 10 whether to be recommended to other colleagues and one comment described the effort by our external trainer Victor well: “This was the best training I’ve ever had honestly, I’m already recommending Victor to every developer I know. Thanks a bunch!!”. Seems like everyone was able to take away key knowledge and lots of food for thought.
The program’s not over yet. In the next course, we’re going to dive into the inner workings of Project Reactor and Spring WebFlux, with none other than the active Project Reactor contributor Oleh Dokuka! I personally have been using reactive programming enthusiastically for about a year now and I cannot wait to learn more details.
Picnic’s Tech Academy allows both new and experienced developers to grow even faster with a combination of courses from external experts and internal reflection sessions. If you also want to experience this firsthand and expand your technical horizon, apply and join the team! 🚀