To get a user by a username you can use :
public class UserRepository
{
public static User GetUser(string domainName, string userName)
{
if (User.Exists(domainName + @"\" + userName))
return User.FromName(domainName + @"\" + userName, true);
return null;
}
}
To get a user roles you can use
Sitecore.Security.Accounts.User user = UserRepository.GetUser("yourdomain","youruserName");
if (user==null) return;
var rolesList = user.Roles.ToList();
foreach(var role in rolesList)
{
var roleName = role.DisplayName;
var roleDomain = role.Domain;
// you have all the properties of a role in role object
}