Dubsmash

Dubsmash

51 Followers
Dubsmash brings joy to communication through video! We help people communicate by adding their favorite quotes and sounds ... more

Decisions 10

Tim Specht

‎Co-Founder and CTO at Dubsmash

ElasticsearchElasticsearchAlgoliaAlgolia
#SearchAsAService

Although we were using Elasticsearch in the beginning to power our in-app search, we moved this part of our processing over to Algolia a couple of months ago; this has proven to be a fantastic choice, letting us build search-related features with more confidence and speed.

Elasticsearch is only used for searching in internal tooling nowadays; hosting and running it reliably has been a task that took up too much time for us in the past and fine-tuning the results to reach a great user-experience was also never an easy task for us. With Algolia we can flexibly change ranking methods on the fly and can instead focus our time on fine-tuning the experience within our app.

Memcached is used in front of most of the API endpoints to cache responses in order to speed up response times and reduce server-costs on our side.

#SearchAsAService

16 256.5K

Tim Specht

‎Co-Founder and CTO at Dubsmash

PythonPythonHerokuHeroku
#PlatformAsAService

Since we deployed our very first lines of Python code more than 2 years ago we are happy users of Heroku. It lets us focus on building features rather than maintaining infrastructure, has super-easy scaling capabilities, and the support team is always happy to help (in the rare case you need them).

We played with the thought of moving our computational needs over to barebone Amazon EC2 instances or a container-management solution like Kubernetes a couple of times, but the added costs of maintaining this architecture and the ease-of-use of Heroku have kept us from moving forward so far.

Running independent services for different needs of our features gives us the flexibility to choose whatever data storage is best for the given task.

#PlatformAsAService #ContainerTools

15 98.7K

Tim Specht

‎Co-Founder and CTO at Dubsmash

Google AnalyticsGoogle AnalyticsAmazon KinesisAmazon Kinesis
#ServerlessTaskProcessing

In order to accurately measure & track user behaviour on our platform we moved over quickly from the initial solution using Google Analytics to a custom-built one due to resource & pricing concerns we had.

While this does sound complicated, it’s as easy as clients sending JSON blobs of events to Amazon Kinesis from where we use AWS Lambda & Amazon SQS to batch and process incoming events and then ingest them into Google BigQuery. Once events are stored in BigQuery (which usually only takes a second from the time the client sends the data until it’s available), we can use almost-standard-SQL to simply query for data while Google makes sure that, even with terabytes of data being scanned, query times stay in the range of seconds rather than hours. Before ingesting their data into the pipeline, our mobile clients are aggregating events internally and, once a certain threshold is reached or the app is going to the background, sending the events as a JSON blob into the stream.

In the past we had workers running that continuously read from the stream and would validate and post-process the data and then enqueue them for other workers to write them to BigQuery. We went ahead and implemented the Lambda-based approach in such a way that Lambda functions would automatically be triggered for incoming records, pre-aggregate events, and write them back to SQS, from which we then read them, and persist the events to BigQuery. While this approach had a couple of bumps on the road, like re-triggering functions asynchronously to keep up with the stream and proper batch sizes, we finally managed to get it running in a reliable way and are very happy with this solution today.

#ServerlessTaskProcessing #GeneralAnalytics #RealTimeDataProcessing #BigDataAsAService

14 474.6K

Tim Specht

‎Co-Founder and CTO at Dubsmash

PushwooshPushwooshGoogle AnalyticsGoogle Analytics
#WebPushNotifications

We used Google Analytics to track user and market growth and Pushwoosh to send out push notifications by hand to promote new content. Even though we didn’t localize our pushes at all, we added custom tags to devices when registering with the service so we could easily target certain markets (e.g. send a push to German users only), which was totally sufficient at the time.

#WebPushNotifications #Analytics #GeneralAnalytics #Communications

14 31.9K

Followers 51

Jamie Mackel
Tim Specht
Tobias Schubotz
gsk12
Yonas Beshawred
Markus Zapke-GrĂĽndemann
Deden Ramadhan
rh2626
blueshing
Thierry Schellenbach
Lau Borges
jkvora
tyoaditya6399
Asif Maniar
arshimido
Jacob Shiohira
Ngoc Phan
ganesh-n
SĂ©bastien Lvl
z3k3z
Piyush Kansal
amar lungare
Achille AROUKO
M Haidar Hanif
mgroma
Bala Injarapu
Zaid Al Rashwani