Principal Financial Group
Website:
principal.com
Job details:
Responsibilities
Experience: 10+ years
Role Overview
We are seeking a
Consultant Software Engineer (Java) to design and deliver
highly scalable, secure, and resilient systems. You’ll work hands-on across architecture, coding, performance, security, and observability, mentoring peers, owning outcomes, and ensuring high-quality deliverables aligned to business needs.
Key Responsibilities
- Architecture & Design: Translate business goals into robust designs, define service boundaries, data models, and API contracts, document decisions (ADRs).
- Build & Deliver: Implement Java/Spring Boot microservices and RESTful APIs with strong performance, reliability, and backward compatibility.
- Quality & Testing: Establish test strategy and maintain high coverage (unit, integration, contract, performance). Enable shift-left quality in CI.
- Performance & Resilience: Profile and optimize JVM, queries, and I/O, implement resilience patterns (circuit breakers, retries, bulkheads), apply effective caching.
- Security & Compliance: Apply secure coding practices, implement OAuth2/JWT, input validation, secrets handling, support audits and risk remediation.
- Observability & Operability: Implement structured logging, metrics, and distributed tracing, define SLOs and actionable alerts for production readiness.
- Collaboration & Communication: Partner with product, QA, architecture, and SRE to align scope, trade-offs, and timelines, communicate risks early with options.
- Technical Mentorship: Mentor peers via pairing, design/code reviews, and knowledge shares, improve team practices and reusable assets.
- Facilitate agile ceremonies : (stand‑ups, backlog refinement, sprint planning, demos, retros) with a focus on technical outcomes, risk surfacing, and sprint goal clarity.
- Refine stories into actionable technical tasks: ensure Definition of Ready/Done, unambiguous acceptance criteria, testability, and accurate story point estimation.
Qualifications
Must-Have Skills (Java)
Java / Java 8+- Deep understanding of OOP and SOLID principles.
- Proficiency with Java 8+: Streams API, Optional, functional interfaces, lambda expressions.
- Multithreading & Concurrency: thread pools, Future/CompletableFuture, synchronization, locks, concurrent collections.
- JVM & Memory Model: heap/stack, GC tuning, classloading basics.
Web Technologies- Design & implement RESTful APIs, pagination, idempotency, error models.
- Rate limiting & API gateway concepts, OpenAPI/Swagger documentation.
- Exposure to enterprise web servers (WebLogic/WebSphere) or embedded servers (Tomcat/Jetty).
Spring Framework- Deep knowledge of Spring Core (IoC/DI), Spring MVC, Spring Boot (auto-configuration, starters).
- Spring Security (JWT, OAuth2), Spring Batch, Spring AOP.
Data & Messaging- Strong SQL (PostgreSQL/MySQL), schema design, query tuning, caching (Redis).
- Messaging/eventing exposure (Kafka/RabbitMQ) and outbox/idempotency patterns.
- Engineering Excellence
- CI/CD (Jenkins/GitHub Actions/Azure DevOps), Maven/Gradle, Git.
- Testing: JUnit 5, Mockito, Testcontainers, contract tests (Pact), performance testing (JMeter/Gatling).
- Observability: logs/metrics/traces (OpenTelemetry, ELK/Prometheus/Grafana).
Good to Have
- API versioning strategies, schema governance, consumer-driven contracts.
- Containers (Docker) and orchestration basics (Kubernetes/ECS).
- Patterns: DDD, hexagonal architecture, saga, outbox, CQRS.
Soft Skills
- High ownership and accountability for delivery quality, performance, and reliability.
- Clear stakeholder communication with options, trade-offs, and data-backed recommendations.
- Mentorship mindset, collaborative, pragmatic problem-solving and strong documentation.
Click on Apply to know more.