Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    K

    Khan Academy Engineering

    engineering.khanacademy.org · Company blog · on HN since 2015

    Khan Academy's engineering team writes about its tech stack, including Go, Kotlin, React Native, and Google App Engine.

    Visit blogHN submissions
    ProgrammingWeb Development
    What HN says

    HN commenters recommend it for App Engine and React topics, cite the Go rewrite post, and mention it in hiring threads.

    Stats for nerds
    45HN people shared it
    61linked in comments
    1.3Kstory points
    May 2020last shared
    2015people per year2020

    Top posts on HN

    1. 1
      Go + Services = One Goliath Project
      7 people · 428 points · first shared 2019 · 434 comments on HN
    2. 2
      How we successfully handled 2.5x traffic in a week
      3 people · 161 points · first shared 2020 · 94 comments on HN
    3. 3
      Time Management at Khan Academy
      1 person · 144 points · first shared 2016 · 29 comments on HN
    4. 4
      Memcached-Backed Content Infrastructure at Khan Academy
      1 person · 93 points · first shared 2017 · 22 comments on HN
    5. 5
      Making thumbnails fast
      1 person · 70 points · first shared 2015 · 15 comments on HN
    6. 6
      The Original Serverless Architecture Is Still Here
      1 person · 65 points · first shared 2018 · 42 comments on HN
    7. 7
      Forgo JavaScript packaging? Not so fast
      6 people · 55 points · first shared 2015 · 23 comments on HN
    8. 8
      No Cheating Allowed
      1 person · 52 points · first shared 2015 · 48 comments on HN
    9. 9
      Khan Academy’s Transition to React Native
      1 person · 36 points · first shared 2020 · 6 comments on HN
    10. 10
      Engineering career development at Khan Academy
      1 person · 30 points · first shared 2016 · Discussion on HN

    What HN people wrote when they linked it

    • magicalistNov 2015

      > It's been found that resource concatenation is still more efficient http://engineering.khanacademy.org/posts/js-packaging-http2....*

      for a page with 2.4MB of JS spread over 296 files.

      And, notably, the article doesn't advocate for serving individual files in the first place, but instead says that some level of grouping is likely advantageous, but http2 gives new opportunities which will need to be explored, like grouping by level of churn in libraries or by units of functionality

      > And 'building for http2' seems to be advocating hashes in filenames without neccesarily walking the dependencies

      I believe you misread. They use a shallow tree in their scout js file; all of the resources a page will need are declared there and nothing is loaded in succession.

      > Manifest files are a bad idea, except perhaps for instructing webservers to tell browsers to preemptively download files. AFAIK there isn't a standard for this yet so a manifest doesn't solve the problem

      I'm not sure what this means. The manifest is generated by the build process. There is no standard for dependency manifests, sure, but there's no reason you can't whip a reasonable one up that a simple server module could understand if you wanted to add push support. Eventually the cow paths will be paved and we'll come up with a more standardized approach (or approaches) to that kind of manifest.

    • kamensMar 2016

      Khan Academy | Mountain View, CA or REMOTE | full-time and internships

      We're a small, non-profit tech startup bringing a free, world-class education to anyone, anywhere.

      Millions of people use our free educational platform to learn every month. The testimonials at https://www.khanacademy.org/stories will give you a feel for just how intense an impact Khan Academy has on the lives of folks in all sorts of varied situations.

      We face intense technical challenges in providing access to our educational content (everything from videos to interactive content) to students across the world, in and out of classrooms, in all the most important languages. We use our data to personalize students' learning and continually improve our educational content + the tools we provide content creators. And we need more help.

      We've made some great hires off HN and would love to make more (especially if you're a designer or Android dev, wink wink, we're investing heavily: http://engineering.khanacademy.org/posts/starting-android.htm)

      Best way to apply is at https://www.khanacademy.org/careers, but if you email me w/ a subject line that mentions 'monkeys' somewhere I'm partial to those, too. ben@...

    • dangoorMar 2020

      Khan Academy | Mountain View, CA and REMOTE USA/CANADA | Senior Backend / Fullstack | https://khanacademy.org/careers

      We're a non-profit with a mission to provide a free, world-class education to anyone, anywhere. It's a big mission that we're taking on step by step. While we want anyone to be able to get a great education independently, we've been focusing a lot on trying to help teachers working in their classrooms (and a lot of teachers and parents are using Khan away from their classrooms right now!)

      Our site has been built on Python 2 and Google App Engine for its first 10 years of existence. We're now in the midst of a rebuild in Go (still on App Engine).[1] Parts of that new Go-based infrastructure are already running in production.

      To say that this is an exciting time for us would be an understatement, I think, but we continue to have working sustainably as an engineering principle. (Our principles are available publicly[2].)

      [1]: http://engineering.khanacademy.org/posts/goliath.htm
      [2]: https://docs.google.com/presentation/d/1ZQ-HTuH38L8sf4ZObfJNlESpzYIPAP6QFe30qOqE8DA/edit?usp=sharing

    • hollowayNov 2015

      It's been found that resource concatenation is still more efficient http://engineering.khanacademy.org/posts/js-packaging-http2.htm

      And 'building for http2' seems to be advocating hashes in filenames without neccesarily walking the dependencies, which can have cache problems http://holloway.nz/r/hashes-in-filenames/

      ES6 imports are static (you can't use JS to dynamically include a file) so this means transitive dependencies need to be resolved at build time, not by using a manifest file which resolves paths clientside. This also applies to (eg) SVGs that reference JPEGs because you probably don't want JS involved there either. Manifest files are a bad idea, except perhaps for instructing webservers to tell browsers to preemptively download files. AFAIK there isn't a standard for this yet so a manifest doesn't solve the problem.

      Ps. I've got a gulp build for http2-style packing and I'll release it on my github in a few weeks (same account as my username)

    • josephscottFeb 2018

      That is the theory. The real world however can be very messy. More than two years ago Khan Academy measured how this would work for them - http://engineering.khanacademy.org/posts/js-packaging-http2.htm - here was their summary:

      > The reality is not so rosy. Due to degraded compression performance, the size of the data download with individual source files ends up being higher than with packages, despite having achieved 'no wasted bytes'. Likewise, the promised download efficiency has yet to show up in the wild, at least for us. It seems that, for the moment at least, JavaScript packaging is here to stay.

      My personal experience has been you have to confirm the theory of how HTTP/2 related changes will perform with actual measurements. I've seen some pages get faster in HTTP/2 by no longer bundling, and in other cases seen then become slower. So far the only way to know for sure is to measure the result.

    • guessmynameMay 2020

      Khan Academy uses Python [1], Google App Engine [2], React.js [3] and recently Go [4] among other languages [5].

      They have used Backbone.js [6] and experimented with other programming languages like Kotlin [7].

      Read their engineering blog [8] and you will know more and maybe learn a few things.

      [1] http://engineering.khanacademy.org/posts/python-refactor-1.htm

      [2] http://engineering.khanacademy.org/posts/transaction-safety.htm

      [3] http://engineering.khanacademy.org/posts/upgrade-buttons-links.htm

      [4] http://engineering.khanacademy.org/posts/goliath.htm

      [5] https://github.com/khan/

      [6] http://engineering.khanacademy.org/posts/upgrade-buttons-links.htm

      [7] http://engineering.khanacademy.org/posts/kotlin-adoption.htm

      [8] http://engineering.khanacademy.org/

    Related

    Khan Academy Blogblog.khanacademy.org21 people

    Half a million lines of Go

    Khan Academy Blog
    Company · last shared 2025
    Ben Kamensbjk5.com62 people

    Breaking down Amazon's mega dropdown

    Ben Kamens
    Personal · last shared 2026
    Medium Engineeringmedium.engineering55 people

    The curious case of the disappearing Polish S (2015)

    Medium Engineering
    Company · last shared 2026
    Google Research Blogresearch.googleblog.com278 people

    Guetzli: A New Open-Source JPEG Encoder

    Google Research Blog
    Company · last shared 2018
    LinkedIn Engineeringengineering.linkedin.com415 people

    LinkedIn Intro: Doing the Impossible on iOS

    LinkedIn Engineering
    Company · last shared 2025
    Uber Engineering Blogeng.uber.com525 people

    Why Uber Engineering Switched from Postgres to MySQL

    Uber Engineering Blog
    Company · last shared 2025
    Facebook Engineeringcode.facebook.com552 people

    Relicensing React, Jest, Flow, and Immutable.js

    Facebook Engineering
    Company · last shared 2021
    Android Developers Blogandroid-developers.blogspot.com277 people

    Android Studio 1.0

    Android Developers Blog
    Company · last shared 2016