Packlink engineering vision for 2021
This damn 2020 year is finally ending. Everybody wants to forget this year and put some hope in the next one.
At Packlink we have the same opinion. But speaking of technology, Packlink is closing the year with significant challenges and huge growth. For this reason, we have a continuous process of improvement and we have a clear vision of what we expect from our software engineering department next year. We want to share here it with you.
Context: Packlink today
Packlink is an almost eight years old startup with plenty of history around it. We are growing a lot thanks to different alliances with companies like PayPal, eBay, Etsy, Shopify, etc.
The most important component is always the people. Because of that, our engineering managers are working every day to improve our processes, solving problems and help people to give their best. One of the most important changes we have on that is our new career path.
Technically speaking, Packlink changed from a PHP monolith to a microservices system developed mainly in Scala (we ❤️ functional programming), and beyond our API Gateway, the communication is event-oriented. Talking about the frontend side, we went from monolithic AngularJs sites to dockerized React sites using a design system for the UI layer and a Typescript SDK to access data in our API. Furthermore, we are finishing the migration to Kubernetes.
In order to understand our development performance, our CTO shared in another post the 4 key metrics. There you can see that our team is deploying with a high frequency (several times a day) and that our TTR is very low (less than 10 minutes).
But obviously, we can (always) improve very much in many areas. We have a vision of what we want to achieve, and we are working on that.
Today, I am going to explain to you our three main objectives as the Engineering team for the next year: teams autonomy, changing mindsets and data.
2021 Packlink’s engineering vision
Teams autonomy
One of our main focus is to increase the autonomy of the teams. We have multidisciplinary teams with all the roles they need, but as I said before, we are growing a lot (and fast), so we need to increase the autonomy to empower the teams, to be more agile, and reduce the lead time.
In order to increase this autonomy, we are building lightweight technology governance. It is always difficult to move between having zero government and wanting to rule over everything. But there are tools to achieve that:
- We have built tech principles. With that, it will be easier to make decisions, everybody in the same direction.
- We are running tech radar sessions. The idea is to guarantee innovation in an ordered way. Every person can propose new tech alternatives and tools. We will analyse them twice a year: how this new tech stuff is running, if we want to continue using them, if we want to hold them, etc.
- We are moving from a classic DevOps team to an Internal Platform thinking. The idea of this kind of teams is the same as product teams. Basically, the team is building a product (the platform) and their clients are the business teams. The first results are very promising, and we expect to increase the autonomy of the teams and improve the velocity of the processes.
- We are interested in SRE thinking. Next year we want to have defined the different SLOs in order to have clear when the teams are doing a good job or they need to stop and fix if we have a problem in our critical path.
- We want to increase and improve the observability in Packlink. Some time ago, our system was smaller and more manageable but now we are not only growing in people, but our platform is also growing; think it is essential to put a lot of effort in that. For us, it is important to deliver fast but also to be aware of errors before anyone else.
- The team is working on the release of the developer booklet. This booklet is a curated compilation of the main themes in software engineering. It is all that a developer needs to know before to start working so that Packlink’s developers have agreed as standard.
- We are improving our documentation. For us, documentation means a better onboarding in teams and fosters knowledge sharing. Without living documentation is difficult to ensure an updated and good documentation because we have a complicated architecture and we are moving fast. ADRs and C4 model are some of the tools to achieve that thought documentation as code. Also, we are moving forward in automatic, continuous delivered, documentation.
Changing mindsets
But the teams aren’t the only thing that is changing this year. When a company grows, the type of challenges also change. As said before, we are growing a lot and fast so it is important to stop for a minute and think what those new challenges are and how we will face them.
Here you have our main focuses:
- Data-driven culture. Yes, probably you are reading this topic in every startup, but we really believe in it. In our context, being a data-driven culture is important because: it enables you to be agile, it gives you an objective way to know the health of your team and have a clear shared focus. That is why we are working on democratizing data and making it accessible so that we can all base our decisions on it. Later we talk about data.
- DDD. We are moving from a project-based team structure to a business domain-based one. We think that it makes sense to empower the teams and give them all the context they need, to choose their own path and make their own decisions.
- Automation. It is one of our principles. Machines are excellent in executing repetitive tasks so for us if there is a possibility of automation, we will always take it first. We know that after Internet First, Mobile First, or Cloud First, now is time to automation first mindset. For instance, an important part of this automation is the different levels of testing. We have a strong culture of testing and we are improving fast the automation of it. But automation is in every decision and every area in the company.
- Security. We are aware of the importance of security. We are doing a great job in this area, evolving the whole company and next year we will have a team dedicated within the company.
- OKRs. “Measure what matters” is the title of a book, written by John Doer, that explains the OKRs, and basically is a perfect summary on what we want to achieve with this. With OKRs we have clearance from the top of the company on what the objectives are in the different quarters. The idea is to align these objectives along with the company and the teams.
- Cloud-first. Our idea is to take advantage of the cloud. Some years ago we decided to move our ecosystem to GCP and now we want to take advantage of this great platform, using the automation and the speed of incorporating new components. To create and update our infrastructure we are using infrastructure as code.
- Fully remote. Last, but not least, with the pandemic, each company had to adapt to the situation. Packlink chose to look to the future and take advantage of the situation: we decided to become a fully remote company.
Data
Having a data-driven culture is not only about the culture, it also comes with important technical challenges too. That’s why data is another important objective of our 2021's vision.
The work that Packlink’s data team is doing is amazing. Their main objective is to democratize the data. The idea is that every person can use the data and take decisions with that. We have an incredible amount of data and we can do incredible things with that.
It sounds great but it comes with some important work: the automation of the processes, ETLs and ELTs, the catalogue of the data, the lineage of the data, an incredible data warehouse, and other key parts of the data journey.
Summary
When a company grows, the challenges change and many others appear. No one can say that in a successful company things have been done wrong in the past. But there is always room for improvement and with the growth, you have to change things radically.
In our case, we are clear that we want to improve our 4 key metrics, allowing us to accelerate the delivery of new features and focus on innovating. We know that this implies improving the autonomy of the teams and many other changes in our structure and ways of working. On the other hand, the management and use of data have become essential for the company’s growth.
There are obviously more changes, but I thought these were the most interesting.
Summarizing, we have an incredible and exciting new year in front of us. Did I say that we are growing? If you want to be part of this incredible team, join us, we are hiring!