how to create user profile pages and display them based on users roles

Try this to get you started. This creates a shortcode [alldevelopers] that displays a list of all developers. Pretty basic but can be heavily extended and duplicted. (Not tested)

add_shortcode( 'alldevelopers', 'show_all_developers' );
function show_all_developers(){
   $users = get_users( [ 'role__in' => [ 'developers' ] ] );
      foreach ( $users as $user ) {
         echo $user->first_name . ' ' . $user->last_name . '<br>';
      }
}