Developer / Programmer JAVA Lead

SAN ANTONIO (SAT) - Riverwalk

Brief Summary

                            Developer / Programmer JAVA – Lead

Job Role: 
This position is a hands-on, senior application developer who will serve as a team lead for an existing application development team. The ideal candidate should possess demonstrated ability to: 
- lead an application development team through all phases of the software development lifecycle 
- provide leadership 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.  

Expert 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: 8+ 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:
•	Lead all phases of application software development.   
•	Work independently and provide technical leadership 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.  
•	Reviews and evaluates feasibility studies and/or systems issues prepares recommendations based on an in-depth knowledge of the problem and the advantages and disadvantages of alternative technologies/solutions.   
•	Performs business impact and cost/benefit analyses and assists in developing business cases for projects.   
•	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. 
•	Leads application development design reviews.  
•	Devises or modifies 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. 
•	Leads systems tests of new state-of-the-art applications to determine potential internal use.
•	Provides technical leadership to 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 leadership in determining scope and participates in recommending priorities for system changes. 
•	Leads 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.  
•	Coordinates some user meetings: 
o	Schedules meetings 
o	Participates in, and sometimes leads, meeting discussions 
o	Assists team members in preparing for meetings 
o	Summarizes and communicates outcomes to users and management.  
•	Coordinates some team meetings: 
o	Schedules meetings 
o	Leads discussion and resolution of issues.  
•	Participates actively in all, and in some cases leads certain, aspects of project management and control.  
•	Constructively contributes in team and department meetings and training opportunities.
•	Performs other work as required or requested as well as additional assignments.