SpanishDict 2017 Engineering Roundup

2017 was a great year for the SpanishDict engineering team. We did far too much to list everything, but here's a greatest hits summary of the year!

Devops

  • At the beginning of 2017, we made a major push to move our major services to Amazon Elastic Container Server (ECS). By the end of the year, nearly every service is running in ECS, which has led to better utilization of resources, less devops work (freeing up time for feature work), easier upgrades, and has enabled one-click deployments.
  • We've been using Node for a very long time, all the way since the 0.4 (not a typo!) days. During 2017, we ensured all our major Node repos are running LTS versions of Node. The vast majority are now on Node 6 or 8, with only a few still smaller, legacy projects running earlier versions.
  • We embraced contemporary JS (es2016+) and associated tooling (webpack, eslint, prettier) and are now using these in many repos. This helped us adopt new Javascript langage features such as arrow functions, Maps and Sets, String code point iteration.

Web

  • In Q2, we made a commitment to improving the performance of our webproduct, specifically to reducing the time to start render. This major push on performance resulted in reduced page sizes, improved network tuning, and the adoption of Turbolinks. Users across the world, but especially in Latin American countries where mobile networks are slower and less reliable, are benefiting from lower start render and faster page loads.
  • SpanishDict originally licensed all of its dictionary entry content, but for the last few years, we've been investing in authoring new, high-quality entries for a custom dictionary that is more accurate, up-to-date, and thorough than other Spanish-English dictionaries on the web. This is a cross-team effort, as our Content Team writes thousands of entries and our engineering team updates our search logic to increase visibility of these new and improved entries. In Q3, we pushed to raise one of our key performance indicators, the "hit rate" or percentage of search terms for which we show our custom content, and achieved a 20% increase for queries of 2 or more words.
  • We made a major commitment to using React + Redux for front-end development -- and it is paying off as we develop exciting new user-facing features. We rewrote legacy PHP-based quizzes as React components, making them beautiful to use -- and also fun to work on.
  • We gave our existing Spanish word of the day emails a design makeover, rebuilt the service that manages sending them, and changed our service provider to SendGrid. We took advantage of all this work to create a brand new English word of the day, as well, to better serve the English learners in our audience.
  • We rebuilt our legacy authentication logic into its own microservice, integrated social sign in with Google and Facebook to make it easier for users to create an account and log in, and revamped the sequence of pages and emails that users see when they create a new account. We're laying the groundwork to be able to better customize logged-in users' experiences and keeping our stack modern.
  • We also built a new service for exposing the data for our quizzes and practice section, replacing legacy sections of our stack and preparing us to reskin major sections of the site. This helped pave the way to build brand new sections of the site dedicated to student learning, something a big focus for 2018.

Native apps

In 2017, we brought native iOS and Android development in-house, devoting a team to it. This enabled a number of experience improvements aligned with an overarching goal of achieving parity with our web product:

  • More dictionary entries even with a smaller app download size.
  • Added example and phrase tabs to dictionary entries.
  • Updated conjugations with improved irregular verb highlighting.
  • Word of the Day entries now match web product.
  • Added English Word of the Day for Spanish speakers.
  • Added iOS Word of the Day widget.

On Android we brought over a number of features from our iOS app:

  • You can now purchase a subscription to remove ads.
  • Added videos and usage notes to dictionary entries.
  • Added phrasebook.
  • Added word-by-word card to translations.

Adops/Revenue

Our adops work continues to be on the cutting-edge of the industry. In 2017, we:

  • Integrated many, many new ad partners, including server-side bidding partners, and ran experiments to measure their lift.
  • Built out our analytics stack using AWS Redshift and Looker.
  • Started building connectors to store data from 3rd party apis to our own data warehouse.

Interested in working with us in 2018 and beyond? We're hiring!