Working as a developer at Favro

Favro’s technical team is made up of highly skilled problem solvers who work on one of the most innovative and cutting edge products in the space of collaborative planning apps. In this article, you will be able to understand what to expect being part of this team.

Who would you be working with?

Favro is a remote first organisation with team members distributed across Europe, Vietnam, and the US. Main offices are located in Uppsala Sweden (HQ), and Vilnius Lithuania (Global sales and marketing). The tech team is mostly spread out across Europe and Vietnam, and has individuals with varied skills and hobbies. Whether you’re looking to build the best in class gaming computer, having troubles with your car or looking for advice in carpentry and woodworking, you’ll find that Favroits would be eager to help, discuss or simply geek out on them.

As might be evident from our homepage, a lot of game studios choose Favro to collaborate and plan their work. One of the reasons for Favro’s success in the game industry is that the majority of our team have either started a game studio, published their own games or worked on several AAA-titles.

What is it like to work as a developer at Favro?

Let's now dive into your week/day as a developer at Favro. In general terms, we use a form of Scrumban approach for committing work. This starts with a planning session every Monday, which results in an updated backlog and a release plan for the week. As a developer, you pull your work from that prioritized backlog.

Every day starts with a stand-up where we go through the squad’s Favro board and highlight the current work in progress, any updated plans or blockers for the team. If we feel the need to dig deeper into a specific topic, we may decide to continue the conversation in a breakout session.

You will also participate in a bi-weekly retrospective, you can read more about it here, as well as a development guild meeting where knowledge sharing and deep dives on tech questions take place.

During the week, you will work on solving problems, brainstorming and conducting code reviews. For some problems, it might be beneficial to handle it in pairs by doing pair programming or pair code reviews, i.e. the developer and the reviewer go through the open Merge or Pull request together, fixing comments as they go.

You will also join the company and squad Fikas, which is traditionally held physically at the office. With the move to remote, we have adapted the traditional Fika and introduced gaming to it. Some of our current favorites are: slither.io, curvefever.pro and a friendly game of Poker.

A company review rounds off the week with each squad presenting what they have completed. This makes for a very transparent organization, giving you the ability to see and understand the big picture, as well as ask any question that you might be interested in. Additionally, we have introduced Casual gaming to the company review where we have played such games as Among Us!, Jackbox Party Packs, VirtualVacation. This is usually followed by Hardcore gaming for those of us who enjoy more intense gaming such as Call of Duty: Warzone, CS:GO, Command & Conquer: Red Alert. These gaming sessions are optional and normally run through the night.

The challenges and opportunities you might face

Favro is an extremely easy to use app, as a user, one can create very sophisticated workflows to support not only the team but also the entire company. This simplicity is made possible by its design which hides all the underlying complexity. As a developer, you are expected to push the boundaries of what is possible in building advanced UI while maintaining high performance, for the best user experience. You are also responsible for hardening the code against potential security breaches and vulnerabilities. For an ambitious person who aspires to be the best of the best, Favro will have a lot to offer in terms of complex challenges.

A recent feature that we built, Automations, brought particular enjoyment to our developers as it allowed for creating large and sophisticated systems with simple and easy to use building blocks. Following its release, developers could see and feel the impact of what they built immediately: the Favro community is vibrant. The flurry of praises was reflected to the developers, as feedback is shared during the fikas, company reviews and on Slack.

The fast-paced growth of the product has come with its own challenges though, software that evolves quickly inevitably leaves behind legacy code, and Favro is no exception. As developers, the one thing that we may sometimes enjoy more than writing new cool features, is when we get to select a large piece of code and wipe it out of existence (well to some extent… since git never forgets).

Current tech stack and considerations for the future

Favro was initially conceived to be a real time collaboration tool with extensive client side prediction being one of the requirements. At that point in time, Meteor.js was the framework of choice as it checked most if not all of the requirements. As Favro grew in scale we built on top of the vanilla Meteor releases with packages and performance improvements of our own.

In terms of UI, Meteor initially only supported Blaze for building UI components which is how the majority of the Favro UI is built. Now, however, Meteor also supports React which can be something for us to consider in the future.

Favro’s code-base is written in TypeScript, HTML and Less which are used in the development of both Web and Mobile applications. With the next generation of our Mobile apps on the horizon, we will evaluate multiple technologies and solutions to find one that best suits our vision and requirements.

We view languages, libraries and frameworks as tools to solve problems. Just as knowing how to type doesn’t automatically result in great works of literature, knowing a library/framework doesn’t automatically result in great software. Which is why our focus is on bringing in and helping developers grow in their problem solving skills by improving on behaviors (how to approach a difficult problem), techniques (e.g. optimization) and skills (e.g. debugging).

Why choose to work at Favro?

Favro will provide you with different challenges and an environment to help you grow. You will also have the opportunity to play as part of your work (potential side effect: friends might get jealous).

We have also compiled the thoughts of some of our developers of why they enjoy working at Favro:

  • We use what we develop every day for our own workflow.
  • Tasks are varied, I never feel like I’m repeating the work I do over and over again (it doesn’t feel like Groundhog day).
  • The stories I work on have a good and thought out scope.
  • A fun place to work at, I can feel the atmosphere even though we’re in different timezones. I have fun and feel like I’m part of a team.The opportunity to work in a real flexible and agile environment with well defined workflow that keeps improving.
  • Very skilled people at Favro, you can learn something at all levels.
  • Well defined workflow that covers all the needed aspects of the work.
    • Impact: Everyone is empowered and takes ownership of their part of the workflow.