Experienced Senior Software Engineer with an understanding of Data Engineering principles. The ideal candidate will have a strong background in software development, a passion for technology, and the ability to lead and mentor junior engineers. This role requires a deep understanding of software engineering principles, excellent problem-solving skills, and the ability to work collaboratively in a fast-paced environment.
Key Responsibilities:
Design and Develop: Architect, design, and develop high-quality software solutions that meet business requirements.
Code Review: Conduct code reviews to ensure code quality, maintainability, and adherence to best practices.
Collaboration: Work closely with product managers, designers, and other engineering teams to understand requirements and deliver solutions that meet business needs.
Mentorship: Provide technical leadership and mentorship to junior engineers, fostering a culture of continuous learning and improvement.
Testing and Debugging: Write unit tests, perform debugging, and ensure the reliability and performance of the software.
Documentation: Maintain comprehensive documentation of software architecture, design decisions, and processes.
Innovation: Stay up to date with the latest industry trends and technologies and propose innovative solutions to improve our software products.
Qualifications:
Experience: Minimum of 8 years of experience in software engineering with a focus on data engineering.
Technical Skills:
Proficiency in one or more programming languages such as Python, C#, or JavaScript.
Strong experience with software development frameworks and libraries.
Expertise in designing and developing scalable and maintainable software systems.
Experience with version control systems (e.g., Git).
Familiarity with Agile development methodologies.
Knowledge of database systems (e.g., SQL, NoSQL) and data modelling.
Experience with AWS.
Soft Skills:
Excellent problem-solving and analytical skills.
Strong communication and collaboration skills.
Ability to work independently and as part of a team.
Proven ability to lead and mentor junior team members.
Preferred Qualifications:
Experience with microservices architecture and containerization (e.g., Docker, Kubernetes).
Knowledge of DevOps practices and tools (e.g., CI/CD pipelines).
Experience with front-end technologies (e.g., React, Angular, Vue.js) is a plus.
Familiarity with orchestration and workflow technologies (e.g., Airflow, Dagster).