Python Developer
Apply NowPython developer with a strong passion for music? That's what BMAT Music Innovators is looking for. Even more so if you're based in Barcelona and enjoy the flexibility of remote work while having the option to meet your colleagues in person. However, being based anywhere in Spain or Italy is also perfectly fine. Experience with Python is required. We're not looking for someone just starting out. You'll be joining the team that manages the complete lifecycle of our core data assets—millions of audio files and their accompanying descriptive data (metadata). The work involves designing, building, and maintaining the systems for data ingestion, processing, quality control, and ensuring this content is reliably served to our company's various applications and client products.
Recruitment agencies: we kindly request that you refrain from reaching out, as we are not seeking your services at this time. Thank you. Our stack• Backend: Python3 and Fast API • Data Layer: PostgreSQL (via SQLAlchemy), MongoDB (via PyMongo), and Elasticsearch. • DevOps & CI/CD: Bitbucket Pipelines. • Deployment: Containerised applications using Docker. • Cloud: Infrastructure hosted on AWS.
Key Responsibilities• Design, develop, test, and deploy software applications and systems. • Collaborate with cross-functional teams to define, design, and ship new features. • Troubleshoot and debug applications to optimise performance and ensure reliability. • Participate in code reviews to maintain code quality and share knowledge. • Stay up-to-date with emerging technologies and industry trends. • Contribute to the continuous improvement of the development process and methodologies.
Expectations of the roleWithin 30 Days: During the first month, your primary focus will be on familiarizing yourself with essential aspects of the role and supporting foundational tasks.
Onboarding and Training: • Complete the company’s onboarding program. • Familiarize yourself with the company’s mission, values, and development process. • Understand the tools, technologies, and frameworks used by the development team.
Team Integration: • Meet team members and key stakeholders. • Participate in team meetings and Agile ceremonies (e.g., daily stand-ups, sprint planning). • Start building relationships with your colleagues.
Initial Contributions: • Review existing codebases and documentation. • Begin working on small, assigned tasks or bug fixes to get hands-on experience with the code. • Seek feedback and ask questions to understand best practices and coding standards.
Within 60 Days: By the second month, you'll be expected to take on more complex responsibilities and actively contribute to team/project/strategic initiatives.
Active Participation: • Take on more complex tasks and projects under the guidance of senior engineers. • Actively participate in code reviews, both giving and receiving feedback. • Contribute to team discussions and planning sessions.
Skill Development: • Continue to learn and adapt to the development environment and tools. • Explore opportunities for professional development, such as online courses or internal training sessions.
Collaboration: • Work closely with other team members to understand project requirements and deliverables. • Collaborate with cross-functional teams (e.g., QA, Product Management) to ensure seamless project execution.
Within 90 Days:
At the end of the probationary period, you'll be expected to autonomously manage your assigned tasks, contribute to technical and sprint planning, and take ownership of your features.
Independent Contribution: • Demonstrate the ability to independently handle and complete assigned projects and tasks. • Show proficiency in the primary technologies and frameworks used by the team. • Deliver high-quality, well-documented, and tested code.
Process Improvement: • Identify and suggest improvements to existing processes and workflows. • Participate in retrospectives and provide constructive feedback to help the team improve.
Establishing a Role: • Establish yourself as a reliable and integral part of the development team. • Take ownership of specific components or features of the project. • Actively collaborate with and support team members, sharing knowledge and best practices.