Job Description
What you can expect
- Build applications ensuring that the code follows latest coding practices and industry standards, using modern design patterns and architectural principles; remove technical impediments.
- Develop high quality, well documented and efficient code adhering to all applicable Prudential standards.
- Collaborate with product owners in understanding needs and defining feature stories, tech leads in defining technical design and other team members to understand the system end-to-end and deliver robust solutions that bring about business impact.
- Write unit, integration tests and functional automation, researching problems discovered by quality assurance or product support, developing solutions to address the problems.
- Bring a strong understanding of relevant and emerging technologies, provide input, coach team members, and embed learning and innovation in the day-to-day.
- Work on complex problems in which analysis of situations or data requires evaluating intangible variables.
- Identify opportunities for simplification in the application development toolset, striving for reduced management and less tools which do more.
- Maintain a consistent feedback loop with development teams to champion adoption and decommissioning of legacy technology stacks.
- Use programming including but not limited to Python, Java, or JavaScript and Angular, React, Springboot, Node.js frameworks.
What you will bring
- Bachelor of Computer Science or Engineering or experience in related fields.
- 10-20 years experience, with expert level knowledge in Python, Java/Spring framework.
- Ability to coach others with minimal guidance and effectively leverage diverse ideas, experiences, thoughts, and perspectives to the benefit of the organization.
- Experience with agile development methodologies and Test-Driven Development (TDD), ability to apply appropriate agile approaches in the processes of software development and delivery.
- Knowledge of business concepts tools and processes that are needed for making sound decisions in the context of the company's business.
- Ability to learn new skills and knowledge on an on-going basis through self-initiative and tackling challenges.
- Excellent analytical and problem-solving skills with the ability to think quickly and offer alternatives both independently and within teams.
- Proven ability to work quickly in a dynamic environment.
- Advanced experience and/or expertise with several of the following:
- Hands on experience with back-end technologies and frameworks, such as Java, J2EE, Spring framework, and integrating UI components with server-side systems.
- Experience of API development using RESTful or GraphQL standards.
- Experience in distributed systems, microservices, design patterns and design methodology.
- Experience with Bitbucket, Jenkins, Gradle, Git. Cloud experience working with AWS S3/EC2/SQS.
- Knowledge of Jira, Confluence, and DevOps.
- Familiarity with security concepts authentication, authorization, and SSL.
- Experience with non-relational and relational databases.
- Understanding business needs and transforming them into efficient solutions with quality.
- Designing solutions to align with non-functional requirements.
- Implementing software engineering standards and best practices.
- Experience leading and mentoring junior developers.
- Ability to document using JAVADOC, and Swagger.
- Ability to work with QA, Perf and Production Support (L1/L2/L3).