Software Engineer - Infrastructure Coursera
Do single points of failure keep you up at night?
Are you latency sensitive?
Do you hate repeating yourself?
Do you read JVM byte code for fun? Language specifications? Technical research papers?
Does your entire test suite take seconds to run?
When you find a process hanging in production, do you 'kill -9' it or do you starting digging through thread and heap dumps?
Would you like to employ your 1337 engineering skills to make education more affordable, accessible and scalable?
If you "get" most of these questions, then read on to learn more about Coursera's infrastructure team. We build the core services and plumbing that enable Coursera to serve thousands of courses from top universities to millions of students around the world for free. We build awesome tools to help our to help our developers build, deploy and test their software. We operate and constantly monitor the site; though, we're always striving to automate ourselves out of our own job in that regard.
Things we've built recently
Play/Scala-based service stack, including "Courservice", our next-generation class platform
Push-button, cloud deployment tools
Full-stack auto-scaling on AWS
Scalable message delivery to millions of students
Extensive site monitoring
What's next? Or, what will you be working on?
We've got some big projects in the pipeline and would love to have you come build them with us!
App Platform: Make Coursera more open and extensible through REST APIs, deep platform integration and open learning standards
Social Learning: Build backend systems to support groups, social graphs and more
Event Pipeline: Enable near-realtime, data-driven products build on big data streams
Data Systems: Work on next-generation distributed data systems that solve novel product use cases in the education space, while enabling us to scale our platform to 100x what it is today
JVM-based services via Play/Scala/Zookeeper
Amazon Web Services: Sharded RDS (MySQL), CloudSearch, CloudFront, S3, EC2, SQS, SES, EMR, ELB, XYZ, OMG!
Lots of open source frameworks/libraries: typesafe stack, curator, guice, metrics and more
Served through a modern frontend stack (backbone.js) built by our rockstar Product team
Deep knowledge of at least one typical server-side programming language e.g. Java, Scala, Python, Ruby, C++, etc. The more the merrier :)
Familiarity with service-oriented architecture and associated components: databases, caches, queues, proxies, load balancers and more
Ability to decompose complex problems into managable units of work
Be your own infrastructure product manager: innovate, prioritize, ship MVPs and iterate
Experience building and operating complex distributed systems in a production environment at scale
Experience with Scala or another functional programming language
Experience building public APIs for external consumption
Experience with NoSQL databases
Comfortable working across the full web stack
Familiarity working with AWS or other cloud-based environments
Relevant online coursework in computer science/software engineering
A cover letter, detailing why you would like to join us and why you think you are a good fit.
Your resume and portfolio. We are very interested in links to previous projects that you?ve played a significant part in (please include a description of your role in those projects). Where appropriate, feel free to give us links to code snippets, design sketches, etc. relevant to these projects as well.
If you are a student or if you have graduated within the last 3 years, please include a copy of your unofficial transcript.
Information about your work authorization status in the United States.
Successful applicants will be working out of our Mountain View office. Telecommuting is not an option right now.
||Mountain View, CA |