Description: We are looking to hire a self-motivated & passionate Agile Technical Coach to work with application development teams and Technology Directors in providing coaching and training on the following: - Lean design modeling for agile development (Activity, Communication, Class diagrams) - Advanced object-oriented design and patterns (GoF, MVW, Enterprise Integration) - Design and development principles (SOLID, FIRST, GRASP, DRY, etc.)
- Test driven development (Acceptance, unit, and legacy code) - Professional software development behavior (pair programming, continuous integration, clean code, and refactoring) - XP Practices and Behaviors - Offer training and customized hands-on demos and workshops on Pair/Mob programming, TDD, ATDD, CI, collective code ownership - Legacy Code Refactoring - Coach teams to safely refactor dirty code.
- Agile Architecture Documentation workshops - Coach and teach how to retrospectively document the existing system and its architecture - Continuous Delivery & DevOps Qualifications: - 8 years of software development experience including, but not limited to, mature design, coding, testing and debugging skills - 6 years of proven experience with designing and developing application using Java EE platforms - Strong architecture and design experience with building applications with 12 Design Factor principles - Profound insight of Java and JEE internals (Classloading, Memory Management, Transaction management, etc.)
- Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate) - Experience in the Spring Framework - Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC, AngularJS) - Experience with Java 8 (threading, lambdas, streaming, etc.)
- Experience with GIT/Stash, SVN and build tools Hudson/Jenkins - Experience in Red Hat Linux environment and shell scripting - Hands-on experience practicing UTDD (unit test-driven development) and ATDD (acceptance test-driven development) behaviors, utilizing tools like Fitnesse or Cucumber, Selenuim and jUnit - Expert understanding of object-oriented analysis and design using common design patterns - Hands on experience with continuous delivery and infrastructure configuration automation tools such as Puppet and Chef - Hands on experience with developing, deploying and managing cloud applications Ability to: - Think creatively and solving problems simply, not always through technology - Work with people of different skill sets in a cross-functional team, across locations - Be a self-starter, driven and able to take initiative and work with minimal supervision - Build real and lasting relationships with your team and extended partners - Share knowledge and learning from others Knowledge of Agile Development: - Using Scrum, XP, Kanban, Lean or a related agile discipline/practice - Focus on working with end users to deliver business value early - Iterative and incremental delivery - Emergent design and architecture - Automated unit, integration, and acceptance testing - Continuous integration, continuous build and automated deployment Expected soft skills: - A personal enthusiasm for technology and a drive to implement innovative and novel solutions to business problems - Self-motivation and tenacity to push new ideas and changes through - Good written and verbal communication skills in both technical and business domains - Experience in a management/lead capacity - Sharing knowledge and learning from others - Adapting to change and working through ambiguity - Strong facilitation and coaching skills Additional Preferred Skills: - Sound understanding of Cloud technology, benefits and disadvantages - Hands on experience with building Cloud Native applications and deploying them on various cloud models (Public, Private and Hybrid cloud) - Experience in migrating applications from in-house data centers to Cloud environments - Experience with Microservices Architecture - Experience in Interface first design principles and adopting 12 Factor Design for Cloud - Experience in API management in Cloud