Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Life at Twitter + Career Advice for Students

1,040 views

Published on

A talk I gave to University of Austin students about life at Twitter as an engineer along with some career advice.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Life at Twitter + Career Advice for Students

  1. 1. #TwitterDev Life at Twitter and some career advice Chris Aniszczyk (@cra)
  2. 2. Development at Twitter intro tools practices open source
  3. 3. Howdy, I’m @cra!
  4. 4. https://twitter.com/TwitterEng • ~1800 Engineers • 50% of the company is engineers • From Datacenter to Kernel to JVM to Mobile to Frontend (etc) • Engineering Offices • SF, Seattle, Boulder, NYC, London, Tokyo Twitter Engineering
  5. 5. LOL 1800 Engineers for Tweets? (Inspired by @shit_hn_says: I can just build Twitter clone over the weekend)
  6. 6. Twitter is global, open and real-time
  7. 7. Twitter, Inc. | Confidential
  8. 8. Why is Twitter actually hard?
  9. 9. HackPrinceton - November 14-16, 2014@TwitterAds | Confidential 300M+ 500M+ 80% Active users Tweets / Day of users are mobile users 2006 2015
  10. 10. 500,000,000 Tweets/Day 3,500,000,000 Tweets/Week
  11. 11. ~6000 Tweets/Second (steady state)
  12. 12. Miyazaki 2011 25,088 TPS (NYE 2013: 33,338 TPS) バルス! (“Death to Twitter”)
  13. 13. Miyazaki 2013 25,088 TPS 143,199 TPS https://blog.twitter.com/2013/new-tweets-per-second-record-and-how バルス! (“Death to Twitter”)
  14. 14. Twitter is simple on the surface Complexity lies beneath…
  15. 15. Profiles / Gizmoduck Who to Follow / S&R Trends / S&R Home timeline / TLS PTw / Ads Expanded media / Cards Contact import / Growth Compose / Tweetypie Translation / i18n DMs / Social Discover / S&R
  16. 16. Development at Twitter intro tools practices open source
  17. 17. VERSION CONTROL Git (GitHub for Open Source) Monorepo for back-end services
  18. 18. ISSUES / TICKETING Atlassian JIRA
  19. 19. CHAT Hipchat
  20. 20. CHAT BOTS Hubot
  21. 21. DOCUMENTATION Confluence / Docbird
  22. 22. CODE REVIEWS Gerrit ReviewBoard
  23. 23. VIDEO CONFERENCING Bluejeans / Google Hangouts
  24. 24. Language Frameworks • scalaTest, junit (JVM) • jasmine, qunit (JavaScript) • webdriver, unity (Integration) • UIAutomation / Robotium (mobile) • rspec, test/unit (Ruby) TESTING TOOLS
  25. 25. Development at Twitter intro tools practices open source
  26. 26. TWITTER UNIVERSITY A culture of learning!
  27. 27. CONTINUOUS INTEGRATION Jenkins and Mesos Clusters
  28. 28. DOG FOOD go/iosnightly go/androidbeta go/preflight
  29. 29. PREFLIGHT TESTING Every employee tests first (slow rollout to users 1% etc)
  30. 30. #HACKWEEK (Fix-It Weeks) Every quarter
  31. 31. DEMO HOUR (#Treephy) Every 2 weeks, demo progress
  32. 32. OBSERVE ALL THE THINGS http://github.com/twitter/zipkin
  33. 33. • timed launching, feature flags, access, kill switch DECIDER (FEATURING FLAGS) if (request.isDeciderAvailable(“my_feature_name”)) { // do this } else { // do that } go/decider
  34. 34. • experiments, A/B tests DDG (EXPERIMENTATION) import com.twitter.web.util.abdecider.experiments.MyExperiment MyExperiment.getExperimentBucketName(request) match { case Some(“control”) => ... case Some(“expand_images”) => ... case Some(“expand_videos”) => ... } go/ddg
  35. 35. RUNBOOKS Guides on running services
  36. 36. SELF SERVICE SERVICES Apache Mesos / Aurora
  37. 37. Development at Twitter intro tools practices open source
  38. 38. Twitter Runs on Open Source
  39. 39. SCM / ISSUES / WIKI GitHub (Git) https://github.com/twitter
  40. 40. CONTINOUS INTEGRATION Travis CI https://travis-ci.org/twitter
  41. 41. CODE COVERAGE Coveralls (aggregation) https://coveralls.io/r/twitter
  42. 42. STATIC ANALYSIS Code Climate* https://codeclimate.com
  43. 43. CAREER ADVICE: 7 TIPS
  44. 44. Find newbie-friendly* open source projects… Contribute to them! *https://www.google-melange.com/gsoc/homepage/google/gsoc2015
  45. 45. Find a mentor early at work and outside of it (You will learn, save time and opportunities will find you) https://fedoraproject.org/wiki/Mentors
  46. 46. Don’t specialize early in your career Technology changes like crazy, stay curious and learn new things (Twitter was a RoR shop and moved to the JVM)
  47. 47. Not networking? you’re NOT WORKING! Go to meetups: http://capitalfactory.com/learn/events/ Speak at events/conferences: https://lanyrd.com (I know this may be hard for some CS students)
  48. 48. Control your public image*, you are a brand (Brand yourself for the career you want, not the job you have now) Get on Github: https://github.com Get on LinkedIn: https://linkedin.com Get on Twitter: https://twitter.com Get on IRC (or Slack): irc://irc.freenode.net Get on Stackoverflow: https://stackoverflow.com *http://www.businessinsider.com/twitter-fired-2011-5
  49. 49. Interview every year, practice makes perfect This will also help sharpen skills and establish your worth (Read Cracking the Coding Interview: http://www.careercup.com/book)
  50. 50. Learn negotiation skills, get multiple offers Don’t sell yourself short, times are good these days See Glassdoor for salaries: https://glassdoor.com
  51. 51. Q&A #ThankYou zx@twitter.com (@cra) We’re always hiring (jobs.twitter.com) t.co/UTAustin and t.co/AustinIntern

×