Alternative to estimates: do the most important thing until either it ships or it is no longer the most important thing
the *craft* of programming begins with empathy, not formatting or languages or tools or algorithms or data structures
If you know how to design the software, design the software. Otherwise implement now, learn, and design later.
tdd is not "alive" or "dead". it is subject to tradeoffs, including risk of api changes, skill of practitioner, and existing design.
When you're the senior in junior/senior pair programming, the measure of your success is how much the junior learns