SlideShare uma empresa Scribd logo
1 de 29
Turn Inc. ConfidentialTurn Inc. Confidential
Thursday, September 19, 2013
Turn Tracker
Epita’s presentation
1Turn Inc. Confidential 1
Turn Inc. Confidential
Outline
• Internship context
– Company
– Location
• Internship organization
• Projects presentation
– Turn tracker
– Hack@Turn project
2
Turn Inc. Confidential
Internship Context – Company
• Company name: Turn Inc
• Founded in 2006
• Based in Redwood City, CA
• Fastest growing software company in Silicon Valley in 2012
(Deloitte)
• Manage between 800k and 1M bid opportunities per second
• Now around 300 employees
3
Turn Inc. Confidential
Internship Context – Working at Turn
• Lunch deliver
• Many offsite events
• Human scale engineer team
• Knowledge sharing culture
• Weekly company information update
4
Turn Inc. Confidential
Internship Context – Location
• Company location: In the heart of the Silicon Valley
• Live in San Francisco
• Huge French community
• Join while42, a group of former Epita/Epitech students
– Monthly meeting in a San Francisco start-up
• Beneficial environment for a software Engineer
5
Turn Inc. Confidential
Company presentation – Business
• Turn: Online Advertisement
Company
• Specialize in RTB (Real Time
Bidding)
• Main strength: offering both a
DSP (Demand Side Platform)
and a DMP (Data Management
Platform)
• Multi Channel
– Display
– Mobile
– Video
– Social (Facebook)
• Two Main Product
– Audience Suite (DMP)
– Campaign Suite (DSP)
6
Turn Inc. Confidential
Company presentation – Organization
7
Engineer
teams
Project
Manageme
nt
Product
Manageme
nt
Q&A
Define the product
Define tasksRealize technical tasks
Realize Verification tasks
Turn Inc. Confidential
Company presentation – Communication and
hardware provided
• Monthly Company Meeting
– General update on the company
• New Clients
• Financial updates
• Engineering updates
• Product update
• New hired presentation
• Weekly engineer meeting
– Questions and answers
• Weekly team meeting
– Update on the team organization
8
• Personal hardware
– Laptop (MacBook pro)
– Desktop
– Dual screen
• Company hardware and
software
– Dev environment
– Staging, mirror and production
environment
– Project Management tool: Jira
– Knowledge sharing: Intranet
– Code quality: Crucible
– Development tools: Whatever I want
to use, no standard tools
Turn Inc. Confidential
Tracker – Introduction
• Goal
– Monitoring
– Reporting
– Analytics
9
I want to I have a real-
time display of a given
metric.
I want to raise an alert if
a metric goes over a
defined limit.
I want to know what is the
impact of the new hardware
on the application
performances.
I want to know the usage
of the application hour
per hour.
I want to be able to know
what are the most costly
points in a given function
I want to see the
performances of the SQL
requests for a given table
Turn Inc. Confidential
Tracker – Organization
• Split in three parts:
– Java part
• Get the data
• Save them on mongoDb
– Back-end
• Generate the real-time data
• Query the db
– Display
• Display different views
• Search views
• Monitoring views
10
Turn Inc. Confidential
Tracker – Architecture and technologies
• N-Tiers
• Dependency injection
• Easily maintainable
• Single entry point library
• Not Turn Dependent
11
• Keep it simple, keep it light
– As few dependencies as possible
Architecture Technologies
Turn Inc. Confidential
Tracker – Java
• Annotation
– @Trace annotation
– Tree structure
– Time Related metrics
– Possibilities to retrieve functional
data
– Easy to personalize
• Exceptions
– The exceptions inside a @Trace
annotated function
– Different type of logs
12
• SQL
– Only inside a call to a @Trace
function
– Table name is save
– Parameter of the request are saved.
– Track the JDBC
• Not DB dependent
• Http Response Status
– Saved if the code correspond to an
error.
Turn Inc. Confidential
Tracker – Java – How is it working?
• Base on Aop
– Do something around advised functions
– Build a tree of calls
– Save it to mongo DB,
– Easy to Enable/disable
• Configuration file
• Java agent
13
.class
Class
Loader
Java
agent1
aspectJ
weaver
Java
agent2
BCI .class
Before
After
• What is advised?
- @Trace Functions
- JDBC
- HttpServletResponse
Turn Inc. Confidential
Tracker – Display
• 3 applications
– Browser Application
– Basic back-end
• Socket.io
• REST
• Non-real-time data
– Generic Request Maker
• Real-time data
14
Browser
App
Basic
Back-end
Generic
request
Maker
Turn Inc. Confidential
Tracker – Display – Generic request maker – 1
• Why?
– Generic way to retrieve, emit, save real-time data
– Fun to do
– Db performance efficient
• Request only done once
• Principles
– Node.js based application
– JavaScript configuration (not JSON!)
– Socket.io endpoint
– Run some requests each and every X seconds and do specific actions with the
result
15
Turn Inc. Confidential
Tracker – Display – Generic request maker – 2
• Configuration
– end-points
– Connection to mongoDB
– Query
16
Turn Inc. Confidential
Tracker – Display – Generic request maker – 3
• What are the request?
– Aggregation only
• What can you define?
– $match (condition)
– $group (aggregation)
– $order (try to guess)
– $limit (try to guess)
• What happens if it is not
defined?
– It is not in the query
• Why aggregation
– You can do everything with it
17
$match
• Apply the condition(s)
$group
• Aggregate the result
$order
• Order the result
$limit
• Limit the size of the result
set
Query Pipeline
Turn Inc. Confidential
Tracker – Display – Generic request maker – 4
18
Turn Inc. Confidential
Tracker – Display – Browser application – 1
19
Data Driven SVG
Generator
Better Code
Organization
Animations
Easier CSS
Compatibility
+ ~ ?
Turn Inc. Confidential
Tracker – Display – Browser application – 2
• Monitoring
– Real Time
– Line-graph
– Alert Buttons
– Tree-view
– Add a new line graph or alert button
• New configuration in the generic request
maker
• ~ 15-20 lines of code
20
Functionalities
• Searching
– SQL Search
• By table Name
• Display List of request
– Function Search
• Help for the developers
• Profiling
• Performance info
– JavaScript Information
• Exploration of the user actions
Turn Inc. Confidential
Tracker – Display – Browser application – 3
21
Turn Inc. Confidential
Tracker – Conclusion
• Current problems
– MongoDb performances
– Lack of tests for the JavaScript part
• Not integrated yet
• Possible improvement
– More generic search
– Enrich the info get through the annotation
– Set up more functional related Visual elements
– More endpoints for the generic request maker (Mail for example)
22
Turn Inc. Confidential
Hack@turn - presentation
• 24 hours rush
• In the Turn HQ Building
• Project have been improve after
the rush
• Directly business related
• Log analyzer
• 2 different parts
– Java indexer
– Display application
• Presentation of the result to the
entire product team
Turn Inc. Confidential
Hack@turn - Business problematic
Which are the most
viewed page ?
How is page
viewed across
day and week ?
Who are the
main referrers
?
Identify the weak
points and work on
them.
Turn Inc. Confidential
Hack@turn - Implementation
Databas
e Display
D3.js
Display
Implementation
Turn Inc. Confidential
Hack@turn - Details
• Cron task executed once every
day
• Download the logs files from
servers
• “Clean” the logs
• Index them
• Available for display
General workflow Java workflow
Save into elastic search
Bulk insertion
Prepare for save
Not save directly
Mapping between URL and business functionality
Retrieve from a mapping file Generic mark-up parsing
Retrieve missing information
In memory save Save when encounter
Check that the file haven’t been already index
Md5 check
Turn Inc. Confidential
Hack@turn - Results
• Working project
• Used by some Product
Managers
• More functionalities through an
elastic search plugin
27
Turn Inc. Confidential
Internship - Conclusion
• Learn a lot!
– JavaScript
– Css3
– Aop
– Node.js
• New databases exploration
– OpenTsdb
– ElasticSearch
– MongoDb
• Improve skills
– Spring Core
– Spring MVC
– General CS skills
• True conclusion
– Hire by Turn
– Will work in London for 1 year (visa
issue)
– Will come back in the Silicon Valley
– Successful Internship
28
Turn Inc. Confidential 29
Thank you for your attention

Mais conteúdo relacionado

Mais procurados

Introduction into Icinga Web 2
Introduction into Icinga Web 2Introduction into Icinga Web 2
Introduction into Icinga Web 2Icinga
 
Icinga 2011 at OSMC
Icinga 2011 at OSMCIcinga 2011 at OSMC
Icinga 2011 at OSMCIcinga
 
#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode
#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode
#GeodeSummit: Easy Ways to Become a Contributor to Apache GeodePivotalOpenSourceHub
 
Introduction into Icinga
Introduction into IcingaIntroduction into Icinga
Introduction into IcingaIcinga
 
Librecon 2016 bilbao: kappa architecture IoT of the cars
Librecon 2016 bilbao:   kappa architecture IoT of the carsLibrecon 2016 bilbao:   kappa architecture IoT of the cars
Librecon 2016 bilbao: kappa architecture IoT of the carsJuantomás García Molina
 
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...Databricks
 
The Apache Way - Building Open Source Community in China - Luke Han
The Apache Way - Building Open Source Community in China - Luke HanThe Apache Way - Building Open Source Community in China - Luke Han
The Apache Way - Building Open Source Community in China - Luke HanLuke Han
 
Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...
 Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr... Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...
Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...Databricks
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsRandy Shoup
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadAmanda Folson
 
How mentoring can help you start contributing to open source
How mentoring can help you start contributing to open sourceHow mentoring can help you start contributing to open source
How mentoring can help you start contributing to open sourceLuciano Resende
 
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan Volz
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan VolzArchiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan Volz
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan VolzDatabricks
 
Building a Modern Website for Scale (QCon NY 2013)
Building a Modern Website for Scale (QCon NY 2013)Building a Modern Website for Scale (QCon NY 2013)
Building a Modern Website for Scale (QCon NY 2013)Sid Anand
 
Upcoming services in OpenStack
Upcoming services in OpenStackUpcoming services in OpenStack
Upcoming services in OpenStackCisco DevNet
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Fwdays
 
GraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewGraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewNeo4j
 
Back2 basics - A Day In The Life Of An Oracle Analytics Query
Back2 basics - A Day In The Life Of An Oracle Analytics QueryBack2 basics - A Day In The Life Of An Oracle Analytics Query
Back2 basics - A Day In The Life Of An Oracle Analytics QueryChristian Berg
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Sid Anand
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentalsAgileDenver
 
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Databricks
 

Mais procurados (20)

Introduction into Icinga Web 2
Introduction into Icinga Web 2Introduction into Icinga Web 2
Introduction into Icinga Web 2
 
Icinga 2011 at OSMC
Icinga 2011 at OSMCIcinga 2011 at OSMC
Icinga 2011 at OSMC
 
#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode
#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode
#GeodeSummit: Easy Ways to Become a Contributor to Apache Geode
 
Introduction into Icinga
Introduction into IcingaIntroduction into Icinga
Introduction into Icinga
 
Librecon 2016 bilbao: kappa architecture IoT of the cars
Librecon 2016 bilbao:   kappa architecture IoT of the carsLibrecon 2016 bilbao:   kappa architecture IoT of the cars
Librecon 2016 bilbao: kappa architecture IoT of the cars
 
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
SparkOscope: Enabling Apache Spark Optimization through Cross Stack Monitorin...
 
The Apache Way - Building Open Source Community in China - Luke Han
The Apache Way - Building Open Source Community in China - Luke HanThe Apache Way - Building Open Source Community in China - Luke Han
The Apache Way - Building Open Source Community in China - Luke Han
 
Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...
 Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr... Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...
Using Spark-Solr at Scale: Productionizing Spark for Search with Apache Solr...
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel Bad
 
How mentoring can help you start contributing to open source
How mentoring can help you start contributing to open sourceHow mentoring can help you start contributing to open source
How mentoring can help you start contributing to open source
 
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan Volz
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan VolzArchiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan Volz
Archiving, E-Discovery, and Supervision with Spark and Hadoop with Jordan Volz
 
Building a Modern Website for Scale (QCon NY 2013)
Building a Modern Website for Scale (QCon NY 2013)Building a Modern Website for Scale (QCon NY 2013)
Building a Modern Website for Scale (QCon NY 2013)
 
Upcoming services in OpenStack
Upcoming services in OpenStackUpcoming services in OpenStack
Upcoming services in OpenStack
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
 
GraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform OverviewGraphTour - Neo4j Platform Overview
GraphTour - Neo4j Platform Overview
 
Back2 basics - A Day In The Life Of An Oracle Analytics Query
Back2 basics - A Day In The Life Of An Oracle Analytics QueryBack2 basics - A Day In The Life Of An Oracle Analytics Query
Back2 basics - A Day In The Life Of An Oracle Analytics Query
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentals
 
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
 

Semelhante a Epita pres

improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web ApplicationsJohn McCaffrey
 
Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureSARCCOM
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Cultureifnu bima
 
Automated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & BeyondAutomated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & BeyondJeremyOtt5
 
Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Just the Job: Employing Solr for Recruitment Search -Charlie Hull Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Just the Job: Employing Solr for Recruitment Search -Charlie Hull lucenerevolution
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsAchievers Tech
 
Zend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstZend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstClark Everetts
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunk
 
A Designer's Intro to Oracle JET
A Designer's Intro to Oracle JETA Designer's Intro to Oracle JET
A Designer's Intro to Oracle JETLauren Beatty
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation SlideKhairul Filhan
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!Supercharge
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionDaniel Coupal
 
5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software FasterDynatrace
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesTeamstudio
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Jon Peck
 

Semelhante a Epita pres (20)

improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering Culture
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Automated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & BeyondAutomated Data Synchronization: Data Loader, Data Mirror & Beyond
Automated Data Synchronization: Data Loader, Data Mirror & Beyond
 
Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Just the Job: Employing Solr for Recruitment Search -Charlie Hull Just the Job: Employing Solr for Recruitment Search -Charlie Hull
Just the Job: Employing Solr for Recruitment Search -Charlie Hull
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
Zend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-firstZend con what-i-learned-about-mobile-first
Zend con what-i-learned-about-mobile-first
 
SplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.comSplunkLive! Salt Lake City June 2013 - Ancestry.com
SplunkLive! Salt Lake City June 2013 - Ancestry.com
 
Splunk Developer Platform
Splunk Developer PlatformSplunk Developer Platform
Splunk Developer Platform
 
A Designer's Intro to Oracle JET
A Designer's Intro to Oracle JETA Designer's Intro to Oracle JET
A Designer's Intro to Oracle JET
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data Presentation
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation Slide
 
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in production
 
ADF Performance Monitor
ADF Performance MonitorADF Performance Monitor
ADF Performance Monitor
 
5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Epita pres

  • 1. Turn Inc. ConfidentialTurn Inc. Confidential Thursday, September 19, 2013 Turn Tracker Epita’s presentation 1Turn Inc. Confidential 1
  • 2. Turn Inc. Confidential Outline • Internship context – Company – Location • Internship organization • Projects presentation – Turn tracker – Hack@Turn project 2
  • 3. Turn Inc. Confidential Internship Context – Company • Company name: Turn Inc • Founded in 2006 • Based in Redwood City, CA • Fastest growing software company in Silicon Valley in 2012 (Deloitte) • Manage between 800k and 1M bid opportunities per second • Now around 300 employees 3
  • 4. Turn Inc. Confidential Internship Context – Working at Turn • Lunch deliver • Many offsite events • Human scale engineer team • Knowledge sharing culture • Weekly company information update 4
  • 5. Turn Inc. Confidential Internship Context – Location • Company location: In the heart of the Silicon Valley • Live in San Francisco • Huge French community • Join while42, a group of former Epita/Epitech students – Monthly meeting in a San Francisco start-up • Beneficial environment for a software Engineer 5
  • 6. Turn Inc. Confidential Company presentation – Business • Turn: Online Advertisement Company • Specialize in RTB (Real Time Bidding) • Main strength: offering both a DSP (Demand Side Platform) and a DMP (Data Management Platform) • Multi Channel – Display – Mobile – Video – Social (Facebook) • Two Main Product – Audience Suite (DMP) – Campaign Suite (DSP) 6
  • 7. Turn Inc. Confidential Company presentation – Organization 7 Engineer teams Project Manageme nt Product Manageme nt Q&A Define the product Define tasksRealize technical tasks Realize Verification tasks
  • 8. Turn Inc. Confidential Company presentation – Communication and hardware provided • Monthly Company Meeting – General update on the company • New Clients • Financial updates • Engineering updates • Product update • New hired presentation • Weekly engineer meeting – Questions and answers • Weekly team meeting – Update on the team organization 8 • Personal hardware – Laptop (MacBook pro) – Desktop – Dual screen • Company hardware and software – Dev environment – Staging, mirror and production environment – Project Management tool: Jira – Knowledge sharing: Intranet – Code quality: Crucible – Development tools: Whatever I want to use, no standard tools
  • 9. Turn Inc. Confidential Tracker – Introduction • Goal – Monitoring – Reporting – Analytics 9 I want to I have a real- time display of a given metric. I want to raise an alert if a metric goes over a defined limit. I want to know what is the impact of the new hardware on the application performances. I want to know the usage of the application hour per hour. I want to be able to know what are the most costly points in a given function I want to see the performances of the SQL requests for a given table
  • 10. Turn Inc. Confidential Tracker – Organization • Split in three parts: – Java part • Get the data • Save them on mongoDb – Back-end • Generate the real-time data • Query the db – Display • Display different views • Search views • Monitoring views 10
  • 11. Turn Inc. Confidential Tracker – Architecture and technologies • N-Tiers • Dependency injection • Easily maintainable • Single entry point library • Not Turn Dependent 11 • Keep it simple, keep it light – As few dependencies as possible Architecture Technologies
  • 12. Turn Inc. Confidential Tracker – Java • Annotation – @Trace annotation – Tree structure – Time Related metrics – Possibilities to retrieve functional data – Easy to personalize • Exceptions – The exceptions inside a @Trace annotated function – Different type of logs 12 • SQL – Only inside a call to a @Trace function – Table name is save – Parameter of the request are saved. – Track the JDBC • Not DB dependent • Http Response Status – Saved if the code correspond to an error.
  • 13. Turn Inc. Confidential Tracker – Java – How is it working? • Base on Aop – Do something around advised functions – Build a tree of calls – Save it to mongo DB, – Easy to Enable/disable • Configuration file • Java agent 13 .class Class Loader Java agent1 aspectJ weaver Java agent2 BCI .class Before After • What is advised? - @Trace Functions - JDBC - HttpServletResponse
  • 14. Turn Inc. Confidential Tracker – Display • 3 applications – Browser Application – Basic back-end • Socket.io • REST • Non-real-time data – Generic Request Maker • Real-time data 14 Browser App Basic Back-end Generic request Maker
  • 15. Turn Inc. Confidential Tracker – Display – Generic request maker – 1 • Why? – Generic way to retrieve, emit, save real-time data – Fun to do – Db performance efficient • Request only done once • Principles – Node.js based application – JavaScript configuration (not JSON!) – Socket.io endpoint – Run some requests each and every X seconds and do specific actions with the result 15
  • 16. Turn Inc. Confidential Tracker – Display – Generic request maker – 2 • Configuration – end-points – Connection to mongoDB – Query 16
  • 17. Turn Inc. Confidential Tracker – Display – Generic request maker – 3 • What are the request? – Aggregation only • What can you define? – $match (condition) – $group (aggregation) – $order (try to guess) – $limit (try to guess) • What happens if it is not defined? – It is not in the query • Why aggregation – You can do everything with it 17 $match • Apply the condition(s) $group • Aggregate the result $order • Order the result $limit • Limit the size of the result set Query Pipeline
  • 18. Turn Inc. Confidential Tracker – Display – Generic request maker – 4 18
  • 19. Turn Inc. Confidential Tracker – Display – Browser application – 1 19 Data Driven SVG Generator Better Code Organization Animations Easier CSS Compatibility + ~ ?
  • 20. Turn Inc. Confidential Tracker – Display – Browser application – 2 • Monitoring – Real Time – Line-graph – Alert Buttons – Tree-view – Add a new line graph or alert button • New configuration in the generic request maker • ~ 15-20 lines of code 20 Functionalities • Searching – SQL Search • By table Name • Display List of request – Function Search • Help for the developers • Profiling • Performance info – JavaScript Information • Exploration of the user actions
  • 21. Turn Inc. Confidential Tracker – Display – Browser application – 3 21
  • 22. Turn Inc. Confidential Tracker – Conclusion • Current problems – MongoDb performances – Lack of tests for the JavaScript part • Not integrated yet • Possible improvement – More generic search – Enrich the info get through the annotation – Set up more functional related Visual elements – More endpoints for the generic request maker (Mail for example) 22
  • 23. Turn Inc. Confidential Hack@turn - presentation • 24 hours rush • In the Turn HQ Building • Project have been improve after the rush • Directly business related • Log analyzer • 2 different parts – Java indexer – Display application • Presentation of the result to the entire product team
  • 24. Turn Inc. Confidential Hack@turn - Business problematic Which are the most viewed page ? How is page viewed across day and week ? Who are the main referrers ? Identify the weak points and work on them.
  • 25. Turn Inc. Confidential Hack@turn - Implementation Databas e Display D3.js Display Implementation
  • 26. Turn Inc. Confidential Hack@turn - Details • Cron task executed once every day • Download the logs files from servers • “Clean” the logs • Index them • Available for display General workflow Java workflow Save into elastic search Bulk insertion Prepare for save Not save directly Mapping between URL and business functionality Retrieve from a mapping file Generic mark-up parsing Retrieve missing information In memory save Save when encounter Check that the file haven’t been already index Md5 check
  • 27. Turn Inc. Confidential Hack@turn - Results • Working project • Used by some Product Managers • More functionalities through an elastic search plugin 27
  • 28. Turn Inc. Confidential Internship - Conclusion • Learn a lot! – JavaScript – Css3 – Aop – Node.js • New databases exploration – OpenTsdb – ElasticSearch – MongoDb • Improve skills – Spring Core – Spring MVC – General CS skills • True conclusion – Hire by Turn – Will work in London for 1 year (visa issue) – Will come back in the Silicon Valley – Successful Internship 28
  • 29. Turn Inc. Confidential 29 Thank you for your attention