Trim the top off the aubergine. Dice it. Warm a deep frying pan or wok for 1 min, then add 1 tbsp oil and the aubergine. Quickly turn to coat in the oil. Fry over a medium heat, stirring now and then, for 6-8 mins till the aubergine is browned all over.
While the aubergine cooks, peel and finely chop the onion. Trim the ends off the celery stick and finely slice it. Finely chop the tomatoes.
Scoop the aubergine out of the pan and pop on a plate lined with kitchen paper. Add ½ tbsp oil to the pan, plus the onion and celery. Season with salt and pepper. Cook and stir over a medium heat for 3 mins till the veg are glossy and slightly golden.
Stir the aubergine into the onion and celery. Add the tomatoes. Stir in 2 tbsp sugar and 2 tbsp vinegar. Cover and simmer for 15 mins till the veg are tender and a little broken down. Stir now and then.
While the veg cook, fill a pan with water. Add a pinch of salt. Cover and bring to the boil. Carefully tip the penne into the pan of boiling water. Simmer for 8-10 mins till the penne is cooked but not too soft.
Tip the flaked almonds into a dry frying pan. Toast over a medium heat, shaking the pan to stop the almonds burning, for 2-3 mins till the almonds are golden brown. Tip into a bowl and set aside.
Drain the penne. Taste the aubergine agrodolce sauce and add more salt and pepper if it needs it. Toss in the penne and stir to coat in the sauce. Serve the penne topped with the toasted almonds.