About us
At ReviewPro we develop a platform to provide thousands of hotels and restaurants
worldwide the power to understand, measure and improve guest
experience. Check products section on our website
https://www.reviewpro.com/products/ to get better idea of what this all
is about. We would be glad to give you more details about our solutions
and all the technology that powers them if the following section about
you rings a bell.
About you
You have a considerable experience building software. Throughout your career you've been caring to build maintainable, reliable and scalable solutions.
You asked questions to yourself and to your team similar to these:
- What will happen if number of users grows twice? What if it grows ten times?
- How can I make sure next developer who will touch this code understands why it is written this way?
- How can I make sure they won't break that special condition or edge case?
- What will happen if database connection gets lost?
- How are we going to deploy that new service?
- How to detect that things in new code went wrong?
You can reason about the software design due to your
experience and also from reading and experimentation. You think about
benefits and trade-offs when selecting the right tool or technology to
solve the problem. You are not afraid to discuss algorithms, data
structures and when one or another should be applied.
Why do we care about these qualities? We believe that
this position requires a mindset similar to described. Here is what you
will be doing.
The role
You will be in a team that designs our systems to be
reliable, scalable and maintainable. You will be thinking and designing
how to:
- recover from hardware, software, human errors
- describe performance, load
- improve performance, cope with load
- make life easier for operations
- manage complexity
- make changes easy
- architect for scale
- select right tools for specific job, be it database, or
programming language, or data processing pipeline, or reactive vs
imperative paradigm, or anything else
- make trade offs between perfect software and working software delivered on time
This role is a good mix of programming and operations,
think devops but with emphasis on programming. You will tackle
operations problems as problems that can be solved with a software. You
will be doing proofs of concept and advocate for the best of them to be
accepted for common use by educating other developers.
You will have a strong voice within organisation about
whether it is safe to introduce any new feature as projected on
reliability. We don't have much hierarchy in organisation so you will be
having direct impact on decision making. Working language is English,
you should be able to communicate well in it.
Technologies we use
Our backend code is mostly in Java, with some parts in Python and Javascript. We use SQL and Mongo as databases, Cassandra and Elasticsearch for search and aggregations. We manage streams of events with the help of Apache Kafka which
is already widely adopted within organisation. On the operations side
we are on our way to containerize services where it makes sense, Docker and Kubernetes are in play. UI is based on React.
What else we offer
- Knowledge exchange: we attend conferences and
community events, buy books (good old physical books as well as online
subscriptions) and discuss them later
- Flexible work schedule
- Office located in the center of Barcelona
- Discount package for gym (located in the same building)
- Nice equipment: Mac laptops, high quality monitors (1 or 2, choice is yours), desks with adjustable height.
We are not perfect. We learn a lot and we're open to new
proposals, different approaches in how we work. Come join us to share
the fun of making, learning and continuous improvement.
All applicants must have the permit to work in Spain.