Senior Developer 8/16/2016
JOB DESCRIPTIONAPPLY We are looking for an experienced Senior Developer who is an active participant involved in the day to day activities of an Agile project delivery team. This role brings extensive and practical experience with the techniques and approaches required in delivering Agile projects using Java and other related technologies. Senior Developers are expected to be able to rapidly establish delivery of working software and have a solid understanding of the disciplines required to deliver within an Agile environment. Senior Developers interact with clients to mentor, consult, and assist them in making appropriate technology and process decisions.
* Design, develop, test, and maintain architecturally sound, modular, component-driven software applications to meet defined acceptance criteria.
* Provide direction to and mentoring for less experienced members of the team.
* Identify risks that might impact the success of the project and mitigate those risks through application of experience and knowledge.
* Maintain system and design documentation and prepare materials for project reviews.
* Support the implementation, UAT (User Acceptance Testing) and production release for the project.
* Act as a role model and advocate for best practices around test-driven development, agile software development, and customer-centric software.
WORK EXPERIENCE REQUIREMENT
* 10+ years of experience in software development using Java technology.
* Experience with distributed applications
* Experience with RESTful Web Services: Client and Server
* Experience with JSON: Jackson
* Experience with Asynchronous Messaging: Apache Kafka
* Experience with Scalable/Distributed Databases: Elasticsearch
* Experience with Dev Ops: Docker, Unix
* Experience with Scala
* Experience with Web framework: Play2 and Spring 4
* Experience with Akka Framework (Akka HTTP)
* Experience with Build Tools: SBT
* Experience with IDE: Eclipse
* Experience with Unit Testing - ScalaTest, Junit, Mockito
* Experience with Functional Testing - Cucumber JVM
* Experience with Version Control Systems - git
* Experience with the architecture and design of applications based on distributed, stateless microservices
* Must have an understanding of scalability and knows architectural patterns to help achieve highly scalable systems
* Experience with Agile software development best practices, including test-driven development (or behavior driven development), continuous integration, Agile Design, pair programming or eXtreme Programming (XP)
* Experience performing code reviews to ensure high quality and maintainable code
* Must have a strong working knowledge of design patterns, object oriented analysis, design, and programming
* Must have excellent analytical skills and discernment and a high ability to problem-solve
* Must have excellent oral and written communication skills
* Candidate must be a proven team player with strong interpersonal skills possessing a demonstrated ability to handle multiple projects with varying priorities
* Must be able to communicate effectively with the customer to clarify requirements
* Must be able to interact with external teams at the client location for coordinating and resolving architectural and infrastructural roadblocks
* Desired Additional Skills
* Experience with JIRA or similar agile planning tool
* Experience using Continuous Integration Servers -Jenkins or other similar CI server
* Experience with OS' - Mac or Linux