Building Systems for Internationalization
Amanda Sopkin (~asopkin) |
When it’s time to take your system international, going from one country to two can be accomplished by making a series of changes specific to the new country to quickly obtain your goal. But eventually, you’ll need to come up with higher level systems that allow you to expand further without making lots of iterative changes for every new locale. This way, adding a new country can be as easy as a quick config change. Come and learn how to create easily expanded systems that will make internationalizing your business easy--and learn how to start this process early to make life easier later on.
I will introduce my talk by briefly discussing the importance of considering internationalization early on at your company. I’ll discuss the typical company’s route to expanding internationally and when that might happen (if companies don’t internationalize in the first 2 years, they tend to put it off longer). For the majority of the talk, I’ll look at different approaches to internationalizing a product and their advantages and disadvantages. We’ll look at three big buckets of problems that engineers grapple with when facing internationalization: dates and times, words/languages, and other units that will vary based on the product (currencies, measuring units, etc.) I’ll give a couple Python specific examples of tools for addressing each of these big areas. Next, we’ll talk about the company specific factors that influence internationalization--will you be expanding from one to three countries and then holding off on more for a long time? Do you plan to tackle internationalization by adding regions progressively (i.e. Canada and Mexico, then Europe)? I’ll explain how these questions will impact your approach. For the purposes of this talk I’ll give recommendations for two broad scenarios: 1) needing to internationalize rapidly for 1-5 countries before doing anything else and 2) having the flexibility (months not weeks) to build a system for internationalization that will scale easily. We’ll look at how you can design these systems with scaling in mind and some grand ideas that will make internationalization easier down the line for younger companies.
This talk will be a good introduction to internationalization for people that have some familiarity with the concept, but want to know more about systems for internationalization that prevent huge changes for every new country that you add. Audience members will leave with specific tools they can use for some popular frameworks and Python tools, questions they can use to assess their own internationalization approach, and some broad strategies for tackling the problem overall.
Outline of time (25 minutes + 5 minutes for Q&A):
- Introduction and why internationalizing early matters (3 minutes)
- Approaches to internationalization (starting early vs. starting 2-3 years later) (5 minutes)
- Internationalizing dates and times (2 minutes)
- Internationalizing words/languages (2 minutes)
- Internationalizing quantitative units (currencies, measuring units) (2 minutes)
- Key questions to ask yourself when determining your internationalization plan (5 minute)
- Scaling international systems (4 minutes)
- Conclusion (2 minutes)
- Q & A ( 5 minutes)
Some background on internationalization is welcomed, but definitely not necessary to understand the talk.
Amanda is a San Francisco transplant from Denver, Colorado with a great love for coffee. She is a software engineer for BuildingConnected, which is a startup focused on connecting businesses in the pre-construction industry. She previously worked on the rentals team at Zillow. In her spare time she attends hackathons as a coach for Major League Hacking to help students have a great experience at the events they attend. She enjoys writing, speaking, and obsessively reading about tech. Amanda has spoken on topics in mathematics and software engineering at JSConf EU, PyCon US, Devsum Sweden, Hackcon, SeaGL, and various hackathons around the country. Amanda holds a degree in Mathematics and Computer Science from the University of Illinois.
Prior talk examples:
- Scary stories about AI gone wrong at That Conference 2019: https://www.pluralsight.com/courses/that-conference-2019-session-05
- The design of coats of arms at JSConfEU 2019 : https://www.youtube.com/watch?time_continue=1&v=jVfVsKXdYK0&feature=emb_logo
- Refactoring in Python at Pycon 2019: https://www.youtube.com/watch?v=sze4yunoxU0
- Randomness in Python at Pycon 2018 in Cleveland, OH: https://www.youtube.com/watch?v=EGF4G2feXx4
- Monitoring and Alerting: Knowing the Unknown at SeaGL 2018 in Seattle, WA: https://archive.org/details/MonitoringAndAlertingKnowingTheUnknown
- Cryptography in Python at a virtual cryptography class by PyLadies Remote: https://www.youtube.com/watch?v=9EwKAKfLxLc
- Skeletons in our E-closets: the impacts of digital waste at SustainabilityUX 2018: https://sustainableux.com/talks/2018/skeletons-in-our-e-closets-the-impact-of-wasteful-digital-storage/
- Code Reviews: the Good, the Bad, and the Ugly at DevSum 2018 in Stockholm, Sweden (no video)
- Making Code Reviews Beneficial for Everyone at self.conference 2018 in Detroit, MI (no video)
- Computational Randomness: Creating Chaos in an Ordered Machine at SeaGL 2018 in Seattle, WA (no video)