Trim the tops off the aubergines. Dice them. Warm a deep frying pan or wok for 1 min, then add 1 tbsp oil and half the aubergines. Quickly turn to coat the dice 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. Repeat with an additional 1 tbsp olive oil and the remaining aubergines. Remove them from the pan. 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-5 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. Give them a 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 – keeping it slightly al dente.
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 they're 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.