Required Skills: Agile, AWS, Java, Jenkins, Microservices, NoSQL
Education Requirements:
- Bachelor s degree in Computer Science, Electrical Engineering, or related field is required with 10+ years experience
- Master s degree with 8+ years experience
Required Skills for the Software Engineer:
- 10+ years or more of experience in designing and developing software applications in Java.
- 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, GoCD, etc
- Deploying and maintaining software using public clouds such as AWS or Azure.
- Working within an Agile framework (ideally Scrum)
- Experience with AI tools is a BIG PLUS**
Should have a strong understanding and/or experience in many of the following:
- Message streaming solutions, such as AWS Kinesis, AWS SQS, AWS SNS, Apache Kafka, RabbitMQ, Apache ActiveMQ.
- Experience designing well-defined Restful APIs
- Hands on experience with API tools such as Swagger, Postman and Assertible o Test Driven Development and Behavior Driven Development.
- Hands on experience with testing tools such as Cucumber and Selenium and their integration into CI/CD pipelines.
- Datastores such as AWS Aurora, AWS RDS, AWS DynamoDB, MongoDB, ElasticSearch, Cassandra, Redis, MySQL, Oracle. o Other AWS technologies, such as API Gateway, ALB, NLB, Fargate, Lambda, S3, CloudWatch, etc
- Debugging and maintaining software in Linux or Unix platforms
Software Engineer Overview:
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 software.
Responsibilities:
- Modify existing software written in Java, databases and database management systems.
- Create service software, unit and integration tests.
- Work as part of a project team to coordinate software development and determine project scope and limitations.
- Review project requests describing user needs to estimate time and cost required to accomplish project.