This website uses cookies. By using the website you agree with our use of cookies. Know more


A Good Path Is a Weighted Path

By Luís Carvalho
Luís Carvalho
Helping build great software and loving it, while rocking Adidas Stan Smith.
View All Posts
A Good Path Is a Weighted Path
This text is not about tech, and this is also about tech.


I discovered my passion for coding when I was twelve after entering an art competition at school. I spent two weeks on Easter break building a pop-up book about olive oil. Won the regional prize, a ZX Spectrum 128k, which led me to discover the extraordinary life of coding. Later I went on to be one of the winners of the global competition, but that's another story.
And so at twelve, being exposed to Sinclair Basic and the curiosities of the 8-bit world, I knew this was something I needed to learn. I started learning by reading magazines - yeah, no internet, no search engines, no online communities, no social media buddies. I could make sounds, graphics, movements, and collisions happen on a screen; it was magic! At the same time, I also discovered the world of 8bit gaming. At fifteen, my parents upgraded me to an Amiga 500 from Commodore -  a whole new world of 16bit possibilities opened up to me with languages like Blitz Basic. Suddenly all I had learned previously felt inadequate in this new reality. This turned out not to be true, but we’ll get there. Back to the drawing board with magazines and books, and this time also with friends with similar interests, and in six months, I was coding a game. I can still feel the joy of implementing parallax effects from scratch for the first time!

There is not one good path

Some of you may have heard me say that tech for tech is not a goal for me and that I prefer to approach it from the intrinsic value that new technology can add.
Tech is always evolving and always changing, and in a way, for me, that is part of the appeal. I have the opportunity to discover and explore new ways of doing things continuously. Tech also requires patience to master specificities and dig deep into the details. I get to constantly work away at solving the brain teaser of the day eating away at my sanity. For example, one answer for an existing challenge may lie in delving into a database’s configuration details. Another answer to the same challenge may lie in finding what new options are out there.


Let us take an example from our reality.
Back in 2016, we started talking about geo-distribution of our data centers. In my mind, this was a necessary move to support the availability, scalability, and performance of our global platform. I remember the first presentation I put together in May 2016 for Cipriano, our CTO – it mentioned the topic briefly, focusing on Geo-Distributed Recovery, based on a multiple-POD design.
Explaining Recovery is not hard: if the system fails and can't recover, we cannot sell. While it is challenging to implement, the reality is that most people would assume Recovery is a given. It would also not necessarily explain why it needed a geo-distributed approach. These are all valid arguments and ones that would naturally pop up during roadmap planning.

Good idea, right reason?

So, what was the intrinsic value of this proposal? The ‘WHY’ that would ensure we would not fall in a tech-for-tech exercise?
We knew that being able to recover immediately, without the traditional waiting time of backup and restore, was vital. We knew that being able to withstand potential full data center shutdowns was a worthy ambition. We knew that Recovery was necessary. Was that our ‘why’?
In 2016, FARFETCH was already expanding its footprint in China, and our applications were running on our customers' devices. Yet, the user experience was slower than what people experienced in Europe and the USA. Such an experience is not acceptable; we had to do something. Can you feel a ‘why’ in there? That strengthened our conviction in what needed to happen by proving an impactful moment that would amaze our customers. A good path must allow showing the value of technology.
Can you imagine if our global platform could provide a unique, consistent, fast user experience to our customers, wherever they are in the world? How great would it be?  How essential would it be to our mission to be the Global Platform for Luxury?
So there it was! The reason why our platform today is in multiple data centers, in an active-active model that not many companies can proudly say to have.

Your current self does not limit you

Ok, we got the ‘why’. We got the support to move forward.
One of the main concerns raised early in the project was the technical skills required to implement the geo-distribution initiative's vision. Reaching our goal would require moving multiple pieces over time, including a critical move from SQL Server to the newer Cassandra database.
Different teams raised discussions on losing our focus on SQL Server and not leveraging the years of investment in that technology. We reviewed alternative proposals to reuse existing technologies. However, Cassandra still looked at the time like the solution that checked more boxes for our vision. Cassandra was already an open-source project since Facebook released it in 2008 and fully graduated in Apache Software Foundation in 2010. Yet, while it was available, Cassandra was not in our TechRadar, and teams needed to acquire new knowledge. That felt exciting yet a bit scary.
I understood the fears. Let us go back for a minute to my move from Sinclair Basic to Blitz Basic. I had a fantastic new computer. I was excited about the possibilities yet afraid of starting over and losing years of knowledge. I was a noob again! But once I had changed my mindset, after surpassing the barrier-of-entry, I found I could do so much more than before, much faster, with more colors, more sounds, and more animations. I was happy. Happy because I learned something new; because I realized what I knew before from Sinclair Basic was still valid. All the logic, math, principles, understanding of computer science was still valuable. I was now speaking a new, more high-level language in a differently optimized hardware. I was starting to build a personal utility belt, and this was yet another tool.
In the same way, F-TECH challenged our mindset. We added Cassandra training to our catalogue. Planning the initiative was done, so we would tackle it gradually, allowing room for cycles of implementation, improvements, and optimization. Issues happened, teams found solutions, a v-team was created for the final steps, and we brought everything together.
And you know what I realized? I noticed that most issues were overcome not by any upgrade of the underlying technology but from individual skills and knowledge. Skills are built over time by practice. Knowledge is acquired by acknowledging what needs to be learned, embracing our inner-noob, and allowing ourselves to grow as professionals. When we get stuck in being the pro at one thing, our options will become very limited over time. And we are restraining ourselves from using our full potential.
Can you envision a place where your current self does not limit you? A place that challenges you to learn and apply new technologies in a practical and impactful way. I believe F-TECH provides that place. But it's up to you to challenge yourself and not get stalled. No one can force you to grow.
A good path must ensure we can build and support the products created and the underlying systems. As a group, we need to secure the right conditions. And we need both team and individual efforts to find that good path.

Final words

What I have learned over my life is that the best approach to doing the right thing is to own and act on my views while acknowledging I have much to understand. Sometimes our "right thing” will be brilliant; sometimes, it will not be. The right thing is a moving target and only as good as our understanding of the world around us.
I guess what I am saying is to trust in yourself, work for the team, find the shared ‘why’, acknowledge we have much to learn, learn it, and then do it. Being afraid is ok and so is experimenting, making mistakes, and learning from them. What’s not ok is letting our fear lead to inaction. The good path is ahead; let’s support each other to keep going!
Related Articles
FARFETCH Apps Development: Organizing future Sprints

FARFETCH Apps Development: Organizing future Sprints

By Francisco Medeiros
Francisco Medeiros
Foodie, design enthusiast, music addict, fashion lover, and an avid Nike sneakerhead always up for a challenge to be creative.
View All Posts
Sílvia Costa
Sílvia Costa
Development combined with QUALITY is the perfect union. Gucci enthusiast.
View All Posts