Good Saturday! โฅ๏ธ
Each day,
life hands you presents
disguised as moments.
As the sun rises, softly it whispers:
โHere is the world anew,
waiting for your touch.โ
Seize the moment; each opportunity
is the universeโs way of asking,
โWhat will you create today?โ
#FridayVibes
You donโt need to heal
every single bad experience
in your past.
Regardless of how hard it was,
you have a strong soul
because you made it here!โจ
Look at your bad memories
from that perspective.
That is who you truly are! โฅ๏ธ
#FridayMotivation#FridayFeeling#FridayVibes
Distress,
tiredness and anxiety
are just signals
that you need to surrender,
relax and allow yourself
to go with your flow.
Trust that the universe
will always have your back
and that everything,
even if you canโt see how right now,
will always work out for the good of all.๐
๐ฆ๐ต๐ผ๐ฝ๐ถ๐ณ๐ ๐๐ฒ๐ฟ๐๐ฒ๐ฑ ๐บ๐ผ๐ฟ๐ฒ ๐๐ต๐ฎ๐ป ๐ญ ๐ ๐ถ๐น๐น๐ถ๐ผ๐ป ๐ฟ๐ฒ๐พ๐๐ฒ๐๐๐ ๐ฝ๐ฒ๐ฟ ๐๐ฒ๐ฐ๐ผ๐ป๐ฑ ๐ฑ๐๐ฟ๐ถ๐ป๐ด ๐๐น๐ฎ๐ฐ๐ธ ๐๐ฟ๐ถ๐ฑ๐ฎ๐
You probably think that such large requests can be handled only by some fancy microservices. The truth is a bit different.
Shopify uses a ๐บ๐ผ๐ฑ๐๐น๐ฎ๐ฟ ๐บ๐ผ๐ป๐ผ๐น๐ถ๐๐ต ๐ฎ๐ฝ๐ฝ๐ฟ๐ผ๐ฎ๐ฐ๐ต, where they keep all their code in one modular codebase. Monolithic architecture is the easiest one to understand and implement. Since monolithic design is simple to build and enables teams to move swiftly in the beginning, it can carry an application far to get their product in front of customers earlier.
There are many benefits to centralizing your application deployment and codebase maintenance. All functionality will be accessible in one folder; you only need to manage one repository. Additionally, it implies that one test and deployment pipeline needs to be maintained, which might save much work. The ability to call into different components rather than relying on web service APIs is among the most alluring ๐ฎ๐ฑ๐๐ฎ๐ป๐๐ฎ๐ด๐ฒ๐ ๐ผ๐ณ ๐บ๐ผ๐ป๐ผ๐น๐ถ๐๐ต๐ถ๐ฐ ๐ฎ๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ over several distinct services.
Shopify implemented one version of the modular monolith with ๐ฐ๐ผ๐บ๐ฝ๐ผ๐ป๐ฒ๐ป๐๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ถ๐ป ๐ฅ๐๐ฏ๐ ๐ผ๐ป ๐ฅ๐ฎ๐ถ๐น๐. They organize a code base around real-world concepts (like orders, shipping, inventory, and billing), which makes it easier to label code and people who understand it. Each component is a mini Rails app (a module) that isolates business domains from one another. Each component claims sole ownership of the data associated with and defines a straightforward, dedicated interface with domain boundaries communicated through a public API.
More stats for Black Friday:
๐น 145 billion requests (~60 million per minute)
๐น 99.999+% uptime
๐น 5 TB/min of data served from across the infrastructure
๐น MySQL 5.7 and 8 fleets handled over 19 million requests per second (QPS)
๐น 22 GB/sec of logs and 51.4 GB/sec of metrics data
๐น Ingested 9 million spans a second of tracing data
๐น Their Apache Kafka served 29 million messages per second at peak
๐น Everything is run on Google Cloud
#softwareengineering #technology #programming #softwarearchitecture #techworldwithmilan
16 Biases that distort your Decision-Making
1. Anchoring Bias
You rely heavily on the first piece of information you receive.
Example: First seeing an expensive watch makes others seem cheaper.
Product Management is not about:
- Asking customers about the requirements
- Writing detailed specifications
- Creating prototypes and wireframes
- Assigning tasks to developers
- Verifying and accepting the work of others
- Obsessing over velocity, deadlines, and roadmaps
- Mastering Scrum to perfection
- Acting like the CEO of the product
Anyone can do that.
It's about:
- Understanding customer's problems, needs, and desires
- Understanding the market and the business in depth
- Collaborating closely with engineers and designers
- Identifying opportunities, ideating solutions, and tackling the risks together
- Marrying customer goals and business goals
- Influencing others to work toward the common goal
- Being humble (it's ok not to be the smartest person in the room)
- Experimenting to validate assumptions
- Leading without authority
- Turning chaos into clarity
Start with these questions:
- Why are we building this thing?
- Why are we building it now?
- For whom are we building it?
- What's the unique value of our product?
- How is it aligned with the company's vision?
- How is it aligned with the business strategy?
- What does success look like? How can we measure it?
- What are the customer needs/jobs (functional, emotional, social)?
- How will it affect our customers and users?
- How will it create value for the business?
- Can we buy it instead of building it?
- How can we make sure that our customers would love it?
- Will our customers know how to use it?
- Can our business support it (e.g., legal, finances)?
- Is it feasible? Can we build it?
- How can we bring it to the market? Do we have the required channels?
- Should we do it at all? Are there any ethical considerations?
- What are the riskiest assumptions? How can we validate them?
- What does the data tell us?
- How can we get maximum validating learning with minimum effort?
Be curious. Learn and experiment. Question solutions and push back on things handled down.
Remember that product management is about creating a "product customers love, yet also works for our business" (Marty Cagan, Inspired), not about pleasing stakeholders.
After 9 years, I'm still learning daily, and I do not know everything, but I can give you my perspective on any questions you have.
Drop them below.