SlideShare a Scribd company logo
1 of 32
Download to read offline
Architecting for Hyper Growth and Great
Engineering Culture
Software Architect Indonesia Community #2 Meetup
Ifnu, 26 November 2016
Who am I?
• Ifnu Bima
• Ilmu Komputer IPB
• Join blibli in 2012
• Was working for Deustche Bank Singapore
• Employee no 69
• Engineers no ~13
• Development Manager
– blibli.com Web UI
– Mobile Apps : Android, iOS, Windows Phone
– Content Management System
– Search
– Product Discovery : Wishlist, Product Review
Architecture Goals
• Hyper Growth
– X times every year: traffic, transaction, feature,
codebase and head count
• Great Engineering Culture
– Foster innovation
– Iteration speed
Software Architecture
Software architecture refers to the fundamental
structures of a software system, the discipline of
creating such structures, and the documentation
of these structures
Software architecture is about making
fundamental structural choices which are costly
to change once implemented
Source : https://en.wikipedia.org/wiki/Software_architecture
Software Architect / Principal
• Design architecture
– Monolithycs vs Microservices
– SQL vs NoSQL
– Datacenter vs Cloud
• Pick Platform, library and provide template
– Java vs PHP vs Ruby vs Scala vs Go Lang
• Hiring standard
– Technical interview
– Hiring decision
– Training and Certification
Functional vs Non Functional Requirement
• Functional requirement in Bussiness
Requirement Documentation (BRD)
• Non Functional Requirement
– External Quality
• Speed, Performance
• Scalability, Elasticity, Reliability
• Security
– Internal Quality
• Unit testing coverage
• Code readability, design pattern
• Learning curve for new hire
Speed – Performance : Server Side
• HardDrive & Database is the slowest link
• Lots lots lots of caching :
– Redis : small but lots of item
– Guava : big and slow item, refresh cache with
background process
• SSD for IO intensive operation : Database,
static & image server
• Non blocking IO using reactive system
• Slow Query monitoring and indexing
Speed – Performance : Client Side
• Bandwith is the slowest link
• Small bandwith : gzip, image compression,
minimize css & js, image & html lazy load
• Render first, script later: defer 3rd party script
• Layout first, content later: layout only using
CSS, inline CSS for viewport
• Reduce page load & render from 12s to 4s
Scalability, Elasticity, Reliability
• Stateless application
• Externalize session to repository. Currently we use Redis
• Externalize scheduler
• Microservices
– http://martinfowler.com/articles/microservices.html
• Reactive System
– Non blocking IO
– Parallel execution
– Future / callback
• NoSQL
– Solr, elasticsearch
– Redis
– MongoDB
• Go lang ?
Performance Monitoring
• Newrelic.com
• AppDynamic
• Realtime and Archived performance monitoring
• Performance metrics
– Response time, both server and client side
– Drill down of time spent in application
– Slow query monitoring
– Cache monitoring. Cache hit ratio.
– Server monitoring : CPU, Memory, I/O and Network
Performance Testing and Profiling
• JMeter and WAPT, other alternative is Gatling
• Dedicated team to run it
• Java Profiling
– VisualVM
– XRebel
Security
• Security Appliance
• Application access log analysis
• Risk & fraud team
• PCI DSS compliance process
What we learn about customer
• Fast UI
– Speed & Performance
• Website stay up during promotion and flash sale
– Scalability & Elasticity
• Consistently good user experience
– Great UI/UX
– Timely order delivery
– Original and high quality product
• New features
– Rapid Deployment
– Continuous Delivery
Architecting for Great Engineering Culture
• Optimize for iteration speed
• Push relentlessly toward automation
• Build the right software abstractions
• Develop a focus on high code quality
with code reviews
• Maintain a respectful work
environment
• Build shared ownership of code
• Invest in automated testing
• Allot 20% time
• Build a culture of learning and
continuous improvement
• Hire the best
Optimize for iteration speed
• Microservices Architecture
• Blibli.com SOA architecture circa 2013
Store Front
Back officeMerchant
ESB
Monolithic vs SOA vs Microservices
Source : http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.html
Monilithic team
Source : http://www.martinfowler.com/articles/microservices.html
Microservices Team
Source : http://www.martinfowler.com/articles/microservices.html
• Decentralized Governance
Microservices Team
• Decentralized Data Management
Source : http://www.martinfowler.com/articles/microservices.html
Microservices Team
Microservices Team
Push relentlessly toward automation
• Compile, build, unit test every commit using maven / sbt run automaticly using
bamboo CI
• Functional test by QA, automated using JBehave and Appium
• API Test using JMeter
• Release versioned artifact (war / zip) to artifactory
• Deploy to UAT, Performance environment and Production using Chef and Jenkins
– Install latest java
– Setup properties
– Install latest tomcat
– Do additional steps : setup JCE, deploy static file to static server, run database change using
Flyway / MongoBee, etc
– Deploy application
Source : http://www.martinfowler.com/articles/microservices.html
Build the right software abstractions
• Microservices template
– Java with Spring
– PlayFramework Scala
– Java with Spring and RXJava
– Go Lang ??
• SSO using CAS
• OAuth API abstraction using CAS
• Example of software abstractions
– Google BigTable and MapReduce
– Facebook ReactJS and ReactNative
– Amazon AWS
Develop a focus on high code quality with code reviews
• Use GitFlow for code management
– http://nvie.com/posts/a-successful-git-branching-model/
– Every feature and bug will have their own branch
– Developer commit to their own branch and pull request to
feature / bug / develop branch
– Peer code review and successful build from bamboo is
mandatory to merge branch
• Pair Programming if possible
Develop a focus on high code quality with
code reviews
• TDD and Unit testing using JUnit and KarmaJS
• Static code analysis using Sonar Cube
– Calculate unit test coverage
– Calculate code complexity, less than 3
– Code smell
– Security analysis: SQL Injection vulnerability, XSS, etc
– Potential bug in runtime: NullPointerException,
Forever loop, etc
• 90% test coverage expected. Build failed if code
coverage drop compared to previous build. If
build failed, cannot merge to mainstream branch.
Maintain a respectful work environment
• Open culture
• Using Slack for open communication
• Share everything
• RESPECT as core value
– Risk taking
– Excellent
– Serving
– Passionate and Proud
– Employee great place to work
– Customer focus
– Teamwork
Build shared ownership of code
• Access to source code from day 1
• Some degree of rotation to make sure no part
of code that only known to 1 person
Invest in automated testing
• We do not have QA as title, it is Software
Development Engineer in Test (SDET)
• 2017 we really focus on automation
– Bamboo CI
– Chef and Jenkins
– Nightly Build
– Data Preparation
– JBehave & Appium
– JMeter, WAPT & gatling
– Monitoring and alert
– Elasticity on Datacenter
– Etc
Allot 20% time
• Internal coding competition
• Internal Hackaton
• Skunk Work
Build a culture of learning and continuous improvement
• Rotation for people to learn different things
• Survey and Management action for people who want to change their role or team
• Weekly sharing session : BrownBag
• Training
– Java Training and Certification, Sun Certified Enterprise Architect
– iOS development & testing
– SOLR training
– 7 Habit of effective people
– Presentation and public speaking
– Project management
– Leadership essential
– Management assessment
– Evident base interview
– User Experience from Somia
• Conference
– JavaOne in San Francisco
– Solr Revolution in Austin, Texas
– TechInAsia Jakarta
• Scholarship for Master Degree
Hire the Best
• Blibli.com future program
– https://www.blibli.com/page/future-program/
• Employee get Employee
– Best people will attract best people, law of
attraction
• Excruciating round of interview
• Very high hiring bar
We Are Hiring!!
THANK YOU

More Related Content

What's hot

Windows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp MicrosoftWindows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp Microsoftguestb7fda43
 
Writing Testable Code in SharePoint
Writing Testable Code in SharePointWriting Testable Code in SharePoint
Writing Testable Code in SharePointTim McCarthy
 
DevSecOps Introduction Tushar Joshi - Owasp Nagpur Meetup 12 May 2019
DevSecOps Introduction    Tushar Joshi - Owasp Nagpur Meetup 12 May 2019DevSecOps Introduction    Tushar Joshi - Owasp Nagpur Meetup 12 May 2019
DevSecOps Introduction Tushar Joshi - Owasp Nagpur Meetup 12 May 2019OWASP Nagpur
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterSmartBear
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
A better approach for testing microservices - introducing test kits in practice
A better approach for testing microservices - introducing test kits in practiceA better approach for testing microservices - introducing test kits in practice
A better approach for testing microservices - introducing test kits in practiceMaxim Novak
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps JourneyMicro Focus
 
DevOps made simple - Understand DevOps and steps to become a DevOps expert
DevOps made simple  - Understand DevOps and steps to become a DevOps expertDevOps made simple  - Understand DevOps and steps to become a DevOps expert
DevOps made simple - Understand DevOps and steps to become a DevOps expertThinkCerti
 
OReilly Software Architecture Conference: Architecture as code - objective m...
OReilly Software Architecture Conference:  Architecture as code - objective m...OReilly Software Architecture Conference:  Architecture as code - objective m...
OReilly Software Architecture Conference: Architecture as code - objective m...PaulaPaulSlides
 
Do you need microservices architecture?
Do you need microservices architecture?Do you need microservices architecture?
Do you need microservices architecture?Manu Pk
 
Infrastructure code in Agile software development
Infrastructure code in Agile software developmentInfrastructure code in Agile software development
Infrastructure code in Agile software developmentElad Sofer
 
Leave visual studio behind an end to end business app in 30 mins using a paas
Leave visual studio behind an end to end business app in 30 mins using a paasLeave visual studio behind an end to end business app in 30 mins using a paas
Leave visual studio behind an end to end business app in 30 mins using a paasDr Ganesh Iyer
 
Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Technologies
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashvilleNathaniel (Ned) Bauerle
 
Enable DevSecOps using JIRA Software
Enable DevSecOps using JIRA SoftwareEnable DevSecOps using JIRA Software
Enable DevSecOps using JIRA SoftwareAUGNYC
 
InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...DevOps for Enterprise Systems
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureOutSystems
 
20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development Platform20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development PlatformHarezmi IT Solutions
 

What's hot (20)

Writing S.O.L.I.D Code
Writing S.O.L.I.D CodeWriting S.O.L.I.D Code
Writing S.O.L.I.D Code
 
Windows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp MicrosoftWindows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp Microsoft
 
Writing Testable Code in SharePoint
Writing Testable Code in SharePointWriting Testable Code in SharePoint
Writing Testable Code in SharePoint
 
DevSecOps Introduction Tushar Joshi - Owasp Nagpur Meetup 12 May 2019
DevSecOps Introduction    Tushar Joshi - Owasp Nagpur Meetup 12 May 2019DevSecOps Introduction    Tushar Joshi - Owasp Nagpur Meetup 12 May 2019
DevSecOps Introduction Tushar Joshi - Owasp Nagpur Meetup 12 May 2019
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products Faster
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
A better approach for testing microservices - introducing test kits in practice
A better approach for testing microservices - introducing test kits in practiceA better approach for testing microservices - introducing test kits in practice
A better approach for testing microservices - introducing test kits in practice
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
DevOps made simple - Understand DevOps and steps to become a DevOps expert
DevOps made simple  - Understand DevOps and steps to become a DevOps expertDevOps made simple  - Understand DevOps and steps to become a DevOps expert
DevOps made simple - Understand DevOps and steps to become a DevOps expert
 
CNS Presentation
CNS PresentationCNS Presentation
CNS Presentation
 
OReilly Software Architecture Conference: Architecture as code - objective m...
OReilly Software Architecture Conference:  Architecture as code - objective m...OReilly Software Architecture Conference:  Architecture as code - objective m...
OReilly Software Architecture Conference: Architecture as code - objective m...
 
Do you need microservices architecture?
Do you need microservices architecture?Do you need microservices architecture?
Do you need microservices architecture?
 
Infrastructure code in Agile software development
Infrastructure code in Agile software developmentInfrastructure code in Agile software development
Infrastructure code in Agile software development
 
Leave visual studio behind an end to end business app in 30 mins using a paas
Leave visual studio behind an end to end business app in 30 mins using a paasLeave visual studio behind an end to end business app in 30 mins using a paas
Leave visual studio behind an end to end business app in 30 mins using a paas
 
Rasa Open Source - What's next?
Rasa Open Source - What's next?Rasa Open Source - What's next?
Rasa Open Source - What's next?
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashville
 
Enable DevSecOps using JIRA Software
Enable DevSecOps using JIRA SoftwareEnable DevSecOps using JIRA Software
Enable DevSecOps using JIRA Software
 
InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development Platform20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development Platform
 

Viewers also liked

Software Architecture Introduction
Software Architecture IntroductionSoftware Architecture Introduction
Software Architecture IntroductionSARCCOM
 
How to work with us? We are Gen Y!
How to work with us? We are Gen Y!How to work with us? We are Gen Y!
How to work with us? We are Gen Y!SARCCOM
 
Software Architecture Fundamentals Part-1 Architecture soft skill
Software Architecture Fundamentals Part-1 Architecture soft skillSoftware Architecture Fundamentals Part-1 Architecture soft skill
Software Architecture Fundamentals Part-1 Architecture soft skillSARCCOM
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?SARCCOM
 
Email Marketing for ECommerce: Creating personalized experiences
Email Marketing for ECommerce: Creating personalized experiencesEmail Marketing for ECommerce: Creating personalized experiences
Email Marketing for ECommerce: Creating personalized experiencesSita Kalluri
 
DevOps: Why Culture Matters
DevOps:  Why Culture MattersDevOps:  Why Culture Matters
DevOps: Why Culture MattersG2G3 Americas
 
Adopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenchesAdopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenchesKris Buytaert
 
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010Gregory Bayne
 
Going Big
Going BigGoing Big
Going Bigmahalo
 
Jason Medley - Quirky's Recruiting Culture
Jason Medley - Quirky's Recruiting CultureJason Medley - Quirky's Recruiting Culture
Jason Medley - Quirky's Recruiting CultureGreenhouseSoftware
 
Agile india 2014 Presentation
Agile india 2014 PresentationAgile india 2014 Presentation
Agile india 2014 PresentationMichael Heydt
 
How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?Derya SEZEN
 
Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...Ron Lichty
 
DevOps Culture as a tool
DevOps Culture as a toolDevOps Culture as a tool
DevOps Culture as a toolDick Noort
 
More than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsMore than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsBob Sokol
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps CultureJumpCloud
 
SMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOpsSMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOpsDevOps Ltd.
 

Viewers also liked (20)

Software Architecture Introduction
Software Architecture IntroductionSoftware Architecture Introduction
Software Architecture Introduction
 
How to work with us? We are Gen Y!
How to work with us? We are Gen Y!How to work with us? We are Gen Y!
How to work with us? We are Gen Y!
 
Software Architecture Fundamentals Part-1 Architecture soft skill
Software Architecture Fundamentals Part-1 Architecture soft skillSoftware Architecture Fundamentals Part-1 Architecture soft skill
Software Architecture Fundamentals Part-1 Architecture soft skill
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
 
Service excellence
Service excellenceService excellence
Service excellence
 
Email Marketing for ECommerce: Creating personalized experiences
Email Marketing for ECommerce: Creating personalized experiencesEmail Marketing for ECommerce: Creating personalized experiences
Email Marketing for ECommerce: Creating personalized experiences
 
E-Commerce blibli.com
E-Commerce blibli.comE-Commerce blibli.com
E-Commerce blibli.com
 
DevOps: Why Culture Matters
DevOps:  Why Culture MattersDevOps:  Why Culture Matters
DevOps: Why Culture Matters
 
Adopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenchesAdopting Devops , Stories from the trenches
Adopting Devops , Stories from the trenches
 
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
What Makes A Great Leader Poster # Final 4 By Tlc Solutions May 2010
 
Going Big
Going BigGoing Big
Going Big
 
Jason Medley - Quirky's Recruiting Culture
Jason Medley - Quirky's Recruiting CultureJason Medley - Quirky's Recruiting Culture
Jason Medley - Quirky's Recruiting Culture
 
Agile india 2014 Presentation
Agile india 2014 PresentationAgile india 2014 Presentation
Agile india 2014 Presentation
 
How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?How to move forward to a DevOps Culture?
How to move forward to a DevOps Culture?
 
Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...Crash course - managing software people and teams (engineering leadership sig...
Crash course - managing software people and teams (engineering leadership sig...
 
DevOps Culture as a tool
DevOps Culture as a toolDevOps Culture as a tool
DevOps Culture as a tool
 
More than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsMore than Technology - The Culture of DevOps
More than Technology - The Culture of DevOps
 
5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture5 Steps for a High-Performing DevOps Culture
5 Steps for a High-Performing DevOps Culture
 
SMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOpsSMAC: The Key to Getting Traction with DevOps
SMAC: The Key to Getting Traction with DevOps
 

Similar to Architecting for Huper Growth and Great Engineering Culture

Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...TriNimbus
 
Abhishek_Resume_Latest
Abhishek_Resume_LatestAbhishek_Resume_Latest
Abhishek_Resume_LatestAbhishek Singh
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyoneTft Us
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkinsecubemarketing
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Librarypaidi_ed
 
Collaborative Working: University of Sunderland & Roundhouse Digital
Collaborative Working: University of Sunderland & Roundhouse Digital Collaborative Working: University of Sunderland & Roundhouse Digital
Collaborative Working: University of Sunderland & Roundhouse Digital Terminalfour
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation SlideKhairul Filhan
 
Tuli eServices_Ecommerce portfolio
Tuli eServices_Ecommerce portfolioTuli eServices_Ecommerce portfolio
Tuli eServices_Ecommerce portfolioTULI eServices Inc.
 
Discover - Innovating With Speed and Agility
Discover - Innovating With Speed and AgilityDiscover - Innovating With Speed and Agility
Discover - Innovating With Speed and AgilityLaurenWendler
 

Similar to Architecting for Huper Growth and Great Engineering Culture (20)

Sai_Resume
Sai_ResumeSai_Resume
Sai_Resume
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
 
Abhishek_Resume_Latest
Abhishek_Resume_LatestAbhishek_Resume_Latest
Abhishek_Resume_Latest
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkins
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Collaborative Working: University of Sunderland & Roundhouse Digital
Collaborative Working: University of Sunderland & Roundhouse Digital Collaborative Working: University of Sunderland & Roundhouse Digital
Collaborative Working: University of Sunderland & Roundhouse Digital
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas JellemaAMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
 
Student Industrial Training Presentation Slide
Student Industrial Training Presentation SlideStudent Industrial Training Presentation Slide
Student Industrial Training Presentation Slide
 
Shyam pcf
Shyam pcfShyam pcf
Shyam pcf
 
Tuli eServices_Ecommerce portfolio
Tuli eServices_Ecommerce portfolioTuli eServices_Ecommerce portfolio
Tuli eServices_Ecommerce portfolio
 
Venu_Resume_Sharepoint_MVC
Venu_Resume_Sharepoint_MVCVenu_Resume_Sharepoint_MVC
Venu_Resume_Sharepoint_MVC
 
Discover - Innovating With Speed and Agility
Discover - Innovating With Speed and AgilityDiscover - Innovating With Speed and Agility
Discover - Innovating With Speed and Agility
 
Cabot Technology Solutions Inc
Cabot Technology Solutions IncCabot Technology Solutions Inc
Cabot Technology Solutions Inc
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 

More from SARCCOM

Week 3 Deep Learning And POS Tagging Hands-On
Week 3 Deep Learning And POS Tagging Hands-OnWeek 3 Deep Learning And POS Tagging Hands-On
Week 3 Deep Learning And POS Tagging Hands-OnSARCCOM
 
Week 2 Sentiment Analysis Using Machine Learning
Week 2 Sentiment Analysis Using Machine Learning Week 2 Sentiment Analysis Using Machine Learning
Week 2 Sentiment Analysis Using Machine Learning SARCCOM
 
Week 1 Natural Language Processing Introduction
Week 1  Natural Language Processing IntroductionWeek 1  Natural Language Processing Introduction
Week 1 Natural Language Processing IntroductionSARCCOM
 
The Secret of Most Wanted Geek
The Secret of Most Wanted GeekThe Secret of Most Wanted Geek
The Secret of Most Wanted GeekSARCCOM
 
Fundamental of Machine Learning
Fundamental of Machine LearningFundamental of Machine Learning
Fundamental of Machine LearningSARCCOM
 
Data Warehousing Tools on Data Ecosystem
Data Warehousing Tools on Data EcosystemData Warehousing Tools on Data Ecosystem
Data Warehousing Tools on Data EcosystemSARCCOM
 
Startup Engineering Culture
Startup Engineering CultureStartup Engineering Culture
Startup Engineering CultureSARCCOM
 
Menggapai Paripurna Rekayasa
Menggapai Paripurna RekayasaMenggapai Paripurna Rekayasa
Menggapai Paripurna RekayasaSARCCOM
 
Requirement Gathering Jump Start
Requirement Gathering Jump StartRequirement Gathering Jump Start
Requirement Gathering Jump StartSARCCOM
 
Legacy code - Taming The Beast
Legacy code  - Taming The BeastLegacy code  - Taming The Beast
Legacy code - Taming The BeastSARCCOM
 
The Role of IT Architect in Enterprise Company (Garuda Indonesia)
The Role of IT Architect in Enterprise Company (Garuda Indonesia)The Role of IT Architect in Enterprise Company (Garuda Indonesia)
The Role of IT Architect in Enterprise Company (Garuda Indonesia)SARCCOM
 
The Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanyThe Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanySARCCOM
 
Implement OpenSAMM on blibli.com
Implement OpenSAMM on blibli.comImplement OpenSAMM on blibli.com
Implement OpenSAMM on blibli.comSARCCOM
 

More from SARCCOM (13)

Week 3 Deep Learning And POS Tagging Hands-On
Week 3 Deep Learning And POS Tagging Hands-OnWeek 3 Deep Learning And POS Tagging Hands-On
Week 3 Deep Learning And POS Tagging Hands-On
 
Week 2 Sentiment Analysis Using Machine Learning
Week 2 Sentiment Analysis Using Machine Learning Week 2 Sentiment Analysis Using Machine Learning
Week 2 Sentiment Analysis Using Machine Learning
 
Week 1 Natural Language Processing Introduction
Week 1  Natural Language Processing IntroductionWeek 1  Natural Language Processing Introduction
Week 1 Natural Language Processing Introduction
 
The Secret of Most Wanted Geek
The Secret of Most Wanted GeekThe Secret of Most Wanted Geek
The Secret of Most Wanted Geek
 
Fundamental of Machine Learning
Fundamental of Machine LearningFundamental of Machine Learning
Fundamental of Machine Learning
 
Data Warehousing Tools on Data Ecosystem
Data Warehousing Tools on Data EcosystemData Warehousing Tools on Data Ecosystem
Data Warehousing Tools on Data Ecosystem
 
Startup Engineering Culture
Startup Engineering CultureStartup Engineering Culture
Startup Engineering Culture
 
Menggapai Paripurna Rekayasa
Menggapai Paripurna RekayasaMenggapai Paripurna Rekayasa
Menggapai Paripurna Rekayasa
 
Requirement Gathering Jump Start
Requirement Gathering Jump StartRequirement Gathering Jump Start
Requirement Gathering Jump Start
 
Legacy code - Taming The Beast
Legacy code  - Taming The BeastLegacy code  - Taming The Beast
Legacy code - Taming The Beast
 
The Role of IT Architect in Enterprise Company (Garuda Indonesia)
The Role of IT Architect in Enterprise Company (Garuda Indonesia)The Role of IT Architect in Enterprise Company (Garuda Indonesia)
The Role of IT Architect in Enterprise Company (Garuda Indonesia)
 
The Role of IT Architect in Startup Company
The Role of IT Architect in Startup CompanyThe Role of IT Architect in Startup Company
The Role of IT Architect in Startup Company
 
Implement OpenSAMM on blibli.com
Implement OpenSAMM on blibli.comImplement OpenSAMM on blibli.com
Implement OpenSAMM on blibli.com
 

Recently uploaded

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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)
 

Architecting for Huper Growth and Great Engineering Culture

  • 1. Architecting for Hyper Growth and Great Engineering Culture Software Architect Indonesia Community #2 Meetup Ifnu, 26 November 2016
  • 2. Who am I? • Ifnu Bima • Ilmu Komputer IPB • Join blibli in 2012 • Was working for Deustche Bank Singapore • Employee no 69 • Engineers no ~13 • Development Manager – blibli.com Web UI – Mobile Apps : Android, iOS, Windows Phone – Content Management System – Search – Product Discovery : Wishlist, Product Review
  • 3. Architecture Goals • Hyper Growth – X times every year: traffic, transaction, feature, codebase and head count • Great Engineering Culture – Foster innovation – Iteration speed
  • 4. Software Architecture Software architecture refers to the fundamental structures of a software system, the discipline of creating such structures, and the documentation of these structures Software architecture is about making fundamental structural choices which are costly to change once implemented Source : https://en.wikipedia.org/wiki/Software_architecture
  • 5. Software Architect / Principal • Design architecture – Monolithycs vs Microservices – SQL vs NoSQL – Datacenter vs Cloud • Pick Platform, library and provide template – Java vs PHP vs Ruby vs Scala vs Go Lang • Hiring standard – Technical interview – Hiring decision – Training and Certification
  • 6. Functional vs Non Functional Requirement • Functional requirement in Bussiness Requirement Documentation (BRD) • Non Functional Requirement – External Quality • Speed, Performance • Scalability, Elasticity, Reliability • Security – Internal Quality • Unit testing coverage • Code readability, design pattern • Learning curve for new hire
  • 7. Speed – Performance : Server Side • HardDrive & Database is the slowest link • Lots lots lots of caching : – Redis : small but lots of item – Guava : big and slow item, refresh cache with background process • SSD for IO intensive operation : Database, static & image server • Non blocking IO using reactive system • Slow Query monitoring and indexing
  • 8. Speed – Performance : Client Side • Bandwith is the slowest link • Small bandwith : gzip, image compression, minimize css & js, image & html lazy load • Render first, script later: defer 3rd party script • Layout first, content later: layout only using CSS, inline CSS for viewport • Reduce page load & render from 12s to 4s
  • 9. Scalability, Elasticity, Reliability • Stateless application • Externalize session to repository. Currently we use Redis • Externalize scheduler • Microservices – http://martinfowler.com/articles/microservices.html • Reactive System – Non blocking IO – Parallel execution – Future / callback • NoSQL – Solr, elasticsearch – Redis – MongoDB • Go lang ?
  • 10. Performance Monitoring • Newrelic.com • AppDynamic • Realtime and Archived performance monitoring • Performance metrics – Response time, both server and client side – Drill down of time spent in application – Slow query monitoring – Cache monitoring. Cache hit ratio. – Server monitoring : CPU, Memory, I/O and Network
  • 11. Performance Testing and Profiling • JMeter and WAPT, other alternative is Gatling • Dedicated team to run it • Java Profiling – VisualVM – XRebel
  • 12. Security • Security Appliance • Application access log analysis • Risk & fraud team • PCI DSS compliance process
  • 13. What we learn about customer • Fast UI – Speed & Performance • Website stay up during promotion and flash sale – Scalability & Elasticity • Consistently good user experience – Great UI/UX – Timely order delivery – Original and high quality product • New features – Rapid Deployment – Continuous Delivery
  • 14. Architecting for Great Engineering Culture • Optimize for iteration speed • Push relentlessly toward automation • Build the right software abstractions • Develop a focus on high code quality with code reviews • Maintain a respectful work environment • Build shared ownership of code • Invest in automated testing • Allot 20% time • Build a culture of learning and continuous improvement • Hire the best
  • 15. Optimize for iteration speed • Microservices Architecture • Blibli.com SOA architecture circa 2013 Store Front Back officeMerchant ESB
  • 16. Monolithic vs SOA vs Microservices Source : http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.html
  • 17. Monilithic team Source : http://www.martinfowler.com/articles/microservices.html
  • 18. Microservices Team Source : http://www.martinfowler.com/articles/microservices.html • Decentralized Governance
  • 19. Microservices Team • Decentralized Data Management Source : http://www.martinfowler.com/articles/microservices.html
  • 22. Push relentlessly toward automation • Compile, build, unit test every commit using maven / sbt run automaticly using bamboo CI • Functional test by QA, automated using JBehave and Appium • API Test using JMeter • Release versioned artifact (war / zip) to artifactory • Deploy to UAT, Performance environment and Production using Chef and Jenkins – Install latest java – Setup properties – Install latest tomcat – Do additional steps : setup JCE, deploy static file to static server, run database change using Flyway / MongoBee, etc – Deploy application Source : http://www.martinfowler.com/articles/microservices.html
  • 23. Build the right software abstractions • Microservices template – Java with Spring – PlayFramework Scala – Java with Spring and RXJava – Go Lang ?? • SSO using CAS • OAuth API abstraction using CAS • Example of software abstractions – Google BigTable and MapReduce – Facebook ReactJS and ReactNative – Amazon AWS
  • 24. Develop a focus on high code quality with code reviews • Use GitFlow for code management – http://nvie.com/posts/a-successful-git-branching-model/ – Every feature and bug will have their own branch – Developer commit to their own branch and pull request to feature / bug / develop branch – Peer code review and successful build from bamboo is mandatory to merge branch • Pair Programming if possible
  • 25. Develop a focus on high code quality with code reviews • TDD and Unit testing using JUnit and KarmaJS • Static code analysis using Sonar Cube – Calculate unit test coverage – Calculate code complexity, less than 3 – Code smell – Security analysis: SQL Injection vulnerability, XSS, etc – Potential bug in runtime: NullPointerException, Forever loop, etc • 90% test coverage expected. Build failed if code coverage drop compared to previous build. If build failed, cannot merge to mainstream branch.
  • 26. Maintain a respectful work environment • Open culture • Using Slack for open communication • Share everything • RESPECT as core value – Risk taking – Excellent – Serving – Passionate and Proud – Employee great place to work – Customer focus – Teamwork
  • 27. Build shared ownership of code • Access to source code from day 1 • Some degree of rotation to make sure no part of code that only known to 1 person
  • 28. Invest in automated testing • We do not have QA as title, it is Software Development Engineer in Test (SDET) • 2017 we really focus on automation – Bamboo CI – Chef and Jenkins – Nightly Build – Data Preparation – JBehave & Appium – JMeter, WAPT & gatling – Monitoring and alert – Elasticity on Datacenter – Etc
  • 29. Allot 20% time • Internal coding competition • Internal Hackaton • Skunk Work
  • 30. Build a culture of learning and continuous improvement • Rotation for people to learn different things • Survey and Management action for people who want to change their role or team • Weekly sharing session : BrownBag • Training – Java Training and Certification, Sun Certified Enterprise Architect – iOS development & testing – SOLR training – 7 Habit of effective people – Presentation and public speaking – Project management – Leadership essential – Management assessment – Evident base interview – User Experience from Somia • Conference – JavaOne in San Francisco – Solr Revolution in Austin, Texas – TechInAsia Jakarta • Scholarship for Master Degree
  • 31. Hire the Best • Blibli.com future program – https://www.blibli.com/page/future-program/ • Employee get Employee – Best people will attract best people, law of attraction • Excruciating round of interview • Very high hiring bar