The Tech Stack at Java Meets Bagel. We have been a mobile-first and mobile-only company

Perhaps one of the most typical inquiries that meeting applicants inquire if they interview here at java suits Bagel was, “something the tech pile?” it is additionally just about the most usual issues I have around san francisco bay area while going to technology meetups and conferences and such. Therefore for you personally curious applicants and someone else inquisitive exactly how a high level internet dating business has generated her program, here you are going, I’ll make an effort to break it down for your family.

First, at a high-level:

  • Our Android application was local (Java)
  • All of our iOS app is actually native (Swift + unbiased C)
  • The backend application level is actually Python & Scala
  • We need Golang for a few facts pipeline activities
  • The backend is usually in AWS with a bit of in yahoo affect
  • We try for fully computerized testing
  • Now, let’s enter into some nitty-gritty, shall we?

    Exactly why are we mobile merely?

    We do have a landing page (and several promotional web sites every now and then), although best access things for our software tend to be our cellular Android and iOS consumers. We actually started off with only an internet site . in 2012, but when we launched all of our apple’s ios app in 2013, the web site traffic fell to something like 40per cent of your full website traffic. Then, when we founded our Android app in 2014, website traffic plummeted to below 5per cent of full visitors. When this occurs, we determined it just was actuallyn’t worth every penny to make use of all of our minimal engineering resources to guide website, so we fallen it and switched it into merely a landing web page that directs browsers to either the application shop or Play Store.

    I will put the particulars of our own cellular structure for another post, ideally are penned by one of the outstanding mobile designers, but at a high-level your cellular development strategy try:

  • The cellular programs tend to be “dumb” consumers. Their particular biggest work exists the data sent by our backend in an appealing, performant, secure, and beautiful trends. We accomplish this by sticking semi-strictly to RESTful online services principles.
  • Separation of questions is important for maintainability, reliability, and testability. All new laws written should comply with a VIPER design (for apple’s ios) or MVVM (for Android).
  • We’re on the road to automating UI evaluating on apple’s ios utilizing XCTest.
  • We’re presently automating much of our UI assessment, and useful tests, on Android os using Appium.
  • third party equipment from the cellular side:

  • iOS professionals utilizes Bitrise for CI
  • Android personnel uses Jenkins for CI
  • Firebase for real time cam
  • Localytics for analytics
  • Textile (Crashlytics) for crash reporting and beta party government
  • Fb for verification
  • As I’ve mentioned before, we’re very nearly entirely in AWS, for best or even worse, and we also are practically entirely a Python shop. I’ll put the details of our own backend structure for ideally another post from 1 of our own outstanding backend engineers, however for here’s some more details.

    We make use of numerous AWS providers:

  • Cloudfront provide united states fast worldwide accessibility cached methods
  • S3 for picture space, information backups, and holding fixed the internet sites
  • SQS (Easy Queuing Service) for queuing up different asynchronous activities
  • ALB (software burden Balancer) for balancing burden and routing people to the right service
  • Cloudwatch for monitoring and alarming
  • Redshift for information warehousing
  • ElasticCache for managed Redis for our algorithm professionals
  • VPC (digital personal Cloud) to guard our very own hosts from outdoors globe and from just one another
  • Kinesis to stream happenings throughout our system
  • We additionally use a variety of database technology:

  • Redis (Monolith — master / servant create) w/ HAProxy for legacy in memories database
  • Redis (Cluster) for horizontally scalable in memory space database
  • Postgres w/ HAProxy for deal databases
  • Cassandra divide over 2 datacenters
  • ElasticSearch for looking around / blocking kind data necessities
  • In terms of tracking:

  • Sentry for error revealing
  • Grafana for higher level dashboards and graphs
  • Cloudwatch for spying and alarming things AWS associated
  • Pagerduty for controlling our on-call schedule and waking all of us upwards in the middle of the night
  • Opscenter for monitoring Cassandra
  • Kibana for wood aggregation
  • Kopf for ElasticSearch spying
  • Unique Relic for machine / infrastructure wellness monitoring
  • Different 3rd Party Treatments server-side:

  • Localytics for analytics and delivering forces
  • Mailchimp for giving email messages
  • Part for website link generation and attribution
  • Facebook for verification and shared pal calculations
  • Firebase for real-time chat
  • Jenkins for develops, deployments, and scheduled jobs
  • Imgix for image caching and in-the-cloud changes
  • admin
    Author: admin

    Published by

    Leave a Reply

    Your email address will not be published. Required fields are marked *