building a technical culture @ grammarly
TRANSCRIPT
![Page 1: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/1.jpg)
Technical Culture
![Page 2: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/2.jpg)
Who am I?Aleksey Yashchenko
Software Engineer &Engineering Manager at Grammarly
@tuxslayer
![Page 3: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/3.jpg)
The CompanyUkrainian bootstrapped startup
60 engineers
Offices in Kyiv and San-Francisco
![Page 4: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/4.jpg)
The ProductGrammar
Spell
Style
Plagiarism
… checker
![Page 5: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/5.jpg)
5M weekly active users on Chrome and growing
10M+ WebSocket connections/day
Services in Java, Lisp, Scala and Python
6 UI applications in JS, TypeScript and F#
The Product
![Page 6: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/6.jpg)
Our Apps: UI3 Browser Plugins: Chrome, Safari, FF
Web App
M$ Office Add-in
Desktop Editor
Funnels at www.grammarly.com
![Page 7: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/7.jpg)
![Page 8: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/8.jpg)
Our Growthrapid user base growth: 5M in 1.5 years
new products
60 engineers
![Page 9: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/9.jpg)
We can only allow ourselves intensive growth
![Page 10: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/10.jpg)
Any tech culture won’t do the thingTech Culture
Tech ExcellenceJust excellence ‘all the time’ is hard
![Page 11: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/11.jpg)
Technical excellence culture is needed to grow intensely
![Page 12: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/12.jpg)
Technical Excellence Culture
HOW?
![Page 13: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/13.jpg)
Our Approach
Orgstructure
TechnicalmeansT.E.C.
![Page 14: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/14.jpg)
The Foundation
Orgstructure
Technicalmeans
![Page 15: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/15.jpg)
The Problem: Time-Eater[s]Low development pace
Buggy releases =>
regular outages =>
high downtime
![Page 16: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/16.jpg)
Our SolutionEngineers at
Cross-functional Teams
Fully own services and releases, while
Tools solve all the hassle
![Page 17: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/17.jpg)
Cross-func Teams
QA => SE in Test => Feature Teams
Story #1
XP
Continuos Delivery
Monitoring
ORG: crossfit TECH: CI
![Page 18: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/18.jpg)
Solution #1: org
Feature Cross-functional Teams
![Page 19: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/19.jpg)
Solution #1: org
Catch bugs
Build for quality
Write code
… well… catch bugs
no-QA: from QA to SET
![Page 20: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/20.jpg)
Solution #1: techXP
pair programming
defensive programming
code review
tests for new code / bugs found
… and more
![Page 21: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/21.jpg)
Solution #1: techCI/CD: Release often
Feature branches on git
CI Server (TeamCity)
Unit / Integration / Load / … tests
Continuous Deployment
![Page 22: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/22.jpg)
Solution #1: techCI/CD: Release often
Feature branches on git
CI Server (TeamCity)
Unit / Integration / Load / … tests
Continuous Deployment
Doesn’t work
![Page 23: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/23.jpg)
Monitor All the Things!
![Page 24: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/24.jpg)
Make it an engineering practice
Measure everything, choose what to monitor then
Validate monitoring data!
Monitor All the Things!
![Page 25: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/25.jpg)
Logs: back-end and front-end
Time-series metrics: counters, timers
More: www.slideshare.net/tuxSlayer/frontend-monitoring-grammarly
Monitor All the Things!
![Page 26: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/26.jpg)
Results #1Zero ping-pong time between teams
Developers can release “at will”
QA-people are involved from day 1
Everybody writes tests
Everybody* can fix a bug
* almost
![Page 27: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/27.jpg)
Results #1Time to release from 1-2h to 1-10 min
Rollback instead of fixing => Short outages
Whole team does not get distracted by outages
![Page 28: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/28.jpg)
Release Calendar
![Page 29: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/29.jpg)
Platform Team
Embedded Ops in Teams
Story #2
docker
rocker
Terraform
ORG: no-Ops TECH: containers
![Page 30: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/30.jpg)
Solution #2: Platform TeamNot a “service” team
PaaS
Strategic rather than tactical
Software Engineers + DevOps
Embedded Ops for Feature Teams
![Page 31: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/31.jpg)
Solution #2: Containers
Container Platform
Static content
Nginx configs
Nginx
Responsible Dev Team Happy Ops Kitchen
ship it! Container
Container
Container
…
![Page 32: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/32.jpg)
Results #2Wait no more for DevOps tasks
Reproducible environments => Safe deployments
Configuration as a code (versioning, automation, templating etc)
Multi-service deployments (e.g. DB+Redis+App+Nginx)
![Page 33: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/33.jpg)
… soEngineers at
Cross-functional Teams
Fully own services and releases, while
Tools solve all the hassle
![Page 34: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/34.jpg)
Our Approach
Orgstructure
TechnicalmeansT.E.C.
![Page 35: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/35.jpg)
T.E.C.: the FoundationOptimize every single phase of dev cycle
Create an env for dev practices
Apply best practices to
Stop fire-fighting and free more time and mindshare for improvements
![Page 36: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/36.jpg)
T.E.C.: let’s do it!
![Page 37: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/37.jpg)
Build ExpertiseHire the best
Take coursesmake internal talks afterwards
Mentorship including external mentors
Free Books
Fun Days for learning
Internal
Hackathons
![Page 38: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/38.jpg)
Build ExcellenceDefinition of Done
Tech Excellence Check Lists (forever!)
SLOs / SLAs
![Page 39: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/39.jpg)
Check Lists: Practices
![Page 40: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/40.jpg)
Check List: Quality Aspects (50+)
![Page 41: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/41.jpg)
Build CultureTechnical Leadership Guild
2 tech-leads + 2 managers
Set expectations
Praise: pride & recognition
Create more space for communication
![Page 42: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/42.jpg)
T.E.C.…
…
Profit: time and space for intensive growth
![Page 43: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/43.jpg)
TakeawaysIt’s hard
It’s expensive
It’s slow
You don’t always need it
But when you have it – it’s a pure joy!
![Page 44: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/44.jpg)
![Page 45: Building a Technical Culture @ Grammarly](https://reader033.vdocuments.net/reader033/viewer/2022042515/587b17e41a28ab736c8b4685/html5/thumbnails/45.jpg)
Thank you!Aleksey Yashchenko
Software Engineer &Engineering Manager at Grammarly
@tuxslayer