Job Description
Duties & Responsibilities
- Design and develop software services and components.
- Build reusable code and libraries for future use.
- Execute full software development lifecycle.
- Manage and contribute to the product infrastructure.
- Optimize application for maximum speed and scalability.
- Design and implement data storage solutions.
- Implement security and data protection.
- Develop software verification plans and quality assurance procedures.
- Document and maintain software functionality.
- Deploy programs and evaluate user feedback.
- Develop tools and applications by producing clean, efficient code.
- Automate tasks through appropriate tools and scripting.
Job Requirements
Requirements (Technical Skills)
- Bachelor of Computer Science or any related discipline.
- At least 3 years experience using Java and/or Python.
- Experience in Data Modeling and Database Design Experience.
- Working experience in at least one of a back-end programming language (Java, Kotlin, Python, JavaScript, Go, Scala, C++).
- Knowledge of at least one of the scripting languages (Python, Shell, JavaScript, Ruby).
- Working knowledge with any non-relational data store(MongoDB, DynamoDB, Cassandra, ..).
- Working knowledge with any messaging systems (Kafka, RabbitMQ, SQS, …).
- Proficient understanding of code versioning tools, Git.
- Familiar with container-based development/deployments.
- Strong knowledge of OOP.
- Strong knowledge of Design Patterns.
- Strong knowledge of Computer Science fundamentals.
- Work experience within an Agile Scrum team.
- Self-driven and fast Learner.
Nice To Have
- Familiar with multiple programming languages (i.e. Java, Python, NodeJS, ....etc.).
- Work experience with GraphQL.
- Microservice architecture experience.
- Work experience with Cloud Providers (AWS, Azure, Google Cloud).
- User Authentication and user Authorization between multiple systems, servers, and environments.
- Good understanding of containerized applications and container tools such as Docker, Kubernetes.
- Familiar with automatic building and deployment with tools like Jenkins, Github actions, bitbucket Pipeline.
- Experience with multi-tiered distributed systems, web services, APIs, relational and NoSQL databases.
- Experience working with more than one part of the stack (Frontend, android, iOS, Backend, DevOps).