Senior Full-stack (Rails + Ember.js) Developer
Location: Remotely-based, preferably 4 hours of your worktime would be
overlapping with CET between 8am-6pm
Salary: 2500€ - 4500€ + VAT / month on B2B contract + equity
Salary: 2500€ - 4500€ + VAT / month on B2B contract + equity
BookingSync is a distributed startup at the center of a constantly evolving
vacation rental industry. But we are more than merely a vacation rental
solution for hosts and agencies, we are also a platform for hundreds of
applications and developers. As a company we hold a strong commitment to
charity: a share of our profits will go to charitable works with humanitarian,
social and ecological aims.
We need a strong full-stack developer to take on the challenges of
developing the tools, patterns and platforms to provide the best APIs and
developer experience for our internal usage and our partners and also building
beautiful client-side applications with Ember.js.
The ideal candidate is passionate about solving complex problems with
performant code, great architecture and design and providing tools for
developers. Our platform supports numerous third party services (including
Airbnb, HomeAway, TripAdvisor, Booking.com, Zapier and more) and hundreds of
private integrations, and we are growing fast. There are a lot of exciting
challenges to come!
You'll need to have:
- Experience with web development, using and
developing APIs and building scalable solutions
- Experience with Ruby On Rails
- Experience with Javascript and
EmberJS
- Experience with HTML5, CSS3 and other front end
technologies
- Ability to communicate effectively with both
internal and external development teams
- Being comfortable with UNIX
commands
- Experience with relational databases and SQL
(we’re on Postgres)
- A strong commitment to quality
- Excellent written and spoken
English
- Strong writing skills and experience writing and
contributing to API documentation
- Passion for API development and creating a great
experience for developers
- Experience in working remotely and ability to
work autonomously
- Care for the greater good. BookingSync is not
just a software company, we will give back to humanitarian, solidarity,
environmental & ecological causes from 10% to 50% of our profit.
It'd be great if you had experience with:
- System administration and
security
- Contributing to our community through code,
documentation, mentoring, teaching, speaking, or organizing
- Short terms rentals or travel industry
You'll be working on things like:
- Writing back-end code in Ruby, Rails
- Writing front-end code in Javascript, Ember.js
- Collaborating with other designers and developers
- Providing beautiful and high performant code that
improves our code base in meaningful ways
- Using TDD to write well-tested code
- Fixing bugs fast and taking your time to solve
hard problems well
- Developing the infrastructure required to allow
other development teams to easily build and deliver consistent,
well-tested and documented APIs to our partners
- Working on internal Apps and in collaboration
with third party developers to determine the gaps in our APIs and
developer tools and work to fill those gaps
- Helping to grow the engineering team necessary to
support the API now and for future growth
- Standardizing API development end to end with
consistent documentation, endpoints, responses, development tooling etc.
- Implementing new features and APIs for use by
mobile and web clients
- Improving the reliability and efficiency of our
backend stack
- Contributing back to the open source community
- Learning and growing constantly
Here's how to apply:
Sounds interesting? If yes, please send a short email to
jobs@bookingsync.com telling us about yourself, why do you think you are the
best candidate for this role and attach a résumé. Want to increase your chances
of standing out? Include your open source contributions, blog posts and other
publications you wrote, links to conference talks. You could even tell us about
one thing or two you created that you are particularly proud of or the most
challenging features you’ve worked on.
Before the interview we would like you to build a project which might be
somewhat similar to your everyday work at BookingSync. The project should consist of two
applications:
Mini-BookingSync
API
Generate a new Rails application and build REST JSON API with 2 endpoints:
Rentals and Bookings with full CRUD. Rental is something that you can book for
a particular period of time (like a vacation villa or a hotel) and Booking is a
reservation for given Rental for a particular period of time.
The API should be authenticatable by a token (can be one global hardcoded
token, no need for refresh token, expiring tokens etc. this time, keep this
part simple).
Rentals should have :name attribute, daily_rate attribute
and should have many bookings. Bookings should have start_at and end_at datetime attributes
which indicate the time period of the reservation, client_email attribute,
just to know for whom it is supposed to be and :price attribute, which will be
the price for this booking.
Price calculation for the booking should be simple: only daily_rate should
be considered when calculating the price. If the rental's daily price is equal
to 100, the booking's price for 3 days should be equal to 300, for 5 days it
should be 500 etc.
All attributes for both Rentals and Bookings should be required. Make sure that:
- the dates for bookings don't overlap
- the price for given period is valid when creating
a booking
- the reservation should be possible for at least
one night / day stay
Mini-BookingSync API Client
Generate a new Ember application that would serve as a client of the
Mini-BookingSync API. This application should be able to handle all CRUD
actions for both Rentals and Bookings endpoints. The essential part of the application
would be creating bookings for given rental - a user should be able to pick
start at and end at dates, fill in client email, see the price for given period
of time and create a booking.
Treat this assignment it as if you were building a real-world application.
If you think some other validations or requirements would make sense from the
domain perspective, feel free to add some extra things.
Don't forget to include a GitHub repository URL(s) in your email. Good luck and see you at the
interview!
Post a Comment