Analyze and identify programming solutions for clients. * Design and develop new software applications using best practice methods. * Facilitate suitable testing methods for existing software solutions. * Modify and improve existing software systems for optimal efficiency and effectiveness. * Perform bug-fixing.