c# – Is this the right way to call async and await

Hi I am new to async/await in C# . I have created a controller which is accessing result from HttpClient injected through HttpFactory. Here is my working example

class MyController
{

     private readonly IExternalServiceManager _externalServiceManager;
     public MyController(IExternalServiceManager externalServiceManager)
     {
           _externalServiceManager=externalServiceManager;
     }
     
     (Httpget)
     (Route("getemployeedetails/{employeeId}"))
     public async Task<IHttpActionResult> GetProjects(int employeeId)
     {
            var results=await _externalServiceManager.GetProjectsForEmployee(employeeId);
            return Ok(results)
     }


}

interface IExternalServiceManager
{
       Task<List<string>> GetProjectsForEmployee(int employeeId);
 
}
 
internal class ExternalServiceManager:IExternalServiceManager
{
     private readonly HttpClient _httpClient;

     public ExternalServiceManager(HttpClient httpClient)
     {
        _httpClient = httpClient;
     }

     public async Task<List<string>> GetProjectsForEmployee(int employeeId)
     {
           HttpResponseMessage response = await _httpClient.GetAsync("http://someuri");
           if(response.IsSuccessStatusCode)
           {
              string strResponse = await response.Content.ReadAsStringAsync();
              return JsonConvert.DeserializeObject<List<string>>(strResponse);
           }
     }
}

I have added a lot of await keywords here, and I am confused which await should I remove. Or is there a better way to restructure this code ?

I also added an extension method to avoid duplicating code

public async static Task<T> ReadAndDeserializeFromAsync<T>(string endPointURL)
{
     HttpResponseMessage response = await httpclient.GetAsync(endpointURL);
           if(response.IsSuccessStatusCode)
           {
              string strResponse = await response.Content.ReadAsStringAsync();
              return JsonConvert.DeserializeObject<T>(strResponse);
           }

}

    public async Task<List<string>> GetProjectsForEmployee(int employeeId)
    {
           var results = await _httpClient.ReadAndDeserializeFrom<List<String>>("https"//someURL").ConfigureAwait(false);
           return results;
    }

Does using too many await degrade performance ?