Develops software for new applications and enhances existing applications. Analyzes, designs, codes, tests, debugs, and documents all assigned components. Provides support as required to resolve issues raised by operations or the customer. May need to work with customers directly for resolving production issues.
Knowledge, Skills, Abilities, Experience, or Characteristics
4 years of experience doing design, coding and testing.
Web development experience with at least one of Ruby, Python, or C#.
Interest in developing in Ruby on Rails, VueJS and AWS Serverless Application Model.
Knowledge of SQL and fundamentals of database design.
Desire to work as a "full stack" developer.
Comfortable navigating the *nix shell.
Helpful / Preferred
Experience in system to system integrations.
Experience developing applications using Ruby on Rails or .NET Core.
Experience using PostgreSQL.
Test-focused development experience.
Experience of AWS services such as Lambda, DynamoDB, CloudFormation and the AWS CLI.
Functions and Responsibilities ( in addition to other duties as assigned )
Design, develop, and debug all assigned components.
Analyze application problem areas and propose solutions.
Plan and execute unit and functional tests as required to ensure changes meet customer requirements.
Conduct code reviews of peer code via pull requests.
Understand and support use of idiomatic patterns appropriate to the language in use in code changes and reviews.
Understand priority on tasks and seek clarification if conflicting priorities arise.
Provide high level estimates and refined individual task estimates as part of a team.
Complete assigned tasks within the time commitment. Regularly update the progress of tasks.
Develop clear and concise documentation.
Provide support services as required resolving application issues raised by operations and/or the customer.
Develop expert knowledge of existing applications.
Proactively learn and utilize new technologies, concepts and procedures as appropriate to project requirements.
Work with team to improve efficiencies, processes and procedures.
Be available on-call for Engineering Support per on-call schedule.
Proactively identify application problem areas and implement permanent fixes.
Assist in restoring services quickly in case of production outages in conjunction with infrastructure team.
Some travel may be involved for both training and customer facing issues.