SlideShare a Scribd company logo
1 of 40
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro Everything
The Road to Scale
Ahmad Assaf
@ahmadaassaf
Head of Engineering @Beamery
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Talent Marketing
Bring consumer grade marketing
capabilities to your talent team
Comply
For the global enterprise,
GDPR is just the beginning
Connect No more data silos, a single connected experience for candidates and recruiters
Talent CRM
A true CRM built on a foundation
of data intelligence
Our Talent Engagement Platform helps enterprises attract, identify and engage
candidates on one unified platform, to deliver better talent acquisition—at scale.
The Beamery Platform
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
About Beamery
Founded in
2013
on a mission
to empower
companies to make
talent a priority
$40M
raised from leading investors
from Silicon valley and Europe
Headquartered in
London with offices
in San Francisco
and Austin
We partner with the best to support the success of our customers
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
#1 US Insurance
Company
We’re powering market leaders
#1 Swiss Bank
#1 Social
Network
#1 eCommerce
Company
#1 Beverages
Company
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
2017
Series A
~20 People (11 Engineers, Sales and
Customer Success teams formed)
- Enterprise clients
- Early scaling problems
2018
Series B (Beamery 5)
130+ People, 3 Offices
50+ Engineering, Product, Design (EPD) Team
- Tribes, Cross Functional teams
- State of the Art architecture and
platform
2015
Foundation of Beamery
Angel and Seed Funds
8 People (4 Engineers).
- Seeking a Product Market Fit (PMF)
2016
PMF (Beamery 1)
11 People (6 Engineers, 1 Designer, 4
Commercial roles)
- Adoption of “cool” technolgoies
and moving away from legacy code
- Onboarding customers
A Walk Down Memory Lane
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
bjectives
N
O
M
M
S
orth Star
ilestones
easures
prints
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Move Fast and ….
=== Lots of Tech Debt
Ignore Things
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro-apps (FE)
Scale Single Page Applications
(SPAs), move away from
legacy, attract and retain talent
Micro-ops (DevOps)
Scaling ownership, CI/CD,
Mono repos and meta repos,
tooling, logging and
orchestration
Micro-services (BE)
Scaling to meet the demands
of enterprise customers, use
the right tool for the right job
Micro-teams
Splitting teams into
independent cross-functional
units. Tribes, guilds and how to
scale management
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
● Code moves forward for a reason. Developers are intelligent,
forward-thinking people, always trying to solve the next problem
in the smartest possible way.
● If you don’t keep up, hiring will become difficult. Have you tried
to recruit an AngularJS developer recently?
● Is your tech stack a sinking ship? You’ve automatically alienated
the very people you want to attract. The good developers will
not come to you, and they will not stay.
Legacy Hurts Business in Surprising Ways
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro-apps
The Frontend Monolith
Legacy is a constant in JavaScript
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
What’s wrong with the monolith?
● Ownership
○ Drawing the line can be difficult
● Monolithic apps have more code conflicts
○ How do we keep developers interested?
● Learning & New Frameworks
● Horizontal scaling is difficult (Long build times, long startup
times)
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
What are micro frontends?
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro-services
The Backend Monolith
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro-ops
Scaling DevOps
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Where did we start?
● Beamery had around 25 backend and 15 frontend repositories, both
mixtures of deployable artefacts (4 APIs, 10 apps and microapps,
queue workers and cron jobs), internal plugins and libraries
● The codebase was entirely NodeJS, with various parts owned by
different teams with either a backend or frontend focus
● As the codebase was written entirely in a single language, it became
convenient to share code between repositories, especially from
libraries
Libraries and plugins became dependencies of each other, as well as dependencies of our
deployable artefacts
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
What’s wrong with doing it this way?
● Our testing process has become significantly more difficult, lengthier
and more complex.
● Our developers can test their code locally, but without the api core
pulling from a full list of dependencies lots of bugs are constantly
slipping through the net
● Onboarding new engineers is slow, and getting slower!
● Collaborating within or between teams becomes a tiresome process
since a major part of sharing code is now documenting and explaining
where changes have been made.
● Retaining great engineers is harder too. The best want to work with the
best environment, and would rather spend time coding than wading
through a mess.
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
So what did we do? We Created Story !
● A ledger for code changes- a layer on top of meta to aid development,
continuous integration, testing, container building and deployments
when working with meta-repos with larger numbers of inter-dependent
node projects.
● Keeps track of the blast radius of any set of changes, applied to any
part of the codebase, at any stage of the development process
● Gives a clearer idea of what needs to be tested for regressions and
what needs to be deployed, as well as showing how tightly coupled
codebases with multiple repositories become over time
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Not every team will have this problem like us. But, we’ve seen it a lot
because the conditions which drove us to make these early decisions are
pretty ubiquitous for startups in the position we were in:
● A small team working on an MVP,
● Barely enough time to ship features for clients
● Limited resources we could allocate to building infrastructure
Yes, we could have versioned all of our repositories and published to a
private registry, or transitioned from Metarepo to a Monorepo, but neither
felt feasible at the time since both would have required a significant
development freeze.
Is this the only way?
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro-teams
Scaling Management
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Independent Cross Functional Teams
● Embedded Front and Backend Engineers (whenever needed)
● Embedded DevOps Engineers (rather than a separate DevOps function)
● Each team will have a Product Owner/Product Manager
● Embedded Designers (for teams with FE engineers)
● Scrum Master responsibility is split across team members on rotation basis
● Internal delivery model is applied
● BE/FE contracts is internal for each team and cross teams contracts are in place
Team Iceberg Team Rocket Team Engage
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Tribes Model
A tribe consists in a pool of 15-30 engineers aligned with Product/Marketing
teams. Each tribe has an Engineer Manager and a Solution Architect.
Types of tribes
● Product - Focus in adding more value to the product (new features)
● Core Engineering/Architecture/Infrastructure - Focus building/maintaining
core systems, libraries and architectural improvements.
Can have more, it depends how big the company is e.g., Marketplace, Mobile, Data, Warehouse
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
There are two main processes using this model
​Missions​​ and ​Launchpad​​
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Mission Process
The main goal of a mission is to create value to the product. A mission must
be specific, clear and have a target. It takes around 1-4 months and are
composed by a team of 2-5 engineers.
The tribe consists of the following personas:
EM: Engineer Manager
PM: Product Manager
ML: Mission Lead
SA: Solution Architect
D: Designers
LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Example Mission
Goal: Due a market research 25% of the inquiries would love to have integration
with workable. The main goal of this mission is to integrate with workable
provider. Users must be able to sync their contacts with Beamery platform.
Target: Increase our customers by 5% after 3 months.
Resources: 1 BE, 1FE and 1 Mission Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Sneak Peek … RICE
RICE is a simple equation that models out the relative value of any given set of
potential projects
Reach: The proportion of your users, customers, or potential users and/ or customers that you can impact with
a project
Impact: The degree to which those users or customers would benefit from this solution
Confidence: The degree of confidence that you feel in saying that, should you commit engineering resources to
a problem, that you’ll achieve a given predicted impact with a predicted share of your potential user base.
Effort: The amount of work necessary to achieve the functionality necessary to achieve some desired impact
and reach.
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Product team have ideas, improvements to the product and align them
with the company strategy.
PM
Align possible mission with EM PM EM
Mission Process
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Product Manager introduces mission PM EM
Validates technical aspects EM SA, D
Prioritize mission with business, validate resources PM EM
Assign mission lead PM, EM ML
Define Scope PM ML, D
Research Users PM, D
Estimate team size and resources ML EM
Preparation
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Pitch Mission PM Tribe
Get a team EM, ML Developers
Define/Validate technical solution ML, Team SA
Define Landing Requirements Team, SA QA
Agree mission conduct (process, methods). All team must agree. Team
Launch
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Implement, adjust, iterate mission process ML, Team
Adjust solution if needed Team
Deliver Team
Review and adjust mission Backlog PM, Team
Execution
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Team will move to launchpad Team EM
Prepare support team for the new feature (training) PM, Team SA, D
Validate the release checklist PM, Team EM
Mission retrospective PM, Team ML
Clean cleanup tasks (technical debt, improvements) Former Team LL
Retrospective with business, publish knowledge PM EM
Landing
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Step Accountable Informed
Team can ask for more 25% of time (confirm with EM) ML EM
Team can ask for more resources ML EM
Mission finished but code does not have the required standards ML
Emergency
EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Launchpad Process
During the launchpad, developers must be focused in the following tasks:
● Refactor Code (reduce technical debt)
● Fix bugs
● Research new technologies
● Support & Operations
● Engineering Projects
● Hiring tasks (interviews, task reviews)
● Vacations
● After 3 months is a priority to go to mission
● Clear mission backlog (former team who was in this mission)
● Organize Guild events● Organize Guild events
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Guilds
● Gathering of people who share the same skills
● Encourage knowledge sharing on deep technical topics across teams
● Guilds meetings are open for anyone to attend
● Can be used for big architecture decision meetings, controversial code reviewes and rants
Backend Tribe Frontend Tribe DevOps Tribe
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Tribes You Say, But …. Why ?
● Developers motivation (no stuck in same project for
years)
● Spread knowledge about projects (rotation)
● Launchpad focusing in code quality and
improvements, missions on product value
● Easier to evaluate people (mission success)
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro …. Managing
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro …. Managing
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Micro …. Managing
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Bits of Wisdom
● The competitive advantage of culture, values, and rituals
● Nail the problem statement
● Achieve ambitious outcomes by having even more ambitious goals
● Think of your org design as a product
● Premature Scaling
○ Almost all the successful microservice stories have started with a
monolith that got too big and was broken up
○ Almost all the cases where I've heard of a system that was built as a
microservice system from scratch, it has ended up in serious
trouble.
www.beamery.com
Private & Confidential – Do Not Share
© Beamery Inc. All rights reserved.
Ahmad Assaf
ahmad@beamery
@ahmadaassaf
http://ahmadassaf.com

More Related Content

Similar to Micro Everything - Our Road to Scale

Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Christopher Co
 
Better Digital Products with Micro Frontends and Modyo
Better Digital Products with Micro Frontends and ModyoBetter Digital Products with Micro Frontends and Modyo
Better Digital Products with Micro Frontends and ModyoEmma Parsons
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsTechWell
 
Disrupting the future of Software: Aviarc’s story so far - with Shane Mercer
Disrupting the future of Software: Aviarc’s story so far - with Shane MercerDisrupting the future of Software: Aviarc’s story so far - with Shane Mercer
Disrupting the future of Software: Aviarc’s story so far - with Shane Mercernzsoftware
 
Arkhitech - who we are and what we do
Arkhitech - who we are and what we doArkhitech - who we are and what we do
Arkhitech - who we are and what we doSimobo
 
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineIBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineDevOps for Enterprise Systems
 
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...MongoDB
 
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...MongoDB
 
MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?Michael Lambert
 
MuleSoft_NZ_Meetup_11
MuleSoft_NZ_Meetup_11MuleSoft_NZ_Meetup_11
MuleSoft_NZ_Meetup_11MizuhoHoshino
 
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...Shahir Daya
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynotePieter Brinkman
 
Mike Siegler at INCOSE Minneapolis, 2014
Mike Siegler at INCOSE Minneapolis, 2014Mike Siegler at INCOSE Minneapolis, 2014
Mike Siegler at INCOSE Minneapolis, 2014Etherios
 
The Sky Is The Limit (CCC)
The Sky Is The Limit (CCC)The Sky Is The Limit (CCC)
The Sky Is The Limit (CCC)ITpreneurs
 
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-PremiseOptimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-Premisemycroftinc
 
OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...VarunNehra
 

Similar to Micro Everything - Our Road to Scale (20)

MohamedSalah-Resume
MohamedSalah-ResumeMohamedSalah-Resume
MohamedSalah-Resume
 
brochure
brochurebrochure
brochure
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
 
Better Digital Products with Micro Frontends and Modyo
Better Digital Products with Micro Frontends and ModyoBetter Digital Products with Micro Frontends and Modyo
Better Digital Products with Micro Frontends and Modyo
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile Projects
 
Disrupting the future of Software: Aviarc’s story so far - with Shane Mercer
Disrupting the future of Software: Aviarc’s story so far - with Shane MercerDisrupting the future of Software: Aviarc’s story so far - with Shane Mercer
Disrupting the future of Software: Aviarc’s story so far - with Shane Mercer
 
Arkhitech - who we are and what we do
Arkhitech - who we are and what we doArkhitech - who we are and what we do
Arkhitech - who we are and what we do
 
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineIBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
 
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...
MongoDB World 2018: From Disruption to Transformation: Document Databases, Do...
 
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...
MongoDB World 2019: From Transformation to Innovation: Lean-teams, Continuous...
 
Promact Portfolio
Promact PortfolioPromact Portfolio
Promact Portfolio
 
MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?
 
MuleSoft_NZ_Meetup_11
MuleSoft_NZ_Meetup_11MuleSoft_NZ_Meetup_11
MuleSoft_NZ_Meetup_11
 
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
DeveloperWeek 2020: Cloud-Native and Microservices Accelerate Process Improve...
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynote
 
Mike Siegler at INCOSE Minneapolis, 2014
Mike Siegler at INCOSE Minneapolis, 2014Mike Siegler at INCOSE Minneapolis, 2014
Mike Siegler at INCOSE Minneapolis, 2014
 
The Sky Is The Limit (CCC)
The Sky Is The Limit (CCC)The Sky Is The Limit (CCC)
The Sky Is The Limit (CCC)
 
Jobs in the Cloud
 Jobs in the Cloud Jobs in the Cloud
Jobs in the Cloud
 
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-PremiseOptimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
 
OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...
 

Recently uploaded

Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 

Recently uploaded (20)

★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 

Micro Everything - Our Road to Scale

  • 1. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro Everything The Road to Scale Ahmad Assaf @ahmadaassaf Head of Engineering @Beamery
  • 2. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Talent Marketing Bring consumer grade marketing capabilities to your talent team Comply For the global enterprise, GDPR is just the beginning Connect No more data silos, a single connected experience for candidates and recruiters Talent CRM A true CRM built on a foundation of data intelligence Our Talent Engagement Platform helps enterprises attract, identify and engage candidates on one unified platform, to deliver better talent acquisition—at scale. The Beamery Platform
  • 3. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. About Beamery Founded in 2013 on a mission to empower companies to make talent a priority $40M raised from leading investors from Silicon valley and Europe Headquartered in London with offices in San Francisco and Austin We partner with the best to support the success of our customers
  • 4. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. #1 US Insurance Company We’re powering market leaders #1 Swiss Bank #1 Social Network #1 eCommerce Company #1 Beverages Company
  • 5. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. 2017 Series A ~20 People (11 Engineers, Sales and Customer Success teams formed) - Enterprise clients - Early scaling problems 2018 Series B (Beamery 5) 130+ People, 3 Offices 50+ Engineering, Product, Design (EPD) Team - Tribes, Cross Functional teams - State of the Art architecture and platform 2015 Foundation of Beamery Angel and Seed Funds 8 People (4 Engineers). - Seeking a Product Market Fit (PMF) 2016 PMF (Beamery 1) 11 People (6 Engineers, 1 Designer, 4 Commercial roles) - Adoption of “cool” technolgoies and moving away from legacy code - Onboarding customers A Walk Down Memory Lane
  • 6. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. bjectives N O M M S orth Star ilestones easures prints
  • 7. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Move Fast and …. === Lots of Tech Debt Ignore Things
  • 8. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro-apps (FE) Scale Single Page Applications (SPAs), move away from legacy, attract and retain talent Micro-ops (DevOps) Scaling ownership, CI/CD, Mono repos and meta repos, tooling, logging and orchestration Micro-services (BE) Scaling to meet the demands of enterprise customers, use the right tool for the right job Micro-teams Splitting teams into independent cross-functional units. Tribes, guilds and how to scale management
  • 9. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. ● Code moves forward for a reason. Developers are intelligent, forward-thinking people, always trying to solve the next problem in the smartest possible way. ● If you don’t keep up, hiring will become difficult. Have you tried to recruit an AngularJS developer recently? ● Is your tech stack a sinking ship? You’ve automatically alienated the very people you want to attract. The good developers will not come to you, and they will not stay. Legacy Hurts Business in Surprising Ways
  • 10. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro-apps The Frontend Monolith Legacy is a constant in JavaScript
  • 11. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. What’s wrong with the monolith? ● Ownership ○ Drawing the line can be difficult ● Monolithic apps have more code conflicts ○ How do we keep developers interested? ● Learning & New Frameworks ● Horizontal scaling is difficult (Long build times, long startup times)
  • 12. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. What are micro frontends?
  • 13. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro-services The Backend Monolith
  • 14. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro-ops Scaling DevOps
  • 15. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved.
  • 16. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Where did we start? ● Beamery had around 25 backend and 15 frontend repositories, both mixtures of deployable artefacts (4 APIs, 10 apps and microapps, queue workers and cron jobs), internal plugins and libraries ● The codebase was entirely NodeJS, with various parts owned by different teams with either a backend or frontend focus ● As the codebase was written entirely in a single language, it became convenient to share code between repositories, especially from libraries Libraries and plugins became dependencies of each other, as well as dependencies of our deployable artefacts
  • 17. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. What’s wrong with doing it this way? ● Our testing process has become significantly more difficult, lengthier and more complex. ● Our developers can test their code locally, but without the api core pulling from a full list of dependencies lots of bugs are constantly slipping through the net ● Onboarding new engineers is slow, and getting slower! ● Collaborating within or between teams becomes a tiresome process since a major part of sharing code is now documenting and explaining where changes have been made. ● Retaining great engineers is harder too. The best want to work with the best environment, and would rather spend time coding than wading through a mess.
  • 18. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. So what did we do? We Created Story ! ● A ledger for code changes- a layer on top of meta to aid development, continuous integration, testing, container building and deployments when working with meta-repos with larger numbers of inter-dependent node projects. ● Keeps track of the blast radius of any set of changes, applied to any part of the codebase, at any stage of the development process ● Gives a clearer idea of what needs to be tested for regressions and what needs to be deployed, as well as showing how tightly coupled codebases with multiple repositories become over time
  • 19. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Not every team will have this problem like us. But, we’ve seen it a lot because the conditions which drove us to make these early decisions are pretty ubiquitous for startups in the position we were in: ● A small team working on an MVP, ● Barely enough time to ship features for clients ● Limited resources we could allocate to building infrastructure Yes, we could have versioned all of our repositories and published to a private registry, or transitioned from Metarepo to a Monorepo, but neither felt feasible at the time since both would have required a significant development freeze. Is this the only way?
  • 20. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro-teams Scaling Management
  • 21. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Independent Cross Functional Teams ● Embedded Front and Backend Engineers (whenever needed) ● Embedded DevOps Engineers (rather than a separate DevOps function) ● Each team will have a Product Owner/Product Manager ● Embedded Designers (for teams with FE engineers) ● Scrum Master responsibility is split across team members on rotation basis ● Internal delivery model is applied ● BE/FE contracts is internal for each team and cross teams contracts are in place Team Iceberg Team Rocket Team Engage
  • 22. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Tribes Model A tribe consists in a pool of 15-30 engineers aligned with Product/Marketing teams. Each tribe has an Engineer Manager and a Solution Architect. Types of tribes ● Product - Focus in adding more value to the product (new features) ● Core Engineering/Architecture/Infrastructure - Focus building/maintaining core systems, libraries and architectural improvements. Can have more, it depends how big the company is e.g., Marketplace, Mobile, Data, Warehouse
  • 23. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. There are two main processes using this model ​Missions​​ and ​Launchpad​​
  • 24. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Mission Process The main goal of a mission is to create value to the product. A mission must be specific, clear and have a target. It takes around 1-4 months and are composed by a team of 2-5 engineers. The tribe consists of the following personas: EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 25. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Example Mission Goal: Due a market research 25% of the inquiries would love to have integration with workable. The main goal of this mission is to integrate with workable provider. Users must be able to sync their contacts with Beamery platform. Target: Increase our customers by 5% after 3 months. Resources: 1 BE, 1FE and 1 Mission Lead
  • 26. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Sneak Peek … RICE RICE is a simple equation that models out the relative value of any given set of potential projects Reach: The proportion of your users, customers, or potential users and/ or customers that you can impact with a project Impact: The degree to which those users or customers would benefit from this solution Confidence: The degree of confidence that you feel in saying that, should you commit engineering resources to a problem, that you’ll achieve a given predicted impact with a predicted share of your potential user base. Effort: The amount of work necessary to achieve the functionality necessary to achieve some desired impact and reach.
  • 27. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Product team have ideas, improvements to the product and align them with the company strategy. PM Align possible mission with EM PM EM Mission Process EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 28. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Product Manager introduces mission PM EM Validates technical aspects EM SA, D Prioritize mission with business, validate resources PM EM Assign mission lead PM, EM ML Define Scope PM ML, D Research Users PM, D Estimate team size and resources ML EM Preparation EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 29. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Pitch Mission PM Tribe Get a team EM, ML Developers Define/Validate technical solution ML, Team SA Define Landing Requirements Team, SA QA Agree mission conduct (process, methods). All team must agree. Team Launch EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 30. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Implement, adjust, iterate mission process ML, Team Adjust solution if needed Team Deliver Team Review and adjust mission Backlog PM, Team Execution EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 31. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Team will move to launchpad Team EM Prepare support team for the new feature (training) PM, Team SA, D Validate the release checklist PM, Team EM Mission retrospective PM, Team ML Clean cleanup tasks (technical debt, improvements) Former Team LL Retrospective with business, publish knowledge PM EM Landing EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 32. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Step Accountable Informed Team can ask for more 25% of time (confirm with EM) ML EM Team can ask for more resources ML EM Mission finished but code does not have the required standards ML Emergency EM: Engineer Manager PM: Product Manager ML: Mission Lead SA: Solution Architect D: Designers LL: Launchpad Lead
  • 33. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Launchpad Process During the launchpad, developers must be focused in the following tasks: ● Refactor Code (reduce technical debt) ● Fix bugs ● Research new technologies ● Support & Operations ● Engineering Projects ● Hiring tasks (interviews, task reviews) ● Vacations ● After 3 months is a priority to go to mission ● Clear mission backlog (former team who was in this mission) ● Organize Guild events● Organize Guild events
  • 34. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Guilds ● Gathering of people who share the same skills ● Encourage knowledge sharing on deep technical topics across teams ● Guilds meetings are open for anyone to attend ● Can be used for big architecture decision meetings, controversial code reviewes and rants Backend Tribe Frontend Tribe DevOps Tribe
  • 35. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Tribes You Say, But …. Why ? ● Developers motivation (no stuck in same project for years) ● Spread knowledge about projects (rotation) ● Launchpad focusing in code quality and improvements, missions on product value ● Easier to evaluate people (mission success)
  • 36. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro …. Managing
  • 37. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro …. Managing
  • 38. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Micro …. Managing
  • 39. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Bits of Wisdom ● The competitive advantage of culture, values, and rituals ● Nail the problem statement ● Achieve ambitious outcomes by having even more ambitious goals ● Think of your org design as a product ● Premature Scaling ○ Almost all the successful microservice stories have started with a monolith that got too big and was broken up ○ Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble.
  • 40. www.beamery.com Private & Confidential – Do Not Share © Beamery Inc. All rights reserved. Ahmad Assaf ahmad@beamery @ahmadaassaf http://ahmadassaf.com

Editor's Notes

  1. Throw everything away and start again Massive waste Upgrade to Angular 5 or Vertical scaling Too cumbersome to migrate Maintaining two apps in parallel is not easy Split resources for bug fixing The awesome third option: Micro frontends
  2. Throw everything away and start again Massive waste Upgrade to Angular 5 or Vertical scaling Too cumbersome to migrate Maintaining two apps in parallel is not easy Split resources for bug fixing The awesome third option: Micro frontends
  3. They solved the problems we had... Ownership Code Conflicts Keeping developers interested Plug-in multiple frameworks Futureproofing Gradual migration
  4. This level of code sharing between deployable artefacts, libraries and plugins lead to a situation where the blast radius for even the smallest changes became quite large. Here, the blast radius refers to the number of deployable artefacts that have the potential to be impacted by any given set of changes. As a result, we had to install updates manually - combing through a manifest file which would locate recent changes, and pull from each location manually, or risk missing changes with automated installs.
  5. But how did we get here? As is always true, our priorities have changed dramatically through different stages of our growth. While in Beamery’s infancy (our seed round, for example) a MVP was the most important goal and some cut corners in our codebase were just the price of doing business. Now we’re quickly growing into an enterprise software company and our concerns are different - not only managing our new size and usage but continuing to scale efficiently. Interlinking dependencies are a known problem in Node.js codebases, particularly at this early stage. If you’re ticking off features, on-boarding new engineers to the team or even building new teams entirely, futureproofing your code is probably low on your to do list behind making the whole thing work. But, in the process, you’re building a web of dependencies which takes ever longer to get comfortable with. What starts as 3 or 4 dependent repositories turns into 10 or 20, and before long you’ve got no time to untangle it all when you’re still hitting feature deadlines.
  6. Although there are certainly arguments both for and against a Monorepo, we made an early decision to go Meta, which is probably another whole article in itself. Versioning all our repos properly would have required a transition to a more complete continuous integration tool (we were using Jenkins at the time). Both options felt like serious structural changes, which would have brought their own set of problems, not to mention the downtime when implementing them. Ultimately, we built Story to let us continue to move quickly and scale without stopping production, since we just couldn’t make the business case to down tools and change tack. We might be a few years older and wiser, but some pressures never change.
  7. Founders obsessed with culture. A strong sense of self Rituals ======== As you move up the ranks of leadership at a product org you quickly learn the most important product to get right is how you organize your people. How you structure your org can be a force multiplier or an incredible hindrance to achieving your mission. From my experience there are a number of key ingredients to successful org design: Optimize for dedicated cross-functional teams with a clear mandate. In my experience this is the single most impactful thing leaders can do when setting up a team. You want self-contained teams that can move as autonomously as possible, towards an agreed upon goal. Any missing resource (e.g. designer, DS, budget), additional cross-team dependency, or conflicting surface area, cuts the team’s impact by an immense amount (this is often invisible until later). Think through all the times a team will need to meet with or wait for another team and make that number as small as possible. Well-functioning teams feel like a black box that outputs regular updates and amazing work. Get the goals right. A lot has been said about goals (e.g. SMART goals, OKRs), but I think teams still underestimate the power of getting goals right. In my experience the right goal is the difference between incredible progress and unending churn. What has worked best for me are goals that (1) are as few goals as possible — ideally just one or two, (2) have quick feedback loops so that you can see impact immediately, (3) have a direct connection to top-line business growth, (4) are easily understood, and (5) are uncomfortable. Be aware that there is no perfect org design, only the best idea you have at that time. While at Airbnb I’ve been through almost a dozen re-orgs. In that time I’ve never seen a single org plan that addressed every issue and that everyone was happy with. Make sure you’re addressing the biggest pain points, future proofing it as much as you can, and then just move forward. It’ll have flaws (e.g. overlapping product ownership, two teams with the same key metric, a team owning far too much), so note them and put systems in place to work around them. Set expectations that the org will change again in the future. ======= Premature scaling troubles are everywhere in startups. In the early 2010s, SQL databases were shunned partly for the (perceived) infinite scalability of NoSQL databases like MongoDB and Cassandra. The startup productivity benefits of monoliths was lost in the excitement around microservices. For years, Rails has been called unfit for startups because it is slower than other frameworks. ======= Each of these engineers has their own risk for a startup: Large company engineers are often exposed to scaled systems and may not feel comfortable with hacky code. They are much less likely to be exposed to their users. Elite computer scientists get bored by the plumbing-type engineering that typifies early startup tasks, leading to overengineering. Junior engineers, who are often attracted to startups, may inject too much new technology and poorly architect their systems. Development shops often favor technologies that let them be productive across many clients. These shops have no incentive to learn new tools for a particular client, and they also don’t have the long-term skin in the game needed to make critical early tech decisions.