Software Engineer
Overview:
About AIQ:
AIQ is an Abu Dhabi based joint venture company between Presight and ADNOC, which focuses on developing artificial intelligence technologies. AIQ develops and commercializes AI products and applications for energy world. It aims in providing end-to-end solutions by using its data, cloud and talents to develop AI solutions that seek to reduce costs and generate revenue for its clients. AIQ embodies an innovative and entrepreneurial spirit that embraces challenges to push boundaries and seeks to welcome professionals to its team that share the desire to make meaningful and impactful contributions to its mission. Always on the cutting edge of technology, AIQ provides its talent all the opportunities to thrive and excel. Working at AIQ includes dealing with massive data sets, an AI infrastructure that is powered by the latest NVIDIA GPU cloud computing platform and access to limitless computing, storage and network resources.
About the role:
As a Software Engineer (Backend) specializing in API development, you will play an important role in architecting, designing, and developing scalable and high-performance APIs to support our cutting-edge products. You will work closely with cross-functional teams to drive the evolution of our technology stack and ensure the delivery of robust and efficient solutions.
Responsibilities:
API Design and Development:
- Architect, design, and develop APIs that adhere to industry best practices.
- Implement RESTful and/or GraphQL APIs using backend programming languages such as Node.js, Python, and others as needed.
- Utilize popular web frameworks, including Express.js, Flask, and FastAPI, to build robust and maintainable APIs.
Database Expertise:
- Design and optimize database schemas for efficient data retrieval and storage.
- Implement data models and perform database queries to support API functionality.
Cloud Experience:
- Utilize cloud services to deploy and manage API infrastructure.
- Implement best practices for cloud-based application scalability, reliability, and security.
CI/CD, Docker, and Kubernetes:
- Design and implement robust CI/CD pipelines for automated testing, deployment, and monitoring of APIs.
- Containerize applications using Docker for efficient deployment.
- Manage container orchestration using Kubernetes for scalability and reliability.
Performance Optimization:
- Optimize API performance to ensure low latency and high throughput.
- Identify and resolve bottlenecks and performance issues in the API and database layers.
- Implement caching mechanisms and other optimization techniques.
Collaboration and Leadership:
- Collaborate effectively with cross-functional teams, including product managers, front-end developers, and quality assurance engineers.
- Mentor and guide junior engineers in API development best practices.
- Lead by example in code quality, testing, and documentation.
Security and Scalability:
- Implement security best practices to protect data and prevent vulnerabilities in the API.
- Design APIs to be scalable and capable of handling increased loads as our user base grows.
Qualifications:
- Bachelor's or Master's degree in Computer Science or a related field.
- 2+ years of professional experience in software engineering, with a focus on API development.
- Proficiency in multiple backend programming languages such as Node.js, Python, etc.
- Strong experience with web frameworks, including Express.js, Flask, and FastAPI.
- Extensive knowledge of both relational (RDBMS) and NoSQL databases (e.g., MySQL, PostgreSQL, MongoDB).
- Familiarity with API security best practices and authentication mechanisms.
- Proven ability to optimize API performance and troubleshoot performance issues.
- Experience with cloud platforms, with expertise in Azure and AWS.
- Strong background in CI/CD, Docker, and Kubernetes.
- Excellent problem-solving and communication skills.
- Experience with data and machine learning pipelines is a bonus.
- Familiarity with data engineering tools and practices is highly advantageous.