JOB DESCRIPTION | Software Engineer | Rose International
Job Title: Software Engineer
Location: Chicago, IL
Duration: 13 months
Must-Have 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.