This post was written by Alex Ozdemir in the fall of 2018.

I’ve been lucky enough to intern at Coursera not just once, but twice. While I had been an intern at other software engineering firms before, my experiences at Coursera gave me a fundamentally deeper understanding of software engineering than my prior internships did. In this blog post I’ll explore the work I did and the lessons I learned, and reflect on what it was about Coursera that made this learning possible.

My Path to Coursera

I care a lot about education. I did my undergraduate studies at Harvey Mudd College, a school…

By David Winegar

At Coursera, we use Flow to type our Javascript and catch mistakes at compile time. Flow has been enormously useful as a documentation tool and has increased the productivity of our frontend engineers. However, this tool can be tricky to use with React; it took us several months to figure out how we could truly make our types “flow” from one component to another while still catching errors. We want to share some of our best practices with you so that you can easily type React components, stateless functional components, and higher order components (HOCs).

Note that…

By Lewis Chung

Today I’m excited to release the first episode of our engineering podcast!

These podcasts will supplement our blog posts as another medium through which we can share the work we do at Coursera. Expect to get topics along the lines of product/design inspiration, architectural design of products, lessons learned, war stories, exploration of interesting or novel technologies, etc.

Because not everything can be covered in the conversations — for instance it’s hard to describe a graph structure without a visual — our podcasts will be posted right here on our tech blog with any relevant visuals and…

By Deepkanwal Plaha

I joined Coursera just over a year and a half ago as a new graduate software engineer. During this time, I’ve had the opportunity to work on three different platforms. I was hired as an iOS engineer, transitioned to Android to help fill out a shortage of Android engineers on our mobile team, and currently work as a backend engineer on the growth team. Learning a new platform can feel difficult at times, especially when going from a platform you’re proficient with to one you’re a complete beginner in. …

By Nikhil Garg

Coursera decided to start using GraphQL supported APIs in the spirit of making our platform faster, and better for our learners. To facilitate that, our engineers extended existing technologies used within Coursera to be compatible with GraphQL. In summary, all systems that used courier (an open-sourced data interchange system built by Coursera), and naptime (an open-sourced REST API library built by Coursera) could easily be extended to use GraphQL, along with a lot of other benefits.

As a result, we initiated the process of migrating legacy systems to ‘courier’ and ‘naptime’. We started with our Peer review…

By eleith

Five years ago, faced with a new role (team lead) on a new team (team pineapple), I decided to run the perfect stand up. The task felt daunting and I did what all engineers do when faced with a challenge:

I used google (hoping to find an answer on stackoverflow or wikipedia).

Resisting the temptation on google’s autocomplete suggestion to learn how to run a “perfect lemonade stand” or “a perfect stand up comedy”, I did eventually find a few suggestions on a set of questions to guide the stand up:

  • what did you do yesterday
  • what are…

Using crowdsourcing and data science to improve discovery

by Airong Cai, Yan Huang
… and check out the
TechCrunch article about this topic! …

Here at Coursera, we care deeply about connecting learners with the right educational content to reach their goals. The good news is, with over 1,800 courses on our platform in just about every subject and at a range of levels, we almost certainly have the right content. However, finding the perfect course in a catalog of 1,800 is often no easy task.

We are hard at work continuously innovating and iterating on our data-driven discovery processes. These include search ranking, personalized course recommendations, featured…

By Evan Yeung

The frontend infrastructure team at Coursera works hard to make developers as productive as possible. This includes keeping up with the latest and greatest tools and libraries, but also means making builds and deploys as fast and painless as possible.

As our codebase has grown to harbor over 40 single page apps in one monolith, we found an opportunity to improve our developer experience by splitting up our applications.

Why Rapidos?

A couple years back, we built a system called Rapidash to decouple our frontend and backend deploy processes. …

By eleith

I spend a lot of my time advising engineering managers and “How much code should I write?” gets asked by a lot of folks new to the role.

Many good essays propose one line answers ranging from no all the way to 30% of your time.

However, focusing on how much code managers should write distracts from the intent of why managers want to write code to begin with.

Being a great manager means you need to prioritize all work directly related to managing and interacting with people on your team. You need to develop managerial skills, and…

This is the first part in a multi-part series of blog posts covering our transition from a homegrown data access framework to using GraphQL across all of our clients (web & mobile) here at Coursera.

By Jon Wong

To introduce the Coursera engineering organization to GraphQL, Sashko Stubailo (core contributor to Apollo and part of the Meteor Development Group) graciously volunteered to share a beginner-level rundown of GraphQL, what it brings to the table, and where it can go in the future. …


Providing universal access to the world’s best education. |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store