In Italian, "good" can be translated as "buono" or as "bravo".
"Buono" means good as opposed to evil. It's also used for food.
"Bravo" means good as in "skilled" or "talented".
So in this case you need "bravo". If you used "buono", you'd be saying that the writer is a good person. However, just to complicate things, there's an exception: "un brav'uomo" = "un buon uomo" (a good man).
Besides, it would sound more natural to put "bravo" before the noun: un bravo scrittore.
What really annoys me about the translation is that writer is a noun and good should be used which is buono in Italian. If the Italians really would say 'scrittore bravo' instead of 'il scrive bravo' I can only assume that they think grammar rules, like all rules, only apply to other people.