All Engineering

Engineering

Follow Recommendations in Social Networks

Social media is a series of networks connecting individuals, companies, organizations, and groups to one another. These networks can transcend local, national, and international borders connecting people to networks far and wide. With all those connections, how can a user find th…

Engineering

Adding TypeScript Type Definitions to the Stream JavaScript API Client Library

TypeScript is a language that Stream has been interested in for quite some time. Over the past year, we’ve had an increasing number conversations with TypeScript and Angular developers. So naturally, it’s been our ambition to eventually distribute Type Definitions for our JavaScr…

Engineering

Examining Decentralized Social Networks

Most companies who create a social network do so with the end goal of collecting information, interests and habits of their users in order to monetize that data (usually through advertising). They guard this data heavily and many of the largest social networks are trusted enough …

Engineering

Best Practices for Recommendation Engines

In this blogpost I will describe how to implement a feature-rich activity feed that will make relevant and accurate personalization algorithms easier to implement. As we have already explored in previous blog posts, app personalization is linking activity feeds and user engagemen…

Engineering

Activity Stream Personalization

Personalization comes in many flavors, and the Data Science team at Stream helps you build your own personalization engine based on your specific needs. In conjunction with our Analytics client, we can use both engagement and feed data to power and improve your app’s experience u…

Engineering

Building a Performant API using Go and Cassandra

Introduction Software performance is critical to a SaaS company like Stream and while the majority of our infrastructure is written in Python, we are actively porting portions of our code base to Go. Stream is an API for building scalable feeds and now handles over 20 billion fee…

Engineering

Factorization Machines for Recommendation Systems

As a Data Scientist that works on Feed Personalization, I find it it important to stay up to date with the current state of Machine Learning and its applications. Most of the time, using some of the better-known recommendation algorithms yields good initial results; however, some…

Engineering

Example Ranking Methods for Your Feeds

In this short tutorial we will show you how to use Custom Ranking for your activity streams and news feeds. By default all feeds on Stream are ranked chronologically. Custom ranking allows you to take full control over how your feeds are sorted. Some common use cases include: Sho…

Engineering

In Depth Guide on Building a REST API with Node.js, Restify & MongoDB

Update for August 2017: This guide has been updated for Restify 5 and Mongo 3.4 with modern Javascript practices. Clone the Github repo to get the full working project. Choosing the Technology With the multitude of JavaScript frameworks and databases available nowadays, there are…

Engineering

Personalization & Machine Learning for News Feeds and Social Networks

Winds is an open source RSS reader is powered by React, Redux, Sails and Stream. This tutorial explains how we’ve built personalization for Winds, as an example of how using Stream makes it easy to build personalized feeds. About Personalization Personalization is a very broad co…

Engineering

An Introduction to Contextual Bandits

In this post I discuss the Multi Armed Bandit problem and its applications to feed personalization. First, I will use a simple synthetic example to visualize arm selection in with bandit algorithms, I also evaluate the performance of some of the best known algorithms on a dataset…

Engineering

How to Setup a Highly Available Multi-AZ Cassandra Cluster on AWS EC2

Originally built by Facebook in 2009, Apache Cassandra is a free and open-source distributed database designed to handle large amounts of data across a large number of servers. Cassandra at Stream At Stream, we use Cassandra as the primary data store for our feeds. Cassandra stan…

Engineering

Fast Recommendations for Activity Streams Using Vowpal Wabbit

The problem of content discovery and recommendation is very common in many machine learning applications: social networks, news aggregators and search engines are constantly updating and tweaking their algorithms to give individual users a unique experience. Personalization engin…

Engineering

React/Redux – Best Practices & Gotchas

This is a bonus post in the Cabin tutorial series created by getstream.io. Visit getstream.io/cabin for an overview of all the tutorials, as well as a live demo. The source code can be found on the Stream GitHub repository for Cabin, and all blog posts can be found at their respe…

Engineering

Building News Feeds & Activity Streams With Meteor

We are happy to announce stream-meteor. This integration library makes it easy to build scalable newsfeeds and activity streams for your Meteor app.

Engineering

Stream JavaScript & Node Client (V3)

Version 3 of the JavaScript & Node library adds support for new Stream API features, reduces the size of the distributable JavaScript file, creates library documentation pages, and improves browser compatibility of our client.

Engineering

Redis: Reducing Memory Usage

Before switching from Redis, there are quite a few things you can do to reduce memory usage.

Engineering

Python 3 & Stream Framework

Stream Framework now running on Python 3.4!

Engineering

5 Reasons to Use Cassandra For Building Your Newsfeed

Users of the open source Stream-Framework often ask us if they should use Redis or Cassandra to power their newsfeed. This article highlights five scenarios in which you are better off going for Cassandra.

Engineering

Scalability as a Service, Guest Post on HighScalability

Thierry wrote a guest post on HighScalability called Scalability as a Service. It explains the trend how development is moving towards a hosted component based approach.