BookingSync: Senior Full-stack (Rails + Ember.js) Developer

Headquarters: French Alps, France
URL: https://www.bookingsync.com/en/jobs/2017-04-03-senior-full-stack-rails-ember-js-developer


Location: Remotely-based, preferably 4 hours of your worktime would be overlapping with CET between 8am-6pmSalary: 2500€ - 4500€ + VAT / month on B2B contract + equityBookingSync 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 solutionsExperience with Ruby On RailsExperience with Javascript and EmberJSExperience with HTML5, CSS3 and other front end technologiesAbility to communicate effectively with both internal and external development teamsBeing comfortable with UNIX commandsExperience with relational databases and SQL (we’re on Postgres)A strong commitment to qualityExcellent written and spoken EnglishStrong writing skills and experience writing and contributing to API documentationPassion for API development and creating a great experience for developersExperience in working remotely and ability to work autonomouslyCare for the greater good.

BookingSync is not just a software company, we will give back to humanitarian, solidarity, environmental & ecological causes up to 50% of our profits.It'd be great if you had experience with:System administration and securityContributing to our community through code, documentation, mentoring, teaching, speaking, or organizingShort terms rentals or travel industry You'll be working on things like:Writing back-end code in Ruby, RailsWriting front-end code in Javascript, Ember.jsCollaborating with other designers and developersProviding beautiful and high performant code that improves our code base in meaningful waysUsing TDD to write well-tested codeFixing bugs fast and taking your time to solve hard problems wellDeveloping the infrastructure required to allow other development teams to easily build and deliver consistent, well-tested and documented APIs to our partnersWorking 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 gapsHelping to grow the engineering team necessary to support the API now and for future growthStandardizing API development end to end with consistent documentation, endpoints, responses, development tooling etc.Implementing new features and APIs for use by mobile and web clientsImproving the reliability and efficiency of our backend stackContributing back to the open source communityLearning and growing constantlyBefore 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 2 applications:#Mini-BookingSync APIGenerate 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 authenticable 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 overlapthe price for given period is valid when creating a bookingthe reservation should be possible for at least one night / day stay#Mini-BookingSync API ClientGenerate 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.

To apply: Sounds interesting? If yes:
- please read through the full job post (see homework at the end of job description section :p).

- don't just drop your resume, we hire people not robots :).

Oh, and we're looking at hiring in-house developers, no IT sourcing companies please.

- please send a short email to [email protected] 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.

- don't forget to include a GitHub repository URL(s) in your email.

Good luck and see you at the interview!

Apply

Source: 37Signals Job Board