Responsibilities:
- Interact with clients, exploring and advising technological possibilities, discovering solutions that fit their goals
- Architect and develop large-scale, well-written applications
- Write clean, structured, object-oriented code with change and reuse in mind