Principal Software Engineer - Java/Spring Boot/AWS/Junit
Role details
Job location
Tech stack
Job description
- Serves as a Principal Software Engineer: to design, develop and implement new complex solutions in accordance with FedNow and Fed Standards
- Ensures that the quality of software developed, maintained and enhanced in-house and installed into production is sufficient to prevent the occurrence of catastrophic defects that cause the customer significant problems, missed deadlines, or interruption to the production environment
- Develops software solutions in Java, Spring, Terraform, NoSQL and RDS in the Cloud
- Develop end to end Infrastructure-as-Code solutions in Cloud
- Provides input into strategic and tactical planning of software solutions and software development lifecycle changes
- In addition to being able to engineer across numerous areas of technology, you'll serve as subject matter expert in one or more areas
- Trains and consults cross functionally within the organization on troubleshooting/resolving highly complex and/or highly time critical problems
- Demonstrates skill dexterity; seeking to continuously adapt and employ new technical skills alongside proven staples
- Ensure compliance with Fed policies, procedures and standards, 42 minutes ago Transactions Special Projects BD & Marketing Manager DLA Piper Boston, Massachusetts $129,808.00 - $197,799.00 per year
Requirements
Top level technical expert in one or more highly specialized areas of applications systems analysis and programming. Responsible for software design, coding, testing, debugging, and documentation. Has full technical knowledge of all phases of applications systems analysis and development. Provides technical leadership on complex projects. Interacts with internal project teams and work groups regularly. Level of work required is considered highly advanced and staff must be able to work under minimal supervision. This job does not have any direct reports. You have an appetite to learn, and a passion for technology, innovation, and developing new skills on evolving technologies., * Deep expertise in Java and proficient knowledge of programming languages (JavaScript, XML, JSON, HTML, CSS etc. Python a bonus). Experience with modern Java features like generics, streams and lambdas.
- Experience using JUnit 5+ to write integration and unit tests and use its lifecycle interfaces and annotations to handle related setup and teardown tasks. Understanding of how to use JUnit's extension and lifecycle annotations and interfaces to create tools that enhance its default functionality and monitor test plan execution results.
- Experience with Apache Maven or Gradle to handle tasks such as compilation, dependency management, testing, packaging and deployment. Knowledge of Apache Maven's build lifecycles phases, experience with custom plugin development and how to map a custom plugin's goals to Maven lifecycle phases
- Proficient in Mockito and AssertJ as well as integration testing with @SpringBootTest.
- Understanding of object-oriented design principles (ex: SOLID) to create maintainable, extensible code and knowledge of design patterns, inheritance hierarchies, polymorphism, composition over inheritance, effective interface design, encapsulation and immutability.
- Comprehensive knowledge of Spring Boot's core fundamentals, including auto-configuration, starter dependencies, and its opinionated approach to application setup that eliminates much of the boilerplate configuration required in traditional Spring applications. Understanding of dependency injection, the IoC container, bean lifecycle management as well as proficiency in using annotations like @Component, @Service, @Repository, and @Autowired.
- Experience with AWS services, and integrating them into an application
- Expertise in building RESTful APIs with Spring Boot, including knowledge of @RestController, @RequestMapping, request/response handling, content negotiation, and exception handling.
- Understand data access patterns using Spring Data JPA, including repository interfaces, custom queries, and declarative / programmatic transaction management.
- Proficient knowledge of database development (SQL, Oracle, DB2)
- Ideally you'll have experience with leading edge Cloud technologies, such as Kafka, in-memory and NoSQL databases, messaging platforms, memcache etc).
- Proficient knowledge of cloud security for application development and delivery
- Ideally, Infrastructure as Code (IAC); Terraform
Nice to Have-
- Experience with API Development and consumption and microservices architecture
- Familiarity with database migration tools like Flyway or Liquibase.
- Experience using Spring Security to handle security concerns in Spring Boot apps.
- Understanding Spring Boot's various application properties configurations (profiles, YAML vs properties files) and externalized configuration management.
- Knowledge of monitoring and observability through Spring Boot Actuator, including custom health checks and metrics.
- Proficiency working with XML Schema Definition (XSD) schemas and XSLT (Extensible Stylesheet Language Transformations) templates, including XML schema design principles, validation techniques, Java-XML binding via JAXB, namespace management, XSLT processing models, template creation, XPath expressions, and transformation patterns for converting XML to various output formats.
- Proficient with unit testing, integration testing between system components, performance testing to identify bottlenecks, soak testing for long-term stability verification and API testing.
- Strong interpersonal, teamwork and negotiation skills
- Strong problem solving and critical thinking skills
Benefits & conditions
The salary range for this position is $173,400.00 - $216,700.00 - $260,000.00. The Boston Fed believes in salary transparency. The final salary and offer will be determined by the applicant's background, skills, internal equity, and alignment with market data. Whether you're developing into the job or are a more seasoned candidate, we aim to pay competitively. The position and job description posted is for a Principal Software Engineer however, candidates will be placed in an appropriate level within the Software Engineer job family based on the extent of their experience. If you reside outside of the 1st District, you may be hired by your local Federal Reserve District and compensation will follow hiring District's range and policy.