Heat the oil in a large saucepan or casserole and sear the beef on all sides until thoroughly brown.
Add the stock, star anise, cinnamon, black peppercorns, half the shallots, the garlic and ginger. Bring to the boil, removing any scum. Reduce the heat, cover the pan with a lid and simmer very gently for about 1½ hours or until the beef is tender.
To make the nuoc cham sauce, pound the chilli, garlic and sugar until smooth, using a pestle and mortar. Add the lime juice, vinegar, fish sauce and 4 tablespoons water and blend together well.
When the beef from the broth is tender, lift it out and slice it thinly. Add the noodles to the broth and cook gently for 2–3 minutes to soften. Add the bean sprouts, along with the sliced beef and heat for 1 minute. Strain the broth, noodles and bean sprouts to warmed serving bowls. Scatter with the beef fillet, spring onions, coriander and remaining onions or shallots. Garnish with the chillies. Serve with the nuoc cham sauce.