2020: The best year for our Engineering team so far
Yes, this post was meant to be shared right at the beginning of 2021, but time runs fast and we have decided to start the year thinking, planning, and executing our vision for 2021. Now, while our team is already going full speed towards our goals, I can share with you what we’ve achieved so far and all the challenges that our Engineering Team will be facing in 2021.
2020 was one of the hardest years we have ever faced. It was hard for our team, our clients, our family, and friends… it was hard for the World. It was even harder for the ones who lost someone close or had to rollback their entire life.
However, we stood together, we faced all the challenges with bravery, compassion, resilience, and intelligence. Despite all the problems, we have some good news: 2020 was by far the best year for the Engineering Department at Infraspeak.
Kick-off: Recovering from 2019
2019 had been a tough year. We had to onboard a lot of new people and we had been redefining processes, refactoring, and redesigning a large portion of our frontend and backend codebase, in order to make it simpler and easier to maintain.
We’ve also spent a huge amount of time rebuilding our mobile app to support offline mode and began to make some bold steps towards a more intelligent application using some AI-backed features. We dealt with a lot of performance issues at the Infrastructure level, which caused a lot of stress and firefighting.
In 2019, we were mainly investing in building the foundations of the Engineering Team and that caused a huge feature debt to our clients and business, and a big pile of bugs to be fixed.
2020 had to be the year in which we would prove the investment was worth it. We needed to show we had a world-class team capable of a world-class execution.
We started 2020 with a team of 12 people and a huge and challenging product roadmap, competing with a huge and challenging engineering roadmap. We wanted to focus on 5 major areas: culture, delivery, performance, monitoring, and quality.
We started by doing a few things that we were convinced would help us work smarter:
- Creating cross-functional teams that could work independently from each other;
- Measuring our process looking at the flow of delivery instead of the amount of output;
- Raising the visibility of our metrics by creating an Engineering Dashboard;
- Heavily investing in tests and quality assurance;
- Implementing Feature Toggles to help continuous integrations, ease out the product deployment, and cadence;
- Keep re-enforcing a culture of continuous feedback and learning.
In February, we’ve launched the public beta version of our brand new redesigned Web App build on top of Vue.js and served by a Laravel API. We also reinforced our Mobile Team and hired someone to take care of our Infrastructure. Both were great choices and proved to be the right people for the job.
And suddenly, the pandemic
Well, you know the story. In March, we all started working from home even though we just moved into a brand new office.
Since we had just hired someone to join the Integrations Team, we were forced to do our first onboarding remotely, and I believe we did good (at this point, we’re pros!). We also had to deal with a lot of uncertainty, since nobody knew exactly what was going to happen or what to do at this point. I bet you know the feeling!
At Infraspeak, the team came together and began to brainstorm ideas, helping each other to overcome the challenges we were all facing with transparency and resilience. Out of this, we launched two new products: Place Checkup and the platform for Clean & Safe by Turismo de Portugal. Overall, both projects were designed to help business owners to follow and communicate all the cleaning and safety procedures they had in place. It was a tremendous effort to launch a brand new product in just a few weeks, and we definitely felt the impact of allocating people from the Engineering Team to these projects... but it was totally worth it.
At this point, we also lost our only QA Engineer, who had been a great contribution to the team, and a source of great learning for us all.
Investing in the team & product
We understood that we needed to start investing in reinforcing the Engineering team. Things were getting better, so this was a great opportunity for us to focus again on the product.
Super bright and talented frontend, backend, and QA engineers joined the team in batch and the onboarding process was great, given the circumstances.
As a plus, we also increased the number of female colleagues! Before this new hiring round we had zero female engineers, now we have 7 and counting… we couldn’t be prouder!
With so many people coming in, we needed more than ever to automate and refine processes, so we took the summertime to work together and leverage our tools:
- We’ve abandoned Bitbucket in favor of Gitlab;
- Gitlab enabled us to automate all integration and deployment pipelines from development, staging, and production;
- All Infrastructure was versioned as code using Terraform and Ansible;
- Web, Mobile, and Integration Team had most of their processes automated, which was a big milestone for us;
- We decided to migrate some of our asynchronous tasks to a Queuing System using Laravel Horizon;
- We’ve updated several core technologies in our stack to the most recent version like our Postgres databases and our Laravel API in order to provide better performance and usage of more recent functionalities.
Last but not least, we needed to test the security of all applications, so we’ve hired an external company to audit us. Their findings were a great help to build a better product, so we’ve spent a great amount of time dealing with all problems found.
In the meantime, performance issues at the application level were back. In response, we created a Performance Team dedicated not only to fix them, but also to help us become more proactive (and less reactive) to these kinds of issues.
October was a good month: we decided to do another mythic Hackthoberfest! The team dedicated an entire day to build a project on their own, for the open-source community. We were able to try out an application build on top of Kubernetes and a Service Oriented Architecture build on top of Node.js and Laravel.
World-class execution & team
By the end of 2020, the dominant feeling was that we had done a lot of stuff!
Not only we’ve leveraged the Engineering Team by automating most of the processes, but we’ve also created a robust Infrastructure and away more performant applications.
We’ve built quality processes far better than we expected and our delivery rate skyrocketed comparing with other years. We fixed hundreds of bugs and improved a lot in their volume and response time.
We’ve turned Infraspeak into the most integrated platform around, and we’ve launched a bunch of new and highly requested native apps, features and improvements, such as the Infraspeak Hub™, the Gatekeeper, the Sales App, the Quotes feature, the Dashboard, the Offline Mode, the WebHooks, the Location Awareness… to name a few. And did I mentioned the new products Place Checkup and Clean & Safe?.
Besides this, we redesigned a few more modules; refactored a lot of our mobile codebase to follow clean architecture guidelines; moved our backend codebase to a more domain-driven architecture; added a bunch of unit, integration, and e2e tests to our backend, frontend, and mobile codebases; leveraged our written documentation by creating ADRs, RFCs, trying out Stoplight for API docs using OpenApi Spec 3; and soo many other small but important things that happened along the year.
Our metrics were better than never, and they continue to guide us along the way. I don’t think I need to say that we definitely proved that the investment was worth it.
Currenly, we’re a team of 30 engineers (we had a few more onboardings) and we’re still hiring a few more. If you’re interested, take a look at our open positions, here.
Of course, none of this would be possible without our people. They work their asses off to make this happen, to overcome the challenges and constraints we faced. We are very proud of this team and of what we achieved together.
What comes next?
Now, we are looking at 2021 with hope and energy. This will be a year of accelerated growth, that will test the limits of our processes, architecture, and people. A year to think about how to scale our systems and our team; and to invest in people’s growth more than ever. We’ll keep feeding a never-ending culture of continuous learning.
It will also be a year where we will keep investing a lot in quality and in proving that we have a rock-solid platform, ready to face the scaling challenges.
Exciting engineering challenges are ahead (some of them new to most of us!), and we are about to get out of our comfort zone… but let’s face it: it’s the best zone to be! It is where the magic happens, where we push our limits forward, where we learn and grow together, where we give the steps that nobody has given before.
And if we may fearsome of the unknowns, this last year proved us that we have a resilient team, who fails fast but learns even faster; who knows how to support each member. And let me tell you: as long as we believe in what we are doing, and that we are truly a source of good life to our clients, our families and ourselves, we are headed to success.
If you want to know more about our plans for 2021, check this post→ 2021: Daring to dream and grow.
— If you wish to be part of this great team and help us fulfill our vision, we have 20+ openings at the moment for the Engineering & Product Team.