You’ve probably never had the same day twice at your current job. At Zalando it’s no different. Here, it not only depends on the product you're currently working on but also on your peers.
Actually, what's expected from a frontend engineer can vary according to a company philosophy or your own previous experience: usually a frontend engineer can be seen as a Swiss army knife when in reality at Zalando, for example, we see them as masters of trades.
If you're considering joining us as a frontend engineer, beware that a day in the life of a frontend engineer for us usually means:
…BEING A PROBLEM SOLVER / USING MULTIPLE HATS
First and foremost, you're going to be asked on a daily basis to come up with solutions. Topics change quite often since a lot is asked: from defining data models and structuring APIs together with the Backend Engineers to challenging the user interfaces defined by the design team. A day of a frontend can be a bit overwhelming at first, but there’s nothing to be done but taking a deep breath and getting your hands dirty.
Your focus is always going to be the user, which means that you'll have users on your mind every day. It's expected from a frontend engineer to have good UX notions and to always deliver the best experience to our customers.
We heavily rely on frameworks and libraries at Zalando (mainly React but you can always encounter other things like Angular, Vue or Polymer... (if you're curious about our stack, check out our Tech Radar) and we do use other technologies for some explicit typing (like Typescript or Flow). However, what we value most is :
- the knowledge of the language itself;
- its core functionality;
- its asynchronous/synchronous nature;
- its browser APIs.
We also take some time to consider what's best for the products: "Do I really need a library for this or do I know a better solution?", "Is this piece of code performant?"- These questions we ask ourselves everyday.
Not being afraid of trying new technologies and new ways of implementing the same thing is also part of the job: It takes a lot of experience to understand that a Senior Engineer is not the one that writes the most complex code but the one that always writes the simplest instead!
…WRITING THE BEST TEMPLATES
We take the time to make sure our HTML makes sense semantically-wise, as well as ensuring it is accessible to all of our users and it’s clear to any colleague who may lay eyes upon it. We work in component based projects, so styling might get overlooked or might not even be needed but we do care about clean and performing code, so we see CSS as a vital part in order to achieve it.
…ALWAYS BEING A STEP AHEAD
Being a frontend engineer is very demanding learning-wise: so we allocate a bit of our time to always keep pushing forward and knowing what's coming.
…HAVING QUALITY AND PERFORMANCE AS TOP PRIORITIES
Browsers are tricky. We know that we have to allocate some time in order to make sure everything is working correctly and as intended… Debugging comes as a second nature: sometimes it's just a GraphQL Mutation or a PUT request that didn't work but it's part of our job to know where to look for the mistake and figure out a proper solution.
Non-Functional Requirements are also there to be defended and challenged and we constantly need to figure out the most efficient ways to achieve them.
Since we use open source technologies, we need to evaluate the risk of encountering vulnerabilities in our products constantly. Every action our code allows (especially when communicating with backend services) is a potential security problem, so we do what we can to prevent something like XSS or DOM manipulation from happening. As mentioned before, we always have the best interests of our customers in mind, and that includes their data and assets.
Other than that, another part of our day-to-day is dedicated to preventing something from going wrong. Unit testing is part of our definition of done. We are fans of UI testing/E2E tests and we have no problem in testing and verifying each other's work.
...NOT BEING AFRAID TO GO OPERATIONAL
As DevOps teams, we perform quite a lot of operational work (even if it's just taking care of a deployment). We don't exactly expect all of us to be AWS or Kubernetes experts but do our best to train each other on all we need, so that we can be the more independent.
We set up projects, from the simplest one to a complete and robust one, so pretty much all of us frontenders at Zalando are familiar with tools like Webpack or Babel.
We also value Continuous Integration and Continuous Delivery and that's always a concern on a daily basis.
…HAVING A CONSTANT AGILE MINDSET
Having worked with any Agile Methodology before is pretty important. It does not matter whether it was Scrum, Kanban or a Tribe Model. What is important is that we work as a team and we place the team’s needs above our egos.
We work on scalable projects with lots of dependencies and external parties, so it's quite important to adapt the ways of working to deliver the most value possible. We do it the Agile way.
…BEING A MENTOR
Knowledge sharing. Someone next to you is always eager to learn more and another part of our day is dedicated to share whatever we know is worth sharing.
…BEING A COMMUNITY CONTRIBUTOR
Knowledge sharing: community version. However we can contribute, we are encouraged to do so. Doesn't matter if it is for Open Source projects, speaking at conferences or organizing meet-ups, we do our best to help the surrounding community.
…BEING INTERNATIONAL IS KIND OF MANDATORY
We have over 100 nationalities at Zalando, so English is a big part of our day and that is irrespective of which office or country we work in. Embracing different cultures is one of the most rewarding aspects of having such a diverse team and it is a lot of fun, just like the dogs running on some floors to the Nerf gun wars.
So… A DAY IN THE LIFE OF A FRONTEND ENGINEER FOR US MEANS:
Arriving to the office with an open mind; knowing that not everything is always going to be perfect and easy, but striving for continuous improvement and getting better at what we do.
We are a united team that enjoys the journey of being on the same boat and solving problems together. On an individual level, always being ready to share knowledge, to learn from others, as well as being responsible and accountable for the amazing work that you can do, are some of the most important qualities that we hope new potential team members would have.
Join Cristiano, as a Frontend Engineer in our Lisbon Tech Hub: https://zln.do/2FFE5v8