1. T R E A S U R E D A T A
Learning Silicon Valley Culture
- That is Good For Your Research
Taro L. Saito - GitHub:@xerial
Ph.D., Software Engineer at Treasure Data, Inc.
Computer Science Research Seminar
University of Tsukuba - June 12, 2017
1
2. Differences Between Academia and Industry
• Academia
• It’s all about you.
• Be prepared for some non-exciting works
• Industry
• It’s all about teams and the company.
• You need to make your customers happy
• Not the place for insisting on the use of your technical innovation in the product
• Reference
• Alon Halevy. What I With I Knew When I Finished My Ph.D. SIGMOD Ph.D Symposium
2016
2
3. Silicon Valley
• San Francisco, Bay Area
• Intel
• Google
• Apple
• Facebook
• HP
• Twitter
• Linked-in
• Adobe
• Netflix
• …
• Stanford, UC Berkeley, etc.
• A lot of IT Companies
• https://en.wikipedia.org/wiki/List_of_companies_based_in_the_San_Francisco_Bay_Area
3
4. 7 Best Practices
• Best practices I found after moving from Academia to Industry
• 1. Create an MVP
• 2. Define Metrics to Measure Your Success
• 3. Use Technologies
• 4. Learn From Experiences
• 5. Share Your Ideas
• 6. Look Outside CS
• 7. Never Stop Writing Code
4
5. 1. Create An MVP (Minimal Viable Product)
• What Makes A Great Product Manager
• https://hackernoon.com/what-makes-a-great-product-manager-3c1d03b90356
• Source: http://sparksolutions.co/2015/12/mvp-dilemma-fat-vs-lean-lovable-vs-laughable/
5
6. MVP Strategy found in Academia
• UC Berkeley is also following MVP strategy
• Create a prototype system
• Demonstrate your vision in an earlier phase
• Induce collaboration between teams
• Define target applications in advance
• Involving other research area
• Educational Impact
• Enhances student’s system building skills
• Communication between students
• Reference:
• How to Build a Bad Research Center. David A Patterson (counter examples)
6
7. 2. Define Metrics To Measure Your Success
• KPI
• Key Performance Indicator
• KPIs for SaaS Company
• Adoption of the service, new features, etc.
• User Score (Managing customer journey)
• KPIs for Subscription Business:
• MRR: Monthly recurring revenue
• Lead Generation
• Customer Acquisition Cost
• Gross Margin
• Churn Rate
The SaaS Startup Founder’s G
• The SaaS Startup Founder’s Guide.
• https://startups.salesforce.com/article/The-SaaS-Startup-Founder-s-Guide
7
8. Measuring Service KPIs: Presto Usage at Treasure Data (2017)
Processing 15 Trillion Rows / Day
(= 173 Million Rows / sec.)
150,000~ Queries / Day
1,500~ Users
• We are collecting every single query log since the beginning of the Presto service
• KPIs are defined based on these query usage stats (e.g, usage summary, SLOs, etc.)
• Log collection is a must have for measuring user activities
• For more details, see https://www.slideshare.net/taroleo/presto-at-treasure-data8
9. 3. Use Technologies
• Google Calendar
• Scheduling a meeting without asking members
• No need to waist your time for arranging member schedules
• 1-on-1
• Every 1 or 2 weeks
• Online Meeting Tools
• Zoom
• Google Hangouts
9
13. Managing Tasks
• Example: JIRA Workflow in Treasure Data
• Backlog
• Priority: P1 (Critical) -> P2 (Must Have) -> P3 (Good to Have) -> …
• Epic
• Major goals
• Development Stages
• DEVELOP -> REVIEW -> MERGE -> TEST -> DEPLOY -> Done
• Customer Success
• Support request -> Initial response (Support Team)
• Engineering Triage -> Prioritization -> Investigation
• Bug fix, providing workaround, etc.
13
14. Understand What Technologies Can’t Do
• Serendipity (= great innovation or findings)
• Ideas for this often come from informal conversations.
• Pros and Cons of Remote Team Working
• Fast code review cycle
• Slack
• Enable quick communication but not good for polishing ideas
• Cannot overcome timezone differences
• Communication through Wiki or JIRA
• Good for later use and sharing the knowledge
• But it distracts creation mind (to some extent)
• Need to intentionally create opportunities for serendipity
• Having business trips to gather team members
• “Serendipity favors prepared minds”
14
15. 4. Learn from Experiences
• People change jobs quickly in SV
• After several years
• Brings experiences from other companies
• e.g., Increasing Revenue from $1M -> $10M, and $10M -> $100M
• Different types of experiences are necessary
• In SV, you can find people with such experiences
• We can also learn from investor’s experiences
• A. Ross and J. Lemkin: From Impossible To Inevitable: How Hyper-Growth Companies
Create Predictable Revenue
15
16. Why can people move so quickly?
• They have CVs on the Web
• Linked-In
• Accelerating job changes in US
• Homepage, etc.
• I’ve got many job requests
• After quitting academia
16
17. GitHub
• Your CV as an engineer
• It tells your
• Programming language preference
• Coding experience
• Collaboration skills
in open-source projects
• issue tickets
• etc.
17
18. Learn From Teacher’s Experiences
• If you find a lecture is boring, you’ve saved your time.
• Knowing some specific field is boring (or interesting) requires a long research
• At least need to read 10 ~ 100 research papers to have a bird-eye view or a good
perspective from the shoulders of giants.
• Even if you don’t fully understand the material ….
• Course material is a concentrated form of knowledges
• You can study them later if they become necessary
• If you know where the knowledge is.
18
19. 5: Share Your Ideas
• Design Notes
• Spend your 2 hours for writing ideas before starting a project
• Application to academia: Survey
• If you read a research paper, write an 1-paragraph summary
• Sharing this with other researcher/students is good
• Even private notes are useful for the future yourself
• It helps you to quickly remind the core ideas of the paper
19
20. Design Notes
• Share ‘Why’
• State ‘What’
• And list ‘How’
• Use just 2 hours
• Writing design notes should not
distract creation mind
• Find related work
• Alternatives and why not?
• No need to be perfect
• Think about MVP
20
21. Never Do Research Alone
• Ask your supervisors
• Ask friends
• Ask other researchers
• You will definitely need Ph.D. to get answers from e-mail
• But many researchers love enthusiastic young researchers even if he/she has no Ph.D
• e.g,. Jim Gray was kind enough to answer my questions on transaction processing
when I was a Ph.D student
• Finding research budgets from industries
• Stanford Affiliate Program
• https://corporate.stanford.edu/affiliate_programs.html
• Starting from $150k ~ $500k/year or more for membership
• You cannot attract such investments if you are doing research alone
21
22. 6: Look Outside CS
• Business requires CS skills
• Marketing, Sales, Economics, etc
• e.g., Real database usages can be found in industry
• Treasure Data is the No.1 Presto user in the world and have more than 200 millions
of query logs
• Biology
• Genome sequencing produces unprecedented amount of data
• Need to collect various fields of knowledge to understand biological functions
• Demanding Big-Data technologies
• Lacking CS scientists and engineers
22
24. Impact of Research
• Test of time awards
• Impact of work can be found 10-year or more later
• e.g., Two Decades of Recommender Systems at amazon.com
• https://www.computer.org/csdl/mags/ic/2017/03/mic2017030012.html
• Impact Factor?
• If you think it’s important, you should immediately leave the CS community, whose
journals only have 2 ~ 3 IFs even for the top conferences.
• Biological journals can have 10 ~ 30 (Nature) impact factor!!
• Good sign to know the impact of research soon
• If your research results are used by non-research community
24
25. 7: Never Stop Writing Code
• Coding is your only tool to make things happen (as CS students)
• Demoing or prototyping
• For running code in production, 24/7 system, you need to learn more:
• Learn from open source codes (as you read scientific papers)
• How to operate distributed systems
• Cloud system
• Monitoring
• Debugging
• Working together with other engineers
• How to share and delegate knowledges
• Example:
• Using Scala in Production at Treasure Data https://www.slideshare.net/taroleo/scala-at-treasure-data
• There is no “too late” in writing code:
• You can start coding at any moment. New technologies are always there
25
26. Summary
• 7 Best Practices
• 1. Create an MVP
• To minimize the risks
• 2. Define Metrics to Measure Your Success
• Without measuring, you cannot evaluate your achievement
• 3. Use Technologies
• To effectively work with other people
• 4. Learn From Experiences
• To achieve goals quickly
• 5. Share Your Ideas
• Never do research alone
• 6. Look Outside CS
• Good applications of CS can be found outside CS
• 7. Never Stop Writing Code
• Turn your research into reality
26
27. Learn More About Engineering Cultures
• Netflix Culture
• https://www.slideshare.net/reed2001/culture-1798664
• Spotify Engineering Culture
• https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/
• You need to create your own culture that fits your team
27