1. Work closely with application programmers to develop and maintain existing systems; 2. Collaborate with internal teams to determine system requirements; 3. Translate business logic into technical design; 4. Suggest new features to improve program navigation and operation;