This document aims at providing a description of the technical organisation of folk.
At folk, we believe that for an organization to thrive it needs to expand and maintain its network. It’s by having engaging conversations with others that new ideas and opportunities appear. folk is a Saas tool supporting its users in this process by allowing to:
- create rich lists of contacts
- engage with them via messages
- track and follow up
We focus on making folk a collaborative tool to empower teams better manage their relationships. To better serve our users, folk embraces a no-code approach which stands for a simple UI allowing to create rich highly-customized processes.
The product is structured in 3 layers:
- the database layer allows users to collaboratively visualize and manipulate their data. The challenge is to make it very simple to understand and to update.
- the engagement layer allows users to explore and engage with their network. The challenge is to provide the right information to them so they can target the right people.
- the automation layer allows users to automate process by triggering any kind of action from any event. The challenge is to make it simple to automate any part of their workflow.
The technical stack is built in a typescript ecosystem. We are currently relying on these frameworks: NestJS, ReactJS, GraphQL/apollo, Postgresql, AWS
The only thing that really matters to us is quality. This translates into unit tests, integration tests and E2E tests, PR approval process, clean code, continuous integration and other classic development approaches.
Above all for us quality is about producing the best product for our users. The engineering team is strongly encouraged to challenge the specifications they are given, to focus on the value rather than the implementation, to contribute by suggesting improvements, always keeping in mind reliability and performance.
We build our backlog in a very classic way through user feedback, market analysis and gut feeling. We use 2 processes to handle this roadmap:
- the cadence is a 3 weeks iteration during which a duo of developers is assigned a new feature or a major improvement. Their mission is to release this new feature at the end of the iteration. They have complete ownership of the project and their first task is to challenge the specification and commit on a (sub) scope. This allows us to focus on the value rather than the details. Every 3 weeks, our users see a major increment in the product, ensuring a good rhythm. 👀 if you want to learn more about the Cadence, here's an article we wrote about it.
- all other engineers work on continuous improvement of the product. It can consist in bug fixing, UI improvements, minor improvements, removing technical debt. It is not about increasing the scope of the product but rather to make what is already there even better.
We spend roughly 30% of our time on the cadence and 70% on continuous improvement.
We focus on 3 things at folk:
- rhythm: we ensure the product and the company evolve at a good pace. We don’t want to go slow but we don’t want to go too fast either. We want to make sure our users can have time to master new features before introducing new ones.
- focus: nothing great can be achieved without focus. Each team member is responsible for their time. We have a very limited amount of meetings per week (~2h30) so we allow engineers to get “in the zone”.
- delight: bringing that extra little delight that will please our users. It can only happen if the team’s environment is delightful. That means we pay attention to our developers’ experience and remove any roadblocks that could create a negative energy.
We have built a team of senior engineers - that have had various experiences on various products and environments. We are looking for people who want to contribute and are highly autonomous. This allows us to get to the bottom of things quickly and tackle large projects of any kind.