Job Description
The key accountabilities of the role
Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
To build code using the agreed upon best practices around security, quality, security and maintainability.
Improves operations by conducting systems analysis; recommending changes in policies and procedures.
Protects operations by keeping information confidential.
Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle.
The key responsibilities of the role
Write well-designed, testable, efficient code by using best software development practices
Gather and refine specifications and requirements based on technical needs
Be responsible for maintaining, expanding, and scaling the platform
Stay plugged into emerging technologies/industry trends and apply them to operations and activities
Control and govern quality outcomes
Adhere to patterns and practices for secure software development
Ensure all code is documented and participate in code reviews
Contribute during estimation and design sessions
Ensure shift left testing policies are implemented, with unit testing being part of each code release
Mentor and coach junior and mid-level developers.
Documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code.
Adhere to the rules in place for our source control management (ie. Git)
Participate in Lightning Talk sessions to share knowledge amongst the group
Continue to contribute to our CI/CD strategy
Skills
Ability to meet deadlines
Ability to follow directions
Ability to give direction to less experienced developers to help them perform effectively
Exceptional verbal and written communication skills
Exceptional problem solving ability
Ability to work and communicate effectively in a small team
Ability to work independently and help decide scope and direction
Ability to use initiative
Able to work completely autonomously on a wide range of development tasks
Demonstrated ability to prioritise competing requirements and resolve conflicts.
Enthusiastic and self-motivated
Evidence of a passionate interest in software
Knowledge
Deep expertise in React Native, .NET framework and .Net Core
Experience designing modern single-page applications using libraries
Understanding of SaaS principles and architectural patterns
Exposure to system performance and capacity planning, platform upgrades, root cause analysis and application change management processes.
Experience developing modular and scalable cloud-native solutions (AWS/Azure)
Familiarity with both API web service design and API client consumption
Understanding of software programming principles. Able to clearly articulate those principles in development and design discussions.
Advanced proficiency with RDBMSs. Able to write performant SQL queries of arbitrary complexity (MS SQL/Postgresql/MySQL)
Confident in accessing production servers to investigate a variety of incidents.
Strong knowledge of git, design patterns and secure coding
Strong awareness of operational risks associated with DB schema changes, production DB modifications, and query performance
Exposure to Docker, Kubernetes and CI/CD practices and tooling
Experience
Minimum 5+ years of commercial software development exp