RESTAR's engineering team includes members of various nationalities, and we respect each other's cultures and values. We believe that exposure to each other's different ways of thinking and values will broaden our thinking, and by embracing diversity, we can make better decisions.
A flat culture
Because of our close proximity to management, you can consult with them and make suggestions at any time. If you make a suggestion that is beneficial to the team, it will be immediately reflected in the team. We are looking for people who can take advantage of this environment to actively make suggestions and help RESTAR grow together.
Particular about the details
We believe that quality is in the details. Rather than quickly releasing poorly maintainable code for short-term gain, we emphasize performing proper code reviews. We aim to develop stable services with fewer bugs using high quality code that is easy to maintain.
Discussions are lively at RESTAR. This includes discussing topics ranging from development and refactoring policies to internal coding styles and other topics, large and small, to exchange ideas with each other. We try to have constructive discussions, always considering the best options for the team, rather than pushing our own preferences.
Create functions that are truly necessary
In BtoB SaaS, we receive many feature requests from clients. However, we do not respond to all of these requests. We take great care to implement only those features that will improve the experience for the greatest number of users, rather than features that will please a single user. We will always continue to provide features that are simple and easy to use.
Full remote work
You can work freely with full remote work. Some of our engineers live outside of the Kanto region, so you are not restricted by where you live, and you can work from a location that is convenient for you without the stress of commuting and with flexible hours.
Full flexibility allows you to work the way that works best for you. In addition to paid vacations, we offer leave for illness or injury, including family nursing care. This allows you to take time off from work as needed, so you can work with peace of mind even if you have a family to take care of.
Reviewing the way we work
As our team and company grows in size, we need to change. In order to optimize the way we work, we review our regular meetings as needed approximately every two weeks. We are constantly changing the way we work to fit our current team.
RESTAR employs and develops the following technology stacks
Four Reasons Why We Choose Elixir
Elixir is a modern programming language for the pragmatic Web Engineer who wants to be ready to face tomorrow's challenges.
At RESTAR, we love how Elixir enables our team to build great features and a robust tech platform, while enjoying top class productivity and developer experience. Thanks to Elixir, we can focus on what matters: the business logic, with very little ceremony and bikeshedding.
Let's review quickly what makes Elixir the perfect tech choice for us:
- Productivity: outstanding ecosystem and developer experience
- Reliability: fault tolerance taken to the next level
- Simplicity: do more with less
- Performance without trade-offs
1. Productivity: outstanding ecosystem and developer experience Reliability: fault tolerance taken to the next level Simplicity: do more with less Performance without trade-offs
Elixir sure is a nice language, but a language does not exist in a vacuum. In order to evaluate it, we need to look at the bigger picture: the tooling and the ecosystem. Despite its relative youth and the fact that obviously there are fewer packages than on more mainstream ecosystems, Elixir really shines here by providing a very high quality ecosystem. First, Elixir itself ships with: a rich standard library, the mix build tool, the ExUnit testing framework, a formatter, documentation, … all of incredibly high quality. Then the rest of the ecosystem, especially the Phoenix framework, provides many amazing libraries, often as polished, well documented and well-thought as Elixir itself. You might not find the same quantity as in other ecosystems, but it makes up for it in quality!
Another great thing about the Elixir community is the overall maturity and pragmatism: people tend to follow guidelines, and there is often a blessed way to do things.
2. Reliability: fault tolerance taken to the next level
Elixir might be relatively new (10 years), but the underlying Erlang VM is more than 30 years old and is as battle tested as it can be. Far from being a fancy exotic language, Elixir is leveraging solid technology which has been proven in the telecom industry for decades. One of the main selling points of Erlang is: fault tolerance. The whole design of the VM has been driven by this need, crucial in the telecom business, and the result is an incredibly robust platform that isolates failures like no other and can remain up and stable under significant loads. Forget about panics, crashing servers or stuck event loops.To know more about this topic, we recommend Saša Jurić’s awesome talk: The Soul of Erlang and Elixir
3. Simplicity: do more with less
Overall, thanks to all the batteries included in Elixir itself and in Phoenix, you can accomplish more with fewer moving parts as you would need in a more classic stack. We believe that there is a huge value in simplifying our stack:
- As developers, we are constantly fighting against complexity. And yet more often than not, our tools are in the way, and are introducing a lot of additional complexity. This is rarely the case in Elixir: keeping it simple makes our lives easier!
- Having fewer dependencies also means fewer possible root causes for errors and an increased stability (remember leftpad)
- It reduces the maintenance overhead
Erlang, Elixir and Phoenix provide powerful building blocks: processes, tasks/agents, channels… These help keep a simple mental model to reason about hard problems such as concurrency, real-time systems (websockets have never been that simple!), and fault-tolerance.
4. Performance without trade-offs
The original version of our platform at RESTAR was written in Ruby, and was suffering performance issues. While it would have been technically possible to keep optimizing it and/or buy bigger servers, the amount of effort needed was just too important. In Elixir we seldom have to worry about performance at all: it just works ™ . Instead of having to worry about scalability, server costs, or spending precious time on performance tweaks, you can just focus on what matters: adding business value.
That being said, if performance was the only criteria we cared about, we would all be coding in C or assembly. The great thing about Elixir is that it delivers great performance out of the box without needing you to be careful or to sacrifice anything in exchange: no brittle async/await and event loop, no need to manage thread pools or coroutine contexts by yourself, no need for complex caching… You still get to work with a very expressive, high-level, declarative language. It feels like having your cake and eating it!