Life at Twitter + Career Advice for Students
-
Upload
chris-aniszczyk -
Category
Technology
-
view
842 -
download
2
Transcript of Life at Twitter + Career Advice for Students
#TwitterDevLife at Twitter and some career advice
Chris Aniszczyk (@cra)
Development at Twitter
intro tools practices open source
Howdy, I’m @cra!
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
LOL 1800 Engineers for Tweets? (Inspired by @shit_hn_says: I can just build Twitter clone over the weekend)
Twitter is global, open and real-time
Twitter, Inc. | Confidential
Why is Twitter actually hard?
HackPrinceton - November 14-16, 2014@TwitterAds | Confidential
300M+
500M+
80%
Active users
Tweets / Day
of users aremobile users
2006 2015
500,000,000 Tweets/Day 3,500,000,000 Tweets/Week
~6000 Tweets/Second (steady state)
Miyazaki 2011 25,088 TPS (NYE 2013: 33,338 TPS)
バルス! (“Death to Twitter”)
Miyazaki 2013 25,088 TPS 143,199 TPS https://blog.twitter.com/2013/new-tweets-per-second-record-and-how
バルス! (“Death to Twitter”)
Twitter is simple on the surface Complexity lies beneath…
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 / SocialDiscover / S&R
Development at Twitter
intro tools practices open source
VERSION CONTROLGit (GitHub for Open Source) Monorepo for back-end services
ISSUES / TICKETINGAtlassian JIRA
CHATHipchat
CHAT BOTSHubot
DOCUMENTATIONConfluence / Docbird
CODE REVIEWSGerrit ReviewBoard
VIDEO CONFERENCINGBluejeans / Google Hangouts
Language Frameworks
• scalaTest, junit (JVM)
• jasmine, qunit (JavaScript)
• webdriver, unity (Integration)
• UIAutomation / Robotium (mobile)
• rspec, test/unit (Ruby)
TESTING TOOLS
Development at Twitter
intro tools practices open source
TWITTER UNIVERSITYA culture of learning!
CONTINUOUS INTEGRATIONJenkins and Mesos Clusters
DOG FOODgo/iosnightly go/androidbeta go/preflight
PREFLIGHT TESTINGEvery employee tests first (slow rollout to users 1% etc)
#HACKWEEK (Fix-It Weeks)Every quarter
DEMO HOUR (#Treephy)Every 2 weeks, demo progress
OBSERVE ALL THE THINGShttp://github.com/twitter/zipkin
• timed launching, feature flags, access, kill switch
DECIDER (FEATURING FLAGS)
if (request.isDeciderAvailable(“my_feature_name”)) { // do this } else { // do that }
go/decider
• 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
RUNBOOKSGuides on running services
SELF SERVICE SERVICESApache Mesos / Aurora
Development at Twitter
intro tools practices open source
Twitter Runs on Open Source
SCM / ISSUES / WIKIGitHub (Git) https://github.com/twitter
CONTINOUS INTEGRATIONTravis CI https://travis-ci.org/twitter
CODE COVERAGECoveralls (aggregation) https://coveralls.io/r/twitter
STATIC ANALYSISCode Climate* https://codeclimate.com
CAREER ADVICE: 7 TIPS
Find newbie-friendly* open source projects… Contribute to them!
*https://www.google-melange.com/gsoc/homepage/google/gsoc2015
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
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)
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)
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
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)
Learn negotiation skills, get multiple offers Don’t sell yourself short, times are good these days
See Glassdoor for salaries: https://glassdoor.com
Q&A #ThankYou
[email protected] (@cra) We’re always hiring (jobs.twitter.com)
t.co/UTAustin and t.co/AustinIntern