podia ficar só `def initialize(username = {})

visto que é só um argumento, escusas de usar o named argument, e assim podes já definir um valor default