Right now at Mercari, engineers belong to teams divided by domains, and development is done in each domain team. Because of this, frontend engineers don't work together very often, and there are fewer opportunities to spend time together across different domain teams. The number of members has also increased, and newer frontend members haven't had the chance to interact with frontend members of other domain teams.
Also, when you focus on only product development, you start thinking too much from a short-term perspective. But sometimes there are things that you can do to improve development efficiency and quality in the long term, even if it doesn't help the product in the short term. We decided to hold BPD in the team as a way to pay back the technical debt we've accumulated in our usual rapid product development and as a chance to try out new technology.
Checking who wants to attend and deciding the date
In addition to all of the frontend members, we even had members of GOT, who usually provide support for our meetings, join us to work on frontend development! (What is GOT?)
Renting an external venue for a day with Space Market
Creating a page for BPD on the company wiki and filling in the tasks each person will take on
We wanted to have as much time as possible to focus on work, so everyone decided what they were going to do in advance.
Arranging lunch and dinner
We didn't want to make things confusing on the day of the offsite, so we arranged delivery for lunch, and used Uber Eats for dinner.
Day of the Offsite
At the end of the day, all team members presented what they did that day. Drinks were provided at the presentation, and we had a great time!
There were all kinds of presentations, from tools created to improve the efficiency of our normal work to trying out new technology we haven't used before.
At BPD, we were able to work on things we usually aren't able to do, and we were really pleased with the results.
It was the first time we held this event, so there were definitely things that could have gone better, but it was a good offsite, and we're hoping to hold it again in the future.
Mercari is looking for frontend engineers!
If this all sounds interesting to you, why not apply?
At Mercari, much of our Android app development is done in Kotlin.
In my opinion, the fact that we have to reimplement all our business logic on each end client that we support is not a very efficient way of working. On top of this, each time we reimplement this logic, the chances of bugs happening increases, as does the maintenance cost.
Because of the pain that this creates, projects such as ReactNative and Flutter were born - being able to support multiple native clients using a single code base sounds like a great solution, however these projects also require you to share the UI code as well, which means we are unable to take advantage of each platforms unique points, unless we are okay with littering our code with checks such as if (platform == "iOS").
The only part I want to be able to share is the logic, so I wrote a proof of concept for sharing logic between Android & iOS!