Educational requirements: Bachelor
English requirements: Competent English
Requirements for skilled employment experience for years: 1-3 years
Required residence status: Temporary visa, Permanent resident, Citizen
Accept remote work: unacceptable
Key job responsibilities
* Design, develop, test, deploy, maintain and improve software
* Investigate design approaches, prototype new technology and evaluate technical feasibility
* Write high quality distributed system software and perform peer code-reviews
* Perform development and maintenance of key system features
* Drive best practices and engineering excellence
* Provide technical direction to the team and identify areas of focus
* Establish architectural principles, selecting design patterns and mentoring team members on their appropriate application
* Create and review software design documentation and mentor junior engineers
* Create and review documentation and process regarding recurring issues, new standard operating procedures, knowledge transfer material, etc
BASIC QUALIFICATIONS
* Bachelor's degree in Computer Science or related technical field, or equivalent practical experience.
* 1 years relevant experience in software development
* Experience working with algorithms, data structures, complexity analysis, and object-oriented software design in Linux/Unix environments
* Proficiency with one or more general purpose programming languages including but not limited to: Python, Java, Typescript, Scala, Golang, C or C#
PREFERRED QUALIFICATIONS
* Knowledge of best practices for the full software development life cycle; including coding standards, code reviews, source control management, build processes, testing, and operations
* Track record of designing and building complex software systems and successfully delivering them to customers
* Exposure to architecting and designing large-scale distributed systems (e.g. SQL/NoSQL, scalability and fault-tolerance)