The typical order for adjectives in English is: opinion, size, age, shape, colour, origin, material, purpose. In this case, 'nice' is an opinion, 'middle-aged' is age, and 'English' is origin.
a(n) nice middle-aged English writer