Role: IT Software Engineer 5
Location: Chicago, IL (Hybrid)
Duration: 12 months
Need only locals
Job Description
Summary: 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.
Job 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.
Skills:
- Verbal and written communication skills, problem solving skills, interpersonal skills.
- Ability to work independently and manage one’s time.
- Basic mentoring skills necessary to provide support and constructive performance feedback.
- Knowledge of the full software development lifecycle: from business/systems analysis, through requirements gathering and functional specification authoring, to development, testing and delivery.
- Ability to troubleshoot issues and make system changes as needed to resolve issue.
- Knowledge of computer hardware and software.
- Knowledge of computer development
Typical task breakdown:
- Competent to perform all programming, project management, and development assignments without close supervision
- Works directly on complex application/technical problem identification and resolution, including responding to off-shift and weekend support calls
- Works independently on complex systems or infrastructure components that may be used by one or more applications or systems.
- Drives application development focused around delivering business value
- Mentors and assists software engineers, providing technical assistance and direction as needed
- Maintains high standards of software quality within the team by establishing good practices and habits
- Proactively reaches out for help when stuck on an issue after doing reasonable independent research
- Maintains a sense of urgency when working on tasks and actively followup on any dependencies or blockers
Technical Skills
(Required)
- 10+ years or more of experience in designing and developing software applications in Java.
- Proven experience in many of the following:
- 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**
- 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