Education:
Bachelors degree in Computer Science or Electrical Engineering plus 8 years experience
Masters Degree plus 6 years experience
Qualifications:
8 years or more of software development experience or at least 6 years of experience with masters degree in computer science or related field
8 years or more of experience in designing and developing software applications in Java or at least 6 years of experience in Java with masters degree in computer science or related field.
At least three years of experience developing in AWS: cloud formation templates deploying ECS clusters Lambda Fargate Amazon Elastic Search S3. Strong understanding of IAM roles and policies.
Three years of experience building and developing with Cloud Technologies (such as AWS Azure GCP)
Fully knowledgeable of programming languages appropriate to the platform supported program design and specification development programming logic logic diagrams system analysis techniques testing debugging documentation standards file design storage and internal systems;
Have both Front end and Back end software development experience
Top Skills:
Proven experience designing developing deploying and maintaining software at scale.
Developing software applications using relational and Nosql databases.
Application architectural patterns such as MVC Microservices Event-driven etc.
Deploying software using CI/CD tools such as Jenkins Azure Devops etc.
Working within an Agile framework (ideally Scrum)
Strong understanding and/or experience in batch or stream processing systems such as AWS SQS AWS SNS Kinesis.
Experience designing well-defined Restful APIs
Hands on experience with API tools such as Swagger Postman and Assertible
Test driven development and behavior driven development.
Hands on experience with testing tools such as Selenium and Cucumber and their integration into CI/CD pipelines.
Datastores such as DynamoDB MongoDB Cassandra Redis Elasticsearch MySQL Oracle.
Must demonstrate solid knowledge of computer science fundamentals like data structures and algorithms.
Job Duties:
IT Software Engineer reports to Software Engineering Manager as do other staff jobs in application and technical systems and programming sections.
Responsibilities are within functional lines with individuals assisting in new program development and/or maintenance of existing mobile WEB Cloud server computing systems.
Work as part of Agile team and participate in Scrum activities.
Competent to perform all programming development integration and system administration assignments without close supervision.
Designs codes tests and debugs programs of high complexity.
Configuration or customization of purchased software solutions with high complexity.
Provides project management programming systems and/or system administration leadership guidance and assistance to other team members.
Works on more complex application/technical problem identification and resolution including responding to off-shift and weekend support calls.
Works independently on complex processes and modules that may be used by one or more programs systems or in support of infrastructure component change management.
Develops major system modules programs or infrastructure released based on requirements gathered from system customers.
Performs integrated testing and customer acceptance testing of system components that requires careful planning and execution to ensure timely quality results
Performs integration tasks for in-house developed systems and/or purchased hardware and software solutions. Assists customers with documentation training and usability efforts.