As I look back at my summer in the Bay Area, I am glad I got the opportunity to work at Khan Academy. When I accepted the internship offer, I expected to meet amazing people, build cool things, and learn a bunch. It turned out to be exactly that, and a lot more! To top it off, I got to spend a relaxing summer with family!
What I did at KA
I was a part of the PHP (People Helping People!) team. We were a group of five focused on building features to grow the Khan Academy user community.
User’s Discussion Activity
As I played with the existing community features on the site, I noticed an obvious missing piece. When you visited a user’s profile, you couldn’t look at their contributions on the site. This could be useful when looking at an active user’s profile. But more than that, it could help users build up their identity on the site (like earning badges), and encourage better quality participation (less spaminess!). Later on, it proved useful from a moderator’s perspective as well. After intense design discussions with the likes of Kitt and Jason, it was wonderful to ship this within my first few weeks!
Make Discussion Public!
Earlier, users could have private profiles, and their discussion would be hidden to other users. I made it so even for private users, you could visit their profile to look at their discussion! A first step towards potentially making all user profiles public?
Discussion on Video Pages
We now had a new UI for showing user’s discussion activity on their profile, but the existing discussion the video pages still sucked. So, the next step was to refactor the code and visual styling of the discussion on the video pages. This turned out to be a bigger piece than I initially anticipated, which included working around Google App Engine’s limitations and learning about backfilling. This also came with new quality control features built by Drew! (low quality notices, better moderation tools and a lot more)
Discussion everywhere — Refactoring (lots of it!)
As I neared the end of my internship, I scratched the surface of making the Moderator Queue usable and more rewarding and fun for moderators (including me!)
I got to refactoring a couple of massive, jumbled up CSS files into Less. Go Less.
What I learnt
- Writing code in small building blocks is an art. Thank you Marcia!
- Breaking down big features into smaller ones, and planning subsequent deadlines makes everything more enjoyable and less of a chore.
- It is important to weigh the importance of features - to make sure you work on the right ones.
- Better packaging my work so that I can show it off during Dev Standups and Company Updates. Demos!
- With better planning, I could’ve done other non-PHP things. This would have given me the opportunity to collaborate more with other people on different teams.
- I enjoy design discussions! Both abstract and specifically about user experiences of small features.
- I like all types of Beer. I also like Hotdogs.
- Laid Back culture. Everybody can work at their own pace!
- Open-ness. It was so easy to look at what other teams were doing, and critique their work!
- Beer tastings, Bread eatings, Lemonades, Lunches on Castro St.
- Movie nights, hiking at Muir woods (some others I missed :|)
I would miss working with the Khan Academy team and highly recommend it as a place to do an internship. It is one of the most enjoyable ones you could have! If you’re not convinced, you can read about Ben’s and Jamie’s experiences.