Principal Software Engineer/Developer

Fidelity InvestmentsDurham, NC
11hHybrid

About The Position

Position Description: Designs Enterprise Solutions and Applications for business problems using technologies including Java, J2EE, Spring/Spring Boot, and relational and NoSQL databases including Oracle, Postgres, Maven, GIT, Jenkins, REST, JSON, Angular, Node.js, Swagger, Docker, and Kubernetes. Develops cloud native applications in Microsoft Azure. Designs systems that utilize modern distributed Software Architecture Patterns, such as Event Sourcing, Streaming, Microservices, Service Bus, and Service Mesh. Provides technical assistance, mentors and coaching for junior developers. Uses business knowledge to translate the vision for divisional initiatives into business solutions by developing complex or multiple software applications and conducting studies of alternatives. Analyzes and recommends changes in project development policies, procedures, standards, and strategies to development experts and management.

Requirements

  • Bachelor’s degree in Computer Science, Applied Science, Engineering, Information Technology, Information Systems, or a closely related field (or foreign education equivalent) and five (5) years of experience as a Principal Software Engineer/Developer (or closely related occupation) designing and building automated testing suites in a financial services environment.
  • Or, alternatively, Master’s degree in Computer Science, Applied Science, Engineering, Information Technology, Information Systems, or a closely related field (or foreign education equivalent) and three (3) years of experience as a Principal Software Engineer/Developer (or closely related occupation) designing and building automated testing suites in a financial services environment.
  • Demonstrated Expertise (“DE”) performing Java/J2EE application development according to Test Driven and Behavioral Driven Development methodologies (TDD and BDD), using Junit and Power Mockito frameworks; deploying Web applications using OpenShift, WebSphere and Tomcat servers within Unix and Windows environments; and performing application development and debugging, using software development tools/editors -- Eclipse, IntelliJ and Spring Tool Suite.
  • DE building automation frameworks using Java, J2EE, XML, HTML, JSON, Cucumber and Maven; integrating Junit, TestNG, and Selenium Web driver scripts for automation; implementing CI/CD Pipelines with Jenkins ensuring seamless integration of automated testing; and integrating SonarQube with Jenkins for continuous optimizing of code quality and performing automated, manual, and load testing, using Apache JMeter, and VisualVM.
  • DE maintaining optimal performance and stability for Spring Boot microservice applications using Dynatrace for deep insights and automated root cause analysis, Datadog for comprehensive performance monitoring and custom dashboards, Splunk for powerful log management and alerting, ELK Stack for log analysis, Jaeger for distributed tracing, Kubernetes for container orchestration, and Apache Kafka for real-time data streaming
  • DE developing Microservice applications and implementing REST APIs using Spring boot framework/ Jetty server; securing applications using OAuth, JWT, and JAX-RS and following OSWAP standard; performing integrated application testing using Rest Assured Framework; creating Docker images and containers to package and deploy applications.
  • deploying applications, configuring Database server in Cloud Computing Services (Azure Cloud), and developing event-drive microservice using Apache Kafka; and creating business rules using Drools for decision-making to route requests to different services.

Responsibilities

  • Participates in architecture design teams.
  • Defines and implements application-level architecture.
  • Develops applications on complex projects, components, and subsystems for the division.
  • Recommends development testing tools and methodologies and reviews and validates test plans.
  • Responsible for QA readiness of software deliverables.
  • Develops comprehensive documentation for multiple applications or subsystems.
  • Establishes full project life cycle plans for complex projects across multiple platforms.
  • Responsible for meeting project goals on-time and on-budget.
  • Advises on risk assessment and risk management strategies for projects.
  • Plans and coordinates project schedules and assignments for multiple projects.
  • Acts as a primary liaison for business units to resolve various project/technology issues.
  • Provides technology solutions to daily issues and technical evaluation estimates on technology initiatives.
  • Advises senior management on technical strategy.
  • Mentors junior team members.
  • Performs independent and complex technical and functional analysis for multiple projects supporting several divisional initiatives.
  • Develops original and creative technical solutions to on-going development efforts.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service