Archives
- By thread 3669
-
By date
- June 2021 10
- July 2021 6
- August 2021 20
- September 2021 21
- October 2021 48
- November 2021 40
- December 2021 23
- January 2022 46
- February 2022 80
- March 2022 109
- April 2022 100
- May 2022 97
- June 2022 105
- July 2022 82
- August 2022 95
- September 2022 103
- October 2022 117
- November 2022 115
- December 2022 102
- January 2023 88
- February 2023 90
- March 2023 116
- April 2023 97
- May 2023 159
- June 2023 145
- July 2023 120
- August 2023 90
- September 2023 102
- October 2023 106
- November 2023 100
- December 2023 74
- January 2024 75
- February 2024 75
- March 2024 78
- April 2024 74
- May 2024 108
- June 2024 98
- July 2024 116
- August 2024 134
- September 2024 130
- October 2024 141
- November 2024 91
-
Why Crisp moved to one monitoring solution
New Relic
Crisp, a risk-intelligence company that helps protect brands from online attacks
Crisp, a risk-intelligence company that helps protect brands from online attacks, transitioned from multiple open-source monitoring tools to one single view with New Relic. The complexity and cost of managing various tools prompted this shift.
After a year-long evaluation, Crisp found New Relic to be the optimal choice for streamlined operations and improved observability. New Relic's pricing based on hosts aligns with Crisp’s needs, eliminating the confusion of data throughput models.
Read how New Relic gave Crisp a more efficient and cost-effective monitoring experience.
Read Story Need help? Let's get in touch.
This email is sent from an account used for sending messages only. Please do not reply to this email to contact us—we will not get your response.
This email was sent to info@learn.odoo.com Update your email preferences.
For information about our privacy practices, see our Privacy Policy.
Need to contact New Relic? You can chat or call us at +44 20 3859 9190.
Strand Bridge House, 138-142 Strand, London WC2R 1HH
© 2024 New Relic, Inc. All rights reserved. New Relic logo are trademarks of New Relic, Inc
by "New Relic" <emeamarketing@newrelic.com> - 07:07 - 14 Mar 2024 -
How can leaders create value from gen AI?
On Point
The need to perform ‘organizational surgery’
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:05 - 14 Mar 2024 -
How can corporate boards manage increasing complexity?
On Point
The changing role of boards Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
Higher expectations. Being a board member is more complex than ever, global leader of McKinsey Board Services Frithjof Lund shares on an episode of the Inside the Strategy Room podcast. Corporate boards are taking on new challenges such as geopolitics, generative AI, digitization, and sustainability. In addition, boards are increasingly expected to engage on strategy, investments and M&A, performance management, risk, talent, and organizational matters.
— Edited by Belinda Yu, editor, Atlanta
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:29 - 13 Mar 2024 -
A Deep Dive into Amazon DynamoDB Architecture
A Deep Dive into Amazon DynamoDB Architecture
State of Observability for Financial Services and Insurance (Sponsored) Financial institutions are experiencing an incredible transformation, stemming from consumers expecting a higher level of digital interaction and access to services and a lower dependency on physical services. At the same time, FSI organizations are faced with increased regulation, with new mandates for IT and cyber risk management such as the Digital Operational Resilience Act (DORA).͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ Forwarded this email? Subscribe here for moreState of Observability for Financial Services and Insurance (Sponsored)
Financial institutions are experiencing an incredible transformation, stemming from consumers expecting a higher level of digital interaction and access to services and a lower dependency on physical services. At the same time, FSI organizations are faced with increased regulation, with new mandates for IT and cyber risk management such as the Digital Operational Resilience Act (DORA).
To ensure development and innovation proceed at the required speed with a customer-centric focus, they’re turning to observability. Dive into the facts and figures of the adoption and business value of observability across the FSI and insurance sectors.
In 2021, there was a 66-hour Amazon Prime Day shopping event.
The event generated some staggering stats:
Trillions of API calls were made to the database by Amazon applications.
The peak load to the database reached 89 million requests per second.
The database provided single-digit millisecond performance while maintaining high availability.
All of this was made possible by DynamoDB.
Amazon’s DynamoDB is a NoSQL cloud database service that promises consistent performance at any scale.
Besides Amazon’s in-house applications, hundreds of thousands of external customers rely on DynamoDB for high performance, availability, durability, and a fully managed serverless experience. Also, many AWS services such as AWS Lambda, AWS Lake Formation, and Amazon SageMaker are built on top of DynamoDB.
In this post, we will look at the evolution of DynamoDB, its operational requirements, and the techniques utilized by the engineers to turn those requirements into reality.
History of DynamoDB
In the early years, Amazon realized that letting applications access traditional enterprise databases was an invitation to multiple scalability challenges such as managing connections, dealing with concurrent workloads, and handling schema updates.
Also, high availability was a critical property for always-online systems. Any downtime negatively impacted the company’s revenue.
There was a pressing need for a highly scalable, available, and durable key-value database for fast-changing data such as a shopping cart.
Dynamo was a response to this need.
However, there was one drawback of Dynamo. It was a single-tenant system and teams were responsible for managing their own Dynamo installations. In other words, every team that used Dynamo had to become experts on various parts of the database service, creating a barrier to adoption.
At about the same time, Amazon launched SimpleDB which reduced operational burden for the teams by providing a managed and elastic experience. The engineers within Amazon’s development team preferred using SimpleDB even though Dynamo might be more suitable for their use case.
But SimpleDB also had some limitations such as:
The tables had a small storage capacity of 10 GB.
Request throughput was low.
Unpredictable read and write latencies because all table attributes were indexed.
Also, the operational burden wasn’t eliminated. Developers still had to take care of dividing data between multiple tables to meet their application’s storage and throughput requirements.
Therefore, the engineers concluded that a better solution would be to combine the best parts of Dynamo (scalability and predictable high performance) with the best parts of SimpleDB (ease of administration, consistency, and a table-based data model).
This led to the launch of DynamoDB as a public AWS service in 2012. It was a culmination of everything they had learned from building large-scale, non-relational databases for Amazon.
Over the years, DynamoDB has added several features based on customer demand.
The below timeline illustrates this constant progress.
Operational Requirements of DynamoDB
DynamoDB has evolved over the years, much of it in response to Amazon’s experiences building highly scalable and reliable cloud computing services. A key challenge has been adding features without impacting the key operational requirements.
The below diagram shows the six fundamental operational requirements fulfilled by DynamoDB.
Let’s look at each of them in a little more detail.
Fully Managed Cloud Service
A fundamental goal of DynamoDB is to free developers from the burden of running their database system. This includes things like patching software, configuring a distributed database cluster, and taking care of hardware needs.
The applications can just talk to the DynamoDB API for creating tables. They can read and write data without worrying about where those tables are physically stored or how they’re being managed.
DynamoDB handles everything for the developer right from resource provisioning to software upgrades, data encryption, taking backups, and even failure recovery.
Multi-Tenant Architecture
DynamoDB also aims to create cost savings for the customers.
One way to achieve this is using a multi-tenant architecture where data from different customers is stored on the same physical machines. This ensures better resource utilization and lets Amazon pass on the savings to the customers.
However, you still need to provide workload isolation in a multi-tenant system.
DynamoDB takes care of it via resource reservations, tight provisioning, and monitoring usage for every customer.
Boundless Scale for Tables
Unlike SimpleDB, there are no predefined limits for how much data can be stored in a DynamoDB table.
DynamoDB is designed to scale the resources dedicated to a table from several servers to many thousands as needed. A table can grow elastically to meet the demands of the customer without any manual intervention.
Predictable Performance
DynamoDB guarantees consistent performance even when the tables grow from a few megabytes to hundreds of terabytes.
For example, if your application is running in the same AWS region as its data, you can expect to see average latency in the low single-digit millisecond range.
DynamoDB handles any level of demand through horizontal scaling by automatically partitioning and repartitioning data as and when needed.
Highly Available
DynamoDB supports high availability by replicating data across multiple data centers or availability zones.
Customers can also create global tables that are geo-replicated across selected regions and provide low latency all across the globe. DynamoDB offers an availability SLA of 99.99% for regular tables and 99.999% for global tables.
Flexible Use Cases
Lastly, DynamoDB has a strong focus on flexibility and doesn’t force developers to follow a particular data model.
There’s no fixed schema and each data item can contain any number of attributes. Tables use a key-value or document data model where developers can opt for strong or eventual consistency while reading items from the table.
Latest articles
If you’re not a paid subscriber, here’s what you missed this month.
To receive all the full articles and support ByteByteGo, consider subscribing:
Architecture of DynamoDB
Now that we’ve looked at the operational requirements of DynamoDB, time to learn more about the architecture that helps fulfill these requirements.
To simplify the understanding, we will look at specific parts of the overall architecture one by one.
DynamoDB Tables
A DynamoDB table is a collection of items where each item is a collection of attributes.
Each item is uniquely identified by a primary key and the schema of this key is specified at the time of table creation. The primary key’s schema contains a partition key or it can be a composite key (consisting of a partition and sort key).
The partition key is important as it helps determine where the item will be physically stored. We will look at how that works out in a later section.
DynamoDB also supports secondary indexes to query data in a table using an alternate key. A particular table can have one or more secondary indexes.
Interface
DynamoDB provides a simple interface to store or retrieve items from a table.
The below table shows the primary operations that can be used by clients to read and write items in a DynamoDB table.
Also, DynamoDB supports ACID transactions that can update multiple items while ensuring atomicity, consistency, isolation, and durability. The key point to note is that this is managed without compromising on the other operational guarantees related to scaling and availability.
Partitioning and Replication
A DynamoDB table is divided into multiple partitions. This provides two benefits:
Handling more throughput as requests increase
Store more data as the table grows
Each partition of the table hosts a part of the table’s key range. For example, if there are 100 keys and 5 partitions, each partition can hold 20 keys.
But what about the availability guarantees of these partitions?
Each partition has multiple replicas distributed across availability zones. Together, these replicas form a replication group and improve the partition’s availability and durability.
A replication group consists of storage replicas that contain both the write-ahead logs and the B-tree that stores the key value data. Also, a group can contain replicas that only store write-ahead log entries and not the key-value data. These replicas are known as log replicas. We will learn more about their usage in a later section.
But whenever you replicate data across multiple nodes, guaranteeing a consensus becomes a big issue. What if each partition has a different value for a particular key?
The replication group uses Multi-Paxos for consensus and leader election. The leader is a key player within the replication group:
The leader serves all write requests. On receiving a write request, the leader of the group generates a write-ahead log record and sends it to the other replicas. A write is acknowledged to the application once a quorum of replicas stores the log record to their local write-ahead logs.
The leader also serves strongly consistent read requests. On the other hand, any other replica can serve eventually consistent reads.
But what happens if the leader goes down?
The leader of a replication group maintains its leadership using a lease mechanism. If the leader of the group fails and this failure is detected by any of the other replicas, the replica can propose a new round of the election to elect itself as the new leader.
DynamoDB Request Flow
DynamoDB consists of tens of microservices. However, there are a few core services that carry out the most critical functionality within the request flow.
The below diagram shows the request flow on a high level.
Let’s understand how it works in a step-by-step manner.
Requests arrive at the request router service. This service is responsible for routing each request to the appropriate storage node. However, it needs to call other services to make the routing decision.
The request router first checks whether the request is valid by calling the authentication service. The authentication service is hooked to the AWS IAM and helps determine whether the operation being performed on a given table is authorized.
Next, the request router fetches the routing information from the metadata service. The metadata service stores routing information about the tables, indexes, and replication groups for keys of a given table or index.
The request router also checks the global admission control to make sure that the request doesn’t exceed the resource limit for the table.
Lastly, if everything checks out, the request router calls the storage service to store the data on a fleet of storage nodes. Each storage node hosts many replicas belonging to different partitions.
Hot Partitions and Throughput Dilution
As you may have noticed, partitioning is a key selling point for DynamoDB. It provides a way to dynamically scale both the capacity and performance of tables as the demand changes.
In the initial release, DynamoDB allowed customers to explicitly specify the throughput requirements for a table in terms of read capacity units (RCUs) and write capacity units (WCUs). As the demand from a table changed (based on size and load), it could be split into partitions.
For example, let’s say a partition has a maximum throughput of 1000 WCUs. When a table is created with 3200 WCUs, DynamoDB creates 4 partitions with each partition allocated 800 WCUs. If the table capacity was increased to 6000 WCUs, then partitions will be split to create 8 child partitions with 750 WCUs per partition.
All of this was controlled by the admission control system to make sure that storage nodes don’t become overloaded. However, this approach assumed a uniform distribution of throughput across all partitions, resulting in some problems.
Two consequences because of this approach were hot partitions and throughput dilation.
Hot partitions arose in applications that had non-uniform access patterns. In other words, more traffic consistently went to a few items on the tables rather than an even distribution.
Throughput dilution was common for tables where partitions were split for size. Splitting a partition for size would result in the throughput of the partition being equally divided among the child partitions. This would decrease the per-partition throughput.
The static allocation of throughput at a partition level can cause reads and writes to be rejected if that partition receives a high number of requests. The partition’s throughput limit was exceeded even though the total provisioned throughput of the table was sufficient. Such a condition is known as throttling.
The below illustration shows this concept:
From a customer’s perspective, throttling creates periods of unavailability even though the service behaved as expected. To solve this, the customer will try to increase the table’s provisioned throughput but not be able to use all that capacity effectively. In other words, tables would be over-provisioned, resulting in a waste of resources.
To solve this, DynamoDB implemented a couple of solutions.
Bursting
While non-uniform access to partitions meant that some partitions exceeded their throughput limit, it also meant that other partitions were not using their allocated throughput. In other words, there was unused capacity being wasted.
Therefore, DynamoDB introduced the concept of bursting at the partition level.
The idea behind bursting was to let applications tap into this unused capacity at a partition level to absorb short-lived spikes for up to 300 seconds. The unused capacity is called the burst capacity.
It’s the same as storing money in the bank from your salary each month to buy a new car with all those savings.
The below diagram shows this concept.
The capacity management was controlled using multiple token buckets as follows:
Allocated token bucket for a partition
Burst token bucket for a partition
Node-level token bucket
Together, these buckets provided admission control:
If a read request arrived on a storage node and there were tokens in the partition’s allocated bucket, the request was admitted and the tokens were deducted from the partition bucket and node-level bucket
Once a partition exhausted all provisioned tokens, requests were allowed to burst only when tokens were available both in the burst token and the node-level token bucket
Global Admission Control
Bursting took care of short-lived spikes. However, long-lived spikes were still a problem in cases that had heavily skewed access patterns across partitions.
Initially, the DynamoDB developers implemented an adaptive capacity system that monitored the provisioned and consumed capacity of all tables. In case of throttling where the table level throughput wasn’t exceeded, it would automatically boost the allocated throughput.
However, this was a reactive approach and kicked in only after the customer had experienced a brief period of unavailability.
To solve this problem, they implemented Global Admission Control or GAC.
Here’s how GAC works:
It builds on the idea of token buckets by implementing a service that centrally tracks the total consumption of a table’s capacity using tokens.
Each request router instance maintains a local token bucket to make admission decisions.
The routers also communicate with the GAC to replenish tokens at regular intervals.
When a request arrives, the request router deducts tokens.
When it runs out of tokens, it asks for more tokens from the GAC.
The GAC instance uses the information provided by the client to estimate global token consumptions and provides the tokens available for the next time unit to the client’s share of overall tokens.
Managing Durability with DynamoDB
One of the central tenets of DynamoDB is that the data should never be lost after it has been committed. However, in practice, data loss can happen due to hardware failures or software bugs.
To guard against these scenarios, DynamoDB implements several mechanisms to ensure high durability.
Hardware Failures
In a large service like DynamoDB, hardware failures such as memory and disk failures are common. When a node goes down, all partitions hosted on that node are down to just two replicas.
The write-ahead logs in DynamoDB are critical for providing durability and crash recovery.
Write-ahead logs are stored in all three replicas of a partition. To achieve even higher levels of durability, the write-ahead logs are also periodically archived to S3 which is designed for 11 nines of durability.
Silent Data Errors and Continuous Verification
Some hardware failures due to storage media, CPU, or memory can cause incorrect data to be stored. Unfortunately, these issues are difficult to detect and they can happen anywhere.
DynamoDB extensively maintains checksums within every log entry, message, and log file to detect such data. Data integrity is validated for every data transfer between two nodes.
DynamoDB also continuously verifies data at rest using a scrub process. The goal of this scrub process is to detect errors such as bit rot.
The process verifies two things:
All three copies of the replicas in the replication group have the same data
Data of the live replicas matches with a copy of a replica built offline using the archived write-ahead log entries
The verification is done by computing the checksum of the live replica and matching that with a snapshot of one generated from the log entries archived in S3.
Backups and Restores
A customer’s data can also get corrupted due to a bug in their application code.
To deal with such scenarios, DynamoDB supports backup and restore functionalities. The great part is that backups and restores don’t affect the performance or availability of the table since they are built using the write-ahead logs that are archived in S3.
Backups are full copies of DynamoDB tables and are stored in an S3 bucket. They are consistent across multiple partitions up to the nearest second and can be restored to a new table anytime.
DynamoDB also supports point-in-time restore allowing customers to restore the contents of a table that existed at any time in the previous 35 days.
Managing Availability with DynamoDB
Availability is a major selling point of a managed database service like DynamoDB.
Customers expect almost 100% availability and even though it may not be theoretically possible, DynamoDB employs several techniques to ensure high availability.
DynamoDB tables are distributed and replicated across multiple Availability Zones (AZs) within a region. The platform team regularly tests resilience to node, rack, and AZ failures.
However, they also had to solve several challenges to bring DynamoDB to such a high level of availability
Write and Read Availability
The write availability of a partition depends on a healthy leader and a healthy write quorum that consists of two out of three replicas from different AZs.
In other words, a partition becomes unavailable for writes if the number of replicas needed to achieve the minimum quorum requirements is unavailable. If one of the replicas goes down, the leader adds a log replica in the group since it is the fastest way to ensure that the write quorum is always available.
As mentioned earlier, the leader replica serves consistent reads while other replicas can serve eventually consistent reads.
Failure Detection
The availability of a database is highly dependent on the ability to detect failures.
Failure detection must be quick to minimize downtime. Also, it should be able to detect false positives because triggering a needless failover can lead to bigger disruptions in the service.
For example, when all replicas lose connection to the leader, it’s clear that the leader is down and a new election is needed.
However, nodes can also experience gray failures due to communication issues between a leader and followers. For instance, a replica doesn’t receive heartbeats from a leader due to some network issue and triggers a new election. However, a newly elected leader has to wait for the expiry of the old leader’s lease resulting in unavailability.
To get around gray failures like this, a replica that wants to trigger a failover confirms with the other replicas whether they are also unable to communicate with the leader. If the other replicas respond with a healthy leader message, the follower drops its leader election attempt.
Metadata Availability
As we saw in the DynamoDB’s request flow diagram, metadata is a critical piece that makes the entire process work.
Metadata is the mapping between a table’s primary keys and the corresponding storage nodes. Without this information, the requests cannot be routed to the correct nodes.
In the initial days, DynamoDB stored the metadata in DynamoDB itself. When the request router received a request for a table it had not seen before, it downloaded the routing information for the entire table and cached it locally for subsequent requests. Since this information didn’t change frequently, the cache hit rate was almost 99.75 percent.
However, bringing up new router instances with empty caches would result in a huge traffic spike to the metadata service, impacting performance and stability.
To reduce the reliance on local caching of the metadata, DynamoDB built an in-memory distributed datastore called MemDS.
See the below diagram for the role of MemDS.
As you can see, MemDS stores all the metadata in memory and replicates it across the fleet of MemDB servers.
Also, a partition map cache (MemDS cache) was deployed on each request router instance to avoid a bi-modal cache setup. Whenever there is a cache hit, an asynchronous call is made to MemDS to refresh the cache, ensuring that there is a constant flow of traffic to the MemDS fleet rather than traffic spikes.
Conclusion
DynamoDB has been a pioneer in the field of NoSQL databases in the cloud-native world.
Thousands of companies all across the world rely on DynamoDB for their data storage needs due to its high availability and scalability properties.
However, behind the scenes, DynamoDB also packs a lot of learnings in terms of designing large-scale database systems.
Some of the key lessons the DynamoDB team had were as follows:
Adapting to the traffic patterns of user applications improves the overall customer experience
To improve stability, it’s better to design systems for predictability over absolute efficiency
For high durability, perform continuous verification of the data-at-rest
Maintaining high availability is a careful balance between operational discipline and new features
These lessons can act as great takeaways for us.
References:
Amazon DynamoDB: A Scalable, Predictably Performant and Fully Managed NoSQL Database Service
Amazon DynamoDB: Evolution of a Hyperscale Cloud Database Service
SPONSOR US
Get your product in front of more than 500,000 tech professionals.
Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.
Space Fills Up Fast - Reserve Today
Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing hi@bytebytego.com.
Like Comment Restack © 2024 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe
by "ByteByteGo" <bytebytego@substack.com> - 11:42 - 12 Mar 2024 -
Minority employees could help address Europe’s skills shortage
On Point
The potential (and significant) economic opportunity Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
Systemic barriers. Europe has significant room for improvement when it comes to ethnocultural minority employees (EMEs). A McKinsey survey of nearly 4,000 employees in five European countries showed that EMEs, who accounted for about 1,700 of the respondents, face significant barriers in terms of recruitment, retention, and advancement. Systemic issues—including discrimination, lack of access to professional networks, limited opportunities for career development and training, and unconscious biases—hinder EMEs’ progress in the workplace, highlight McKinsey senior partner Massimo Giordano and colleagues.
— Edited by Jana Zabkova, senior editor, New York
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:06 - 12 Mar 2024 -
Management mindsets that work: A leader’s guide
Matters of the mind Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
For a long while, self-awareness and mindfulness were popular notions in new-age circles—though in the corporate world, not so much. After much research and, yes, contemplation, we now understand the connection between our internal and external environments to be critical to the success of leaders at all levels, and of the people they lead. An introspective, emotionally intelligent mindset is especially important for CEOs, whose words, behaviors, and decisions have an outsize impact on their organizations. This week, we look at the mindsets that great leaders bring to work.
Whether you’re on the front line or the management team, some skills are bound to come more naturally than others. Indeed, McKinsey senior partners Gautam Kumra, Joydeep Sengupta, and Mukund Sridhar report that CEOs can be self-aware and aren’t always superhuman. Early results from a self-assessment of CEO performance show that corporate leaders tend to rate themselves highest on managing their personal effectiveness and lowest on engaging their boards of directors. While CEOs tend to say they have good relationships with their boards, they rate themselves lower at tapping the board’s wisdom and focusing board meetings on the future. The good news is that time and training can improve these skills. So can a mindset shift: the best CEOs think about the board’s expertise more expansively, embracing directors’ perspectives rather than relegating them to the sidelines.
That’s the number of employees working at General Motors in 1980, the year that Mary Barra (the company’s current CEO) began there as an engineering intern. Despite the leadership skills Barra honed and the other senior roles she held at GM, there were twists and turns along the way: all evidence of how narrow the path to the top job can be. To increase a CEO hopeful’s odds of success, McKinsey’s Carolyn Dewar, Scott Keller, Vik Malhotra, and Kurt Strovink offer four recommendations, including an honest assessment of why they want the role in the first place. Passion and vision are essential to sustainable success as a chief executive; ego is not. And a humble, open-to-change mindset is just as important for aspiring or newer CEOs as it is for mid-tenured leaders.
After interviewing exceptional CEOs for their bestselling book, CEO Excellence, senior partners Carolyn Dewar, Scott Keller, and Vik Malhotra uncovered an abundance of insights about this group’s habits—then distilled them into six mindsets that leaders of all stripes can learn from. In a recent interview, Dewar and Malhotra note the ways in which the best CEOs’ mindsets can make the difference. “On aligning the organization, the mindset of treating the soft stuff as hard stuff is a critical one,” Malhotra says. “On mobilizing through leaders, many great CEOs focused on the question, how do you create not just a team of stars but a star team?” Another key insight: that great leaders are built, not born. “Great CEOs come to the role with a certain drive, background, and education, but that’s a small part of the equation. The eight or ten roles they held before becoming CEOs prepared them to be bold in setting direction or to focus on what only they could do in their leadership models. Those are learned skills.”
Lead by bringing your best self to work.
– Edited by Daniella Seiler, executive editor, Washington, DC
Share these insights
Did you enjoy this newsletter? Forward it to colleagues and friends so they can subscribe too. Was this issue forwarded to you? Sign up for it and sample our 40+ other free email subscriptions here.
This email contains information about McKinsey’s research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this email because you subscribed to the Leading Off newsletter.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "McKinsey Leading Off" <publishing@email.mckinsey.com> - 02:07 - 11 Mar 2024 -
Seven predictions for medtech in 2024
On Point
‘Lumpy’ geographic performance Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
Potential rebound. Growth in medtech has accelerated since the COVID-19 pandemic, bringing with it higher expectations for medtech companies. Medtech revenue growth in 2024 will likely stabilize at 100 to 150 basis points above prepandemic levels, McKinsey senior partner Peter Pfeiffer and coauthors explain. Factors fueling the growth are an aging population; innovations targeting undertreated diseases like diabetes, heart failure, and stroke; and the increased use of alternative-care sites.
— Edited by Jermey Matthews, editor, Boston
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:30 - 11 Mar 2024 -
The week in charts
The Week in Charts
The rise of injectable procedures, evolving trade patterns, and more Our McKinsey Chart of the Day series offers a daily chart that helps explain a changing world—as we strive toward sustainable and inclusive growth. In case you missed them, this week’s graphics explored the rise of injectable procedures, evolving trade patterns, renewable-energy demand, global education performance, and the GDP impact of improving women’s health.
Share these insights
Did you enjoy this newsletter? Forward it to colleagues and friends so they can subscribe too. Was this issue forwarded to you? Sign up for it and sample our 40+ other free email subscriptions here.
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this email because you subscribed to The Week in Charts newsletter.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "McKinsey Week in Charts" <publishing@email.mckinsey.com> - 03:38 - 9 Mar 2024 -
EP102: Encoding vs Encryption vs Tokenization
EP102: Encoding vs Encryption vs Tokenization
This week’s system design refresher: Caching Pitfalls Every Developer Should Know (Youtube video) Encoding vs Encryption vs Tokenization Kubernetes Tools Stack Wheel Fixing bugs automatically at Meta Scale The one-line change that reduced clone times by a whopping 99%, says Pinterest͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ Forwarded this email? Subscribe here for moreThis week’s system design refresher:
Caching Pitfalls Every Developer Should Know (Youtube video)
Encoding vs Encryption vs Tokenization
Kubernetes Tools Stack Wheel
Fixing bugs automatically at Meta Scale
The one-line change that reduced clone times by a whopping 99%, says Pinterest
SPONSOR US
Register for POST/CON 24 | April 30 - May 1 (Sponsored)
Postman’s annual user conference will be one of 2024’s top developer events and an unforgettable experience! Join the wider API community in San Francisco and be the first to learn about the latest Postman product advancements, elevate your skills in hands-on workshops with Postman experts, and hear from industry leaders, including:
James Q Quick
Shweta Palande
Kedasha Kerr
Hannah Seligson
Rui Barbosa
And more!
See the full agenda and register now to get a 30% Early Adopter discount!
Bonus: Did we mention there's an awesome after-party with a special celebrity guest?
Caching Pitfalls Every Developer Should Know
Encoding vs Encryption vs Tokenization
Encoding, encryption, and tokenization are three distinct processes that handle data in different ways for various purposes, including data transmission, security, and compliance.
In system designs, we need to select the right approach for handling sensitive information.
Encoding
Encoding converts data into a different format using a scheme that can be easily reversed. Examples include Base64 encoding, which encodes binary data into ASCII characters, making it easier to transmit data over media that are designed to deal with textual data.
Encoding is not meant for securing data. The encoded data can be easily decoded using the same scheme without the need for a key.
Encryption
Encryption involves complex algorithms that use keys for transforming data. Encryption can be symmetric (using the same key for encryption and decryption) or asymmetric (using a public key for encryption and a private key for decryption).
Encryption is designed to protect data confidentiality by transforming readable data (plaintext) into an unreadable format (ciphertext) using an algorithm and a secret key. Only those with the correct key can decrypt and access the original data.
Tokenization
Tokenization is the process of substituting sensitive data with non-sensitive placeholders called tokens. The mapping between the original data and the token is stored securely in a token vault. These tokens can be used in various systems and processes without exposing the original data, reducing the risk of data breaches.
Tokenization is often used for protecting credit card information, personal identification numbers, and other sensitive data. Tokenization is highly secure, as the tokens do not contain any part of the original data and thus cannot be reverse-engineered to reveal the original data. It is particularly useful for compliance with regulations like PCI DSS.
Latest articles
If you’re not a paid subscriber, here’s what you missed this month.
To receive all the full articles and support ByteByteGo, consider subscribing:
Kubernetes Tools Stack Wheel
Kubernetes tools continually evolve, offering enhanced capabilities and simplifying container orchestration. The innumerable choice of tools speaks about the vastness and the scope of this dynamic ecosystem, catering to diverse needs in the world of containerization.
In fact, getting to know about the existing tools themselves can be a significant endeavor. With new tools and updates being introduced regularly, staying informed about their features, compatibility, and best practices becomes essential for Kubernetes practitioners, ensuring they can make informed decisions and adapt to the ever-changing landscape effectively.
This tool stack streamlines the decision-making process and keeps up with that evolution, ultimately helping you to choose the right combination of tools for your use cases.
Over to you: I am sure there would be a few awesome tools that are missing here. Which one would you like to add?Fixing bugs automatically at Meta Scale
Wouldn't it be nice if a system could automatically detect and fix bugs for us
Meta released a paper about how they automated end-to-end repair at the Facebook scale. Let's take a closer look.
The goal of a tool called SapFix is to simplify debugging by automatically generating fixes for specific issues.
How successful has SapFix been?
Here are some details that have been made available:
Used on six key apps in the Facebook app family (Facebook, Messenger, Instagram, FBLite, Workplace and Workchat). Each app consists of tens of millions of lines of code
It generated 165 patches for 57 crashes in a 90-day pilot phase
The median time from fault detection to fix sent for human approval was 69 minutes.
Here’s how SapFix actually works:
Developers submit changes for review using Phabricator (Facebook’s CI system)
SapFix selects appropriate test cases from Sapienz (Facebook’s automated test case design system) and executes them on the Diff submitted for review
When SapFix detects a crash due to the Diff, it tries to generate potential fixes. There are 4 types of fixes - template, mutation, full revert and partial revert.
For generating a fix, SapFix runs tests on the patched builds and checks what works. Think of it like solving a puzzle by trying out different pieces.
Once the patches are tested, SapFix selects a candidate patch and sends it to a human reviewer for review through Phabricator.
The primary reviewer is the developer who raised the change that caused the crash. This developer often has the best technical context. Other engineers are also subscribed to the proposed Diff.
The developer can accept the patch proposed by SapFix. However, the developer can also reject the fix and discard it.
Reference:
The one-line change that reduced clone times by a whopping 99%, says Pinterest.
While it may sound cliché, small changes can definitely create a big impact.
The Engineering Productivity team at Pinterest witnessed this first-hand.
They made a small change in the Jenkins build pipeline of their monorepo codebase called Pinboard.
And it brought down clone times from 40 minutes to a staggering 30 seconds.
For reference, Pinboard is the oldest and largest monorepo at Pinterest. Some facts about it:
350K commits
20 GB in size when cloned fully
60K git pulls on every business day
Cloning monorepos having a lot of code and history is time consuming. This was exactly what was happening with Pinboard.
The build pipeline (written in Groovy) started with a “Checkout” stage where the repository was cloned for the build and test steps.
The clone options were set to shallow clone, no fetching of tags and only fetching the last 50 commits.
But it missed a vital piece of optimization.
The Checkout step didn’t use the Git refspec option.
This meant that Git was effectively fetching all refspecs for every build. For the Pinboard monorepo, it meant fetching more than 2500 branches.
𝐒𝐨 - 𝐰𝐡𝐚𝐭 𝐰𝐚𝐬 𝐭𝐡𝐞 𝐟𝐢𝐱?
The team simply added the refspec option and specified which ref they cared about. It was the “master” branch in this case.
This single change allowed Git clone to deal with only one branch and significantly reduced the overall build time of the monorepo.
Reference:
SPONSOR US
Get your product in front of more than 500,000 tech professionals.
Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.
Space Fills Up Fast - Reserve Today
Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing hi@bytebytego.com.
Like Comment Restack © 2024 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe
by "ByteByteGo" <bytebytego@substack.com> - 11:36 - 9 Mar 2024 -
Mejorar los resultados de los residentes afroamericanos en EE.UU.
Además, qué esperar de la industria de medtech en 2024 ¿Cómo influyen los lugares en los resultados para las personas? En nuestro artículo destacado, JP Julien analiza un informe reciente del McKinsey Institute of Economic Mobility que explora la experiencia de los residentes afroamericanos en distintas comunidades de Estados Unidos, y lo que pueden hacer los inversionistas, las empresas, las organizaciones filantrópicas y los líderes del sector público para ayudar a cerrar la brecha económica entre ellos y sus vecinos blancos. Otros temas destacados son:
•
¿Qué le espera a la industria de artículos deportivos en 2024?
•
Siete predicciones para 2024 en la industria de medtech
•
El valor de mejorar la salud a nivel de ciudad
•
Perspectivas sobre los problemas clave que enfrentan los CEOs
La selección de nuestros editores
LOS DESTACADOS DE ESTE MES
Es hora de moverse: Artículos deportivos 2024
Muchos ejecutivos de artículos deportivos miran al 2024 con más optimismo. Pero en el próximo año, tendrán que adaptarse a los cambios en las preferencias de los consumidores, revisar las prácticas de planeación, adoptar los ecosistemas y tomar medidas en materia de sostenibilidad.
Vislumbre lo que vieneQué esperar de la industria de tecnología médica en 2024
Nuestras predicciones sobre la industria de tecnología médica (medtech) para el próximo año se inspiraron en conversaciones con más de 200 líderes del sector y se basaron en el más reciente informe de McKinsey sobre medtech para la siguiente década.
Conozca la tendencia¿Cómo lograr una buena salud para todos? Empiece en su ciudad
El McKinsey Health Institute estima que centrarse en intervenciones inmediatamente influenciables a nivel de ciudad puede añadir aproximadamente entre 20 mil millones y 25 mil millones de años de vida de mayor calidad a nivel global.
4 categorías de intervenciónExcelencia del CEO: ¿Cómo evalúan los líderes su propio desempeño?
Los primeros resultados de nuestra herramienta patentada CEO Excellence Assessment Tool ofrecen información sobre los problemas clave que enfrentan más de 100 directores ejecutivos, en su mayoría de Asia, y dónde se sienten más seguros y vulnerables.
Conviértase en un mejor líder¿Qué tendencias tecnológicas están configurando el sector de la movilidad?
La innovación tecnológica está transformando todos los aspectos del sector de la movilidad, y cada vez más empresas empiezan a investigar tecnologías disruptivas. Un análisis de McKinsey identifica las tendencias a seguir.
PrepáreseEl despliegue de IA generativa en los gobiernos estatales de EE.UU.: Poner a prueba, escalar y adoptar
Los estados podrían ganar mucho con el uso de herramientas de IA generativa en sus operaciones. Una estrategia de bajo riesgo puede consistir en probar algunas aplicaciones mientras se prepara un plan de implementación a más largo plazo.
Cómo empezarEsperamos que disfrute de los artículos en español que seleccionamos este mes y lo invitamos a explorar también los siguientes artículos en inglés.
McKinsey Explainers
Find direct answers to complex questions, backed by McKinsey’s expert insights.
Learn moreMcKinsey Themes
Browse our essential reading on the topics that matter.
Get up to speedMcKinsey on Books
Explore this month’s best-selling business books prepared exclusively for McKinsey Publishing by Circana.
See the listsMcKinsey Chart of the Day
See our daily chart that helps explain a changing world—as we strive for sustainable, inclusive growth.
Dive inMcKinsey Classics
Disruptive times call for transformational leaders with a knack for addressing complex problems. Read our 2018 classic “Leading with inner agility” to learn more.
RewindOnly McKinsey
Delivering actionable insights on the day’s news, as only McKinsey can.
Subscribe now— Edited by Joyce Yoo, editor, New York
COMPARTA ESTAS IDEAS
¿Disfrutó este boletín? Reenvíelo a colegas y amigos para que ellos también puedan suscribirse. ¿Se le remitió este articulo? Regístrese y pruebe nuestras más de 40 suscripciones gratuitas por correo electrónico aquí.
Este correo electrónico contiene información sobre la investigación , los conocimientos, los servicios o los eventos de McKinsey. Al abrir nuestros correos electrónicos o hacer clic en los enlaces, acepta nuestro uso de cookies y tecnología de seguimiento web. Para obtener más información sobre cómo usamos y protegemos su información, consulte nuestra política de privacidad.
Recibió este correo electrónico porque es un miembro registrado de nuestro boletín informativo Destacados.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Destacados de McKinsey" <publishing@email.mckinsey.com> - 08:21 - 9 Mar 2024 -
Gen AI—beyond the hype
The Shortlist
Four new insights Curated by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
It’s a lot. CEOs and other business leaders have to clock dozens of developments in all directions. As always, in this edition of the CEO Shortlist, we zero in on the topics that matter. Right now, it’s generative AI, M&A, the dynamics of capital raising, and a look ahead at private markets. We hope you enjoy the read.
—Liz and Homayoun
You’ve heard the hype. Now get the specifics. Of the $4.4 trillion that McKinsey estimates gen AI could add to the global economy annually, a potential $690 billion will be in technology, media, and telecommunications (TMT). Based on extensive research and client work, our latest study isolates 100 gen AI use cases in TMT across seven business domains. These use cases are where significant value will be built in coming years.
Delve into the data in “Beyond the hype: Capturing the potential of AI and gen AI in tech, media, and telecom,” a new report by Venkat Atluri, Peter Dahlström, Brendan Gaffey, Víctor García de la Torre, Noshir Kaka, Tomás Lajous, Alex Singla, Alexander Sukharevsky, Andrea Travasoni, and Benjamim Vieira.M&A’s wild ride. From the pandemic-fueled rout in 2020 to 2021’s record-breaking recovery, followed by a steep decline in 2023, the global M&A market has offered something of a masterclass in volatility. The next leg up might add to the legend. Our experts have detailed views on the top-line trends for 2024 and on sectors such as chemicals, life sciences, financial services, technology, media, consumer goods, and many more.
Ride the rollercoaster with “Top M&A trends in 2024: Blueprint for success in the next wave of deals,” by Jake Henry and Mieke Van Oostende.Contracted. Fled. Diverged. Receded. Detoured. These words aren’t typically associated with private markets. In 2023, the industry took a breather after more than a decade of headlong growth. But despite the general trend of slower times to come, we see several reasons for optimism.
Preview the 2024 edition of McKinsey’s Global Private Markets Review: “Private markets: A slower era,” by Fredrik Dahlqvist, Alastair Green, Paul Maia, Connor Mangan, Alexandra Nee, David Quigley, Aditya Sanghvi, Rahel Schneider, John Spivey, and Brian Vickery.Buy high, sell low? With equity markets at record highs on several continents, every publicly traded company—and a slew of wannabes—has to get its messages right for investors. Yet many companies offer fuzzy stories that may draw initial interest but fail to retain investors over the long term.
Sharpen your pencils with “The equity story you need for the long-term investors you want,” by Hannes Herrmann, Jamie Koenig, Anna Mattsson, and Marc Silberstein.We hope you find these ideas inspiring and helpful. See you next time with four more McKinsey ideas for the CEO and others in the C-suite.
Share these insights
This email contains information about McKinsey’s research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this email because you subscribed to The CEO Shortlist newsletter.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "McKinsey CEO Shortlist" <publishing@email.mckinsey.com> - 02:07 - 8 Mar 2024 -
How a human-centered approach to AI can unlock the tech’s full potential
On Point
AI as copilot augments human expertise Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
Human-centered AI. Taking a human-focused approach to developing and using AI tools, including gen AI platforms, could not only improve performance but also reduce some of the fear and anxiety about AI, points out Stanford University professor Melissa Valentine on a recent episode of the McKinsey Talks Talent podcast. She’s joined by McKinsey partners Bryan Hancock and Brooke Weddle, along with global editorial director Lucia Rahilly, to explain how a human-centered approach could play out practically.
— Edited by Querida Anderson, senior editor, New York
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:23 - 8 Mar 2024 -
The Top 3 Resume Mistakes Costing You the Job
The Top 3 Resume Mistakes Costing You the Job
For this week's issue, I am pleased to introduce our guest author, Ethan Evans, a retired Amazon VP who played a pivotal role in creating some of the groundbreaking services we use today, such as Prime Video, Amazon Video, the Amazon Appstore, Prime Gaming (formerly Twitch Prime), and Twitch Commerce.͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ Forwarded this email? Subscribe here for moreLatest articles
If you’re not a subscriber, here’s what you missed this month.
To receive all the full articles and support ByteByteGo, consider subscribing:
For this week's issue, I am pleased to introduce our guest author, Ethan Evans, a retired Amazon VP who played a pivotal role in creating some of the groundbreaking services we use today, such as Prime Video, Amazon Video, the Amazon Appstore, Prime Gaming (formerly Twitch Prime), and Twitch Commerce.
Beyond his experience as an engineering leader, Ethan is also a career growth coach who has assisted numerous individuals to get unstuck and level up their careers.
We'll be discussing with Ethan one of the most critical steps in a job search: writing a great resume. Specifically, he'll cover the top three mistakes almost everyone makes when preparing their resume. He'll also delve into details on how to correct them.
If you would like to connect with Ethan, you can do so on Twitter and LinkedIn. Also, be sure to check out his newsletter and career community, Level Up, and explore his range of Leadership Development Courses, including live online classes and on-demand courses.
Ethan, here. I’ve reviewed more than 10,000 resumes in my career and conducted over 2,500 interviews. At Amazon and Twitch, I taught an internal class on how to interview, called “Making Great Hiring Decisions.” I was a “Bar Raiser,” which means I was someone from outside the hiring team designated to join an interview with the power to veto a hiring decision if I believed a candidate was wrong for the company.
Earlier in my career, despite my engineering background, I ran recruiting and had recruiters reporting directly to me at three startups. Today, I coach individuals through their job searches, and I have tested what does and doesn’t work. All this is to say, I know what recruiters and hiring managers want in a resume.
One thing I’ve observed is that 90% of resumes I see contain at least one of three major mistakes. In this article, I will walk you through each one and how to correct it, and then we’ll cover the smaller things you can do to take your resume to the next level; from good to amazing. Finally, we’ll conclude with how to know when to stop worrying about your resume and move on to the next phase of your job search.
Before we get into common errors, let’s briefly review the goals of a resume and what recruiters and hiring managers are looking for when they read one.
First, the goal of a resume is not to get you a job; it is to get you a call. If a resume results in someone reaching out to you, then it has done its job. One driver of mistakes on a resume is trying to make it do too much. We want to optimize our resume to get us on the phone, not to tell our life story.
You have probably heard that recruiters skim resumes in just a few seconds. This is true. Recruiters and managers are under tremendous pressure, and managers often think of hiring as something extra they have to do in addition to their “real” job. Therefore, a resume has to be optimized to quickly catch their eye. Even then, our goal is not for them to read every word, but rather simply for them to place it in the small pile of people to call, before they move on.
The Three Big Mistakes
90% of resumes I see make one or more of three mistakes. If you can address these, your resume will likely be good enough to get you a call.
No objective
Without an objective, a recruiter or hiring manager has to guess if you want their job. If you’re a recruiter with a pile of resumes, some of which state the candidate wants a job like the one you need to fill, and some of which do not, who do you call?
An objective states clearly what kind of role you are looking for in your next job, and a great objective is formulaic and short enough to be read in a single glance.
An example of the formula for a Senior Engineer role would be, “Seeking a role as a Sr. Engineer where I can apply my proven ability to ship scaled services to deliver valuable innovation for the business.”
Let's break this down.
The first part simply states the role you seek. This is particularly important if you are interested in doing something different from your last job. Without context, most people will assume you want to keep doing what you’ve been doing, possibly with a higher level title and more pay. But if you want to switch to management, or change from consulting to traditional corporate employment, then it’s essential you make this clear. Otherwise, people will keep putting you in the box defined by your past.
The second part, “... where I can apply my proven ability to X and Y…” gives you two chances to state your highest qualifications for a role. Right up front, you can highlight the top two reasons to put your resume in the “call” pile.
The third part, “... to create XYZ for the business” shows you are there to help the manager and the company. While you are looking for a “good job” for yourself, the manager is not focused on “giving someone a good job.” Instead, they want to find someone who can solve their problems and help them. Right up front, you want to convey that you are not just interested in yourself, but that you are also dedicated to providing value to your new manager.
I have gotten pushback on the first part of this formula because some people worry that if they clearly state a target role, they will miss out on other possible roles with different levels or titles which they might fit. This is possible, but there are two reasons why it’s best to state a clear objective.
First, there are many candidates for every role. Just like with search results, it is better to be the first choice for one job, than the seventh choice for ten jobs. If the top three candidates get calls, you want to get one call rather than fall below the line on all of them.
Second, you can always have multiple versions of your resume. You can state your objective of securing an “engineering leadership” role on one, and a “product leadership” role on another – if you are qualified for both. Then you can use them for different types of roles.
Let’s look at a few examples:
Organizing Chaos | Managing Change | Driving Efficiency
I am a driven, passionate, action-oriented leader that turns problems into streamlined processes. I led the turnaround of a $10M product line, with a 15,000 basis point (150%) margin improvement (from -125% to +25%) during the 19 months that I managed the products sourcing and operations fulfillment department.
With a background encompassing program, product, and people management, accounting and finance, legal and risk, business operations, analytics, and digital marketing. I’m a multipotentialite who enjoys applying a broad range of experiences and knowledge to new situations. I push myself out of the comfort zone, tackling projects without previous subject matter experience but with ability to quickly obtain visibility into how people with different functions operate. I thrive in organizing chaos: finding and connecting the pieces others often don’t see and building new mechanisms to improve the way we work. My agility, ability to deal with ambiguity, strong business acumen, and relentless search for a challenge, make me the perfect fit for a growing organization undergoing change or in need of transformation.
This is a typical opening section I see on a resume. While the opening paragraph contains an excellent numerical example of a big accomplishment, the second paragraph is seven full lines in which the candidate just talks about themselves in positive terms. It has no data to back anything up and is just a big block of text that most recruiters will skip right over.
Effective and accomplished executive with broad range of experience in finance, operations, strategy, M&A, fundraising, human resources, data analysis, and digital marketing. Proven success in building companies and teams in high growth environments to scale profitability.
This second example is much shorter and more likely to be read, but gets into a long list of disparate areas, leaving the reader wondering what kind of job the candidate actually wants.
Objective: Provide professional development at scale, guiding transitions to executive leadership.
Proven executive leadership of multiple $500M+ businesses across games, video, apps, and music. Global leadership experience of teams of 800+. Technical inventor; 60+ issued patents.This final example is from my own Executive Coaching resume. It explains in one line what I provide, and then gives two lines containing key examples of my accomplishments that support my ability to do this effectively.
No results, only activities
This is the single most common mistake I see on resumes.
People write down what they did, describe their activities such as that they wrote code, managed a number of people, or worked on this or that project. Some even list their most boring activities, like creating reports or organizing files.
Writing down your work makes you a worker. You will be interviewed and leveled as someone who can be assigned work to do.
Senior performers know that they are valued for their impact rather than their activities. They make a point to show the results of their work, the impact on a team, company, or business.
Consider the difference between:
“As a part of Project X, wrote Java code to implement several critical microservices.”
And
“As a part of Project X, wrote Java code for several critical microservices, allowing it to support enterprise environments, resulting in several key new customers buying the product.”
Which engineer sounds more senior and valuable?
It is usually possible to rewrite nearly every bullet on your resume in a way that describes why your work mattered, not just what you did. Try to show that your presence made a positive difference to a team, product, and the bottom line.
The good news is that there are advanced tricks you can use to make this compelling:
If possible, link to your results. People exaggerate and lie on resumes whereas nothing says “my work is real,” like a link to the project.
The human eye is automatically drawn to bold. You can selectively bold a few keywords or phrases to ensure your very strongest accomplishments are noticed.
Use action verbs, such as ‘owned,’ ‘built,’ ‘drove,’ or ‘delivered’ to give your bullets an “active voice.” This suggests you actively did something, rather than just be passively present when it happened
People believe specific numbers. Resumes with numeric results in the bullets get 132% more calls than those without them. I just made that point up, but I bet you believed it.
Where possible, include dollar figures if relevant to the results.
Let’s apply this to our example and see how strong it becomes:
“Delivered several critical microservices in Java for Project X, allowing it to support enterprise environments. This resulted in a 74% increase in service usage, including adoption by several key new customers, generating $29M in incremental revenue.”
Now, who do you think the company wants to hire?
Let’s look at some real examples of the differences between generic resume bullets not focused on numeric results, and compare them to some designed to showcase results.
Typical bullets:
Manage information technology for the organization, access control, security, and onboarding/offboarding users.
Draft, monitor, and maintain policies and procedures to support the organization’s information technology.
Develop relationships with vendors and partners for supply chain, on-site network infrastructure, information security, and software lifecycle.
Develop and manage a roadmap for changes to systems architecture. Ensure transparency of roadmap and timeline, and communicate often with stakeholders about the status of work.
Partner with internal stakeholders to develop processes and system recommendations.
Manage enterprise systems projects and ensure that projects are completed accurately and on time.
Evaluate end user needs, organizational goals, budgets, and existing applications to define system requirements and technical standards.
Bullets with clear, numeric results:
Planned, built, and deployed 100% cloud and SaaS infrastructure in a greenfield startup.
Fully automated employee hardware lifecycle, reducing onboarding time per employee from 2 hours to 10 minutes.
Engineered and deployed scalable blueprint for SD-WAN networks for an organization of 1,000+ schools.
Created and deployed end-user knowledge base, reducing engineering support tickets from 50 per week to 5 per week and a time-to-close metric of 15 minutes.
Next, let’s look at the same job from a real resume, described in two different ways. The first description is typical and tells you what the person did. The second description is the exact same content, but it’s organized to emphasize impact, and show active leadership of projects...
Keep reading with a 7-day free trial
Subscribe to ByteByteGo Newsletter to keep reading this post and get 7 days of free access to the full post archives.
A subscription gets you:
An extra deep dive on Thursdays Full archive Many expense it with team's learning budget Like Comment Restack © 2024 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe
by "ByteByteGo" <bytebytego@substack.com> - 11:40 - 7 Mar 2024 -
[Online workshop] Dashboard techniques to visualize system and business performance
New Relic
Take visualizations to the next level by joining this hands-on workshop that will help elevate your dashboard skills. Register for this free online workshop on 21st March at 10 AM GMT/ 11 AM CET and learn how to build powerful dashboards to help you understand your systems, troubleshoot more efficiently, and correlate performance metrics with business KPIs.
In the workshop, you'll learn how to:
- Explore the data you collect, build custom charts, and create data-rich dashboards
- Learn about powerful dashboard features that enable you to link, filter, and share them for more powerful troubleshooting and data correlation.
Prerequisites: There are no prerequisites but we recommend basic familiarity with the New Relic Query Language NRQL or have taken the Practitioner Learning Path on learn.newrelic.com to get most value from this workshop.
Register now Need help? Let's get in touch.
This email is sent from an account used for sending messages only. Please do not reply to this email to contact us—we will not get your response.
This email was sent to info@learn.odoo.com Update your email preferences.
For information about our privacy practices, see our Privacy Policy.
Need to contact New Relic? You can chat or call us at +44 20 3859 9190.
Strand Bridge House, 138-142 Strand, London WC2R 1HH
© 2024 New Relic, Inc. All rights reserved. New Relic logo are trademarks of New Relic, Inc
by "New Relic" <emeamarketing@newrelic.com> - 06:07 - 7 Mar 2024 -
Which tech trends can add value?
On Point
A four-point guide for CIOs Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
CIOs and tech trends. For modern CIOs, the ability to evaluate tech trends quickly and communicate their relevance to the business is becoming a critical capability, McKinsey partner Oliver Bossert and senior partner Gérard Richter explain. In practice, it is rarely as simple as saying “yes” or “no” to an investment in a particular trend. CIOs need a clear set of parameters to rely on both for evaluating trends and for determining which posture to take for engagement with them: first mover, fast follower, slow adopter, or sometimes non-partaker.
— Edited by Belinda Yu, editor, Atlanta
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 11:13 - 6 Mar 2024 -
Route Optimization Software - Automate the planning and scheduling of your fleets.
Route Optimization Software - Automate the planning and scheduling of your fleets.
Optimize Routes for Increased Efficiency, Reduced Costs, and Improved Customer Satisfaction.Optimize Routes for Increased Efficiency, Reduced Costs, and Improved Customer Satisfaction.
Catch a glimpse of what our Route Optimisation has to offer
Uffizio Technologies Pvt. Ltd., 4th Floor, Metropolis, Opp. S.T Workshop, Valsad, Gujarat, 396001, India
by "Sunny Thakur" <sunny.thakur@uffizio.com> - 07:00 - 6 Mar 2024 -
Will gen AI become the ultimate doctor’s assistant?
Re:think
Generative AI can transform healthcare FRESH TAKES ON BIG IDEAS
ON GEN AI IN HEALTHCARE
The power of generative AI to transform the patient experienceDelphine Nain Zurkiya
AI has been used in healthcare for a while now, often in ways that patients don’t see. For example, AI is used to optimize a hospital’s workforce and inventory, making sure the facility is properly staffed and supplied. However, McKinsey research reveals that the healthcare field is behind most other industries in adopting AI. It’s a very fragmented industry, with tons of hospitals. And the systems that have been used in those hospitals have tended to be bespoke, which makes it difficult to copy innovations specific to one care setting and paste them to another. Another issue has been data, which has been siloed within hospital walls and has not been transferable to other hospitals.
But generative AI (gen AI) changes several dynamics. Large language models are applicable for many, though not all, use cases. This is a paradigm shift because it allows developers to focus on making an existing algorithm work as opposed to creating the algorithm in the first place. If most of your time is spent getting an off-the-shelf algorithm to work better, you can turn your attention to the quality of your data, getting more data, and making sure that users adopt gen AI. I think that’s where we’re seeing a lot of focus, which is pretty exciting in being able to unlock value.
Here’s one example. In hospitals, data is contained in electronic medical records. This might be data from devices like implants or scans like MRIs and ultrasounds, or it might be data about prior encounters that patients have had in other hospital systems. There are third parties thinking about how we can anonymize, or “tokenize,” all this data so that it can be shared across hospital walls. One use would be to improve clinical trials by making it easier to find the patients who would be most likely to benefit from a particular trial. My prediction is that we’re going to go beyond improving operational tasks and start seeing gen AI used to support clinical decisions, which, up to now, we haven’t seen so much. That said, it will be essential to keep a human in the loop, since the technology can “hallucinate” and will need to be monitored.“My prediction is that we’re going to go beyond improving operational tasks and start seeing gen AI used to support clinical decisions.”
What will this look like for healthcare consumers? You might notice that during an appointment, physicians now look you in the eye the entire time that they are talking to you as opposed to typing on a keyboard for part of it because the visit is being documented automatically. Or you might have less friction when scheduling appointments because you will no longer need to call the front office and wait for them to find a slot that works for you. Instead, it could be much more like talking to an automated system, doing the back-and-forth the way you might interact with ChatGPT. For clinical questions, right now, you have to wait to talk to a human, and we all know that it can be hard to get your physician on the phone if you don’t have a scheduled appointment. I believe that gen AI may be able to point you toward the right sources of information. Eventually, you may talk to a human, but before that happens, gen AI could potentially help patients with quite a bit. It could be like everyone having a doctor in their family, which would democratize the flow of information that gets to patients.
Will it make the population healthier? I’m an optimist, so I think that it will. There is plenty of data showing that one thing that gets in the way of good care is the ability to make fast, informed decisions. Another is ensuring that patients actually show up for and follow through on their treatment. My hope is that we develop a way for gen AI to interact with patients that helps them understand their treatments.
Of course, all of this depends on whether the technology is embraced, especially by healthcare providers. And right now, I think that many see it as a threat or yet another complicated thing to learn. Many people would just rather keep their existing workflows and not have to deal with these kinds of changes. But if they see the value in either saving time or taking away bothersome or onerous tasks, they will start to adopt it. There’s a phrase that I really like: gen AI doesn’t have a technology issue; gen AI has a design issue. The technology generally works pretty well. But now we need design folks to think more about what it will take for the healthcare industry to adopt it. When these systems are well designed, with users in mind, that’s when you’ll see it take off.ABOUT THIS AUTHOR
Delphine Nain Zurkiya is a senior partner in McKinsey’s Boston office.
MORE FROM THIS AUTHOR
UP NEXT
Miklós Dietz on the future of banking
Ten years from now, a successful bank might be a platform of networks—a holding company for a collection of starkly different businesses.
This email contains information about McKinsey’s research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this email because you subscribed to our McKinsey Quarterly alert list.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "McKinsey Quarterly" <publishing@email.mckinsey.com> - 04:49 - 6 Mar 2024 -
What’s the latest with the global economy?
On Point
Key trends and risks Brought to you by Liz Hilton Segel, chief client officer and managing partner, global industry practices, & Homayoun Hatami, managing partner, global client capabilities
•
A resilient economy. The global economy is still throwing off mixed signals, with data pointing to an uncertain year. Nonetheless, the economy has been “surprisingly resilient,” buoyed by (among other factors) the continued strength of the US economy as well as fiscal spending in China, the International Monetary Fund recently noted. Inflation’s downward trend has admittedly faltered in some advanced economies. Even so, most central banks have kept prices under control, McKinsey Global Institute chair Sven Smit and coauthors report.
•
Global trends. In the US, consumer sentiment is upbeat, as the nation’s economic growth outpaced Europe’s performance. US GDP rose 3.1% year over year in the fourth quarter of 2023 and 3.3% in the annualized quarter-over-quarter rate, beating earlier economic projections of 2.0% GDP growth in 2023. Meanwhile, although eurozone GDP contracted in the third quarter of 2023, Europe’s economy is expected to recover, thanks to rising real incomes. Read the McKinsey Global Economics Intelligence executive summary to see the latest global economic trends.
— Edited by Belinda Yu, editor, Atlanta
This email contains information about McKinsey's research, insights, services, or events. By opening our emails or clicking on links, you agree to our use of cookies and web tracking technology. For more information on how we use and protect your information, please review our privacy policy.
You received this newsletter because you subscribed to the Only McKinsey newsletter, formerly called On Point.
Copyright © 2024 | McKinsey & Company, 3 World Trade Center, 175 Greenwich Street, New York, NY 10007
by "Only McKinsey" <publishing@email.mckinsey.com> - 01:30 - 6 Mar 2024 -
Automated Bug Fixing at Facebook Scale
Automated Bug Fixing at Facebook Scale
📌Save the Date! Innovate Faster with AI Code Generation (Sponsored) With AI code generation tools developers can accelerate timelines at a pace and cost that would have been unfathomable just years ago. However, code generated by AI can include bugs and errors, and readability, maintainability, and security issues – just like code produced by developers.͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ Forwarded this email? Subscribe here for more📌Save the Date! Innovate Faster with AI Code Generation (Sponsored)
With AI code generation tools developers can accelerate timelines at a pace and cost that would have been unfathomable just years ago. However, code generated by AI can include bugs and errors, and readability, maintainability, and security issues – just like code produced by developers.
Join Manish Kapur, Sr. Director, Product & Solution at Sonar, for “Code Faster, Write Cleaner using AI Coding Assistants and Sonar” on Wednesday, March 20th to dive into the world of AI-assisted coding! Attendees will learn best practices for integrating AI coding assistants into their development workflows as well as practical advice to nurture a culture of clean code.
If there’s one thing that a majority of developers truly hate, it’s debugging.
While debugging small programs isn’t fun, it can get incredibly irritating when you have to debug millions of lines of code on a Friday evening to find that elusive bug.
To make things worse, bugs (software or otherwise) are tenacious.
You get rid of one and two more show up. Just when you think you’ve finally fixed the issue and started testing things out, you realize that the patch you just made is causing another crash some other place within those million lines.
Before you know it, you are trudging your way through another bug hunt.
This is where SapFix projects itself as a game-changing tool in the field of automated bug fixing.
It’s a new AI hybrid tool created by Facebook with the goal of reducing the time engineers spend on debugging.
SapFix makes debugging easy by automatically generating fixes for specific issues and proposing those fixes to engineers for approval and deployment to production.
The below diagram shows the SapFix workflow at a high level. In a later section, we will see the entire process in even more detail.
It would be an understatement to say that SapFix has shown promise. Here are some facts worth considering:
SapFix has been used to suggest fixes for six key Android apps in the Facebook App family.
The apps are Facebook, Messenger, Instagram, FBLite, Workplace and Workchat.
Together, these apps consist of tens of millions of lines of code and are used daily by hundreds of millions of users worldwide.
If you think about it, those are 6 multi-million line code-bases and it’s still early development days for SapFix!
At this point, you might wonder how SapFix is able to generate fixes for so many diverse apps with wildly different uses ranging from communication to social media to building communities.
The Role of Sapienz and Infer
The secret sauce of SapFix is the adoption of automated program repair techniques.
These techniques are based on algorithms to identify, analyze and patch known software bugs without human intervention. One of the widely used approaches relies on software testing to direct the repair process.
This is where Facebook leverages its automated test case design system known as Sapienz.
Sapienz uses Search-based Software Engineering (SBSE) to automatically design system-level test cases for mobile apps. Executing those test cases allows Sapienz to find 100s of crashes per month even before they can be discovered by Facebook’s internal human testers.
Think of SBSE as having a super smart helper that looks through all the lines of code and tries different combinations to fix a problem. It's a lot like when you try different pieces of a puzzle until they fit just right.
As an estimate, Facebook’s engineers have been able to fix 75% of crashes reported by Sapienz. This indicates a very high signal-to-noise ratio for bug reports generated by Sapienz.
However, to improve this figure even further, Facebook also uses Infer.
Infer is an open-source tool that helps with localization and static analysis of the fixes proposed. Like Sapienz, Infer is also deployed directly onto Facebook’s internal continuous integration system and has access to the majority of Facebook’s code base.
Sapienz and Infer collaborate with each other to provide information to developers about potential bugs such as:
Localization of the likely root cause
The failing test scenario that helped identify the bug
However, Sapienz and Infer can only provide information and not save the developer’s time in actually fixing the issue. Sure, their collaboration helps identify bugs and their location within the code, but most of the work involved in fixing these bugs still falls to a developer.
This is where SapFix comes along and combines three important components to provide an end-to-end automated repair system:
Mutation-based technique supported by patterns generated from previous human fixes
The automated test design of Sapienz
Infer’s static analysis and localization infrastructure
From picking the test cases that detect the crash to fixing the issue and re-testing, SapFix takes care of the entire process as part of Facebook’s continuous integration and deployment system.
Latest articles
If you’re not a paid subscriber, here’s what you missed last month.
1. How Video Recommendations Work - Part 1
3. How do We Design for High Availability?
5. Mastering Design Principles - SOLID
To receive all the full articles and support ByteByteGo, consider subscribing:
The SapFix Workflow
How does SapFix actually work?
There are four types of fixes that are performed by SapFix:
Template Fix
Mutation Fix
Diff Revert
Partial Diff Revert
Below is a diagram that shows the entire workflow of how SapFix handles the process of fixing an issue based on these types.
At its core, the process is extremely simple to understand.
The fix creation process receives the below input:
The buggy revision and the blamed file that contains the crash location
The blamed line where the crash is supposed to be happening
Stack trace of the crash
The unique id of the crash
Author of the buggy revision (the developer who made the Diff)
Buggy expressions provided by Infer (this is null when Infer data isn’t available)
Based on this input, SapFix goes ahead and generates a list of revisions that can fix the crash. This list is created after SapFix has tested those revisions thoroughly.
From the input to output, there are several steps involved:
Developers submit changes (called ‘Diffs’) to be reviewed using Phabricator (Facebook’s continuous integration system)
SapFix uses Sapienz to select a few test cases to execute on each Diff submitted for review.
When Sapienz pinpoints a specific crash to the given Diff, SapFix establishes the priority of fix types (template, mutation, revert, etc).
SapFix proceeds to try and generate multiple potential fixes per bug and then evaluates their quality.
To do so, it runs existing, developer-written tests along with tests created by Sapienz on the patched builds. This validation process is autonomous and isolated from the larger codebase.
In essence, SapFix is kind of debugging the codebase just like developers currently do. Think of the puzzle-solving approach we talked about earlier. However, unlike developers, SapFix cannot deploy the fix to production on its own.
Once the patches are tested, SapFix selects one of the candidate patches and requests a human reviewer to review the change through the Phabricator Code Review system. The reviewer is chosen to be the software engineer who actually submitted the Diff that SapFix attempted to fix.
This is the engineer who most likely has the best technical context to evaluate the patch. However, other relevant engineers are also subscribed to each Diff based on Facebook’s code review standards. What this means is that all Diffs proposed by SapFix are guaranteed to have at least one qualified human reviewer.
The above flow may appear simple, but there are some additional nuances to it, and understanding those makes things clearer.
Template Fix and Mutation Fix
As the name suggests, the template fix and mutation fix strategies choose between template and mutation-based fixes.
Template-based fixes are favored when all other parameters are equal.
But where do these templates come from?
Template fixes come from another tool known as Getafix that generates patches similar to the ones human developers produced in the past. From the perspective of SapFix, Getafix is a black box that contains a bunch of template fix patterns harvested from previous successful fixes.
As far as the mutation fix strategy is concerned, SapFix currently only supports fixing Null Pointer Exception (NPE) crashes. Though Facebook has a plan to cover more mutation strategies, just focusing on NPE has also provided a good amount of success.
High Firing Crashes
If neither template-based nor mutation-based strategies produce a patch that passes all tests, SapFix attempts to revert Diffs that result in high-firing crashes.
High-firing crash is a software bug that occurs frequently or affects a large number of users.
There are a couple of reasons for reverting the diff instead of trying to patch:
High-firing crashes can block Sapienz and other testing technologies. Therefore, it’s important to delete or revert them from the master build as soon as possible.
High-firing bugs have a higher potential impact on the stability and reliability of the application.
The revert strategies (full and partial) basically delete the change made in the Diff. In practice, reverting can mean deletion, addition, or replacement of code in the current version of the system.
Between the two types of revert strategies, SapFix generally prefers full diff revert because partial diff revert has a higher probability of knock-on adverse effects.
However, new Diffs are generated every few seconds and full diff reverts can also fail due to merge conflicts with other revisions. In those cases, SapFix attempts to go for partial diff revert since the changes produced are smaller and less prone to merge conflicts.
SapFix Adoption Results
Over a period of 3 months, after SapFix was adopted, it tackled 57 crashes related to Null-Pointer Exceptions (NPE).
To handle these crashes, 165 patches were created (roughly half from template and half from mutation-based repair). Out of these 165 patches, 131 were correctly built and passed all tests. Finally, 55 were reported to the developers.
Also, initial reactions from the developers were quite positive. When going through the very first SapFix-proposed patch, the developers had the feeling of “living in the future”.
However, the time taken to generate a fix presented a slightly different issue.
The median time from fault detection to publishing a fix to the developer came out to be 69 minutes. The worst case was approximately 1.5 hours and the fastest one was 37 minutes after the crash was first detected.
As you can also see, the overall range of observed values is pretty wide.
The main reason for this is the computational complexity of fixing an issue and the variation in workloads on the CI/CD system.
Since SapFix is deployed in a highly parallel, asynchronous environment, the time from detection to publication is influenced by the current demand on the system and the availability of computing resources.
Lessons Learned from SapFix
Facebook’s main philosophy behind SapFix was to focus on the industrial deployment of an automated repair system rather than academic research. Therefore, most of the decisions were focused on this goal.
Though much remains to be done, Facebook also learned a lot of lessons from SapFix that they have shared.
Here are a few important ones:
End-to-end automated repair can work at an industrial scale
The role of developers as the final gatekeeper is critical to the success of SapFix. There is still a lot of work required to have automated oracles.
Reverting of diffs is useful for high-firing crashes in the master build of the system
SapFix works best with newly arising failures or crashes. With pre-existing crashes, the relevancy is reduced because the developer reviewing the patch may not have a sufficient overview of the code.
Developer sociology is important to take into account. Despite SapFix providing ready-to-use patches, the developers may still prefer to clone and own the changes instead of simply landing the patches suggested by SapFix.
Developers showed a good amount of interest in interacting with the SapFix bot.
SapFix focuses more on removing the symptom rather than addressing the root cause. This needs more work in terms of identifying the root cause of failures and trying to fix them.
References:
SPONSOR US
Get your product in front of more than 500,000 tech professionals.
Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.
Space Fills Up Fast - Reserve Today
Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing hi@bytebytego.com.
Like Comment Restack © 2024 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe
by "ByteByteGo" <bytebytego@substack.com> - 11:40 - 5 Mar 2024 -
Oops, we we made a mistake! Sorry about that.
Oops, we we made a mistake! Sorry about that.
Hi MD,
We we made a mistake!
We mistakenly sent out an email stating that our webinar, ASYNC Power Hour: Asynchronous Work in Action and Its Impact on Global Teams, is now live. However, our eager email system jumped the gun a bit. The webinar is actually scheduled to go live at 9am UTC on March 6th.
We apologize for any confusion this may have caused and hope you can join us for the webinar then.
Don't forget to grab our interactive Notion agenda while attending the webinar. It's filled with useful information, additional resources, and links to the tools and details discussed during the webinar. You can access the agenda here.
The HR platform for global businesses
Remote makes running global teams simple. Hire, manage, and pay anyone, anywhere.
You received this email because you are subscribed to News & Offers from Remote Europe Holding B.V
Update your email preferences to choose the types of emails you receive.
Unsubscribe from all future emailsRemote Europe Holding B.V
Copyright © 2024 All rights reserved.
Kraijenhoffstraat 137A 1018RG Amsterdam The Netherlands
by "Remote" <hello@remote-comms.com> - 04:51 - 5 Mar 2024