Required Education
• Bachelor''s Degree: Bachelor''s degree in computer science, software engineering, or a relevant field is required, plus 10+ years of experience.
• Master''s Degree: Master''s degree plus 8+ years of experience.
Required Skills
• Core Language: 10+ years of experience in designing and developing software applications in Java.
o Cloud formation templates
o Deploying ECS clusters, Lambda, Fargate, Amazon Elastic Search,S3
o Strong understanding of IAM roles and policies.
• Experience developing software applications using relational (e.g., MySQL, Oracle) and NoSQL databases (e.g., DynamoDB, MongoDB, Cassandra, Redis, Elasticsearch).
o Application architectural patterns (MVC, Microservices, Event-driven).
o Designing well-defined RESTful APIs.
o Solid knowledge of computer science fundamentals (data structures and algorithms).
o Deploying software using CI/CD tools (Jenkins, Azure DevOps).
o Test-driven development and behavior-driven development.
o Hands-on experience with API tools (Swagger, Postman, Assertible).
o Experience with testing tools (Selenium, Cucumber) and their integration into CI/CD pipelines.
• Experience with batch or stream processing systems (AWS SQS, AWS SNS, Kinesis).
Job Responsibilities
o Design, code, test, and debug programs of high complexity.
o Develop major system modules, programs, or infrastructure based on requirements.
o Perform configuration or customization of purchased software solutions with high complexity.
o Review and approve the modification of existing databases and database management systems.
o Direct database development and approve project scope and limitations.
o Plan, coordinate, and implement security measures to safeguard information.
o Perform integrated testing and customer acceptance testing of system components.
o Perform integration tasks for in-house developed systems and/or purchased hardware/software solutions.
o Assist customers with documentation, training, and usability efforts.
o Provide project management, programming, systems, and/or system administration leadership.
o Provide guidance and assistance to other team members.
o Troubleshoot complex application/technical issues and make system changes as needed.
o Respond to off-shift and weekend support calls.
o Approve, schedule, and supervise the installation and testing of new products and improvements.
o Review project requests to estimate time and cost required to accomplish the project.
o Develop standards and guidelines to guide the use and acquisition of software.
o Work as part of an Agile team and participate in all Scrum activities (Daily Standups, Sprint Planning, Grooming, Retro, Demos).
o Be fully knowledgeable of programming languages, program design, logic diagrams, system analysis techniques, testing, debugging, and documentation standards.