Q: How do I make multiple API calls in parallel to the same endpoint and combine all the responses into an output array? Currently in my Kotlin code, I have an array of users and I do a for loop and make GET request for each user's information and then add their information to a MutableList. I observe the list and update my UI whenever a new user info is posted to it.
But I was wondering how I could do all the user calls at the same time and await the final result and post UI all at once?

A: You can use async syntax to start requests and then awaitAll on them (just be aware that it will fail immediately as soon as any of the deferreds fail).
Something like:
val one = async { doSomethingUsefulOne() }
val two = async { doSomethingUsefulTwo() }

val result = awaitAll(one, two) // will give you a list of results

So in your case you can map over the users and start async operation on them.
Example: https://kotlinexpertise.com/kotlin-coroutines-concurrency/
Roman Elisarov's blog on structured concurrency: https://elizarov.medium.com/structured-concurrency-722d765aa952 (part about parallel decomposition)
