Clever Engineering Blog — Always a Student

Always a Student is one of Clever's culture tenets: we love to learn, and this blog is where we share what we learn on topics that matter to engineering, from small but critical technical details to how we organize our engineering teams. This blog is cross-published on Medium.

Evolving Systems for New Products

By Michael Gao on

When building systems for new products, there’s a delicate balance between writing code that works and writing code that lasts. A common anti-pattern is preemptively optimizing systems for the future while still trying to find product market fit. For new product teams, this can be a costly mistake as it leads to a slower iterative […]

How Clever grows inclusivity for women in engineering

By Stephanie Chen on

Five women on Clever’s engineering team discuss what inclusivity looks like at Clever, how to grow and maintain female leadership at a tech company, and the challenges they are excited to tackle within their roles. The engineering team is passionate about improving education and solving hard problems. One problem the Clever team is constantly solving […]

Using IAM Roles with Session Policies for Least Privilege

By Alex Smolen on

At Clever, we lock down code access to customer data using AWS IAM roles with session policies. In Clever’s microservice AWS architecture, each service has a unique IAM role with access to the AWS resources it needs: S3 buckets, DynamoDB tables, and so on. Our services are multi-tenant and customer data is separated via logical […]

Clever SSO Resiliency — October 2018 Update

By Ben Adida on

Everyone in the US is now back in school, and we’ve been feeling the rush of excitement here at Clever over the last few weeks. On a typical day at Clever this school year, we regularly hit more than 1,000 logins per second! As we’ve chronicled over the last few months (July, May) , the […]

Clever SSO Reliability — July 2018 Update

By Ben Adida on

Over the last few months, we’ve been readying Clever SSO for our biggest year ever. We want students across the country logging in quickly and reliably to all of their learning applications. A couple of months ago, we described our initial stress testing approach. In this post, we want to tell you more about this […]

Securing New Products at Clever

By Alex Smolen on

Clever Goals is a new product that tracks students’ educational software usage. It creates progress data, a new type of data for Clever. This sensitive data needs to be protected from unauthorized access, and users should feel in control over how it’s used. How does the Clever security team make sure that new products like […]

Clever Reliability — May 2018 Update

By Ben Adida on

Two months ago, we experienced the worst outage in the history of Clever SSO. We wrote up a postmortem soon afterwards. We mentioned at the time that this postmortem was the beginning of our process to reevaluate everything we do to make sure we can be worthy of the trust you place in us. We […]

Wag: A Go Web API Generator

By Kyle VIgen on

This story begins someplace familiar to many startups: our monolithic API had become unwieldy, and we wanted to transition towards a microservice architecture. And, like other young, scrappy startups, we couldn’t afford to freeze development while we re-architected the entire system. So, instead, each time we wrote a feature we carved off the related chunk […]

Postmortem on Last Week’s Outages

By Ben Adida on

On Tuesday, Wednesday, and Thursday, March 6th-8th, 2018, Clever logins failed for all customers: 1h on Tuesday, 1h15 on Wednesday, and almost 5h on Thursday. This was Clever’s single worst outage ever in length, repeatedness, and impact. This postmortem is the first of many public steps we’ll be taking to ensure Clever is a service […]