51
#TwitterDev Life at Twitter and some career advice Chris Aniszczyk (@cra)

Life at Twitter + Career Advice for Students

Embed Size (px)

Citation preview

Page 1: Life at Twitter + Career Advice for Students

#TwitterDevLife at Twitter and some career advice

Chris Aniszczyk (@cra)

Page 2: Life at Twitter + Career Advice for Students

Development at Twitter

intro tools practices open source

Page 3: Life at Twitter + Career Advice for Students

Howdy, I’m @cra!

Page 4: Life at Twitter + Career Advice for Students

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

Page 5: Life at Twitter + Career Advice for Students

LOL 1800 Engineers for Tweets? (Inspired by @shit_hn_says: I can just build Twitter clone over the weekend)

Page 6: Life at Twitter + Career Advice for Students

Twitter is global, open and real-time

Page 7: Life at Twitter + Career Advice for Students

Twitter, Inc. | Confidential

Page 8: Life at Twitter + Career Advice for Students

Why is Twitter actually hard?

Page 9: Life at Twitter + Career Advice for Students

HackPrinceton - November 14-16, 2014@TwitterAds | Confidential

300M+

500M+

80%

Active users

Tweets / Day

of users aremobile users

2006 2015

Page 10: Life at Twitter + Career Advice for Students

500,000,000 Tweets/Day 3,500,000,000 Tweets/Week

Page 11: Life at Twitter + Career Advice for Students

~6000 Tweets/Second (steady state)

Page 12: Life at Twitter + Career Advice for Students

Miyazaki 2011 25,088 TPS (NYE 2013: 33,338 TPS)

バルス! (“Death to Twitter”)

Page 13: Life at Twitter + Career Advice for Students

Miyazaki 2013 25,088 TPS 143,199 TPS https://blog.twitter.com/2013/new-tweets-per-second-record-and-how

バルス! (“Death to Twitter”)

Page 14: Life at Twitter + Career Advice for Students

Twitter is simple on the surface Complexity lies beneath…

Page 15: Life at Twitter + Career Advice for Students

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

Page 16: Life at Twitter + Career Advice for Students

Development at Twitter

intro tools practices open source

Page 17: Life at Twitter + Career Advice for Students

VERSION CONTROLGit (GitHub for Open Source) Monorepo for back-end services

Page 18: Life at Twitter + Career Advice for Students

ISSUES / TICKETINGAtlassian JIRA

Page 19: Life at Twitter + Career Advice for Students

CHATHipchat

Page 20: Life at Twitter + Career Advice for Students

CHAT BOTSHubot

Page 21: Life at Twitter + Career Advice for Students

DOCUMENTATIONConfluence / Docbird

Page 22: Life at Twitter + Career Advice for Students

CODE REVIEWSGerrit ReviewBoard

Page 23: Life at Twitter + Career Advice for Students

VIDEO CONFERENCINGBluejeans / Google Hangouts

Page 24: Life at Twitter + Career Advice for Students

Language Frameworks

• scalaTest, junit (JVM)

• jasmine, qunit (JavaScript)

• webdriver, unity (Integration)

• UIAutomation / Robotium (mobile)

• rspec, test/unit (Ruby)

TESTING TOOLS

Page 25: Life at Twitter + Career Advice for Students

Development at Twitter

intro tools practices open source

Page 26: Life at Twitter + Career Advice for Students

TWITTER UNIVERSITYA culture of learning!

Page 27: Life at Twitter + Career Advice for Students

CONTINUOUS INTEGRATIONJenkins and Mesos Clusters

Page 28: Life at Twitter + Career Advice for Students

DOG FOODgo/iosnightly go/androidbeta go/preflight

Page 29: Life at Twitter + Career Advice for Students

PREFLIGHT TESTINGEvery employee tests first (slow rollout to users 1% etc)

Page 30: Life at Twitter + Career Advice for Students

#HACKWEEK (Fix-It Weeks)Every quarter

Page 31: Life at Twitter + Career Advice for Students

DEMO HOUR (#Treephy)Every 2 weeks, demo progress

Page 32: Life at Twitter + Career Advice for Students

OBSERVE ALL THE THINGShttp://github.com/twitter/zipkin

Page 33: Life at Twitter + Career Advice for Students

• timed launching, feature flags, access, kill switch

DECIDER (FEATURING FLAGS)

if (request.isDeciderAvailable(“my_feature_name”)) { // do this } else { // do that }

go/decider

Page 34: Life at Twitter + Career Advice for Students

• 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

Page 35: Life at Twitter + Career Advice for Students

RUNBOOKSGuides on running services

Page 36: Life at Twitter + Career Advice for Students

SELF SERVICE SERVICESApache Mesos / Aurora

Page 37: Life at Twitter + Career Advice for Students

Development at Twitter

intro tools practices open source

Page 38: Life at Twitter + Career Advice for Students

Twitter Runs on Open Source

Page 39: Life at Twitter + Career Advice for Students

SCM / ISSUES / WIKIGitHub (Git) https://github.com/twitter

Page 40: Life at Twitter + Career Advice for Students

CONTINOUS INTEGRATIONTravis CI https://travis-ci.org/twitter

Page 41: Life at Twitter + Career Advice for Students

CODE COVERAGECoveralls (aggregation) https://coveralls.io/r/twitter

Page 42: Life at Twitter + Career Advice for Students

STATIC ANALYSISCode Climate* https://codeclimate.com

Page 43: Life at Twitter + Career Advice for Students

CAREER ADVICE: 7 TIPS

Page 44: Life at Twitter + Career Advice for Students

Find newbie-friendly* open source projects… Contribute to them!

*https://www.google-melange.com/gsoc/homepage/google/gsoc2015

Page 45: Life at Twitter + Career Advice for Students

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

Page 46: Life at Twitter + Career Advice for Students

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)

Page 47: Life at Twitter + Career Advice for Students

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)

Page 48: Life at Twitter + Career Advice for 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

Page 49: Life at Twitter + Career Advice for Students

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)

Page 50: Life at Twitter + Career Advice for Students

Learn negotiation skills, get multiple offers Don’t sell yourself short, times are good these days

See Glassdoor for salaries: https://glassdoor.com

Page 51: Life at Twitter + Career Advice for Students

Q&A #ThankYou

[email protected] (@cra) We’re always hiring (jobs.twitter.com)

t.co/UTAustin and t.co/AustinIntern