SlideShare ist ein Scribd-Unternehmen logo
1 von 18
The Evolution of a Scrappy Startup to a Successful Web Service PoornimaVijayashanker – Software Engineer November 7, 2008
What is Mint.com?  My Bio Came up with the name and the second employee Getting Mint.com off the ground Used open source tools: Eclipse, mySQL, Apache Tomcat No prior experience at a startup or in web services Mint.com today
Creating a prototype Prototype:  a rudimentary working model of a product or information system, build for demonstration purposes or as part of the development process.
What doesn’t belong in a prototype? 	 Don’t waste time spec’ing out a complete feature set “Everyone by now presumably knows about the danger of premature optimization. I think we should be just as worried about premature design - designing too early what a program should do. “  ,[object Object],Mint.com’s mission statement: “Do more with your money.” Aggregate checking, savings, and credit card accounts Show balances  Auto-categorize transactions
What does belong in a prototype. Started small by focusing on features that differentiated our product Focus on solving critical user problems.  Engineering problems arise from their solutions. e.g. Financial data is a sensitive matter, needed a good security model. Handle concurrency amongst our 100+ users, and making sure we were encrypting stored data.  Bare-bones implementation for algorithms is sufficient.  Don’t get tied down to any one particular solution.  Refine in subsequent releases and based on product specifications. Simple unit test framework, no system tests; focus was to get the product out there and have real users test it with real data!
What did our application server look like?  Single Server Web layer and analysis engine, wired together using RMI.   UI -> Business Logic -> Data processing engines Single data base that consisted of less than 50 tables
What did our code base look like?  A few key choices during prototyping molded our software’s architecture, and affected the longevity of our code base   e.g.  Choice in messaging system: JMS, RMI, or none Re-factored code into logical modules to avoid spaghetti code, a task that would have been much harder to do later on, especially with a growing team and code base.
Web Application to Web Service Prototype -> Product likened to Web Application to Web Service.  Application is a point tool used to complete a simple tasks Web services is more than features Goal is to create a product with growing user base you have to broaden thinking from features to logistics  
Prime mover of Software’s Architecture User Growth Rate To solve the business problem of becoming profitable you have to grow the user base    More users -> Growing Pains Need to be addressed in a timely manner in order to continue to grow and keep the existing users happy.
Computer Architecture 101 Latency: a reasonable response time Throughput: satisfying many requests without compromising latency Quality:  accurate data and reliable service Address points of failure
How do you achieve each? Latency: affected by amount of data that needs to be retrieved, in order to satisfy the incoming requests.  e.g. computed data and persisted to db, as users increased reading/writing to the db took forever.   Switched to loading user data into a cache upon login and then computing.  
Throughput: handle multiple requests/processes Separate into code into tiers (UI, web, business/service logic, DAO, db) in parallel data processing/retrieving tier  Separate data engine from web engine  One server for handling data processing One server to process user requests and serve user pages Tune each server based on its needs (web vs. analysis)
Quality: low bug count, which is directly proportional to incoming number of customer service requests Testing (unit, load, and system) Beware of the vocal minority, by measuring the number of users impacted by a bug.
Optimization: improving performance of code at runtime in order to satisfy latency and throughput requirements.  “…premature optimization is the root of all evil." – Donald Knuth
How to Measure Created internal tools to measure the performance of our code base, which helps figure out where to optimize. Product will continue to evolve in approximately 6 month cycles.  Don't waste time optimizing everything, or before you see a demand for a feature.  Remember its a startup; resources are scarce and time is critical.
What to measure How quickly a data set is going to grow when designing tables, foreign key associations, retrieving data, and frequency with which data is accessed Sharding: break up a large database into smaller pieces that contains redundant information or a parent db can map data to separate dbs. Implementation was based on user id lookup Easy to shard because we were dealing with financial data that is restricted to a single person, each user and their data was limited to a single shard, unless services like Twitter or Facebook that have lots of interactions amongst users
Review Decisions We didn’t cache user data from the start because synchronizing data across nodes was difficult and had no mechanism for centralized locking, but once this was put in place we switched to loading data on demand We didn't shard databases from the start because of overhead and more impending issues. In the future we might only show most recent data instead of all data).
Summary	 Prototype with limited features Addressing CS 101 Basics: Latency, Throughput, and Quality Making architectural decisions based on the time frame Measure and Optimize that which is critical Check it out: www.mint.com My blog: www.femgineer.com

Weitere ähnliche Inhalte

Was ist angesagt?

High Tempo Testing - Building a Scalable Growth Process
High Tempo Testing - Building a Scalable Growth ProcessHigh Tempo Testing - Building a Scalable Growth Process
High Tempo Testing - Building a Scalable Growth ProcessMorgan Brown
 
Little Steps to BIG Data
Little Steps to BIG DataLittle Steps to BIG Data
Little Steps to BIG DataAptera Inc
 
Building Fast Growth Into Your Products Using Data-Informed Design
Building Fast Growth Into Your Products Using Data-Informed DesignBuilding Fast Growth Into Your Products Using Data-Informed Design
Building Fast Growth Into Your Products Using Data-Informed DesignAtlassian
 
Organization, Architecture, Autonomy, and Accountability
Organization, Architecture, Autonomy, and AccountabilityOrganization, Architecture, Autonomy, and Accountability
Organization, Architecture, Autonomy, and AccountabilityKevin Goldsmith
 
GoDataDriven Giovanni Lanzani
GoDataDriven Giovanni LanzaniGoDataDriven Giovanni Lanzani
GoDataDriven Giovanni LanzaniTalentEvent
 
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban Program
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban ProgramSpitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban Program
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban ProgramMike Byrne
 
A Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiA Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiAgileSparks
 
How Data Science Builds Better Products - Data Science Pop-up Seattle
How Data Science Builds Better Products - Data Science Pop-up SeattleHow Data Science Builds Better Products - Data Science Pop-up Seattle
How Data Science Builds Better Products - Data Science Pop-up SeattleDomino Data Lab
 
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016Business of Software Conference
 
So you want to do a Big Data project?
So you want to do a Big Data project?So you want to do a Big Data project?
So you want to do a Big Data project?Instanssi Oy
 
Fabric case zero-presentation
Fabric case zero-presentationFabric case zero-presentation
Fabric case zero-presentationErlend Wilhelmsen
 
Blockchain CIO City 2017 update - Sander van Loosbroek | Cegeka
Blockchain CIO City 2017 update - Sander van Loosbroek | CegekaBlockchain CIO City 2017 update - Sander van Loosbroek | Cegeka
Blockchain CIO City 2017 update - Sander van Loosbroek | CegekaCegeka
 
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...Business of Software Conference
 
Innovation accounting at BackupAgent v2
Innovation accounting at BackupAgent v2Innovation accounting at BackupAgent v2
Innovation accounting at BackupAgent v2Firmhouse
 
Tell Your Story Product Camp
Tell Your Story Product CampTell Your Story Product Camp
Tell Your Story Product CampKen Rutsky
 
Farm sense e245 march 2014 final
Farm sense e245 march 2014 finalFarm sense e245 march 2014 final
Farm sense e245 march 2014 finalStanford University
 
Lean startup 101 - Firmhouse
Lean startup 101 - FirmhouseLean startup 101 - Firmhouse
Lean startup 101 - FirmhouseFirmhouse
 

Was ist angesagt? (20)

High Tempo Testing - Building a Scalable Growth Process
High Tempo Testing - Building a Scalable Growth ProcessHigh Tempo Testing - Building a Scalable Growth Process
High Tempo Testing - Building a Scalable Growth Process
 
Little Steps to BIG Data
Little Steps to BIG DataLittle Steps to BIG Data
Little Steps to BIG Data
 
Building Fast Growth Into Your Products Using Data-Informed Design
Building Fast Growth Into Your Products Using Data-Informed DesignBuilding Fast Growth Into Your Products Using Data-Informed Design
Building Fast Growth Into Your Products Using Data-Informed Design
 
Organization, Architecture, Autonomy, and Accountability
Organization, Architecture, Autonomy, and AccountabilityOrganization, Architecture, Autonomy, and Accountability
Organization, Architecture, Autonomy, and Accountability
 
GoDataDriven Giovanni Lanzani
GoDataDriven Giovanni LanzaniGoDataDriven Giovanni Lanzani
GoDataDriven Giovanni Lanzani
 
Games vs money
Games vs moneyGames vs money
Games vs money
 
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban Program
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban ProgramSpitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban Program
Spitfire Group 2014 Mile High Agile Tips for Timeboxed Kanban Program
 
Agile Analytics
Agile AnalyticsAgile Analytics
Agile Analytics
 
A Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiA Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi Gostynski
 
How Data Science Builds Better Products - Data Science Pop-up Seattle
How Data Science Builds Better Products - Data Science Pop-up SeattleHow Data Science Builds Better Products - Data Science Pop-up Seattle
How Data Science Builds Better Products - Data Science Pop-up Seattle
 
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016
Zack Urlocker, Scaling to a Billion and Beyond, BoS USA 2016
 
Just the Facts: PandaDoc vs. DocuSign
Just the Facts: PandaDoc vs. DocuSignJust the Facts: PandaDoc vs. DocuSign
Just the Facts: PandaDoc vs. DocuSign
 
So you want to do a Big Data project?
So you want to do a Big Data project?So you want to do a Big Data project?
So you want to do a Big Data project?
 
Fabric case zero-presentation
Fabric case zero-presentationFabric case zero-presentation
Fabric case zero-presentation
 
Blockchain CIO City 2017 update - Sander van Loosbroek | Cegeka
Blockchain CIO City 2017 update - Sander van Loosbroek | CegekaBlockchain CIO City 2017 update - Sander van Loosbroek | Cegeka
Blockchain CIO City 2017 update - Sander van Loosbroek | Cegeka
 
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...
Rob Castaneda, Some Things Great Software Companies Do That You Don't Have To...
 
Innovation accounting at BackupAgent v2
Innovation accounting at BackupAgent v2Innovation accounting at BackupAgent v2
Innovation accounting at BackupAgent v2
 
Tell Your Story Product Camp
Tell Your Story Product CampTell Your Story Product Camp
Tell Your Story Product Camp
 
Farm sense e245 march 2014 final
Farm sense e245 march 2014 finalFarm sense e245 march 2014 final
Farm sense e245 march 2014 final
 
Lean startup 101 - Firmhouse
Lean startup 101 - FirmhouseLean startup 101 - Firmhouse
Lean startup 101 - Firmhouse
 

Andere mochten auch

Finding a Fit: How to Evaluate a Company's Culture and the Opportunity
Finding a Fit: How to Evaluate a Company's Culture and the OpportunityFinding a Fit: How to Evaluate a Company's Culture and the Opportunity
Finding a Fit: How to Evaluate a Company's Culture and the OpportunityPoornima Vijayashanker
 
Recruiting Technical Talent for Early Stage Startups
Recruiting Technical Talent for Early Stage StartupsRecruiting Technical Talent for Early Stage Startups
Recruiting Technical Talent for Early Stage StartupsPoornima Vijayashanker
 
Building Your Street Cred, Femgineer Forum Oct 22 2013
Building Your Street Cred, Femgineer Forum Oct 22 2013Building Your Street Cred, Femgineer Forum Oct 22 2013
Building Your Street Cred, Femgineer Forum Oct 22 2013Karen Catlin
 
Femgineer Forum: Fostering a Female Friendly Company
Femgineer Forum: Fostering a Female Friendly CompanyFemgineer Forum: Fostering a Female Friendly Company
Femgineer Forum: Fostering a Female Friendly CompanyPoornima Vijayashanker
 
How a Team Can Make or Break a Startup
How a Team Can Make or Break a StartupHow a Team Can Make or Break a Startup
How a Team Can Make or Break a StartupPoornima Vijayashanker
 
How to Evaluate Your Technical Career Track
How to Evaluate Your Technical Career TrackHow to Evaluate Your Technical Career Track
How to Evaluate Your Technical Career TrackPoornima Vijayashanker
 
Why You Should Speak at Technical Conferences
Why You Should Speak at Technical ConferencesWhy You Should Speak at Technical Conferences
Why You Should Speak at Technical ConferencesPoornima Vijayashanker
 
Why you should speak at technical conferences
Why you should speak at technical conferencesWhy you should speak at technical conferences
Why you should speak at technical conferencesPoornima Vijayashanker
 
How to Get Buy-In and Deal with Push Back
How to Get Buy-In and Deal with Push BackHow to Get Buy-In and Deal with Push Back
How to Get Buy-In and Deal with Push BackPoornima Vijayashanker
 
Femgineer forum overcoming insecurities to innovate
Femgineer forum overcoming insecurities to innovateFemgineer forum overcoming insecurities to innovate
Femgineer forum overcoming insecurities to innovatePoornima Vijayashanker
 
Femgineer Forum Learning to be a Leading Lady in Tech
Femgineer Forum Learning to be a Leading Lady in TechFemgineer Forum Learning to be a Leading Lady in Tech
Femgineer Forum Learning to be a Leading Lady in TechPoornima Vijayashanker
 
Femgineer Forum on Compelling Communication
Femgineer Forum on  Compelling CommunicationFemgineer Forum on  Compelling Communication
Femgineer Forum on Compelling CommunicationPoornima Vijayashanker
 
How to PItch Projects & Get them Funded
How to PItch Projects & Get them FundedHow to PItch Projects & Get them Funded
How to PItch Projects & Get them FundedPoornima Vijayashanker
 

Andere mochten auch (20)

Finding a Fit: How to Evaluate a Company's Culture and the Opportunity
Finding a Fit: How to Evaluate a Company's Culture and the OpportunityFinding a Fit: How to Evaluate a Company's Culture and the Opportunity
Finding a Fit: How to Evaluate a Company's Culture and the Opportunity
 
Recruiting Technical Talent for Early Stage Startups
Recruiting Technical Talent for Early Stage StartupsRecruiting Technical Talent for Early Stage Startups
Recruiting Technical Talent for Early Stage Startups
 
Building Your Street Cred, Femgineer Forum Oct 22 2013
Building Your Street Cred, Femgineer Forum Oct 22 2013Building Your Street Cred, Femgineer Forum Oct 22 2013
Building Your Street Cred, Femgineer Forum Oct 22 2013
 
Turn Signups into Sales
Turn Signups into SalesTurn Signups into Sales
Turn Signups into Sales
 
Femgineer Forum: Fostering a Female Friendly Company
Femgineer Forum: Fostering a Female Friendly CompanyFemgineer Forum: Fostering a Female Friendly Company
Femgineer Forum: Fostering a Female Friendly Company
 
How to Prepare for a Promotion
How to Prepare for a PromotionHow to Prepare for a Promotion
How to Prepare for a Promotion
 
How a Team Can Make or Break a Startup
How a Team Can Make or Break a StartupHow a Team Can Make or Break a Startup
How a Team Can Make or Break a Startup
 
How to Evaluate Your Technical Career Track
How to Evaluate Your Technical Career TrackHow to Evaluate Your Technical Career Track
How to Evaluate Your Technical Career Track
 
Femgineer Forum Staying Technical
Femgineer Forum Staying TechnicalFemgineer Forum Staying Technical
Femgineer Forum Staying Technical
 
Why You Should Speak at Technical Conferences
Why You Should Speak at Technical ConferencesWhy You Should Speak at Technical Conferences
Why You Should Speak at Technical Conferences
 
Why you should speak at technical conferences
Why you should speak at technical conferencesWhy you should speak at technical conferences
Why you should speak at technical conferences
 
Will it Launch?
Will it Launch? Will it Launch?
Will it Launch?
 
How to Get Buy-In and Deal with Push Back
How to Get Buy-In and Deal with Push BackHow to Get Buy-In and Deal with Push Back
How to Get Buy-In and Deal with Push Back
 
Femgineer forum overcoming insecurities to innovate
Femgineer forum overcoming insecurities to innovateFemgineer forum overcoming insecurities to innovate
Femgineer forum overcoming insecurities to innovate
 
Femgineer Forum on Changing Roles
Femgineer Forum on Changing RolesFemgineer Forum on Changing Roles
Femgineer Forum on Changing Roles
 
Femgineer Forum Learning to be a Leading Lady in Tech
Femgineer Forum Learning to be a Leading Lady in TechFemgineer Forum Learning to be a Leading Lady in Tech
Femgineer Forum Learning to be a Leading Lady in Tech
 
Femgineer Forum on Compelling Communication
Femgineer Forum on  Compelling CommunicationFemgineer Forum on  Compelling Communication
Femgineer Forum on Compelling Communication
 
First Steps for Founders
First Steps for FoundersFirst Steps for Founders
First Steps for Founders
 
How to PItch Projects & Get them Funded
How to PItch Projects & Get them FundedHow to PItch Projects & Get them Funded
How to PItch Projects & Get them Funded
 
Git on Tracker & Ride the Rails
Git on Tracker & Ride the RailsGit on Tracker & Ride the Rails
Git on Tracker & Ride the Rails
 

Ähnlich wie The Evolution of a Scrappy Startup to a Successful Web Service

Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationCodemotion
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB
 
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida  Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida CLARA CAMPROVIN
 
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...InfluxData
 
Hot Technologies of 2013: Investigative Analytics
Hot Technologies of 2013: Investigative AnalyticsHot Technologies of 2013: Investigative Analytics
Hot Technologies of 2013: Investigative AnalyticsInside Analysis
 
Livebase: a database for the web 2.0
Livebase: a database for the web 2.0Livebase: a database for the web 2.0
Livebase: a database for the web 2.0Antonio Leonforte
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Pythondidip
 
Take Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessTake Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessInside Analysis
 
load speed problems of web resources on the client side classification and ...
 load speed problems of web resources on the client side  classification and ... load speed problems of web resources on the client side  classification and ...
load speed problems of web resources on the client side classification and ...INFOGAIN PUBLICATION
 
Solving 21st Century App Performance Problems Without 21 People
Solving 21st Century App Performance Problems Without 21 PeopleSolving 21st Century App Performance Problems Without 21 People
Solving 21st Century App Performance Problems Without 21 PeopleDynatrace
 
Big Data Paris - A Modern Enterprise Architecture
Big Data Paris - A Modern Enterprise ArchitectureBig Data Paris - A Modern Enterprise Architecture
Big Data Paris - A Modern Enterprise ArchitectureMongoDB
 
FirstEigen Brochure- All clouds.pdf
FirstEigen Brochure- All clouds.pdfFirstEigen Brochure- All clouds.pdf
FirstEigen Brochure- All clouds.pdfarifulislam946965
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Brandon Watson
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading StrategiesMongoDB
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramchandra Reddy
 
Amplitude wave architecture - Test
Amplitude wave architecture - TestAmplitude wave architecture - Test
Amplitude wave architecture - TestKiran Naiga
 

Ähnlich wie The Evolution of a Scrappy Startup to a Successful Web Service (20)

Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generation
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe World
 
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida  Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida
Jet Reports es la herramienta para construir el mejor BI y de forma mas rapida
 
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
 
Hot Technologies of 2013: Investigative Analytics
Hot Technologies of 2013: Investigative AnalyticsHot Technologies of 2013: Investigative Analytics
Hot Technologies of 2013: Investigative Analytics
 
Livebase: a database for the web 2.0
Livebase: a database for the web 2.0Livebase: a database for the web 2.0
Livebase: a database for the web 2.0
 
Os Solomon
Os SolomonOs Solomon
Os Solomon
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 
Take Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessTake Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven Business
 
load speed problems of web resources on the client side classification and ...
 load speed problems of web resources on the client side  classification and ... load speed problems of web resources on the client side  classification and ...
load speed problems of web resources on the client side classification and ...
 
ASSIGNMENT
ASSIGNMENT ASSIGNMENT
ASSIGNMENT
 
Solving 21st Century App Performance Problems Without 21 People
Solving 21st Century App Performance Problems Without 21 PeopleSolving 21st Century App Performance Problems Without 21 People
Solving 21st Century App Performance Problems Without 21 People
 
Isset Presentation @ EECI2009
Isset Presentation @ EECI2009Isset Presentation @ EECI2009
Isset Presentation @ EECI2009
 
Big Data Paris - A Modern Enterprise Architecture
Big Data Paris - A Modern Enterprise ArchitectureBig Data Paris - A Modern Enterprise Architecture
Big Data Paris - A Modern Enterprise Architecture
 
FirstEigen Brochure- All clouds.pdf
FirstEigen Brochure- All clouds.pdfFirstEigen Brochure- All clouds.pdf
FirstEigen Brochure- All clouds.pdf
 
Project report
Project report Project report
Project report
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading Strategies
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015
 
Amplitude wave architecture - Test
Amplitude wave architecture - TestAmplitude wave architecture - Test
Amplitude wave architecture - Test
 

Mehr von Poornima Vijayashanker

Speak up & present! Because your work cant' speak for itself
Speak up & present! Because your work cant' speak for itselfSpeak up & present! Because your work cant' speak for itself
Speak up & present! Because your work cant' speak for itselfPoornima Vijayashanker
 
Myths to Overcome to Go from Idea to a Global Product
Myths to Overcome to Go from Idea to a Global ProductMyths to Overcome to Go from Idea to a Global Product
Myths to Overcome to Go from Idea to a Global ProductPoornima Vijayashanker
 
How to Build a Sales Pipeline With Customers You Can Close
How to Build a Sales Pipeline With Customers You Can CloseHow to Build a Sales Pipeline With Customers You Can Close
How to Build a Sales Pipeline With Customers You Can ClosePoornima Vijayashanker
 
Lecture 12: Customer Creation - Part II
Lecture 12: Customer Creation - Part IILecture 12: Customer Creation - Part II
Lecture 12: Customer Creation - Part IIPoornima Vijayashanker
 
Lecture 11: Customer Creation - Part I
Lecture 11: Customer Creation - Part ILecture 11: Customer Creation - Part I
Lecture 11: Customer Creation - Part IPoornima Vijayashanker
 
Lecture 6: Team Management for Startups
Lecture 6: Team Management for StartupsLecture 6: Team Management for Startups
Lecture 6: Team Management for StartupsPoornima Vijayashanker
 
Lecture 8: Market Research Techniques - Part 2
Lecture 8: Market Research Techniques - Part 2Lecture 8: Market Research Techniques - Part 2
Lecture 8: Market Research Techniques - Part 2Poornima Vijayashanker
 
Lecture 7: Market Research Techniques - Part 1
Lecture 7: Market Research Techniques - Part 1Lecture 7: Market Research Techniques - Part 1
Lecture 7: Market Research Techniques - Part 1Poornima Vijayashanker
 

Mehr von Poornima Vijayashanker (18)

Speak up & present! Because your work cant' speak for itself
Speak up & present! Because your work cant' speak for itselfSpeak up & present! Because your work cant' speak for itself
Speak up & present! Because your work cant' speak for itself
 
Myths to Overcome to Go from Idea to a Global Product
Myths to Overcome to Go from Idea to a Global ProductMyths to Overcome to Go from Idea to a Global Product
Myths to Overcome to Go from Idea to a Global Product
 
The Future of FinTech
The Future of FinTechThe Future of FinTech
The Future of FinTech
 
How to Build a Sales Pipeline With Customers You Can Close
How to Build a Sales Pipeline With Customers You Can CloseHow to Build a Sales Pipeline With Customers You Can Close
How to Build a Sales Pipeline With Customers You Can Close
 
Metrics that Matter
Metrics that MatterMetrics that Matter
Metrics that Matter
 
Taking the Time to Tinker
Taking the Time to TinkerTaking the Time to Tinker
Taking the Time to Tinker
 
Metrics that Matter
Metrics that MatterMetrics that Matter
Metrics that Matter
 
Lecture 15: Product Marketing
Lecture 15: Product MarketingLecture 15: Product Marketing
Lecture 15: Product Marketing
 
Lecture 14: Product Management
Lecture 14: Product ManagementLecture 14: Product Management
Lecture 14: Product Management
 
Lecture 13: Product Development
Lecture 13: Product DevelopmentLecture 13: Product Development
Lecture 13: Product Development
 
Lecture 12: Customer Creation - Part II
Lecture 12: Customer Creation - Part IILecture 12: Customer Creation - Part II
Lecture 12: Customer Creation - Part II
 
Lecture 11: Customer Creation - Part I
Lecture 11: Customer Creation - Part ILecture 11: Customer Creation - Part I
Lecture 11: Customer Creation - Part I
 
Lecture 10: Customer Development
Lecture 10: Customer DevelopmentLecture 10: Customer Development
Lecture 10: Customer Development
 
Lecture 9: Customer Discovery
Lecture 9: Customer DiscoveryLecture 9: Customer Discovery
Lecture 9: Customer Discovery
 
Lecture 6: Team Management for Startups
Lecture 6: Team Management for StartupsLecture 6: Team Management for Startups
Lecture 6: Team Management for Startups
 
Lecture 8: Market Research Techniques - Part 2
Lecture 8: Market Research Techniques - Part 2Lecture 8: Market Research Techniques - Part 2
Lecture 8: Market Research Techniques - Part 2
 
Lecture 7: Market Research Techniques - Part 1
Lecture 7: Market Research Techniques - Part 1Lecture 7: Market Research Techniques - Part 1
Lecture 7: Market Research Techniques - Part 1
 
Lecture 5: Structuring a Corporation
Lecture 5: Structuring a CorporationLecture 5: Structuring a Corporation
Lecture 5: Structuring a Corporation
 

Kürzlich hochgeladen

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Kürzlich hochgeladen (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

The Evolution of a Scrappy Startup to a Successful Web Service

  • 1. The Evolution of a Scrappy Startup to a Successful Web Service PoornimaVijayashanker – Software Engineer November 7, 2008
  • 2. What is Mint.com? My Bio Came up with the name and the second employee Getting Mint.com off the ground Used open source tools: Eclipse, mySQL, Apache Tomcat No prior experience at a startup or in web services Mint.com today
  • 3. Creating a prototype Prototype: a rudimentary working model of a product or information system, build for demonstration purposes or as part of the development process.
  • 4.
  • 5. What does belong in a prototype. Started small by focusing on features that differentiated our product Focus on solving critical user problems. Engineering problems arise from their solutions. e.g. Financial data is a sensitive matter, needed a good security model. Handle concurrency amongst our 100+ users, and making sure we were encrypting stored data.  Bare-bones implementation for algorithms is sufficient. Don’t get tied down to any one particular solution. Refine in subsequent releases and based on product specifications. Simple unit test framework, no system tests; focus was to get the product out there and have real users test it with real data!
  • 6. What did our application server look like? Single Server Web layer and analysis engine, wired together using RMI. UI -> Business Logic -> Data processing engines Single data base that consisted of less than 50 tables
  • 7. What did our code base look like? A few key choices during prototyping molded our software’s architecture, and affected the longevity of our code base e.g. Choice in messaging system: JMS, RMI, or none Re-factored code into logical modules to avoid spaghetti code, a task that would have been much harder to do later on, especially with a growing team and code base.
  • 8. Web Application to Web Service Prototype -> Product likened to Web Application to Web Service. Application is a point tool used to complete a simple tasks Web services is more than features Goal is to create a product with growing user base you have to broaden thinking from features to logistics  
  • 9. Prime mover of Software’s Architecture User Growth Rate To solve the business problem of becoming profitable you have to grow the user base More users -> Growing Pains Need to be addressed in a timely manner in order to continue to grow and keep the existing users happy.
  • 10. Computer Architecture 101 Latency: a reasonable response time Throughput: satisfying many requests without compromising latency Quality: accurate data and reliable service Address points of failure
  • 11. How do you achieve each? Latency: affected by amount of data that needs to be retrieved, in order to satisfy the incoming requests. e.g. computed data and persisted to db, as users increased reading/writing to the db took forever. Switched to loading user data into a cache upon login and then computing.  
  • 12. Throughput: handle multiple requests/processes Separate into code into tiers (UI, web, business/service logic, DAO, db) in parallel data processing/retrieving tier Separate data engine from web engine One server for handling data processing One server to process user requests and serve user pages Tune each server based on its needs (web vs. analysis)
  • 13. Quality: low bug count, which is directly proportional to incoming number of customer service requests Testing (unit, load, and system) Beware of the vocal minority, by measuring the number of users impacted by a bug.
  • 14. Optimization: improving performance of code at runtime in order to satisfy latency and throughput requirements.  “…premature optimization is the root of all evil." – Donald Knuth
  • 15. How to Measure Created internal tools to measure the performance of our code base, which helps figure out where to optimize. Product will continue to evolve in approximately 6 month cycles.  Don't waste time optimizing everything, or before you see a demand for a feature.  Remember its a startup; resources are scarce and time is critical.
  • 16. What to measure How quickly a data set is going to grow when designing tables, foreign key associations, retrieving data, and frequency with which data is accessed Sharding: break up a large database into smaller pieces that contains redundant information or a parent db can map data to separate dbs. Implementation was based on user id lookup Easy to shard because we were dealing with financial data that is restricted to a single person, each user and their data was limited to a single shard, unless services like Twitter or Facebook that have lots of interactions amongst users
  • 17. Review Decisions We didn’t cache user data from the start because synchronizing data across nodes was difficult and had no mechanism for centralized locking, but once this was put in place we switched to loading data on demand We didn't shard databases from the start because of overhead and more impending issues. In the future we might only show most recent data instead of all data).
  • 18. Summary Prototype with limited features Addressing CS 101 Basics: Latency, Throughput, and Quality Making architectural decisions based on the time frame Measure and Optimize that which is critical Check it out: www.mint.com My blog: www.femgineer.com