
For software development teams, the moment we stop learning is the moment our technical stack starts becoming obsolete. It’s not about how many languages or tools we know. It’s about how quickly we adapt when they evolve, get replaced, or transform into entirely new technologies.
Take the transition from Lightbend’s Akka to Apache Pekko as a practical example. Akka has long been a cornerstone for building concurrent and distributed systems in Scala and Java, underpinning many critical services. However, as the ecosystem evolved and licensing considerations shifted, our engineering teams migrated some of these services to Pekko, a modern fork of Akka that maintains API compatibility, while offering improved governance and community support.
The move to Pekko wasn’t just a technical migration. It required engineers to understand both the underlying actor model principles and the practical migration strategies, demonstrating how continuous learning enables teams to adapt to technological evolution without disrupting core business functionality.
Overall, for engineering teams working at scale, keeping up with this evolution is not optional, it is a necessity.
That’s why the most effective engineering organizations treat learning and development as a core pillar of excellence, not an afterthought. Training isn’t generic or disconnected, it’s intentionally aligned with the technologies, architectures, and real-world challenges teams face every day. Our Learning & Development team works closely with engineering leaders to design training programs that are connected to our technology stack, architectural principles, and business challenges.
Continuous learning isn’t a “nice to have.” It’s what enables teams to stay effective, resilient and ready for whatever comes next.
Generic Training is Not Enough
Traditional corporate training can easily become too generic for software companies.
We navigate complex business landscapes, where global demand meets unique technology challenges, so when it comes to training a one size fits all solution does not make the cut. Tailored training programs, unlike generic content, accommodates role-specific requirements and real-world application scenarios that make learning contextual and integral to performance.
In addition, neuroscience shows that active learning, where people have opportunities to discuss content, solve novel problems, apply concepts, and engage in peer-to-peer interaction, strengthens learning pathways. This reinforces the idea that transitioning from traditional training programs to tailored learning experiences crafts more transformative moments in people’s development journey throughout their careers.
Beyond one-off training events, which can be sporadic, flexible learning ecosystems help make development continuous and embedded in day-to-day workflows. At Blip, we’re proud to support that flexibility by providing the tools our people need to grow, aligned with their ambitions, learning styles, and personal development plans. It reflects our belief that every development journey is unique.
Investing in personalized learning experiences that reflect the complexity of our business and product roadmap contributes far more effectively to long-term success than off-the-shelf training ever could.
Building Training Around Real Engineering Problems
One of the core principles we apply when designing learning programs is that training must reflect the real complexity of production systems.
With that in mind, we’ve developed a catalog of technical courses built directly around the technologies that power our day-to-day engineering work. Rather than relying on generic content, we mapped our actual stack and identified the areas where knowledge gaps could most impact engineering quality and capability.
The result is a curated program covering everything from distributed systems fundamentals, such as Kafka and Kubernetes, to software craftsmanship topics like Functional Programming and Clean Architecture. Courses are delivered by internal engineers who bring first-hand production experience, ensuring that what is taught is grounded in real challenges rather than theoretical abstractions. Where internal expertise is complemented by external providers, we ensure the content remains aligned with our architectural context and engineering standards.
But technical depth alone is not enough. Engineers building products in our industry need to understand the domain they operate in — the rules, the language, and the business logic that shape every system they design. This is a foundational element of our learning programs, aimed at building the business literacy required to make better technical decisions.
From understanding core business concepts and terminology to exploring the principles behind our products, these courses bridge the gap between engineering and product/strategic thinking. When engineers understand why a system exists and how the business works, they are far better equipped to design solutions that are not just technically sound, but genuinely impactful.

Personalized Learning Paths for Engineers
Not every engineer needs to learn the same thing at the same time.
A backend engineer focusing on distributed systems will have very different learning goals from a frontend engineer working on performance optimization.
For this reason, our training programs are structured around personalized learning paths, adapted to our industry.
These paths are shaped by a few principles:
- Goal setting: the key to design a fit-for-purpose learning experience is a needs-first approach. In our industry, where demand and innovation evolve rapidly, it can be tempting to jump into training before fully understanding the gaps, a common pitfall to avoid.
To address this, we rely on internal “tech radars”: people across different areas of the business who act as lookouts for engineering teams’ learning needs. We work closely with them to understand which new technologies, platforms, and frameworks are being adopted, and where capability needs to grow. This iterative collaboration ensures that our learning initiatives remain relevant and keep pace with constant change. - Speed: as the value lifespan of technical skills progressively shortens, we recognize companies must accelerate their learning velocity to quickly keep up. Our learning experiences are designed with speed to skill in mind, actively investing in flexible formats people engage in, accessible and rooted in skills development through practice and experimentation rather than knowledge transfer alone. As learning agility becomes increasingly rewarded, we enable it with training options that allow for speed to learn in an effective way.
- Monitoring: The adaptive nature of a solution allows it to evolve while remaining valuable over time, and learning is not an exception. Continuously assessing feedback, identifying improvement opportunities, and moving back to the drawing board if needed is crucial to keep refining learning that matters. Learning data is a powerful tool, not just afterthought.

Engineers Teaching Engineers
One of the most effective learning models in engineering organizations is peer-to-peer teaching.
A good example of this in practice is the internal training program we built around Fundamentals of Functional Programming with Scala. The motivation was straightforward: it was a skill that our engineers needed but one that was not yet deeply embedded across our teams. What made this particular case interesting, though, was the nature of the gap itself.
Most engineers are reasonably comfortable picking up a new technology or programming language. The syntax changes, the tooling is different, but the underlying way of thinking stays largely the same. Functional programming is a different challenge entirely. It asks engineers to shift their programming paradigm, to reason about problems in a fundamentally different way. That shift is significantly harder to make, and a generic off-the-shelf course is rarely enough to achieve it.
For that reason, we built the training around our own context. Rather than relying on abstract academic exercises, the course was grounded in real problems we face in our systems day to day. The examples felt familiar because they were familiar, as they reflected the kind of decisions our engineers in production code. That connection between learning material and real experience is what makes the difference between knowledge that fades quickly and long-term knowledge that shapes how engineers reason about programming.

Learning as Part of Engineering Culture
Blip’s commitment to fostering a learning culture is one of its core pillars. Each person is empowered to take ownership of their development, choosing the paths that best suit their needs, whether through external courses, books, learning resources or conferences. This flexibility supports the continuous growth of technical, communication, and professional skills. In addition, everyone has access to an internal learning catalog covering a wide range of topics, as well as other platforms with extensive content.
Having resources available is important, but it does not end there. What truly shapes a strong learning culture is the people around you. Working with passionate, motivated, and highly skilled colleagues who are always eager to engage in technical discussions or offer their own perspectives creates a multiplying effect that, combined with a growth mindset, has a real impact on both personal and professional development.
A practical example is Luis Matos’s experience over the past year. Through a combination of internal catalog courses and external learning resources, he had the opportunity to explore new areas of knowledge. At first, the immediate impact of these courses wasn’t entirely clear, beyond curiosity and a desire to strengthen his technical skills and grow as an engineer.
Looking back, however, their value became evident. These learning experiences went far beyond initial expectations, shaping how Luis approached multiple challenges throughout the year.
To be more specific, that was a recent analysis of how to store information consumed from a Kafka topic and then used by multiple services. Knowing Kafka fundamentals proved critical for Luis and the team when evaluating Hazelcast as a distributed cache solution for storing consumed data. In particular, understanding consumer-group rebalances, committed offsets and the side effects of forcing consumers to read the whole topic on each partition assignment helped spot hidden operational costs, where some partitions could be re-read unnecessarily after a rebalance, potentially increasing lag and bootstrap pressure. At the same time, by applying industry-standard architectural principles, they kept data access behind a stable API backed by an abstraction layer for the repository used to store the data. This allowed them to potentially switch the storage implementation as needed without impacting API callers, thereby reducing coupling between business logic and infrastructure, providing a safer path to evolve the solution in the future.
Had Luis not had the chance to use the time and resources to learn these topics, delivering these tasks would have been much harder. That is why an environment that consistently encourages growth, with vast learning resources and rich technical discussions among colleagues, is more important than ever.
As such, a clear understanding of the business, architectural trade-offs, and awareness of system-wide impacts across different design options when analyzing solutions are truly important skills.

The connection between learning and technology is a two-way street. Learning drives technological advancement while technology expands learning at a scale. This symbiotic relationship puts forward an intentional and continuous cycle of growth.



