The Microservices Senior Software Engineer, Product Engineering will join our microservice team to help design, implement and deploy a world class microservice layer for Royal, Celebrity and Azamara brands. The candidate must be able to work collaboratively in a team environment, yet independently able to research and propose technical solutions in public/hybrid cloud environments, deliver multiple assignments independently, and provide technical expertise/mentoring to other team members. The senior engineer must be familiar with agilescrum methodology and be self-driven and capable of self-learning to stay on top of technology trends and development methodologies.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
- Active participation in software application development.
- Translation of requirements into design and code to meet product functional objectives and key results.
- Demonstrating initiative and pro-actively proposing application improvements and updates.
- Meeting with management and stakeholders to both understand and convey priorities and goals for assignments.
- Assisting in adopting, enabling, and scaling effective monitoring of microservices in a conventional but reproducible manner.
- Communicating the team¿s current progress and helping to project future progress.
- Assisting with the creation and grooming of requirements and specifications for projects - both technical and functional.
- Helping architect and planning changes and enhancements to the product.
- Approving and validating proposed changes that are made to the product.
- Delegating and assigning tasks to other developers on the team.
- Maintaining and enhancing existing applications/services.
- Effectively diagnosing issues and providing resolutions.
- Monitoring services for abnormalities and looking for areas to improve product availability, resiliency and performance.
- Deploying code changes to different testing and production environments.
- Mentoring other developers on the team on best practices and design/implementation patterns.
- Conducting code reviews to ensure software quality and maintainability.
- Working effectively with the QA, UX and Product Management teams during all stages of software development (ideation, design, build, test, and release).
- Supporting and troubleshooting production issues.
- Occasional travel for product testing in real, on ship environment may be required.
- Bachelors, Computer Science or equivalent
7+ years of hands-on experience developing web/mobile applications that are used in a production environment.
KNOWLEDGE AND SKILLS:
This microservices senior software engineer needs to be well-versed in the following areas:
- Java 8+
- Java Testing Frameworks and Concepts (Mockito, JUnit, etc.)
- Containers (preferred: Docker)
- Continuous Integration / Continuous Delivery Jenkins, Ancible
- Event-driven Architecture
- CLI / Terminal
- Akka / Play
- Message Brokers (preferred: Kafka)
- NoSQL Databases (preferred: Cassandra, secondary: Couchbase)
- Dependency Management and Build Automation Tools (preferred: Maven)
- Version Control Systems (preferred: Git and associated workflows)
- Mobile application development iOS (Swift), Android (Kotlin/Java), hybrid (ReactNative or Similar)
- Web application development Angular.js, HTML5, CSS3
- Back End API Development Microservices - Java, Node.js, GoLang
- Cloud technology, AWS preferred Route53, ELB, EC2 (incl. reserved instances), S3, RDS, CloudFront, Elasticache, AutoScaling, Lambda, cost optimization
The following areas are desirable to facilitate onboarding into the program:
- Domain-driven Design
- Groovy and Jenkins Pipelines Development
- Lagom Microservices Framework
- API Management (preferred: Apigee)
- Apache Mesos (or similar) and related sub-components
- Application Security