Preheat oven to 375'. Grease 9" springform pan with butter and dust with granulated sugar.
Using stand mixer, beat eggs on medium speed until combined. Add ricotta, triple sec, and vanilla, mix on medium speed until smooth. About 2-3 minutes, scraping down bowl as needed.
Mix semolina and granulated sugar in a small bowl until combined. Heat milk, lemon zest, orange zest, cardamom, salt and butter in a large saucepan over medium low heat. Stirring occasionally until the temperature reaches 180'. Off heat pour semolina mixture into milk mixture in a slow stream, whisking constantly, until smooth.
Return saucepan to heat and stir constantly with a wooden spoon until the mixture pulls away from the side of the pan about 3-5 minutes.
Add 1/3 of the semolina mixture to the ricotta mixture, mix on medium speed until incorporated. Add the remaining semolina mixture in 2 additions, mixing after each addition. Continue to mix, scraping after each addition until smooth, about 3-5 minutes.
Set the springform pan in a rimmed baking sheet and then add the batter. Bake until the top is golden brown, edges are slightly puffed, about 50-60 minutes. Some cracking will happen, and the center will have a slight jiggle.
Let cake cool on a wire rack on the baking sheet for 10 minutes. Run the knife around the edge of the pan to loosen cake. Unlock the ring but leave it in place. Let it cool completely, 1 ½-2 hours. Refasten ring and refrigerate until firm and completely chilled about 24 hours.
To unmold cake, remove the ring, slide an offset spatula underneath to loosen the cake from the pan bottom. Slide cake onto a cake stand or platter. Let cake stand at room temperature for 30 minutes. Sprinkle top with powdered sugar. Slice with a sharp knife, wiping clean between each cutting. Serve.