X-wing
Two rows locking a value to the same two columns clear those columns
How to use it
Lock a symbol's rows. For one symbol, find two rows where its remaining homes are exactly the same two columns: the four crossings form a rectangle. The symbol must occupy both columns once each (one row contributes one occurrence), so it can be struck from those two columns everywhere outside the rectangle. The column/row roles swap symmetrically: two columns locking the same two rows clear those rows.
Fish like this live on one layer at a time — letters first, then digits. During a stall, tabulate each stubborn symbol's homes per row; rectangles jump out of the table.
Why it is sound
Suppose a symbol's homes in rows r1 and r2 are exactly columns c1 and c2. Each of the two rows must contain the symbol once, and a column cannot contain it twice, so the rectangle delivers the symbol exactly once into c1 and once into c2. Any other occurrence of the symbol in c1 or c2 would duplicate the column's occurrence, so removing those candidates is sound. The row/column roles transpose.
A worked example
Tabulate the letter A's homes per row. In the position shown, row 1 leaves A only in columns 1 and 2, and row 2 leaves exactly the same two columns. The four crossings form a rectangle, and since each of the two rows must deliver its A into one of the two columns — and a column cannot take two — the rectangle supplies A to columns 1 and 2 once each. So A is impossible everywhere else in those columns: it is struck from r4c2 and r5c1. Two eliminations from one rectangle: draw the table for stubborn letters (and digits) during a stall and the rectangles surface on their own.