Thoughtworks interview question

1. what to consider while designing API? 2.some discussion queuing methods 3.How to improve code quality? 4.Distributed Design