The Tech Pile at Coffee Matches Bagel. We have been a mobile-first and mobile-only team

The Tech Pile at Coffee Matches Bagel. We have been a mobile-first and mobile-only team

Probably the most typical concerns that interview prospects inquire whenever they interview here at java matches Bagel is actually, “what exactly is your own technical pile?” It’s furthermore probably the most typical concerns I get around San Francisco while participating in tech meetups and meetings and this type of. Thus for your family interested applicants and anybody else inquisitive just how a high level dating company has built their platform, here you go, I’ll attempt to split it lower individually.

1st, at a high-level:

  • Our Android software are local (coffee)
  • All of our iOS app was native (Swift + unbiased C)
  • Our very own backend software layer was Python & Scala
  • We use Golang for most data pipeline tasks
  • Our very own backend is generally in AWS with a little in yahoo affect
  • We strive for completely automated testing
  • Today, let’s get into some nitty-gritty, shall we?

    What makes we mobile best?

    We have a squeeze page (and a few promotion internet every now and then), nevertheless the best access points for our application are all of our mobile Android and iOS clients. We actually began with merely an internet site in 2012, but the moment we established our iOS app in 2013, our very own web traffic fell to something like 40per cent of our own full traffic. Next, whenever we founded the Android os application in 2014, site traffic plummeted to less than 5percent of total website traffic. At that point, we decided it just had beenn’t beneficial to utilize our very own restricted manufacturing methods to support website, so we fell it and transformed they into merely a landing web page that directs browsers to either the App shop or Enjoy shop.

    I am going to create the details of your cellular design for the next blog post, ideally is penned by one of the exceptional cellular engineers, but at a high-level your mobile development strategy are:

  • The cellular programs become “dumb” consumers. Her main work occurs the info delivered by our very own backend in an engaging, performant, secure, and beautiful style. We attempt by adhering semi-strictly to RESTful web provider principles.
  • Divorce of issues is important for maintainability, stability, and testability. New code written should stick to a VIPER routine (for iOS) or MVVM (for Android).
  • We’re on the way to automating UI examination on iOS making use of XCTest.
  • We’re currently automating the majority of our UI tests, and functional evaluating, on Android making use of Appium.
  • third party knowledge from the mobile area:

  • apple’s ios staff uses Bitrise for CI
  • Android os team utilizes Jenkins for CI
  • Firebase for real-time speak
  • Localytics for statistics
  • Textile (Crashlytics) for collision reporting and beta people management
  • Facebook for authentication
  • As I’ve discussed earlier, we have been about completely in AWS, for best or tough, and then we are practically completely a Python store. I’ll keep the specifics your backend buildings for hopefully the next post from a single of your excellent backend designers, but for right here’s some more information.

    We make use of many AWS providers:

  • Cloudfront to provide united states fast global access to cached information
  • S3 for image storage space, data backups, and hosting fixed the internet sites
  • SQS (Simple Queuing Service) for queuing upwards various asynchronous activities
  • ALB (program Load Balancer) for balancing load and routing people to the best solutions
  • Cloudwatch for monitoring and alarming
  • Redshift for information warehousing
  • ElasticCache for handled Redis for the algorithm employees
  • VPC (internet exclusive affect) to protect our very own servers from the outdoors industry and from just one another
  • Kinesis to flow occasions throughout our bodies
  • We additionally use a number of different databases technologies:

  • Redis (Monolith — master / slave build) w/ HAProxy for heritage in memory space database
  • Redis (Cluster) for horizontally scalable in memory space databases
  • Postgres w/ HAProxy for deal database
  • Cassandra divide over 2 datacenters
  • ElasticSearch for looking / blocking kind data Spanking dating necessities
  • With respect to monitoring:

  • Sentry for mistake stating
  • Grafana for advanced level dashboards and graphs
  • Cloudwatch for monitoring and worrying all things AWS connected
  • Pagerduty for handling all of our on-call plan and waking you right up in the center of the night time
  • Opscenter for tracking Cassandra
  • Kibana for log aggregation
  • Kopf for ElasticSearch spying
  • Brand-new Relic for host / system wellness spying
  • Additional third party Treatments server-side:

  • Localytics for analytics and sending pushes
  • Mailchimp for sending email messages
  • Department for back link generation and attribution
  • Facebook for authentication and mutual buddy data
  • Firebase for real time speak
  • Jenkins for builds, deployments, and planned jobs
  • Imgix for image caching and in-the-cloud transformations