THIG IT Systems has an opportunity for a Senior Software Engineer - Cloud & Microservices to support the development of new Applications build from the ground up with Microservices and assist with the migration of existing applications to AWS. This position will work as part of an agile development team, with a focus on continuous delivery and automation.
The selected incumbent must reside in one of the following locations: Cincinnati, OH area, West Palm Beach, FL or Gainesville, FL.
ESSENTIAL DUTIES AND RESPONSIBILITIES include the following. Other duties may be assigned.
- Provide guidance on transitioning the company from on-premise infrastructure to cloud infrastructure.
- Take project ideas from design to implementation
- Assume leadership and responsibility for the technical tasks and deliverables for a particular project
- Design and build scalable, high-volume web applications focused on functionality, security and maintainability
- Optimize the performance of applications data ingestion and data processing pipelines
- Participate in design and code reviews
- Build high-throughput and low latency microservices
- Develop systems that are highly scalable, but easy to maintain
- Collaborate with colleagues on design and architecture decisions
- Collaborate with colleagues on the creation of DevOps Continuous Integration/Continuous Deployment pipelines
- Engineer, test, deploy, and maintain enterprise multitenant applications using web and cloud-based technology stack comprising:
- Frameworks including Spring Boot 2, Spring 5
- Microservices, Docker, ECS, Kubernetes
- Web Services/APIs (REST, SOAP), GraphQL experience a plus
- Web and App Servers: Tomcat, Apache, Nginx
- Core AWS Services: Cognito, CloudFormation, RDS, ECS/EKS/Fargate, Lambda, API Gateway, etc.
- Follows established coding standards and prescribed processes, both individually and at a team level.
- Must ensure proper code reviews are held for the project and that development processes and tool utilization (regular pull-requests, unit and integration test execution with build automation, etc.) are followed.
- Contributes to the engineering team's culture of high code quality. Accountable for the quality of code that is delivered to QA and production and must ensure that appropriate code reviews and unit testing are adequately performed.
- Ensures that continuous integration is performed on the application source code and constantly seeks to enhance the continuous integration methods of the development team to ensure extremely high quality of code.
- Works closely with Product Owners, Business Analysts, and Business Subject Matter Experts to gain thorough understanding of requirements to ensure application code implements the correct functionality.
- Seeks ways to meet the underlying business requirements with cost effective, highly re-usable patterns and components.
- Ensure that application code adheres to enterprise and industry standards and best practices, including performance and security standards.
- Gather feedback from design and technical staff on application development needs and patterns. Must be able to work with Sr. Architects to propose and solicit approval of new architectural patterns including documentation and presentation of the architectural approach, benefits/limitations and other considerations (e.g. re-usability, security, performance, maintainability, etc.).
- Assists Project Manager in project planning and estimating of project score items.
QUALIFICATIONS: To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- At least 7 years' experience in Java/J2EE development
- At least 4 years' hands-on experience developing cloud based applications with AWS (Preferred), Google Cloud, or Microsoft Azure.
- Expert-level understanding of the Java programming language, related optimization techniques, and design patterns.
- Expert-level understanding of an Apache, Linux, and Oracle tiered system environment.
- Must have deep knowledge of Java, Spring, SQL
- Strong knowledge of: Microservices architectures utilizing synchronous (2-phase commit via REST/RPC) and asynchronous (eventual consistency) approaches
- Proficient with Continuous Integration/Continuous Development (CI/CD) and DevOps concepts
- Cloud application security models, protocols and tools (e.g. AWS IAM, AWS KMS policy, Azure AD, etc.)
- Proficient ANSI SQL
- 3 years’ experience using server-side MVC Frameworks, preferably Spring
- 2 years’ experience with front-end web development using technologies such as Bootstrap, Angular, React, etc.
- Proficient with SOAP and REST web services
- Prefer experience with client-side MVC Frameworks such as Angular 2 and Ember.js
- Version control tools such as Git/GitHub, CodeCommit, SVN
- Testing tools such as JUnit, Spock, Mockito, etc.
- Strong knowledge techniques and frameworks for transmitting data in JSON and XML format
- Knowledge of configuration management tools such as Ansible and CloudFormation
- Knowledge and experience in developing SOA/Web Services based applications
- Experience using and developing on Windows and Linux platforms
- Experience working in an iterative development environment using Agile and Iterative development
- Experience in adhering to software development guidelines and in performing code and design reviews
- Experience in documenting design and architecture artifacts and presenting artifacts for architectural review
- Effective communication skills (oral and written) are a must along with a strong customer service orientation, and the ability to clearly discern client needs.
- Ability to effectively coordinate multiple responsibilities simultaneously, with fast, flexible work style.
EDUCATION and/or EXPERIENCE
- Bachelor's degree in Computer Science or equivalent required. MS in computer Science preferred
- Possession of AWS Certified Solution Architect or AWS Certified Developer certification a plus
- Possession of Java certification as plus
SUCCESSFUL CANDIDATES ARE EXPECTED TO:
- Contribute to team discussions
- Become proficient with all tools and technologies
- Be open with new ideas or proposals
- Possess strong communication skills
- Adaptable to change
- Excellent customer focus