class Akismet_REST_API { /** * Register the REST API routes. */ public static function init() { if ( ! function_exists( 'register_rest_route' ) ) { // The REST API wasn't integrated into core until 4.4, and we support 4.0+ (for now). return false; } register_rest_route( 'akismet/v1', '/key', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_key' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_key' ), 'args' => array( 'key' => array( 'required' => true, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_key' ), ) ) ); register_rest_route( 'akismet/v1', '/settings/', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_settings' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), 'args' => array( 'akismet_strictness' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), ), 'akismet_show_user_comments_approved' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), ), ), ) ) ); register_rest_route( 'akismet/v1', '/stats', array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), 'args' => array( 'interval' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'default' => 'all', ), ), ) ); register_rest_route( 'akismet/v1', '/stats/(?P[\w+])', array( 'args' => array( 'interval' => array( 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), ) ) ); register_rest_route( 'akismet/v1', '/alert', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ) ) ); register_rest_route( 'akismet/v1', '/webhook', array( 'methods' => WP_REST_Server::CREATABLE, 'callback' => array( 'Akismet_REST_API', 'receive_webhook' ), 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), ) ); } /** * Get the current Akismet API key. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_key( $request = null ) { return rest_ensure_response( Akismet::get_api_key() ); } /** * Set the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); } $new_api_key = $request->get_param( 'key' ); if ( ! self::key_is_valid( $new_api_key ) ) { return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); } update_option( 'wordpress_api_key', $new_api_key ); return self::get_key(); } /** * Unset the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); } delete_option( 'wordpress_api_key' ); return rest_ensure_response( true ); } /** * Get the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_settings( $request = null ) { return rest_ensure_response( array( 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), ) ); } /** * Update the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_boolean_settings( $request ) { foreach ( array( 'akismet_strictness', 'akismet_show_user_comments_approved', ) as $setting_key ) { $setting_value = $request->get_param( $setting_key ); if ( is_null( $setting_value ) ) { // This setting was not specified. continue; } // From 4.7+, WP core will ensure that these are always boolean // values because they are registered with 'type' => 'boolean', // but we need to do this ourselves for prior versions. $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); update_option( $setting_key, $setting_value ? '1' : '0' ); } return self::get_settings(); } /** * Parse a numeric or string boolean value into a boolean. * * @param mixed $value The value to convert into a boolean. * @return bool The converted value. */ public static function parse_boolean( $value ) { switch ( $value ) { case true: case 'true': case '1': case 1: return true; case false: case 'false': case '0': case 0: return false; default: return (bool) $value; } } /** * Get the Akismet stats for a given time period. * * Possible `interval` values: * - all * - 60-days * - 6-months * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_stats( $request ) { $api_key = Akismet::get_api_key(); $interval = $request->get_param( 'interval' ); $stat_totals = array(); $request_args = array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval, ); $request_args = apply_filters( 'akismet_request_args', $request_args, 'get-stats' ); $response = Akismet::http_post( Akismet::build_query( $request_args ), 'get-stats' ); if ( ! empty( $response[1] ) ) { $stat_totals[$interval] = json_decode( $response[1] ); } return rest_ensure_response( $stat_totals ); } /** * Get the current alert code and message. Alert codes are used to notify the site owner * if there's a problem, like a connection issue between their site and the Akismet API, * invalid requests being sent, etc. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_alert( $request ) { return rest_ensure_response( array( 'code' => get_option( 'akismet_alert_code' ), 'message' => get_option( 'akismet_alert_msg' ), ) ); } /** * Update the current alert code and message by triggering a call to the Akismet server. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); // Make a request so the most recent alert code and message are retrieved. Akismet::verify_key( Akismet::get_api_key() ); return self::get_alert( $request ); } /** * Clear the current alert code and message. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); return self::get_alert( $request ); } private static function key_is_valid( $key ) { $request_args = array( 'key' => $key, 'blog' => get_option( 'home' ), ); $request_args = apply_filters( 'akismet_request_args', $request_args, 'verify-key' ); $response = Akismet::http_post( Akismet::build_query( $request_args ), 'verify-key' ); if ( $response[1] == 'valid' ) { return true; } return false; } public static function privileged_permission_callback() { return current_user_can( 'manage_options' ); } /** * For calls that Akismet.com makes to the site to clear outdated alert codes, use the API key for authorization. */ public static function remote_call_permission_callback( $request ) { $local_key = Akismet::get_api_key(); return $local_key && ( strtolower( $request->get_param( 'key' ) ) === strtolower( $local_key ) ); } public static function sanitize_interval( $interval, $request, $param ) { $interval = trim( $interval ); $valid_intervals = array( '60-days', '6-months', 'all', ); if ( ! in_array( $interval, $valid_intervals ) ) { $interval = 'all'; } return $interval; } public static function sanitize_key( $key, $request, $param ) { return trim( $key ); } /** * Process a webhook request from the Akismet servers. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function receive_webhook( $request ) { Akismet::log( array( 'Webhook request received', $request->get_body() ) ); /** * The request body should look like this: * array( * 'key' => '1234567890abcd', * 'endpoint' => '[comment-check|submit-ham|submit-spam]', * 'comments' => array( * array( * 'guid' => '[...]', * 'result' => '[true|false]', * 'comment_author' => '[...]', * [...] * ), * array( * 'guid' => '[...]', * [...], * ), * [...] * ) * ) * * Multiple comments can be included in each request, and the only truly required * field for each is the guid, although it would be friendly to include also * comment_post_ID, comment_parent, and comment_author_email, if possible to make * searching easier. */ // The response will include statuses for the result of each comment that was supplied. $response = array( 'comments' => array(), ); $endpoint = $request->get_param( 'endpoint' ); switch ( $endpoint ) { case 'comment-check': $webhook_comments = $request->get_param( 'comments' ); if ( ! is_array( $webhook_comments ) ) { return rest_ensure_response( new WP_Error( 'malformed_request', __( 'The \'comments\' parameter must be an array.', 'akismet' ), array( 'status' => 400 ) ) ); } foreach ( $webhook_comments as $webhook_comment ) { $guid = $webhook_comment['guid']; if ( ! $guid ) { // Without the GUID, we can't be sure that we're matching the right comment. // We'll make it a rule that any comment without a GUID is ignored intentionally. continue; } // Search on the fields that are indexed in the comments table, plus the GUID. // The GUID is the only thing we really need to search on, but comment_meta // is not indexed in a useful way if there are many many comments. This // should help narrow it down first. $queryable_fields = array( 'comment_post_ID' => 'post_id', 'comment_parent' => 'parent', 'comment_author_email' => 'author_email', ); $query_args = array(); $query_args['status'] = 'any'; $query_args['meta_key'] = 'akismet_guid'; $query_args['meta_value'] = $guid; foreach ( $queryable_fields as $queryable_field => $wp_comment_query_field ) { if ( isset( $webhook_comment[ $queryable_field ] ) ) { $query_args[ $wp_comment_query_field ] = $webhook_comment[ $queryable_field ]; } } $comments_query = new WP_Comment_Query( $query_args ); $comments = $comments_query->comments; if ( ! $comments ) { // Unexpected, although the comment could have been deleted since being submitted. Akismet::log( 'Webhook failed: no matching comment found.' ); $response['comments'][ $guid ] = array( 'status' => 'error', 'message' => __( 'Could not find matching comment.', 'akismet' ) ); continue; } if ( count( $comments ) > 1 ) { // Two comments shouldn't be able to match the same GUID. Akismet::log( 'Webhook failed: multiple matching comments found.', $comments ); $response['comments'][ $guid ] = array( 'status' => 'error', 'message' => __( 'Multiple comments matched request.', 'akismet' ) ); continue; } else { // We have one single match, as hoped for. Akismet::log( 'Found matching comment.', $comments ); $current_status = wp_get_comment_status( $comments[0] ); $result = $webhook_comment['result']; if ( 'true' == $result ) { Akismet::log( 'Comment should be spam' ); // The comment should be classified as spam. if ( 'spam' != $current_status ) { // The comment is not classified as spam. If Akismet was the one to act on it, move it to spam. if ( Akismet::last_comment_status_change_came_from_akismet( $comments[0]->comment_ID ) ) { Akismet::log( 'Comment is not spam; marking as spam.' ); wp_spam_comment( $comments[0] ); Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-spam' ); } else { Akismet::log( 'Comment is not spam, but it has already been manually handled by some other process.' ); Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-spam-noaction' ); } } } else if ( 'false' == $result ) { Akismet::log( 'Comment should be ham' ); // The comment should be classified as ham. if ( 'spam' == $current_status ) { Akismet::log( 'Comment is spam.' ); // The comment is classified as spam. If Akismet was the one to label it as spam, unspam it. if ( Akismet::last_comment_status_change_came_from_akismet( $comments[0]->comment_ID ) ) { Akismet::log( 'Akismet marked it as spam; unspamming.' ); wp_unspam_comment( $comments[0] ); akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-ham' ); } else { Akismet::log( 'Comment is not spam, but it has already been manually handled by some other process.' ); Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-ham-noaction' ); } } } $response['comments'][ $guid ] = array( 'status' => 'success' ); } } break; case 'submit-ham': case 'submit-spam': // Nothing to do for submit-ham or submit-spam. break; default: // Unsupported endpoint. break; } /** * Allow plugins to do things with a successfully processed webhook request, like logging. * * @since 5.3.2 * * @param WP_REST_Request $request The REST request object. */ do_action( 'akismet_webhook_received', $request ); Akismet::log( 'Done processing webhook.' ); return rest_ensure_response( $response ); } } Google, Meta, other tech giants cut DEI programs in 2023 | Modern Business International
spot_img
Saturday, June 14, 2025
HomeGlobal NewsGoogle, Meta, other tech giants cut DEI programs in 2023

Google, Meta, other tech giants cut DEI programs in 2023

-


Shortly after the murder of George Floyd at the hands of Minneapolis police in 2020, Google was among many tech companies that set up new programs aimed at supporting Black employees. The goal, CEO Sundar Pichai wrote, was “to build sustainable equity for Google’s Black+ community, and externally, to make our products and programs helpful in the moments that matter most to Black users.”

Google’s vocal commitments included improving representation of underrepresented groups in leadership by 30% by 2025; more than doubling the number of Black workers at nonsenior levels by 2025; addressing representation issues in hiring, retention and promotions; and establishing better support for the mental and physical health for Black employees.

The move was part of a broader trend in the wake of the Floyd killing, which sparked societal unrest and drew attention to the power imbalances in corporate America and the tech industry specifically. Corporations pledged to invest millions of dollars to improve diversity in their ranks and support external groups doing work on diversity, equity and inclusion, or DEI.

But in 2023, some of those programs are in retreat.

By mid-2023, DEI-related job postings had declined 44% from the same time a year prior, according to data provided by job site Indeed. In November 2023, the last full month for which data was available, it dropped 23% year over year.

That’s a sharp contrast with the period from 2020 to 2021, when those postings expanded nearly 30%.

In line with this broader trend, both Google and Meta have cut staffers and downsized programs that fell under DEI investment.

The year’s cuts have also impacted smaller, third-party organizations who counted on big tech clients for work, despite the continued growth of those tech giants.

“Whenever there is an economic downturn in tech, some of the first budgets that are cut are in DEI, but I don’t think we’ve seen such stark contrast as this year,” said Melinda Briana Epler, founder and CEO of Empovia, which advises companies and leaders to use a research-based culture of equality. 

“When George Floyd began to become the topic of conversations, companies and executives doubled down on their commitments and here we are only a couple years later, and folks are looking for opportunities to cut those teams,” said Devika Brij, CEO of Brij the Gap Consulting, which works with tech companies’ DEI efforts. Brij said some of her clients had cut their DEI budgets by as much as 90% by midyear.

However, more than just broken promises are at stake, experts told CNBC in a series of interviews.

The cuts come at a time when technology companies are forging ahead on the biggest technology shift in a decade: artificial intelligence. If diverse people are not included in AI development, that may result in even greater power imbalances for both corporate workers, as well as consumers who will use their products.

“Our commitment to DEI remains at the center of who we are as a company,” a Meta spokesperson wrote in a statement to CNBC. “We continue to intentionally design equitable and fair practices to drive progress across our people, product, policy and partnerships pillars.”

Our workforce reductions and company-wide efforts to sharpen our focus span the breadth of our business,” said a Google spokesperson, saying that the company remains committed to underrepresented communities and DEI work. “To be absolutely clear, our commitment to that work has not changed and we invested in many new programs and partnerships this year.”

The Google spokesperson did not dispute any specifics in this story, but pointed to new investments in partnerships this year, including committing more than $5 million to historically Black colleges and universities to help build a stronger pipeline to the tech industry for underrepresented talent, and launching the Google for Startups Women Founders Fund to help women entrepreneurs.

Cuts to internal teams and programs

In 2021, after facing complaints about pay equity in its Engineering Residency program, Google said it would be sunsetting the program and replacing it with a new one called Early Career Immersion, or ECI, which is aimed at helping underrepresented talent develop skills. (Google said sunsetting Engineering Residency was an unrelated business decision.)

But Google decided not to hire a 2023 cohort of ECI software engineers, citing an uncertain hiring outlook, according to correspondence viewed by CNBC. It also laid off some staffers associated with the program.

Participants in a separate Google program called Apprenticeships also lodged complaints about a lack of pathways and pay inequities in the last year, CNBC found.

“Apprentices become part of our mission to build great products for every user, and their different experiences help ensure that our products are as diverse as our users,” Google’s Apprenticeships website states.

But Apprenticeships participants complained they were getting paid less than other engineers during the course of the 20-month program despite doing similar work. They said they were doing “Level 3” work with L3 expectations and contributing significantly to Google’s codebase while earning half of full-time L3 software engineers’ base salary, according to internal correspondence seen by CNBC.

The apprentices even confronted the executive sponsor of the program, Aparna Pappu, vice president of Google Workspace, pointing out the executive’s prior stated goal “to increase representation of underrepresented talent across Google.”

The company said that apprentices are paid a salary for the learning and training they receive as part of the program, and that it reviews compensation annually to ensure alignment with the market.

The Apprenticeships program, which included real-work job training for underrepresented backgrounds, followed other failed efforts to improve diversity. In 2021, for instance, Google said it shut down a long-running program aimed at entry-level engineers from underrepresented backgrounds after participants said it enforced “systemic pay inequities.” That same year, CNBC found the company’s separate program that worked with students from historically Black colleges, suffered extreme disorganization, racism and broken promises to students.

Google and Meta also made cuts to personnel who were in charge of recruiting underrepresented people, according to several sources and documentation.

Nearly every member of Meta’s Sourcer Development Program, more than 60 workers, was let go from the company as part of its layoff of over 11,000 workers, CNBC learned. They claimed to have received inferior severance packages compared with other workers who were laid off in the same time period. Meta’s Sourcer Development Program was intended to help workers from diverse backgrounds obtain careers in corporate technology recruiting.

Google also cut DEI leaders who worked with Chief Diversity Officer Melonie Parker, while Meta made cuts to several DEI managers — some of whom it hired in 2020.

Layoffs at Google and Meta also included employees who held leadership roles in their respective Black employee resource groups, known as ERGs.

“There’s a lowering of physiological safety with layoffs or impending layoffs, and holding ERGs accountable for that is not fair and can lead to even more burnout,” Epler said.

In addition to cutting staff who worked on DEI programs and ERGs, both Meta and Google cut planned learning and development training for underrepresented talent, according to multiple sources who asked not to be named due to fear of retaliation. Meta said that learning and development programs were “merely streamlined to make them more impactful.”

“There’s a consistent amount of folks who have completely failed, mostly because they don’t have the internal teams to keep the mission forward,” said Simone White, who is a senior vice president at Blavity, a media organization that focuses on content for the Black community, and puts on AfroTech, which became a popular tech conference for Black tech talent and companies seeking to hire them.

Cuts impacting external organizations

While internal DEI programs have suffered, the cuts were arguably even harder for external organizations who expected the same amount of corporate sponsorship and support from tech companies in 2023 as they had the prior few years.

In early 2023, big tech leaders, including Google and Meta were among companies that lessened their work with third parties that were counting on projects, according to several organizations and sources who spoke with CNBC.

Brij, CEO of Brij the Gap Consulting, explained how the steep cuts have affected her firm, which consults with companies on building an effective workforce for underrepresented workers and includes workshops and programs.

“Right now with these budgets being entirely limited or cut, we’re just really backpedaling on so much of the work that we’ve done.”

Brij said some companies have even asked her to provide work for free.

“A lot of companies we worked with started to make progress before the cuts,” Epler said. “Now, it’s like some of them are essentially wiping away that work.” 

Stefania Pomponi, founder of Hella Social Impact, said executives have blamed cost-cutting as they’ve canceled contracts with the firm, which consults with companies’ leadership to create more inclusive workplaces through programs and training.

“I’ve been telling them, ‘look, your bottom line is also your people and these types of cuts are going to impact your business'” Pomponi said, pointing to various studies on diverse teams producing higher performance outcomes.

“As I talk to my colleagues across the space, some of the monies that were set aside around the time of George Floyd’s murder have not been fully extended, and that says to me that organizations like ours are needed now more than ever,” said Brenda Wilkerson, CEO of AnitaB.org, which puts on Grace Hopper, the largest women’s tech conference, which took place in September.

Some large tech companies, including Meta, pulled back from sponsorship or attendance for employees to attend Grace Hopper 2023, according to sources who asked to remain anonymous because they are not authorized to speak to the media. Some companies, including Microsoft, ended up sending some leaders to attend virtually so they wouldn’t have to pay for travel, according to two sources who wished to remain anonymous.

Microsoft said it still sent some employees physically, and both Microsoft and Meta told CNBC that Grace Hopper’s virtual option allowed more employees to participate.

Other companies such as Google, which still had a presence at the conference, retracted travel for some employees who had previously been approved to attend, according to several sources who asked to remain anonymous. Google is also among companies to reduce their spending with Blavity, the organization that puts on AfroTech, according to sources who asked not to be named due to being unauthorized to speak.

“We do have a significant amount of our existing corporate partners that are telling us ‘Hey, we can’t participate this year because our DEI team doesn’t even exist anymore,'” said Blavity’s Simone White, who declined to name specific companies. “Week to week, we have new contacts at companies, and folks we worked with for years to organize this work are no longer there.”

“To say our progress is not in peril would not be truthful,” AnitaB.org’s Wilkerson said, although she’s optimistic the tide could turn around in 2024. “We’re working with multiple challenges in our society, so we have made a lot of the progress but some of that was erased in the last year. Then you have this backlash against racial reckoning.”

The backlash she referred to includes things like the Supreme Court’s June decision to end affirmative action at colleges, as well as backlash against DEI programs in conservative circles. “You have this ‘wokeism’ drama.” Wilkerson said, pointing to Florida legislation such as banning books and downplaying Black history, as well as laws impacting the LGBTQIA+ community.

Because of that backlash, 2023 will be the last year the organization will hold Grace Hopper in Florida, Wilkerson said. It will be held in Philadelphia next year.

A Meta spokesperson said that it increased its engagement with some third-party organizations such as The Executive Leadership Council, which aims to increase Black leadership in C-suites.

DEI and AI

Wilkerson was among experts who told CNBC that DEI work is more important than ever given the growing work on artificial intelligence, which hit breakneck speed in 2023.

“We’re in a big technology inflection point, and what happens is as AI begins to take off and if organizations are less inclusive, the product is not reflective of the users,” Wilkerson said.

Apple, Google and other tech giants are still grappling with displaying and identifying images accurately. A New York Times investigation this year found Apple and Google’s Android software, which underpins most of the world’s smartphones, turned off the ability to visually search for primates for fear of labeling a person as an animal.

“We know that AI is trained on historic data and that historic data is missing critical segments of the population, and having women and noncentered folks as decision-makers is going to be critical to making sure it doesn’t happen again,” Wilkerson said.

White said companies who made cuts this year may have a difficult time building future relationships with DEI stakeholders, and it may impact their ability to attract and retain talent, should they decide to build up again in the future.

“Younger generations increasingly care who has a seat at the table,” White said. “And they’re going to remember who did what they said they were going to do.”

Don’t miss these stories from CNBC PRO:



Source link a fun game: sprunki horror

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
3,912FollowersFollow
0SubscribersSubscribe
Trump campaign reports raising more than  million after Georgia booking

Latest posts