Job Description
- Works on a product team and supports product design by planning its work, coordinating with others, and writing and testing code to deliver functionality for the complete product or products it supports.
- This level designs complex/significant parts of a system/sub-system or works on a complete product of a broad scope and solves well-defined problems with little guidance.
- May act as a work lead, providing technical coaching to other engineers and support personnel; Recognized as an expert user of critical technology; develops new software functionality for product development.
- Develops, codes, configures, and tests programs and systems.
- Evaluates and implements enhancement design solutions to improve cost, quality, and performance of software applications.
- Analyzes assignments and determines software specifications that must be fulfilled to achieve objectives.
- Executes necessary documentation, as directed, or needed.
- Collaborates with other relevant stakeholders and team members to ensure that features meet business needs.
- Follows industry-standard agile software design methodology for development and documentation.
- Mentors junior Software Engineers on the team.
- Ability to analyze, translate, and define business requirements into technical solutions.
- Excellence in verbal and written communication forms with emphasis on persuasive communication, tact and negotiation.
- Ability to apply engineering principles and concepts for designs.
- Ability to manage many competing priorities/requests in a fast-paced environment Education
- Degree in an Engineering/Technology discipline or equivalent experience. - University Degree (4 years or equivalent)
- Degree in an Information Technology discipline or equivalent experience. - University Degree (4 years or equivalent)
- Work Experience:
- Previous experience in programming/software development. (4 - 7 years)
- Software development processes experience. (4 - 7 years)
- Product design, test and/or analysis experience. (4 - 7 years)
- Participating in Agile Development (4 - 7 years)
- Experience working in an Agile Environment (4 -7 years)
- 3 or more years of experience with JavaScript and/or TypeScript in building web-client and/or server-side applications/services preferably utilizing Node.js
- 3 or more years of experience working with a UI library such as React or Angular.
- Experience with cloud computing platforms such as Amazon Web Services, Microsoft Azure, or Google Cloud.
- Exposure to an RDBMS such as MySQL, Postgres, SQL Server, etc. is preferred.
- Experience working on a team developing software and leveraging Agile delivery methodologies.
- Experience with Test Driven Development and/or Acceptance Test Driven Development.
- Experience with Continuous Integration and build pipeline deployment automation.
- Experience on large, complex systems design and implementation.
- Demonstrated capability to perform in an engineering team environment and interfacing with engineers and personnel of other disciplines.
- Strong communication and interpersonal skills.
- Experience with multiple programming languages or frameworks such as TypeScript, JavaScript, React, Redux, etc.
- Strong leadership skills and initiative to proactively solve issues.
- Strong facilitation, planning, organizing, and analytical skills.
- Advanced degree in Computer Engineering, Electrical Engineering, or Computer Science.
- Exposure to IaC (Terraform, CloudFormation, etc.)
- Experience with AWS IAM & Networking (creating policies & roles, establishing subnets & routing, understanding Security Group needs for various services, etc.)
- AWS Certification or experience leveraging AWS services (ECS, EC2, Elastic Beanstalk, Lambda, S3, RDS, SQS, SNS, etc.).