72

Stream & Go: News Feeds for Over 300 Million End | StackShare

 6 years ago
source link: https://stackshare.io/stream/stream-and-go-news-feeds-for-over-300-million-end-users
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Stream & Go: News Feeds for Over 300 Million End Users

Stream

Build scalable feeds, activity streams & chat in a few hours instead of months.

By Thierry Schellenbach, CEO, Stream.







Stream + Go




Stream is an API that enables developers to build news feeds and activity streams (try the API). We are used by over 500 companies and power the feeds of more than 300 million end users. Companies such as Product Hunt, Under Armour, Powerschool, Bandsintown, Dubsmash, Compass and Fabric (Google) rely on Stream to power their news feeds. In addition to the API, the founders of Stream also wrote the most widely used open source solution for building scalable feeds.

Here’s what Stream looks like today:

Given that most of our customers are engineers, we often talk about our stack. Here’s a high level overview:

Tommaso Barguli and I (@tschellenbach) are the developers who started Stream nearly 3 years ago. We founded the company in Amsterdam, participated in Techstars NYC 2015 and opened up our Boulder, Colorado office in 2016. It’s been quite a crazy ride in a fairly short amount of time! With over 15 developers and a host of supporting roles, including sales and marketing, the team feels enormous compared to the early days.

The Challenge: News Feeds & Activity Streams

The nature of follow relationships makes it hard to scale feeds. Most of you will remember Facebook’s long load times, Twitter’s fail whale or Tumblr’s year of technical debt. Feeds are hard to scale since there is no clear way to shard the data. Follow relationships connect everyone to everyone else. This makes it difficult to split data across multiple machines. If you want to learn more about this problem, check out these papers:

At a very high level there are 3 different ways to scale your feeds:

Stream uses a combination of fanout-on-write and fanout-on-read. This allows us to effectively support both customers with highly connected graphs, as well as customers with a more sparse dataset. This is important since the ways in which our customers use Stream are very different. Have a look at these screenshots from Bandsintown, Unsplash, and Product Hunt:



screenshot examples




Switching from Python to Go

After years of optimizing our existing feed technology we decided to make a larger leap with 2.0 of Stream. While the first iteration of Stream was powered by Python and Cassandra, for Stream 2.0 of our infrastructure we switched to Go. The main reason why we switched from Python to Go is performance. Certain features of Stream such as aggregation, ranking and serialization were very difficult to speed up using Python.

We’ve been using Go since March 2017 and it’s been a great experience so far. Go has greatly increased the productivity of our development team. Not only has it improved the speed at which we develop, it’s also 30x faster for many components of Stream.

The performance of Go greatly influenced our architecture in a positive way. With Python we often found ourselves delegating logic to the database layer purely for performance reasons. The high performance of Go gave us more flexibility in terms of architecture. This led to a huge simplification of our infrastructure and a dramatic improvement of latency. For instance, we saw a 10 to 1 reduction in web-server count thanks to the lower memory and CPU usage for the same number of requests.

Initially we struggled a bit with package management for Go. However, using Dep together with the VG package contributed to creating a great workflow.



Go Stream


If you’ve never tried Go, you’ll want to try this online tour: https://tour.golang.org/welcome/1

Go as a language is heavily focused on performance. The built-in PPROF tool is amazing for finding performance issues. Uber’s Go-Torch library is great for visualizing data from PPROF and will be bundled in PPROF in Go 1.10.



Flame Graph




Switching from Cassandra to RocksDB & Raft

1.0 of Stream leveraged Cassandra for storing the feed. Cassandra is a common choice for building feeds. Instagram, for instance started, out with Redis but eventually switched to Cassandra to handle their rapid usage growth. Cassandra can handle write heavy workloads very efficiently.

Cassandra is a great tool that allows you to scale write capacity simply by adding more nodes, though it is also very complex. This complexity made it hard to diagnose performance fluctuations. Even though we had years of experience with running Cassandra, it still felt like a bit of a black box. When building Stream 2.0 we decided to go for a different approach and build Keevo. Keevo is our in-house key-value store built upon RocksDB, gRPC and Raft.

RocksDB is a highly performant embeddable database library developed and maintained by Facebook’s data engineering team. RocksDB started as a fork of Google’s LevelDB that introduced several performance improvements for SSD. Nowadays RocksDB is a project on its own and is under active development. It is written in C++ and it’s fast. Have a look at how this benchmark handles 7 million QPS. In terms of technology it’s much more simple than Cassandra. This translates into reduced maintenance overhead, improved performance and, most importantly, more consistent performance. It’s interesting to note that LinkedIn also uses RocksDB for their feed.

Our infrastructure is hosted on AWS and is designed to survive entire availability zone outages. Unlike Cassandra, Keevo clusters organizes nodes into leaders and followers . When a leader (master) node becomes unavailable the other nodes in the same deployment will start an election and pick a new leader. Electing a new leader is a fast operation and barely impacts live traffic.

To do this, Keevo implements the Raft consensus algorithm using Hashicorp’s Go implementation. This ensures that every bit stored in Keevo is stored on 3 different servers and operations are always consistent. This site does a great job of visualizing how Raft works: https://raft.github.io/



raft




Not Quite Microservices

By leveraging Go and RocksDB we’re able to achieve great feed performance. The average response time is around 12ms. The architecture lies somewhere between a monolith and a microservice. Stream runs on the following 7 services:

To see all our services divided into stacks, head over here.

Personalization & Machine Learning

Almost all large apps with feeds use machine learning and personalization. For instance, LinkedIn prioritizes the items in your feed. Instagram’s explore feed displays pictures outside of the people you follow that you might be interested in. Etsy uses a similar approach to optimize ecommerce conversion. Stream supports the following 5 use cases for personalization:



stream_personalization.png


Documentation for building personalized feeds.

All of these personalization use cases rely on combining feeds with analytics and machine learning. For the machine learning side we generate the models using Python. The models are different for each of our enterprise customers. Typically we’ll use one of these amazing libraries:

Analytics

Analytics data is collected using a tiny Go-based server. In the background, it will spawn go-routines to rollup the data as needed. The resulting metrics are stored in Elastic. In the past, we looked at Druid, which seems like a solid project. For now, we could get away with a simpler solution though.

Dashboard & Site

The dashboard is powered by React and Redux. We also use React and Redux for all of our example applications:

The site, as well as the API for the site, is powered by Python, Django and Django Rest Framework. Stream is sponsoring Django Rest Framework since it’s a pretty great open source project. If you need to build an API quickly there is no better tool than DRF and Python.

We use Imgix to resize the images on our site. For us, Imgix is cost efficient, fast and overall a great service. Thumbor is a good open source alternative.

Real time

Our real time infrastructure is based on Go, Redis and the excellent gorilla websocket library. It implements the Bayeux protocol. In terms of architecture it’s very similar to the node based Faye library.

It was interesting to read the “Ditching Go for Node.js” post on Hacker News. The author moves from Go to Node to improve performance. We actually did the exact opposite and moved from Node to Go for our real time system. The new Go-based infrastructure handles 8x the traffic per node.

Devops, Testing & Multiple Regions

In terms of devops the provisioning and configuration of instances is fully automated using a combination of:

Because our infrastructure is defined in code it has become trivial to launch new regions. We heavily use CloudFormation. Every single piece of our stack is defined in a CloudFormation template. If needed we are able to spawn a new dedicated shard in a few minutes. In addition, AWS Parameter Store is used to hold application settings. Our largest deployment is in US-East, but we also have regions in Tokyo, Singapore and Dublin.

A combination of Puppet and Cloud-init is used to configure our instances. We run our self-contained Go's binaries directly on the EC2 instance without any additional containerization layer.

Releasing new versions of our services is done by Travis. Travis first runs our test suite. Once it passes, it publishes a new release binary to GitHub. Common tasks such as installing dependencies for the Go project, or building a binary are automated using plain old Makefiles. (We know, crazy old school, right?) Our binaries are compressed using UPX.

Tool highlight: Travis

Travis has come a long way over the past years. I used to prefer Jenkins in some cases since it was easier to debug broken builds. With the addition of the aptly named “debug build” button, Travis is now the clear winner. It’s easy to use and free for open source, with no need to maintain anything.



stream_travis.png




Next we use Fabric to do a rolling deploy to our AWS instances. If anything goes wrong during the deploy it will halt the deploy. We take stability very seriously:

We’ve written about our experience with testing our Go codebase. When things do break we do our best to be transparent about the ongoing issue:

VictorOps is a recent addition to our support stack. It’s made it very easy to collaborate on ongoing issues.

Tool Highlight: VictorOps

The best part about VictorOps is how they use a timeline to collaborate amongst team members. VictorOps is an elegant way to keep our team in the loop about outages. It also integrates well with Slack. This setup enables us to quickly react to any problems that make it into production, work together and resolve them faster.









The vast majority of our infrastructure runs on AWS:

The devops responsibilities are shared across our team. While we do have one dedicated devops engineer, all our developers have to understand and own the entire workflow.

Monitoring

Stream uses OpenTracing for tracing and Grafana for beautiful dashboards. The tracking for Grafana is done using StatsD. The end result is this beauty:





monitoring




We track our errors in Sentry and use the ELK stack to centralize our logs.

Tool Highlight: OpenTracing + Jaegar

One new addition to the stack is OpenTracing. In the past we used New Relic, which works like a charm for Python, but isn’t able to automatically measure tracing information for Go. OpenTracing with Jaeger is a great solution that works very well for Stream. It also has, perhaps, the best logo for a tracing solution:



tool highlight opentracing & jaegar


Closing Thoughts

Go is an absolutely amazing language and has been a major win in terms of performance and developer productivity. For tracing we use OpenTracing and Jaeger. Our monitoring is running on StatsD and Graphite. Centralized logging is handled by the ELK stack.

Stream’s main database is a custom solution built on top of RocksDB and Raft. In the past we used Cassandra, which we found hard to maintain and which didn’t give us enough control over performance when compared to RocksDB.

We leverage external tools and solutions for everything that’s not a core competence. Redis hosting is handled by ElastiCache, Postgres by RDS, email by Mailgun, test builds by Travis and error reporting by Sentry.

Thank you for reading about our stack! If you’re a user of Stream, please be sure to add Stream to your stack here on StackShare. If you’re a talented individual, come work with us! And finally, if you haven’t tried out Stream yet, take a look at this quick tutorial for the API.

Open jobs at Stream
Backend Software Developer

Amsterdam;

<section> <p class="job-page-module--jobMainDescriptionShort--1eV4E">We are looking for a full time Senior Software Engineer to join our development team. Job duties will include working on Stream's core API technology as well as designing and building high-performance software.</p> </section> <h2 class="heading-module--heading2--1GFVX job-page-module--jobMainDescriptionHeader--174Xj">What you will be doing</h2> <p class="job-page-module--jobMainDescriptionParagraph--3Noss">Most of your day will be dedicated to software design, research, and coding. On typical projects, you will have a lot of freedom and you will be paired with another team member. Our team is made up of very experienced engineers, some with more than 10 years of experience. By working together you will learn from each other along the way. You will have an enormous impact on making our API service faster, more scalable and more flexible.</p> <p class="job-page-module--jobMainDescriptionParagraph--3Noss">You will add new features to the service and find ways to make the existing ones perform orders of magnitude faster. Our customers have millions of users; they use Stream for mission critical features such as showing content and exposing core functionality of their application. Building stable and reliable software is not just an option: as a member of the development team, you will design and write state-of-the-art software, follow best practices, measure everything and be responsible for deployment to production. You will also spend part of your time talking to our customers and help them to use Stream in their app.</p> <h2 class="heading-module--heading3--32XPU job-page-module--jobMainDesscriptionSubtitle--2YQWD">The challenges</h2> <ul class="job-page-module--jobMainDescriptionList--2Ixxi"> <li>Distributed databases: we built our own data store for feeds and for chat</li> <li>Real-time messaging</li> <li>High performance: our API responses are in the 10ms range</li> <li>High scalability: we use sharding, master-master, and master-slave to ensure scalability</li> <li>High availability: our entire infrastructure is designed and operated to survive entire datacenter crashes</li> <li>Multi-region: we deploy our service on 4 different continents</li> </ul> <h2 class="heading-module--heading2--1GFVX job-page-module--jobMainDescriptionHeader--174Xj">You have</h2> <ul class="job-page-module--jobMainDescriptionList--2Ixxi"> <li>5+ years of backend development experience</li> <li>Experience with at least one (preferably few) of the following languages: Go, Rust, Java, C, C++, Erlang, Node.js, Python</li> <li>Proficiency in Go language is strongly preferred</li> <li>Experience with high traffic and high performance applications</li> <li>Solid knowledge of relational databases</li> <li>Experience with building HTTP APIs</li> <li>Experience managing your own projects and work in a team</li> </ul> <h2 class="heading-module--heading2--1GFVX job-page-module--jobMainDescriptionHeader--174Xj">Our tech stack</h2> <p class="job-page-module--jobMainDescriptionParagraph--3Noss">At Stream we use a wide collection of technologies to offer highly optimized and available features to our customers. Over the years we have experimented with different programming languages, frameworks, databases, and libraries. Here is a short list of the technology that we currently use. Do not worry if you do not master them all or if you do not see your favorite tool or language, you will have the chance to be exposed to most and to convince us to expand the list:</p> <ul class="job-page-module--jobMainDescriptionList--2Ixxi"> <li>Go, gRPC, RocksDB, Python</li> <li>Postgresql, RabbitMQ</li> <li>AWS, Puppet, CloudFormation</li> <li>Grafana, Graphite, ELK, Jaeger</li> <li>Redis, Memcached</li> </ul> <h2>Why join Stream?</h2> <ul> <li><strong>History of success.</strong> From Amsterdam to Boulder and Techstars in-between, Stream has raised over $58.25M to build the best Chat Messaging & Activity Feed infrastructure available, with best-in-class support.</li> <li><strong>Freedom and endless growth opportunities.</strong> As a rapidly growing startup (since 2020 we have gone from 30 to 150 employees), Stream gives you unique personal and professional growth opportunities. The opportunity of true ownership and accountability has a massive impact on your career. These are the things you can rarely experience in huge corporations.</li> <li><strong>Be on the front line of progress and innovation.</strong> While working with cutting-edge technology, we are passionate about tackling difficult tech problems at scale and creating reusable components for them, empowering engineering teams to ship apps faster, more securely, and with a better user experience.</li> <li><strong>They believe in us:</strong> Stream is backed by leading VC companies (Felicis Ventures, GGV Capital, 01.Advisors, Techstars, Arthur Ventures), including backers like Dick Costolo (01 Advisors, ex-CEO of Twitter), Olivier Pomel (CEO of Datadog), Tom Preston-Werner (Co-Founder of GitHub), Nicolas Dessaigne (Co-Founder of Algolia), Johnny Boufarhat (Founder and CEO of Hopin).</li> <li><strong>Complete location and working hours flexibility.</strong> If you prefer working from the office, working 100% remotely, combining both, or relocating to our AMS office, you have total freedom to choose what works best for you and makes you happy. We’re here to support you in being productive and feeling part of the team, no matter where you are.</li> </ul> <h2 class="heading-module--heading2--1GFVX job-page-module--jobMainDescriptionHeader--174Xj">What we have to offer you</h2> <p class="job-page-module--jobMainDescriptionParagraph--3Noss">Stream employees enjoy some of the best benefits in the industry:</p> <ul class="job-page-module--jobMainDescriptionList--2Ixxi"> <li>A team of exceptional engineers</li> <li>The chance to work on OSS projects</li> <li>A competitive salary</li> <li>28 days paid time off plus paid Dutch holidays </li> <li>Company equity</li> <li>A pension scheme</li> <li>A generous Learning and Development budget</li> <li>Commute expenses to Amsterdam covered or option to use a company bike within the city</li> <li>Gym membership of choice covered and weekly pilates sessions in the office</li> <li>MacBook Pro or another development setup</li> <li>Healthy team lunches and plenty of snacks</li> <li>A generous relocation package</li> <li>An office in the heart of Amsterdam</li> <li>The opportunity to attend or present to global conferences and meetups</li> <li>The possibility to visit our office in Boulder, CO</li> </ul> <h2 class="heading-module--heading2--1GFVX job-page-module--jobMainDescriptionHeader--174Xj">Our culture</h2> <p>Stream has a casual social culture, our team is diverse and we all have different backgrounds. Now, Stream is a team of over 130+ peers from over 35 countries across the globe.</p> <p>We value transparency, aim for excellence, and support each other on our way to new victories.</p> <p>Our team consists of the strongest talents worldwide, making Stream a great place to learn and improve your skills.</p> <p>When it comes to software engineering, our culture is oriented towards ownership and quality: our goal is to deliver stable software.</p> <p>If you are interested in becoming a part of what we do, apply now!</p> <p><em>Stream provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws.</em></p> <p><em>This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation and training.</em></p> <p class="job-page-module--jobMainDescriptionParagraph--3Noss"><strong>No recruiters/agencies please</strong></p>
Lead Backend Developer (Golang)

Amsterdam

<section> <p><span style="font-weight: 400;">We are looking for a full-time Lead Backend Developer to join our development team. Job duties will include leading a team working on Stream's core API technology with Golang as well as designing and building high-performance software.</span></p> <h2><strong>What you will be doing</strong></h2> <p><span style="font-weight: 400;">As a team lead, we expect you to lead by example, drive projects and be hands-on coding on the entire stack.</span></p> <p><span style="font-weight: 400;">You will add new features to the service and find ways to make the existing ones perform orders of magnitude faster. Our customers have millions of users; they use Stream for mission-critical features such as showing content and exposing the core functionality of their application. Building stable and reliable software is not just an option: as a member of the development team, you will design and write state-of-the-art software, follow best practices, measure everything and be responsible for deployment to production. You will also spend part of your time talking to our customers and help them to use Stream in their app.</span></p> <h2><strong>The challenges</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Distributed databases: we built our own data store for feeds and for chat</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Real-time messaging</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">High performance: our API responses are in the 10ms range</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">High scalability: we use sharding, master-master, and master-slave to ensure scalability</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">High availability: our entire infrastructure is designed and operated to survive entire data center crashes</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Multi-region: we deploy our service on 4 different continents</span></li> </ul> <h2><strong>You have</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Proficiency in Go</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">5+ years as a backend developer</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">2+ years in a leadership role</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with high-traffic and high-performance applications</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Good knowledge of relational databases</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with building HTTP APIs</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience managing your own projects and working in a team</span></li> </ul> <h2><strong>Our tech stack</strong></h2> <p><span style="font-weight: 400;">At Stream, we use a wide collection of technologies to offer highly optimized and available features to our customers. Over the years we have experimented with different programming languages, frameworks, databases, and libraries. Here is a short list of the technology that we currently use. Do not worry if you do not master them all or if you do not see your favorite tool or language, you will have the chance to be exposed to most and to convince us to expand the list:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Go, gRPC, RocksDB, Python</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Postgresql, RabbitMQ</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">AWS, Puppet, CloudFormation</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Grafana, Graphite, ELK, Jaeger</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Redis, Memcached</span></li> </ul> <h2><strong>Why join Stream?</strong></h2> <ul> <li style="font-weight: 400;"><strong>History of success.</strong><span style="font-weight: 400;"> From Amsterdam to Boulder and Techstars in between, Stream has raised over $58.25M to build the best Chat Messaging & Activity Feed infrastructure available, with best-in-class support.</span></li> <li style="font-weight: 400;"><strong>Freedom and endless growth opportunities.</strong><span style="font-weight: 400;"> As a rapidly growing startup (since 2020 we have gone from 30 to 150 employees), Stream gives you unique personal and professional growth opportunities. The opportunity of true ownership and accountability has a massive impact on your career. These are the things you can rarely experience in huge corporations.</span></li> <li style="font-weight: 400;"><strong>Be on the front line of progress and innovation.</strong><span style="font-weight: 400;"> While working with cutting-edge technology, we are passionate about tackling difficult tech problems at scale and creating reusable components for them, empowering engineering teams to ship apps faster, more securely, and with a better user experience.</span></li> <li style="font-weight: 400;"><strong>They believe in us:</strong><span style="font-weight: 400;"> Stream is backed by leading VC companies (Felicis Ventures, GGV Capital, 01.Advisors, Techstars, Arthur Ventures), including backers like Dick Costolo (01 Advisors, ex-CEO of Twitter), Olivier Pomel (CEO of Datadog), Tom Preston-Werner (Co-Founder of GitHub), Nicolas Dessaigne (Co-Founder of Algolia), Johnny Boufarhat (Founder and CEO of Hopin).</span></li> <li style="font-weight: 400;"><strong>Complete location and working hours flexibility.</strong><span style="font-weight: 400;"> If you prefer working from the office, working 100% remotely, combining both, or relocating to our AMS office, you have total freedom to choose what works best for you and makes you happy. We’re here to support you in being productive and feeling part of the team, no matter where you are.</span></li> </ul> <h2><strong>What we have to offer you</strong></h2> <p><span style="font-weight: 400;">Stream employees enjoy some of the best benefits in the industry:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">A team of exceptional engineers</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The chance to work on OSS projects</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">A combination of 36 days per year in PTO and public holidays</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Company Equity</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Remote work flexibility</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Fitness stipend</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Lunch budget of €25 per week</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">A Macbook Pro and work-from-home stipend</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The opportunity to attend or present at global conferences and meetups</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The possibility to visit our offices in Boulder, CO, and Amsterdam, NL</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Legal employment in your country of residence</span></li> </ul> <h2><strong>Our culture</strong></h2> <p><span style="font-weight: 400;">Stream has a casual social culture, our team is diverse and we all have different backgrounds. Now, Stream is a team of over 140+ peers from over 35 countries across the globe.</span></p> <p><span style="font-weight: 400;">We value transparency, aim for excellence, and support each other on our way to new victories.</span></p> <p><span style="font-weight: 400;">Our team consists of the strongest talents all over the world, which makes Stream a great place to learn and improve your skills.</span></p> <p><span style="font-weight: 400;">When it comes to software engineering our culture is oriented towards ownership and quality: our goal is to deliver stable software.</span></p> <p><span style="font-weight: 400;">If you are interested in becoming a part of what we do, apply now!</span></p> <p><em><span style="font-weight: 400;">Stream provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws.</span></em></p> <p><em><span style="font-weight: 400;">This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation, and training.</span></em></p> <p><strong><em>No recruiters/agencies, please</em></strong></p> </section>
IT Recruiter

Amsterdam, or

<p>Stream is actively seeking an IT Recruiter to help us grow our team across the globe. With offices in Amsterdam (NL) and Boulder, CO (US), as well as a remote presence in a number of other countries, Stream is a global technical startup represented by over 35 nationalities aboard.</p> <p>This position is open in the Amsterdam office or remotely (CEST timezone).</p> <h2>What will you be doing</h2> <p>You will mostly work on our Engineering openings, along with the roles for other departments (Sales, Marketing, Customer Success, etc.).</p> <p>You will cover the whole recruitment process, with a scheduling support of Recruitment Coordinator. Your job will include managing the kick-off sessions with the Hiring Manager, coaching them through the recruitment process and market situation, sourcing and interviewing candidates, checking references, negotiating and extending the job offers, and overall reassuring the highest possible standards of the Candidate experience we provide.</p> <p><strong>Responsibilities include but are not limited to:</strong></p> <ul> <li>Manage all stages of the recruiting life cycle including writing job postings, sourcing and screening candidates, and assisting with job offers</li> <li>Be the main point of contact for candidates throughout the entire interview process, ensuring timely communication and feedback</li> <li>Prioritizing and providing best-in-class candidate experience</li> <li>Manage multiple and various positions across the organization, including engineering and technical positions</li> <li>Partner with hiring managers and take on a consultative approach to provide your expertise on recruiting best practices, recruiting strategy, and interview process</li> </ul> <h2>What makes this role exciting?</h2> <ul> <li>Stream has a culture of everyone being a recruiter. You will see C-level managers sourcing with you side by side, Team leaders actively promoting the roles, the Developer Relations team helping out with spreading the word within dev communities, and everyone within the company actively submitting references.</li> <li>As you will work directly with the technical leaders of the company and influence the recruitment process, the role is highly impactful and has endless opportunities for learning and self-development.</li> <li>This is a perfect opportunity if you like to work on a versatile pool of vacancies for a highly technical startup built by developers and for developers.</li> <li>Our team consists of highly experienced specialists, who are super fun to work with and will always support you with anything you need.</li> </ul> <h2>Who You Are</h2> <p>The ideal candidate is an experienced recruiter and enjoys working on a variety of roles and spanning from Executive-level to entry-level. You enjoy being involved in the entire recruiting process from the day the job is approved up until the candidate’s first day. You enjoy some complex sourcing challenges and digging deep into tech. You have excellent time management skills, have the ability to work under deadlines, and understand how to prioritize multiple positions. And most importantly, you put quality first, and leverage your expertise into understand who would strive the most at Stream and be the best fit for the role.</p> <ul> <li>You have 3+ years of experience in IT recruitment</li> <li>You are tech-savvy and have solid sourcing skills</li> <li>You are a strong advocate of personalized outreach approach</li> <li>You have excellent verbal and written communication skills in English</li> <li>You are metrics-driven, proactive and self-organized</li> <li>You enjoy working in a dynamic startup environment</li> </ul> <h2>Why join Stream?</h2> <ul> <li><strong>History of success.</strong> From Amsterdam to Boulder and Techstars in-between, Stream has raised over $58.25M to build the best Chat Messaging & Activity Feed infrastructure available, with best-in-class support.</li> <li><strong>Freedom and endless growth opportunities.</strong> As a rapidly growing startup (since 2020 we have gone from 30 to 150 employees), Stream gives you unique personal and professional growth opportunities. The opportunity of true ownership and accountability has a massive impact on your career. These are the things you can rarely experience in huge corporations.</li> <li><strong>Be on the front line of progress and innovation.</strong> While working with cutting-edge technology, we are passionate about tackling difficult tech problems at scale and creating reusable components for them, empowering engineering teams to ship apps faster, more securely, and with a better user experience.</li> <li><strong>They believe in us:</strong> Stream is backed by leading VC companies (Felicis Ventures, GGV Capital, 01.Advisors, Techstars, Arthur Ventures), including backers like Dick Costolo (01 Advisors, ex-CEO of Twitter), Olivier Pomel (CEO of Datadog), Tom Preston-Werner (Co-Founder of GitHub), Nicolas Dessaigne (Co-Founder of Algolia), Johnny Boufarhat (Founder and CEO of Hopin).</li> <li><strong>Complete location and working hours flexibility.</strong> If you prefer working from the office, working 100% remotely, combining both, or relocating to our AMS office, you have total freedom to choose what works best for you and makes you happy. We’re here to support you in being productive and feeling part of the team, no matter where you are.</li> </ul> <h2>What we have to offer you</h2> <p>Stream employees enjoy some of the best benefits in the industry:</p> <ul> <li>28 days paid time off plus paid Dutch holidays</li> <li>Company equity</li> <li>A pension scheme</li> <li>Remote work flexibility</li> <li>A Learning and Development budget</li> <li>Commute expenses to Amsterdam covered or the option to use a company bike within the city</li> <li>Fitness stipend and weekly pilates sessions in the office</li> <li>Monthly in-office chair massages by a professional</li> <li>MacBook Pro and work-from-home stipend</li> <li>Healthy team lunches and plenty of snacks</li> <li>A generous relocation package</li> <li>An office in the heart of Amsterdam</li> <li>The opportunity to attend or present at global conferences and meetups</li> <li>The possibility to visit our office in Boulder, CO</li> <li>Parental leave paid at 100%</li> </ul> <h2>Our culture</h2> <p>Stream has a casual social culture, our team is diverse and we all have different backgrounds. Now, Stream is a team of over 130+ peers from over 35 countries across the globe.</p> <p>We value transparency, aim for excellence, and support each other on our way to new victories.</p> <p>Our team consists of the strongest talents worldwide, making Stream a great place to learn and improve your skills.</p> <p>When it comes to software engineering, our culture is oriented towards ownership and quality: our goal is to deliver stable software.</p> <p>If you are interested in becoming a part of what we do, apply now!</p> <p><em>Stream provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws.</em></p> <p><em>This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation and training.</em></p> <p><em><strong>No recruiters/agencies please</strong></em></p>
Front End Developer

Boulder, Amsterdam,

<p>We are looking to hire an experienced Senior Frontend Developer in our Boulder or Amsterdam office (or remote CEST/MST time zone or close).</p> <h2><strong>What you will be doing</strong></h2> <p>As a Senior Frontend Developer, you will primarily focus on developing and maintaining our website, documentation, SEO and blog. You’ll mostly be working alongside the PM and other engineers, in close collaboration with Designers and other frontend teams, to implement new pages and features, but you will also be working with the many other stakeholders of our frontend apps.</p> <p><strong>Responsibilities</strong></p> <ul> <li>Implement high quality animations and interactions</li> <li>Pixel perfect implementation of design</li> <li>Improve and build upon our current website, blog and documentation platforms</li> <li>New feature additions and SEO improvements</li> <li>Plan and implement technical improvements, such as page loading speed, transition smoothness, bug fixing and refactors to address technical debt</li> <li>Build and maintain our own flexible Design System</li> <li>Support best practices for SEO and frontend development</li> <li>Contribute to improving engagement and UX on the site to drive higher conversion</li> </ul> <h2><strong>About you</strong></h2> <p>You’re a developer who deeply appreciates design. You can faithfully implement a design built in Sketch or Figma, giving meaningful feedback and even making changes to the design yourself if necessary. You are a team player who enjoys figuring out solutions to complex problems. You have a feeling for design and are able to translate design to product. You are familiar with the latest technologies in frontend development and love to stay up to date with the latest developments.</p> <p>You are detail-oriented, mindful of deadlines and you have a high sense of responsibility. At Stream we strive to provide the best possible product and service to our clients, and we expect the same from you!</p> <p>As a member of the team, you must be excited to grow with Stream. At our core, we are a startup - you should be able to act quickly, thrive in uncertainty, and love pivoting to new technologies.</p> <p><strong>You have</strong></p> <ul> <li>5+ years of experience as a frontend developer</li> <li>Strong collaboration skills working both with technical and non-technical stakeholders</li> <li>Expert level knowledge of CSS / SCSS with proven experience animating interactions</li> <li>In-depth knowledge of HTML and React</li> <li>A wide knowledge of developing responsive/ adaptive layouts for multiple browsers and platforms, including desktop, tablet, and mobile.</li> <li>Experience with modern Javascript (CommonJS, Promises, ...)</li> <li>Experience with ES6, ReactJS, JSX and modern JS build tools</li> <li>Focus on testing your own code and committing production ready code</li> <li><em>Don’t fall into all of the requirements? You don’t have to match every bullet as long as you can grow into the role and provide value to the team.</em>*</li> </ul> <p><strong>Bonus points</strong></p> <ul> <li>Experience with static site generators like Gatsby or Next.js</li> <li>High energy to jump on complex problems/tasks</li> <li>Taking ownership of the work</li> <li>Maintaining the standard of code quality</li> </ul> <h2><strong>Our tech stack</strong></h2> <p>At Stream we use a wide collection of technologies to offer highly optimized and available features to our customers. Here is a list of the technology that we use on the website team:</p> <ul> <li>CSS, SCSS, Style Components, PostCSS, CSS Modules</li> <li>Javascript, React</li> <li>Gatsby, Create React App</li> <li>react-testing-library, jest</li> </ul> <h2><strong>Who We Are</strong></h2> <p>Stream has a casual, social, and spirited culture. We are talented, highly technical, and collaborative which makes Stream a great place to learn and improve your skills. Our team is forward-thinking and diverse and we all have different backgrounds which lend to our creativity and innovation. With offices in Boulder and Amsterdam, our employees represent 15 countries, 11 languages, and counting.</p> <p>Our team is passionate about tackling difficult tech problems at scale by creating reusable components that allow product owners to ship apps faster, more securely, and with a better user experience. Our culture is oriented towards ownership and quality; Our goal is to produce deliverable software.</p> <p><strong>What’s In It For You (US Only):</strong></p> <ul> <li>19+ days of paid time off plus 10 paid holidays</li> <li>Free health insurance for the employee and a discounted rate for dependents</li> <li>401k contribution plan with 4% match</li> <li>100% paid parental leave</li> <li>Company equity</li> <li>Dog-friendly office!</li> <li>Be part of a smart, high performing, passionate team</li> <li>A Macbook Pro and a work-from-home stipend</li> <li>Team lunches and plenty of snacks</li> <li>An office on Pearl Street in downtown Boulder</li> </ul> <p><strong>Salary (for Colorado only):</strong> Our salary ranges are based on national averages. We have wide ranges so we can be flexible and determine compensation based on a number of factors including the candidate's skills, level of experience, and location (which can be in the US, or a remote location that aligns with or is within +/- 3 hours of a US time zone). For Colorado-based candidates, the salary range for this position is $120,000-$140,000. Compensation at all other locations will be based on the factors as stated above.</p> <p><strong>If you are interested in becoming a part of what we do, apply now!</strong></p> <p><em>Stream provides equal employment opportunities to all employees and applicants for employment and prohibits discrimination and harassment of any type without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other characteristic protected by federal, state or local laws.</em></p> <p><em>This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation and training.</em></p>

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK