SlideShare a Scribd company logo
ENGINEERING BEST
PRACTICES IMPLEMENTED
GAURAV KUMKAR
TEAM BEFORE
• Inherited disorganized or no engineering team
• Late releases riddled with bugs
• Junior engineers directly reporting to senior management
• No mentorship or guidance for technical engineers
• Code was hacked together for every release
• Infrastructure was not maintained (non-static ips)
• No consistency in architectural decisions (e.g. mongo db vs sql server)
AFTER BEST PRACTICES IMPLEMENTATION
• Clickable mocks
• Coding standards
• Daily code reviews
• Architecture and design reviews
• Automated deployments and testing
• Runbooks
• Quality Engineering
• Interactive Restful API
• User Acceptance Testing
• Build and release process
• Onboarding process
Clickable Mock vs Wireframes
• Early visual snapshot to customers
• Cost to make adjustments on mock were
cheaper than actual product
• Lot of rapid iterations could take place
• Business team tried out multiple alternatives
before decided the look and feel and flow of
the product
• Final product was identical to clickable mock
Design Toolkit
• Speed of development
• Reusability
• Standardization
Best Standards
• Coding Standards
• Code reviews
Architecture & Design
• Micro services APIs
• MVC architecture
• Design Patterns (Factories / Singletons)
• Restful APIs with error codes
• Better communication between frontend
and backend teams
• Network Architecture Diagrams / UML
Build & Release Process
Automation
• Saved 30-45 minutes daily engineering time
from manual deployment
• Great communication between QA / Engineers
with version numbers
• DB, Frontend, Backend versions separated for
loose coupling
• One click deployments for dev, test, stage and
production
Quality Engineering
• Manual testing
• QA Plan
• Requirements Traceability Matrix
• Extensive Test cases
• Automation testing
• Selenium
• Local environment
• Load Testing
Load Testing
Number of simultaneous
users
Error % Overall requests per
second
Comments
10 0.01 % 6.33 With a very small number of users in the system, the server performs
very well. Very few errors with a good number of requests made every
second.
100 0.01 % 58.49 With 100 users, the error rate is kept low and it has a decent RPS.
500 0.02 % 123.12 Keep adding more simultaneous users to the system decreases the
performance. On a bright side, the error rate is still very low.
1000 0.02 % 127.42 From 500 users to 1000 users, we can see that the overall RPS does not
increase a lot.
We are close to hitting the server limit on handling requests.
Throughout the test, the primary DB server has max out the CPU usage.
Agile Software Development
Monitoring
• Production application monitoring
• System level
• Application level
• Email Alerts
Security & Risk Management
• Implemented security for OWASP top 10 Vulnerabilities
• Injection attack
• Weak Authentication and session management
• CSRF Vulnerabilities
• Path Manipulation Vulnerabilities
• Resource Leaks
• Security Credentials short
Analytics & User Engagement
• Google Analytics Integration
• Understanding user behavior in depth
THANK YOU
• We are light years ahead with all the engineering best practices improvement
• VP Operations (customer)
Stakeholders Testimonial
•We are light years ahead with all the engineering
best practices improvement
VP Business Operations

More Related Content

What's hot

Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testing
MassTLC
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testingQualitest
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
eleksdev
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha
 
Infographic: Importance of Performance Testing
Infographic: Importance of Performance TestingInfographic: Importance of Performance Testing
Infographic: Importance of Performance Testing
KiwiQA
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
Selin Gungor
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
James Venetsanakos
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
Yogesh Deshmukh
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
Aviran Mordo
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software quality
Fabricio Epaminondas
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
Martijn van der Kamp
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
Fabricio Epaminondas
 
Cross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficienciaCross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficiencia
Software Guru
 
Performance testing : An Overview
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overview
sharadkjain
 
Automated testing for sfl presentation
Automated testing for sfl presentationAutomated testing for sfl presentation
Automated testing for sfl presentation
Елфимова Дарья
 
Info Card - Techical Debt Management
Info Card  - Techical Debt ManagementInfo Card  - Techical Debt Management
Info Card - Techical Debt ManagementFabricio Epaminondas
 
Introduction to Performance Testing
Introduction to Performance TestingIntroduction to Performance Testing
Introduction to Performance Testing
jasndesilva
 
Lecture2
Lecture2Lecture2
Lecture2
CSIT TPO
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
sharmaparish
 
Running JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloudRunning JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloud
Clever Moe
 

What's hot (20)

Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testing
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Infographic: Importance of Performance Testing
Infographic: Importance of Performance TestingInfographic: Importance of Performance Testing
Infographic: Importance of Performance Testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software quality
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Cross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficienciaCross Browser Testing: El reto de la eficiencia
Cross Browser Testing: El reto de la eficiencia
 
Performance testing : An Overview
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overview
 
Automated testing for sfl presentation
Automated testing for sfl presentationAutomated testing for sfl presentation
Automated testing for sfl presentation
 
Info Card - Techical Debt Management
Info Card  - Techical Debt ManagementInfo Card  - Techical Debt Management
Info Card - Techical Debt Management
 
Introduction to Performance Testing
Introduction to Performance TestingIntroduction to Performance Testing
Introduction to Performance Testing
 
Lecture2
Lecture2Lecture2
Lecture2
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Running JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloudRunning JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloud
 

Similar to Engineering-Best-Practices

Hacker Proof web app using Functional tests
Hacker Proof web  app using Functional testsHacker Proof web  app using Functional tests
Hacker Proof web app using Functional tests
Ankita Gupta
 
Embedded world 2017
Embedded world 2017Embedded world 2017
Embedded world 2017
ChantalWauters
 
Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOps
Kovair
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery Pipelines
Kasun Kodagoda
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
Neotys_Partner
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Amazon Web Services
 
Web Automation Testing for developers?
Web Automation Testing for developers?Web Automation Testing for developers?
Web Automation Testing for developers?
Victor Kushchenko
 
Aligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development PracticesAligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development Practices
Aspire Systems
 
Why Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in OpsWhy Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in Ops
Edward Rousseau
 
Simics - Break the Rules of Product Development
Simics - Break the Rules of Product DevelopmentSimics - Break the Rules of Product Development
Simics - Break the Rules of Product Development
Real-Time Innovations (RTI)
 
Continuous delivery by sergey seletsky
Continuous delivery by sergey seletskyContinuous delivery by sergey seletsky
Continuous delivery by sergey seletsky
Sergey Seletsky
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
sedukull
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Denim Group
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
Nashet Ali
 
Klepsydra Technical Presentation
Klepsydra Technical PresentationKlepsydra Technical Presentation
Klepsydra Technical Presentation
Pablo Ghiglino
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
Testplant
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computingAhmed M. Abed
 
Day 1.pptx
Day 1.pptxDay 1.pptx
Day 1.pptx
AshokAgarwal57
 

Similar to Engineering-Best-Practices (20)

Hacker Proof web app using Functional tests
Hacker Proof web  app using Functional testsHacker Proof web  app using Functional tests
Hacker Proof web app using Functional tests
 
Embedded world 2017
Embedded world 2017Embedded world 2017
Embedded world 2017
 
Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOps
 
Role of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery PipelinesRole of Test Automation in Modern Software Delivery Pipelines
Role of Test Automation in Modern Software Delivery Pipelines
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
 
Web Automation Testing for developers?
Web Automation Testing for developers?Web Automation Testing for developers?
Web Automation Testing for developers?
 
Aligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development PracticesAligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development Practices
 
Why Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in OpsWhy Your Next QA Job Might Be in Ops
Why Your Next QA Job Might Be in Ops
 
Simics - Break the Rules of Product Development
Simics - Break the Rules of Product DevelopmentSimics - Break the Rules of Product Development
Simics - Break the Rules of Product Development
 
Continuous delivery by sergey seletsky
Continuous delivery by sergey seletskyContinuous delivery by sergey seletsky
Continuous delivery by sergey seletsky
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
 
Klepsydra Technical Presentation
Klepsydra Technical PresentationKlepsydra Technical Presentation
Klepsydra Technical Presentation
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
 
Day 1.pptx
Day 1.pptxDay 1.pptx
Day 1.pptx
 

Engineering-Best-Practices

  • 2. TEAM BEFORE • Inherited disorganized or no engineering team • Late releases riddled with bugs • Junior engineers directly reporting to senior management • No mentorship or guidance for technical engineers • Code was hacked together for every release • Infrastructure was not maintained (non-static ips) • No consistency in architectural decisions (e.g. mongo db vs sql server)
  • 3. AFTER BEST PRACTICES IMPLEMENTATION • Clickable mocks • Coding standards • Daily code reviews • Architecture and design reviews • Automated deployments and testing • Runbooks • Quality Engineering • Interactive Restful API • User Acceptance Testing • Build and release process • Onboarding process
  • 4. Clickable Mock vs Wireframes • Early visual snapshot to customers • Cost to make adjustments on mock were cheaper than actual product • Lot of rapid iterations could take place • Business team tried out multiple alternatives before decided the look and feel and flow of the product • Final product was identical to clickable mock
  • 5. Design Toolkit • Speed of development • Reusability • Standardization
  • 6. Best Standards • Coding Standards • Code reviews
  • 7. Architecture & Design • Micro services APIs • MVC architecture • Design Patterns (Factories / Singletons) • Restful APIs with error codes • Better communication between frontend and backend teams • Network Architecture Diagrams / UML
  • 8. Build & Release Process Automation • Saved 30-45 minutes daily engineering time from manual deployment • Great communication between QA / Engineers with version numbers • DB, Frontend, Backend versions separated for loose coupling • One click deployments for dev, test, stage and production
  • 9. Quality Engineering • Manual testing • QA Plan • Requirements Traceability Matrix • Extensive Test cases • Automation testing • Selenium • Local environment • Load Testing
  • 10. Load Testing Number of simultaneous users Error % Overall requests per second Comments 10 0.01 % 6.33 With a very small number of users in the system, the server performs very well. Very few errors with a good number of requests made every second. 100 0.01 % 58.49 With 100 users, the error rate is kept low and it has a decent RPS. 500 0.02 % 123.12 Keep adding more simultaneous users to the system decreases the performance. On a bright side, the error rate is still very low. 1000 0.02 % 127.42 From 500 users to 1000 users, we can see that the overall RPS does not increase a lot. We are close to hitting the server limit on handling requests. Throughout the test, the primary DB server has max out the CPU usage.
  • 12. Monitoring • Production application monitoring • System level • Application level • Email Alerts
  • 13. Security & Risk Management • Implemented security for OWASP top 10 Vulnerabilities • Injection attack • Weak Authentication and session management • CSRF Vulnerabilities • Path Manipulation Vulnerabilities • Resource Leaks • Security Credentials short
  • 14. Analytics & User Engagement • Google Analytics Integration • Understanding user behavior in depth
  • 15. THANK YOU • We are light years ahead with all the engineering best practices improvement • VP Operations (customer) Stakeholders Testimonial •We are light years ahead with all the engineering best practices improvement VP Business Operations