What We Do
GetMyBoat is the largest boat rental and charter marketplace in the world with 90,000 boats in 184 countries and 9300 locations. Our goal is to grow boating and make it easy for renters to search, find, and book an on-the-water experience globally. We also help boat owners make money off their seldom-used watercraft. We're part of the growing sharing economy where access is more important than ownership.
Why Work For Us
We’re seeing substantial growth / traction and the media regularly refers to us as the Airbnb for boats. It’s exciting times. Be a part of a fast growing company (we've gone from 3 to 40 employees in five years), have direct impact on a product and see your work used by hundreds of thousands of people. Joining our team is a fantastic opportunity to up your game with opportunities to learn technical skills. In addition to competitive market rates, we offer flexible working hours, remote working and the hardware of your choice to do your job to the best of your abilities.
We're in full on startup mode and looking for people who are proactive, comfortable with the unknown and possess a healthy dose of optimism. We work as a distributed team, with six developers in South Africa (five in Cape Town, one in Joburg), three in the USA and one in Russia. Remote development is a big part of our culture.
In Cape Town you can choose to work from home or from our office in the Woodstock Exchange. We move fast (but try not to break things!) and embrace the lean startup methodology. Other values include Openness, Trust, Transparency, No Egos and an emphasis on strong team players. We're a small and talented team of developers with a high output; it's amazing what we've done so far. Every month a company wide newsletter is sent with key company metrics (revenue, traffic, users etc) to keep everyone in the loop and focused on growth.
Our Engineering Processes
Working in two week sprints, we run a planning session on Thursday to map out the high level goals and resource allocation. With input from the whole team including designer, developers and systems architect we decide on what we are going to deliver in the next two weeks. We make an effort to keep the sprints sensible as we observed that stretch goals that are seldom hit become demotivating. On Friday we go deeper into the goals, speccing out tasks, discussing potential issues and making key decisions. We find that taking this time to plan in depth is key to working effectively and prevented waste. On the final Wednesday of the sprint we run 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.
All work is tracked in our Kanban project management tool. This enables the entire team to visually understand what is in development. We maintain a high level roadmap but don't schedule past a month (two or three sprints). It's a useful tool to visualise timelines and provide insight into upcoming projects but it's not an ultimate source of truth. A bi-weekly product newsletter is sent out to the engineering team to keep us focused and transparent.
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. 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 a 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. It's not uncommon for us to deploy 4 times a day and we rely heavily on Unit, API and Selenium automated tests. Our new python codebase has around an 80% test coverage. Every commit pushed to GitHub triggers a build and merges to a production branch automatically deploy (AWS environments / iTunes / Google Play stores) from our build server (CircleCI), assuming the build passes.
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 (no longer than 1 hour) at our office in Woodstock, Cape Town, or video Skype, with our CTO. We're happy to do these office interviews early morning / late afternoon to accommodate candidates with existing jobs. Due diligence is carried out to check references, previous jobs and education.
New employees are assisted by other team members to learn the culture, expectations, product, technology stack and work processes. Feedback is given periodically, you'll be speaking with the team lead at least once a week.
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
Growth, Conversion Rates and Reservations
We're focusing on features to increase our conversion rate. We're after volume and scale, to build the global marketplace for boat rentals. Pushing traffic, reservations and revenue is vital.
UI / UX
Our designer has been attacking the core of the product, rethinking and reimagining the UI / UX. In 2017 we launched our new brand and identify (Joy the dolphin). We've made great strides in this area and continue to improve and add amazing features.
Scale and Performance
With strong week-on-week traffic growth we're building systems to scale, which calls for well optimised code and a focus on caching. With a global user-base we're leveraging CDN technologies such as Fastly to cache dynamic content at the EDGE. Whether you're using the iPhone app in Sydney, Australia or browsing the website on an iPad in New York we need things to fly. With money flowing through our marketplace it's imperative we stay online.
API First and Mobile responsive
We pushing to become platform agnostic - a user's experience shouldn't be dependent on what devices they use. And mobile is huge for us. We think API first to remove code duplication and to provide clean interfaces to connect from, whether that's JS, backend or mobile native.
We moving from a monolith to micro-services to allow us to scale our platform but also our workflow as the developer count increases. That gives us opportunities to introduce new programming languages (Python / GO) and infrastructure as code technologies such as Docker.
We're want to get smart with data science and build a metrics based company. Whether that's to allow marketing to plan their upcoming campaign, help engineers deciding on which features to build or which A/B tests to run, we want to use data and metrics to direct strategy.
Search is at the heart of our product and we're always working to improve our algorithms and want to A/B test designs and results to optimise conversions.
Payments, Forex and Fraud
We run a global market place with transactions in a variety of currencies. And that throws up forex challenges and the need for resilient systems and alternative payment providers. We know we can optimise our process here to become our own Forex platform to reduce payout timeframes and drive costs down. As we grow we need to be aware of fraudulent activity, and utilise machine learning to combat it.