KEY RESPONSIBILITIES, ACCOUNTABILITIES AND ACTIVITIES
• Write clean, maintainable code using advanced Python features such as decorators and context managers.
• Design, develop, and optimize relational and non-relational databases.
• Integrate user-facing elements into applications.
• Utilize unit testing, test-driven development (TDD), and code review processes.
• Improve existing systems.
• Apply best practices in application security, including authentication (OAuth, JWT), secure coding practices, and encryption.
• Assess and prioritize feature requests.
• Implement caching strategies with Redis or Memcached, utilizing advanced features like pub/sub and sorted sets.
• Design scalable systems using design patterns and microservices architecture.
• Communicate and collaborate effectively in a remote environment using tools like Slack, Zoom, GitHub, Jira, and Confluence.
BACKGROUND, QUALIFICATIONS & EXPERIENCE
Qualifications
• Bachelor's Degree in Computer Science, Engineering, or a relevant field.
• Minimum of 6 years of back-end development experience, including at least 4 years in Python development with a strong portfolio.
• Expertise in Python frameworks (e.g., Starlette, FastAPI, Flask, Django) and data science libraries (e.g., Pandas, NumPy).
• Proficiency with SQL and ORM tools (e.g., SQLAlchemy, Django ORM).
• Familiarity with AWS, REST API, and FIX Protocol APIs.
• Strong understanding of databases, SQL, and both relational and non-relational databases (e.g., PostgreSQL, MySQL, MongoDB).
• Deep understanding of Python and asynchronous programming.
• Experience with caching solutions like Redis and software security principles.
• Proven ability to work effectively in a remote setting with strong self-management skills.
• Active participation in open-source projects and interest in crypto-assets.
• English proficiency is required; Arabic is a plus.
Skills • Troubleshoots and develops solutions using Python frameworks and AWS.
• Strong analytical skills and system optimization abilities.
• Communicates effectively with teams and adapts to changing priorities.
• Experience mentoring junior developers and leading technical initiatives.
• Strong problem-solving mindset.
• Attention to detail and commitment to code quality.