Lead Full Stack Software Developer/Java Agile
Posted on Nov 14, 2019 by Request Technology - Craig Johnson
- Participates in product scoping, discovery and framing, and inceptions providing technical input and helps translate user features into system design
- Help define strategic direction and map out tracks of work to live into short-term and long-term needs
- Leads the effort of shaping the architecture and design of the product including recovery, security, and audit
- Leads and participates in inceptions and iteration planning meetings, infusing backlogs with technical input working in close partnership with the product manager
- Identify risk and issues and possible mitigation strategies.
- Leads and participates in daily site, cross-site, and product team standups
- Leads and participates in retrospectives; demonstrating and encouraging each participant to provide feedback with empathy
- Leads collaboration and strategy alignment across product portfolios (cross-product) in partnership with product managers, other peers and key stakeholders with the customer needs and wants in mind
- Serves as an expert on the R3 (Ratemaking, Rating and Rate plan implementation) domain and a distinguished advocate of multiple technology stacks and shares that knowledge across organizations
- Serves as the anchor of the team and practices technical leadership; helping guide the team in building prototypes, choosing the right technology, solving technical problems, and resolving any technical conflicts within the team
- Coaches the team (onshore & offshore) and leads daily practices of using paired programming and test driven development in writing software and building products and enhancements
- Establishes continuous integration, continuous delivery, and continuous deployment pipelines and practices
- Leads and participates in knowledge sharing, and contributes to the overall growth of the collective knowledge of the CompoZed Labs community.
- Bachelor's or Masters/MBA degree in a field such as Computer Science or Data Architecture
- 8+ years of experience developing and implementing systems at scale.
- Strong understanding of computer science concepts, Object Oriented Design principles
- Strong understanding of distributed systems, operating systems, networking, databases, security, and analytics
- Hands on experience and accountability architecting, designing, implementing and delivering large scale distributed systems and/or applications for the cloud, including Microservices architectures and 12-factor principles
- Experience developing software in different programming languages, and demonstrated ability to quickly learn new languages, including but not limited to React JS, Java (Spring) & Python
- Experience and knowledge in developing REST APIs including tooling for documentation (swagger, REST-docs, openapi spec), versioning, service discovery/registration, testing and management; experience using API gateways a plus
- Experience and knowledge in web and API security including authentication, authorization, OAuth, OWASP, OpenID, and SAML
- Experience in Back End development design and implementation; database (relational, NoSQL, caching), messaging and big data development, implementation and optimization
- Actual experience developing continuous integration, continuous delivery and continuous deployment pipelines for distributed apps
- Knowledge and advanced experience using distributed version control systems (git), artifact management systems, build and packaging systems (maven, gradle, npm, artifactory, etc) and continuous integration tools (Jenkins).
- Knowledge and experience on approaches and tools for automated testing (including performance testing) and monitoring
- Experience working in an eXtreme Programming (XP) or any agile environment
- Experience in Test Driven Development; including knowledge and experience in testing frameworks like junit, mockito, jasmine, protractor, cucumber, and other like technologies
- Able to lead agile teams and lead collaboration across teams; serving as an anchor or technical lead for complex distributed systems spanning multiple apps, services, APIs, and datastores
- Familiarity with open source software
- Able to learn new technologies, and teach other members of the team/s
- Able to work effectively across organizational and geographical boundaries