You and your colleagues successfully launched a new product. You see happy customers, steady user growth and your company decide to expand to other markets. Great news! Sometimes all you need from an engineering perspective to make a product launch in another country is to add localization to another language. In many other situations, however, taking a product to another market can feel like completely reinventing it. The difference in user needs and different competitors impact on the market, country legal regulations, local logistics, and financing partnerships as well as many other peculiarities can bring significant localization needs.
In situations when you deal with multiple diverse markets you may get a pile of market-specific implementations. How can you deal with this challenge on the engineering side efficiently? Should you create dedicated market-focused engineering teams or should you keep the teams organized around value streams? How could you optimize your architecture towards the best performance and lowest latency when the users are across the globe. How to structure the codebase to clearly be able to understand how different markets are working. This talk is capturing my experience building highly localized products in fintech, e-commerce, and classifieds industries. I’d like to share organizational practices as well as architectural design patterns that can make diverse markets implementations easier.