Developer / Programmer JAVA – Sr.


Brief Summary

                            Developer / Programmer JAVA – Sr.

Job Role: 
This position is a hands-on, senior application developer for an existing application development team. The ideal candidate should possess demonstrated ability to: 
- Execute and program on an application development team through all phases of the software development lifecycle 
- Provide expertise in triaging, diagnosing and resolving complex systems issues 
- Quickly learn and apply new information and knowledge

General knowledge of the securities industry and CGC specific businesses.  

Working knowledge in one or more highly specialized areas of application development and/or business analysis that is of significant impact to the organization. 

Advanced knowledge of programming language(s), software development tools and environment(s) and systems analysis and functional design.   

Thorough knowledge of database concepts, database design, data modeling and system architectures. 

 Expert knowledge of application design principles, practices, system development methodologies and software life cycles.  

 Advanced knowledge of user interface principles and windows design standards.  

Thorough knowledge of security and disaster recovery requirements for applications development. 

 Thorough knowledge of documentation and training.   

Technical skills and experience: 6+ years

-	Java 1.6 
-	Web technology fundamentals including: Web services (Java Metro), HTTP         fundamentals, JavaScript
-	Hibernate 
-	Spring 
-	 Fundamentals of SQL queries 
-	.NET 
-	C# 
-	Preferred: Unix scripting, Infragistics 

Tool experience: 
- ClearCase 
- Visual Studio 2010 
- Eclipse 
- Weblogic 10.3 
- tcServer 
- Oracle 11g 

Applied experience leveraging agile software development principals & practices is desired including: 
- Scrum or Kanban or Scrumban 
- Paired programming 
- Continuous integration (using tools like Cruisecontrol, Quickbuild, etc.) 
- Test Driven Development 
- JUnit

Demonstrated ability to:
•	Function and execute in all phases of application software development.   
•	Work independently and provide technical aptitude concerning application design and/or systems analysis.  
•	Apply a broad knowledge of development technologies and determine appropriate options for resolving business issues.  
•	Review recent technical/systems developments and evaluate their usefulness and compatibility with CGC systems.  
•	Create standards and guidelines.  
•	Communicate complex technical concepts, techniques and skills to a variety of technical, managerial and business audiences.  
•	Define project scope and establish objectives for assigned projects.  
•	Provide direction and guidance to others. 
•	Work effectively in a team environment and support others on the team.  
•	Use good judgment in identifying issues and recommending solutions to others. Acquires and effectively demonstrates any additional knowledge and skill requirements as requested.   

Job Duties:
•	Maintains and consistently demonstrates a general knowledge of company guidelines, processes, practices and procedures.  
•	Performs complex systems analysis and/or designs applications requiring advanced techniques using leading-edge technologies.  
•	Provides expert technical expertise and analytical support in the conceptualization, development and implementation of complex interrelated systems and/or programs.  Develops system designs to meet user requirements (examples might include program designs, database designs, and window designs).   
•	Gathers user requirements and performs systems analysis (possibly in conjunction with business system analysts).  
•	Develops applications designs often integrating multiple phases or aspects of an overall system design. 
•	Executes application development design reviews.  
•	Follows project approach and/or procedures to solve the most complex applications problems considering system requirements/limitations, operating time, system architecture, and the desired results.  
•	Develops standards and guidelines. 
•	Executes systems tests of new state-of-the-art applications to determine potential internal use.
•	Collaborates with other applications staff members to resolve complex systems issues. 
•	Prepares/moves application programs from development to production in controlled manner.
•	Develops documentation and other materials supporting application programs.  
•	Provides feedback in determining scope and participates in recommending priorities for system changes. 
•	On-going evaluation of system functions and design and identifies areas for improvement.
•	Provides on-call coverage to application programs as needed to support business operations.
•	Participates in the development and training of team members.   
•	Proactively researches leading-edge technology and application development techniques through continued education and training.   
•	Prepares and distributes status reports and other updates to users and management.
•	Communicates actively with users on systems status, including system changes, problems, enhancements, and potential impacts.  
•	Constructively contributes in team and department meetings and training opportunities.
•	Performs other work as required or requested as well as additional assignments.