Job Seekers, Please send resumes to resumes@hireitpeople.com
Overall Job Purpose:
• Responsible for the technical implementation of a project.
• Deliver high quality development using diverse tools and systems including but not limited to:
o SOA (WSDL/XSD/XML)
o Enterprise Service Bus (ESB)
o Spring (WS/IOC/Integration)
o Hibernate
o Oracle Coherence
o Multi-tiered infrastructure including load balancers, databases, apache, application servers etc.
o JUnit/TestNG/Cucumber
• Strong understanding of key initiatives including:
o Agile development practices (Scrum/Kanban).
o “DevOps” including continuous deployment.
o TDD – Test driven development
• Work across multiple phases of software development within a project as a team member or dealing with the most technically challenging assignments. This includes:
Working directly with business areas to clarify detailed technical requirements.
Designing, coding and unit testing the most complex software components for new or enhanced IT systems to a high level of quality, producing appropriate documentation.
Providing technical support to business analyst/project managers and coaching to less experienced staff across a geographically dispersed teams.
Maintaining an expert level awareness of relevant software design techniques, development tools and processes, providing leadership in the use of these across the organization area.
Assist in periodic system evaluation to identify opportunities for continuous improvement.
Key Accountabilities & approximate time split (%)
(Ideally 4-10 points, or headings with sub-points. Quantify where possible e.g. cost/income budget, no of subordinates, likely no of yrs/mths to complete longest task. Could note key external/internal lateral relationships)
Technical Knowledge
• Can describe the overall function of several components in the technical platform.
• Demonstrated very strong level of technical expertise both within own area of responsibility and other IT domains.
• Has comprehensive understanding of full development lifecycle and is actively involved in all phases.
• 8+ years of experience designing and implementing end-to-end solution architectures for large and complex systems. Extensive experience with Service Oriented Architecture (SOA), systems design, development, integration and executing n-Tier applications.
• 6+ years of software development experience on a J2EE platform.
• 4+ years of software development experience in standard J2EE frameworks that include Spring and Hibernate.
• 4+ years of experience in Web Services design and development preferably Spring WS.
• Experience with Enterprise Integration Patterns including
• Enterprise Service Bus (ESB).
• Java Messaging Services (JMS).
• Experience with caching technologies like Terracotta and Coherence.
• Experience with continuous development and tools like Jenkins.
• Experience using build technologies like Maven
General
• Ensure all SLA’s are met for assigned tasks.
• Perform on-call support and pager duties as assigned by Team lead.
• Report over or under allocation to the Team lead, forecast work remaining, identify and communicate variance to plan.
• Ensuring smooth transition of application into production
Software Design, Programming and Unit Testing
• Designing software modifications from supplied requirements and design specifications using agreed standards and tools, achieving well-engineered results that follow the agreed implementation level software architectures.
• Taking responsibility for the design, coding, testing, and documentation (as defined by the SDLC process) of particularly large, complex or mission critical software programs.
• Proposing options and preparing cost estimates to enable the business area to make informed decisions.
• Adhere to all BCUS and BTG standards, Policies and governance practices.
• Assume ownership of various initiatives across Solutions Delivery and/or BTG as agreed with Team Lead for complete and successful delivery.
• Provide functional expertise within his/her skills to assist delivery team members, and foster collaboration with in BTG.
• Provide issue response and root cause analysis on work assigned by Team Lead and Project Lead.
• Planning, designing and conducting Unit and System Integration Tests, correcting errors and re-testing to deliver an error-free product.
• Reacting quickly and as necessary to live software errors and service problems, limiting downtime and resolving the problem during project handover.
• Report progress, delays and risks on assigned activities to Project Lead and Team Lead.
• Raise awareness when existing code, systems or processes do not meet current quality expectations and standards.
• Maintain code and all related artifacts in source control; perform code merges and resolve conflicts as defined by development process, update documentation and automated tests.
• Develop code, configuration files, build scripts, schemas or other artifacts as assigned by Team Lead.
• Develop system integration test to verify the code running in its functional environment.
• Work with the Project Lead and Team Lead to schedule features into Releases.
• Create implementation plans and Change Management Requests as assigned.
• Maintain accurate feature status during development by the agreed upon SLA.
• Verify build and deployment completeness of the features owned in the QA environment before making it available for Testing.
• Review the feature requirements as presented by the Business Analyst and the delivery team, in context of the overall project feature set and existing implementation. Translate requirements to technical concepts.
• Contribute to the logical/physical data models, class diagrams, activity diagrams, sequence diagrams and UI prototypes.
• Assist QA and production testing and deployment; assume ownership of the work until it passes successful Production Verification Test.
• Test all code, content, build and unit test changes in the lowest environments first, if such environments exist.
• Taking part in reviews of own work and leading reviews of colleagues’ work.
Capability Growth
• Maintaining an expert understanding of software delivery process and of technology developments relevant to own team(s)/software.
Internal and External IT Environment
Deep understanding of the internal and external environment related to own IT department/function:
• Can identify the specific functions and responsibilities and key customers and relationships of own IT department/function
• Can describe rationale for major IT initiatives and identify major IT issues.
• Contributes to the development and implementation of standards and procedures.
• Considers buy/sell/hold list and architectural road map during design phase of a project.
• Can discuss potential risks and benefits of emerging technologies
• May participate in the evaluation and implementation of new technologies.
Business Knowledge
Familiar with the details of at least one business:
• Can propose system solutions within component or application to business issues.
• Can provide clear communication of technical concepts to non-technical business users.
Functional Analysis (Business)
Experienced with standard methods, tools and techniques for requirements definition:
• Can describe deliverables associated with the requirements analysis and definition.
• Familiar with policies, practices and standards for defining functional requirements.
• Can identify key factors and information needed for effective design
Development/Configuration.
Has a deep understanding of the overall development process and an advanced knowledge in one or more of the main phases:
• Experienced with multiple programming languages including their standard tools and libraries.
• Can discuss similarities, differences, advantages and drawbacks of different languages.
• Knowledge of the major tools in a toolkit for a specific platform
• Has developed and executed a full spectrum of tests on multiple applications and environments.
• Experienced with testing complex, multi-platform, distributed applications.
• Can discuss considerations for selecting optimal testing environment for specific applications.
• Coordinates deployment tasks with end-user, operations and quality management.
• Has experience with alternative implementation plans.