timid and shy both exist in English and can be used interchangeably
In English, timid and shy are similar, but they are not the same. Shy is used for being nervous around other people. Timid means that you lack courage.
So shy means that you HAVE courage to speak, even though you are nervous?
but they have a different register (tone)
Also the translation guy should be accepted for garoto. At least this is how it is used in Rio de Janeiro
I would say garoto = boy / cara = guy.
"Eu sou um cara tímido" = I'm a shy guy
I always thought it meant "face" with a masculine article "um cara" and "uma cara" meaning "guy". Do I have this backwards?
Yes, it's the opposite: um cara = a guy, uma cara = a face
Duo suggests that "garoto" means coffee with milk. Is that really the case?
Yes, but coffee with milk is "garoto" only in Portugal. The equivalent in Brazil would be "média" or "pingado", depending on the region. But "café com leite" everybody will understand.
What is the difference between "garoto" and "menino"?
They're interchangable for the most part, but it's my understanding that menino refers to a child, where garoto is more like young man, or teenage boy. Garoto is also a brand of Brazilian candy.