What We Do
GetMyBoat is the world's largest boat rental & charter marketplace with over 130,000+ boats in 9,300 locations and 184 countries. Our mission is to open up the world of boating for both renters and owners. Boating enthusiasts get the benefits of worldwide inventory without the cost or headache of ownership. And as the average boat is only used 8% of the year, boat owners get the chance to make owning a boat more affordable by earning some income from their under-utilized asset.
Why Work For Us
We’re in a scale-up phase with a huge growth opportunity in front of us. With the media regularly referring to us as the Airbnb for boats, it’s an exciting time and you can feel that energy and buzz throughout the company. Be a part of a fast growing marketplace, have direct impact on the product and see your work used by millions of users. Joining our team is a fantastic opportunity to up your game, advance in your career and push your technical skills. In addition to competitive market rates, we offer flexible working hours, remote working and the hardware of your choice so you can excel in your role.
We are a remote first distributed company with employees on five continents. Remote is baked into our DNA and has always been a big part of our culture. We're a small and lean company, intensely focused on growing our business.
We move fast (but try not to break things!) and embrace the lean startup methodology. Our values include Openness, Trust, Honesty, Transparency, No Egos and an emphasis on strong team players. We're a very small, focused, talented team of developers with a high output; it's amazing what we've done so far. Low on politics and high on productivity, we all take satisfaction from performing our craft well and shipping great products.
Our Engineering Processes
Working in two week sprints, we run a planning session to map out the high level goals and resource allocation. With input from the whole team including designer, developers and DevOps we decide on deliverables and objectives for the two week sprint. We make an effort to keep the sprints sensible as we observed that stretch goals that are seldom hit become demotivating.
We believe strongly in writing peer reviewed technical specs before we start writing code. This exploratory process forces us to really understand the problem and hash out the best solution and potential pitfalls. We also consider how these changes will affect performance and scale and work to solve these problems at the design phase. Developers unfamiliar with this process can feel like they aren't being productive, and it's a luxury to take a few days to think "deep thoughts" but we've proved that it saves time down the road and gets us faster to the optimal solution.
We conclude the sprint with a retrospective session and produce a set of "actionable commitments" to improve our process. We're always tweaking and adjusting, it's a continual process. The last Friday of the sprint is a personal time day. How does that work? Well, one our developers joked that the reward for completing your work early was more work(!) and suggested a personal Friday to pursue your own goals. We thought it was a great idea and so at the end of every sprint if you hit your objectives you take the last Friday to do what you want; drink cocktails in a hammock, work on a pet project, study a new language. Your call.
All work is tracked in Trello, a Kanban project management tool, to visualise what is in progress across the entire team.
We run another Kanban board to schedule testing and sign-offs with our QA team.
We maintain a high level roadmap for the quarter ahead to visualise timelines and provide insight into upcoming projects but we bake in flexibility as we know things can change quickly. It's our map through the fog of war but when new information becomes available we're not locked in.
Every two weeks the heads of department (Sales, Marketing, Customer Service, Product) send a report with all developers CC'd on. Every month a company wide newsletter is sent with key company metrics (revenue, traffic, users etc). Transparency is really important to us and we encourage our team to reach out and ask questions to the management team if they want to learn more about the business.
One-to-One catchup sessions are held once a month, to give team members an opportunity to do a personal catchup with their manager. Typically these run to thirty minutes and sessions are concluded with actions points for both the developer and the manager.
Developers work typical days but are free to adjust working hours for personal productivity (some people are early risers, others are night owls). We run standup calls via Skype three times a week - Monday, Wednesday, Thursday - at 4pm South African time. There are times when you will need to be around for a few hours of the early evening to overlap with the start of the US day.
Developers use our "One Click Install" docker environment to stand up an exact duplicate of the production environment on their local environment (very cool). All work takes place in feature branches, with peer review of pull requests. Peer review helps catch bugs and ensure product knowledge is spread across the team. We don't think anything of deploying multiple times a day and we rely heavily on automated tests. Every commit pushed to GitHub triggers a build. Passing builds merged into the production branch trigger and automated deploy.
Our Hiring Process
We send candidates a short list of questions to determine whether there is a fit for the role. Next we run a short face-to-face interview (45 minutes to 1 hour) at our office in V&A Waterfront, Cape Town, or video Skype, with our CTO. We're happy to do these office interviews early morning / late afternoon to accommodate candidates work schedule.
Candidates that meet our criteria will then move onto a second interview, where they will have a chance to meet some of the engineering team and for our developers to get into the trenches a little with tech conversations and code. Again this interview will last between 45 minutes and 1 hour. Due diligence is carried out to check references, previous jobs and education.
New employees are paired with another team members to learn the culture, expectations, product, technology stack and work processes. We find it helpful to make sure that after the interviews are over and you’re getting your hands dirty it still feels like a great fit (we fully expect that it will). The first month is critical, we'd rather fail fast if things are not working out. We feel it is super important that all new hires are aligned and feel comfortable.
Our Engineering Challenges
Scale and Microservices
Year-over-year our platform grows fast, our goal is to scale to the demand and provide a seamless user experience. With owners running their business on our marketplace it's imperative we stay online. With Kubernetes and Docker in place we've laid the foundation for moving to a micro-service architecture. We're looking at moving away from worker queues and to stream-processing mechanisms such as Kafka. The move to real time chat is demanding a rethink of our data stores and caching mechanisms. Going forward scaling is a core focus.
Payments, Forex and Fraud
We run a global market place with transactions in hundreds of currencies. We know we can optimise our operations to reduce payout times for our owners and drive costs down, ultimately becoming our own forex platform. As we grow we focus increasingly on fraud detection and prevention and look to utilise machine learning tooling to combat it.
Whether you're using the iPhone app in Sydney, Australia or browsing the website on a laptop in New York we need things to fly. A focus on optimising our front-end and API performance is vital and leveraging advanced CDN caching mechanisms to serve dynamic content from the EDGE.
Search is at the heart of our product and we're always working to improve our algorithms and ultimately personalise results based on a user's demographic and location information and previous search and booking activity.