The primary role of Engineering function within Product Development team is to create specifications and designs for new products or improvements and enhancements to existing products. Works closely with customers, developers and other stakeholders to understand and define customer needs in these designs. Features are aligned to a timetable and areas of responsibility. Developers may solicit customers for feedback regarding product usability and desired future enhancements. Software Engineers who design, write and test code for the product should be matched in the either Software Engineering Applications or Systems. Product developers who specialize in hardware systems should be matched to Hardware Engineering.
Let’s talk about Responsibilities
Assist in the design, development, implementation, and deployment of AWS cloud solutions.
Assist in the development of high-performance, scalable, and resilient web applications, back-end services, and database solutions.
Assist in providing incident management, change management, application support, monitoring, and Tier 2 support as part of the full cycle team responsibilities.
Pair with senior developers to design software solutions.
Participate in code reviews, following coding standards and best practices, including secure coding guidelines.
Write clear, well commented, and easy to understand code.
All engineers are expected to place a strong emphasis on writing automated tests, including unit tests, integration tests, and end-to-end functional tests.
May be part of an on-call support rotation.
Other tasks and responsibilities as assigned.
Strong object oriented design and programming skills.
Excellent verbal and written communication skills.
Experience with Amazon ECS, EKS, IAM, or Amazon EC2 is an asset.
Experience working with and managing container development, deployment and operations on AWS.
Experience developing serverless applications using AWS Lambda, DynamoDB, SNS, SQS, S3.
Experience with Git, GitHub, Confluence, and JIRA is an asset.
Experience with GitHub CI/CD workflows and infrastructure as code tools (e.g. Terraform) is an asset.
Experience working with, or an understanding of, NoSQL and relational databases is an asset.
Experience with test-driven development (TDD) is an asset.
An understanding of 12-factor applications and cloud-native principles is an asset.
Experience with various message brokering architectures (pub/sub queues, request/response) and data streaming is an asset.
AI, Machine Learning, and Data Engineering experience is an asset.
Experience in Java (especially Sprint Boot) targeting Linux and Linux containers and application types (e.g. console, service, web site, REST API).
Experience with front-end frameworks (especially React) and web servers (e.g. Apache, Nginx, IIS).
Experience with testing frameworks (e.g. Junit, Nunit, Selenium), and testing tools (e.g. JMeter, Postman, Cucumber)