Ensure that applications will exhibit performance, scalability, maintainability, appropriate reusability and reliability.
Develop software that operates within a highly scalable distributed multi-tiered platform.
Build and maintain efficient, reusable, reliable and secure code.
Through participation in refinement and planning sessions, you’ll work with other team members to analyse development requirements, provide design options and complexity estimates, and agree how to deliver the requirements.
Review and provide technical feedback into detailed design specifications for application code and modules.
Demonstrating a consistent focus on quality, to ensure you deliver reliable, robust software through the creation and execution of automated tests.
Provides assistance in researching new and emerging technologies. Works with vendors to understand technology. Evaluating new tools, technologies and platforms to be included.
2. DevOps:
Responsible for platform stability, reliability, scalability and recovery
Ensuring that development and monitoring tools, and platform are cost effective and within budget
First point of contact for platform incidents and outages
Documentation of processes and procedures
Support and troubleshoot technical issues
Build and maintain development tools and infrastructure
Increase the frequency and quality of deployments
Define, implement and manage zero downtime strategies
Reduce the severity and frequency of release failures
Ensure that development processes, platform and systems adhere to network administration and cyber security best practices
Contribute to the company’s Software Development Life Cycle (SDLC)
Evaluate existing applications and platforms and give recommendations for enhancing performance via gap analysis
Provide detailed specifications for proposed solutions including technical requirements, time of delivery, demonstrations and costs
Work closely with engineers within the company to maintain hardware and software needed for projects to be completed efficiently
Mentor and train other engineers throughout the company and seek to continually improve processes companywide.
JOB REQUIREMENT
Experience 5+ years in software development
Familiar with a variety of hardware and software platforms, demonstrated skills in system engineering paradigms.
Experienced in software engineering with excellent knowledge of .NET (.NET Core, Entity Framework, JavaScript, APIs, etc.) and DevOps tools (Terraform, Ansible)
Practical experience with cloud-native application development with major cloud providers (AWS, GCP, Azure).
Experience with the following technologies: AWS (EC2, ECS/EKS, S3, Lambda, IAM, Aurora, Redshift, etc.) and cloud database technologies (AWS RDS, Aurora, Postgres, Azure SQL, etc.).
Experience of SQL, query optimization and transactions
Solid technical background with understanding of programming styles, frameworks, design patterns and unit testing.
Understanding of security implications and secure coding
Practical experience with agile development methodologies and tools (Scrum, JIRA etc.)
Superb communication skills, both verbal and written
Skill for writing clean, readable code and reusable components
Experience with Test Driven Development and / or Behaviour Driven Development
Self-motivated, pressure-tolerant, and result-oriented personality with innovation mind-set
Desired Skills:
Experience with networks and network firewall security
Experience with big data and IoT platforms: Amazon Kinesis, Amazon Timestream, Azure Time Series Insight, Kafka, etc.