Founding a remote-first company
Frontastic is a fully remote company that isn’t your usual 9-5. At Frontastic, one of our company goals is to help people and work together to improve day by day. In this blog post, we’ve compiled our steps and learnings on the path to starting a fully remote company. Obviously, there is much more to say about each of the points mentioned, but let’s start with a brief outline. If you’re interested in remote work culture and would like to hear our experiences, keep on reading.
What’s remote native?
Remote-first means that there’s no single location or headquarters where employees work together regularly. We’re sure that this isn’t a disadvantage, but a crucial factor for the company’s success.
Another commonly spread remote form is the so-called hybrid remote or half-remote model. Under this structure, part of the team works on-site and another part remotely. Even though this model offers much more flexibility, there’re also some disadvantages, which we’ll not discuss any further at this point. From the beginning, we opted for a remote native structure, and there were – and still are – of course, many things to consider.
“Remote work isn’t about working from your home office. It’s about finding a remote culture.”
Why remote native?
We decided to start Frontastic as a remote native company. There are 3 main reasons for this:
- We’ve personally had a very good experience with remote work.
- We build a product that inspires not only customers but also ourselves and all other employees. This is the ideal basis for a remote company.
- We believe in diversity, we believe that we need the best people and that we can’t find them in a single country.
In addition, remote work is very ecological because we don’t contribute to jamming the streets every morning and polluting the air with emissions.
How we organize our remote work
Agile or kanban?
We’re not dogmatic about the way we work. We use the methods that seem most appropriate for each situation. When we realize that we need more structures, we create structures. Not before.
Most of our communication is on a written basis. This is the only way we can not only overcome the time differences and personal work habits but also ensure the smooth growth of our team. At the moment, we’re using a Slack-bot for regular agile artifacts like our standup meeting: our daily standup meeting is just a Slack bot. Every morning we share our plans so that our colleagues have the chance to know. In the evening, the bot asks us about our results and our mood.
Along with Slack, Notion is a part of our day-to-day communication. We use Notion to plan projects, prepare meetings and take notes during meetings. It makes planning and communication much easier: everyone always has access to all the information, and nothing important gets lost in the endless email loops.
Sometimes it’s just nice to work together with others, and we often have online co-working sessions. To do this, we use Gather town, where we set up an “office” space to hang out and work together. Gather town is a proximity-based video chat service, set in a large selection of fully customizable, 2D interactive spaces. In our virtual office, we are able to walk around from one conversation to the next. And if you want to have your peace of mind or take a call, just leave Gather town — quite uncomplicated. We also use the virtual office in Gather town for our monthly social activities and pair programming.
Meeting in real life
Currently, there is no strict policy about in-person meetings. As our teams grow, we encourage them to meet in person when it makes sense for them as a team. This can be an in-person meeting for a strategy workshop, a project kickoff, or just some fun time to spend with the team. This works for now but there may be some adjustments in the future.
Retrospectives and socials
We do team retrospectives every 4 to 6 weeks depending on team needs. In the times of COVID, those take place online, but before – especially as our team was much smaller – we actually met in person. Nevertheless, we do some kind of (online) social event on a regular basis, because a good team has fun together. We meet every 4 weeks for an after-work drink, play some games or just chat and have a lot of fun.
We aim to meet for an in-person company retreat twice a year. Due to obvious reasons, 2021 was an exception though, and we only managed to meet in person once. When we meet for a retreat, we try to minimize our working time to an absolute minimum and concentrate on fun activities and bonding. For example, on our last retreat, we did a pasta course, had a stroll and wine tasting in Montepulciano, had a kayak tour and a karaoke evening. These retreats always take place in a beautiful place that’s easy for everyone to reach.
English per default
Our team is growing continuously, and by now, most of our team members are not German native speakers. Early on, we started to communicate in English as our default language. It’s essential to us that information flows freely and unrestricted and no team member feels left out for any reason. Therefore, recently, we’ve committed to always communicating in English, no matter if written or spoken communication.
“Although we were all Germans at the beginning, we agreed to switch to English as our default language. Now, with the majority of the team being non-Germans, our decision has served us better than we could’ve imagined.”
From a developer’s point of view
Technology that inspires
Frontastic develops a pure cloud product that inspires customers, partners, and software developers working with it. So, we not only pay attention to features and UX but also to an outstanding developer experience in our developer tooling and API hub.
Our product setup covers an innovative combination of the Frontastic studio, the API hub, developer tooling, and frontend delivery. Our self-organized and end-to-end responsible development team not only implements these components but manages to keep the complexity of this distributed application landscape low.
A balanced tech stack
Without going into too much detail, here’s a glance at the technology stack we’re working with:
- Our frontends all work with ReactJS, React-Router, and React-Redux. The Frontastic studio is based on Material UI while our API hub brings its own SCSS framework that provides a slim, scalable, and highly extensible basis for the custom projects of our customers. The framework is modeled after and makes heavy use of BEM IT and ITCSS (using InuitCSS under the hood).
- Both frontend stacks are supported by slim backends on the basis of PHP 7.2+ and Symfony 4.1+ backed by data storage in either MySQL and CouchDB. With these rock-solid technology decisions in the backends, we’re able to focus on innovation and a cutting-edge experience in the frontends.
- In addition to that, we have some small daemon components running on PHP plus Symfony or Go.
- On all levels of our stacks, we work with automated testing (unit, integration, and frontend acceptance tests) and full build automation using Apache Ant. Provisioning and deployment are fully automated using RedHat Ansible, which allows us to spawn new customer environments and onboard new developers in no time.
Our technology choices are oriented towards delivering extensive scalability, awesome monitoring, and rock-solid backends on the one hand. On the other hand, we put a top-notch frontend (developer) experience built with the newest technologies on top of these.
Development that matters
As you can probably tell, we’re absolutely passionate about our technology and try to achieve the best possible developer experience without becoming dogmatic. All of our developers have the chance and responsibility to influence the technology stack to make it better every day. This is expressed in our constant refactoring efforts, master-based development, and shared production responsibilities.
Last but not least – our current open positions
Does our way of working sound appealing to you and you want to be part of our highly-experienced and driven team?
If you feel like we could be a good fit for you, check our latest open positions: www.frontastic.cloud/careers.