Analyzes problems and program in two or more programming language/platforms. Understands and develops functional and non-functional requirements for a system. Works with multiple programming frameworks. Develops, tests and maintains code using software development methodology and appropriate technologies for the system being used.