Description

Job Description:
The main function of a software engineer is to apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. A typical software engineer researches, designs, develops and tests operating systems-level software, compilers, and network distribution software for medical, industrial, military, communications, aerospace, business, scientific and general computing applications.

Education & Experience Required:
Bachelor’s degree in Computer science or Electrical engineering or related field, Plus 10+ years exp
Master Degree plus 8+ years exp

Technical Skills
(Required)
* At least three year of experience developing in AWS: cloud formation templates, deploying ECS clusters, Lambda, Fargate, Amazon Elastic Search, S3. Strong understanding of IAM roles and policies.
• Proven experience in following:
o Designing, developing, deploying and maintaining software at scale. Three years of experience building and developing with Cloud Technologies (such as AWS, Azure, GCP) 
o Developing software applications using relational and Nosql databases. o Application architectural patterns, such as MVC
Microservices, Event-driven, etc. 
o Deploying software using CI/CD tools such as Jenkins, Azure Devops etc. 
o Deploying and maintaining software using public clouds such as AWS or Azure. 
o Working within an Agile framework (ideally Scrum)
• Strong understanding and/or experience in some of the following: 
o Batch or stream processing systems such as AWS SQS, AWS SNS, Kinesis. 
o Experience designing well-defined Restful APIs 
o Hands on experience with API tools such as Swagger, Postman and Assertible 
o Test driven development and behavior driven development. 
o Hands on experience with testing tools such as Selenium and Cucumber and their integration into CI/CD pipelines. 
o Datastores such as DynamoDB, MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
• Must demonstrate solid knowledge of computer science fundamentals like data structures and algorithms.

Soft Skills
(Required)
• Ability to work under pressure and within time constraints.
• Passion for technology and an eagerness to contribute to a team-oriented environment.

Education

Bachelor's degree