You can extrapolate requirements from customers and product management and distinguish between what they need vs. what they want?
You are always on the lookout for adding configurability and extensibility to your design.
You cannot agree with not having ability to automatically test software.
Usability of the solution keeps you awake at nights!
In addition here is what we need you to have:
Knowledge in object oriented designs and principles
Knowledge in data structures, algorithms & design patterns
Language proficiency in C, C++ OR Java, Java is preferred
Knowledge in data modeling and hands on experience with at least one RDBMS, MySQL is preferred.
Ability to think in terms of APIs all the time
Expertise in server side, web architecture is desirable
Fair knowledge on any of the scripting languages is desirable as you may need to write scripts
B. Tech or above from a reputed institution