#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
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
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
Top Related