
Senior Backend Engineer (Python, Spain, Remote)
- Remote
- Madrid, Comunidad de Madrid, Spain
- €43,400 - €60,000 per year
- Research and Development
Job description
At Visualfabriq, we’re building software that helps large consumer goods companies make smarter, data-driven decisions. Our software brings together data, automation, and AI to support better planning and forecasting—making life easier for commercial and finance teams at some of the world’s most recognized brands.
We’re a European company with a growing presence in Spain, and we’re proud of our open, collaborative culture. Our teams work with a high degree of autonomy and are encouraged to take ownership, experiment, and continuously improve.
Why Join Us
We aim to provide a work environment that supports both professional growth and personal well-being. While specific benefits may vary, here’s what you can typically expect when joining our team in Spain:
Real-World Impact: Your work will contribute to tools used by global companies to make everyday business decisions.
Competitive salary: €43K to €60K, adjusted for experience and location within Spain.
Generous time off: 23 days of paid vacation per year, plus local public holidays.
Working remote: Possibility to work from somewhere else than Spain for 4 weeks a year.
Learning & development: Access to training resources, courses, and internal knowledge-sharing initiatives.
Well-being: Free access to a professional coach.
Social events: Multiple social events per year to connect with your colleagues.
Work-life balance: We respect your time and encourage sustainable work habits.
Inclusive culture: A diverse and international team where your voice is valued.
Modern tools: We use up-to-date technologies and actively encourage the use of AI tools to help engineers work more efficiently.
Your Role
As a Senior Backend Engineer, you’ll take a leading role in designing and building the backend systems that power our platform. You’ll work in a cross-functional product team, contributing not just code but also architectural decisions, mentoring others, and helping shape how we build software.
This role is ideal for someone with solid experience in backend development who enjoys solving complex problems, improving systems at scale, and collaborating across disciplines. You’ll also support the growth of less experienced engineers and contribute to a culture of continuous learning.
Key responsibilities include:
Designing and developing scalable backend services using Python and modern frameworks.
Leading technical discussions and contributing to architectural decisions within your team.
Mentoring junior engineers and supporting knowledge sharing across the engineering group.
Ensuring code quality through testing, code reviews, and continuous improvement.
Collaborating with product managers, designers, and other engineers to refine requirements and deliver value.
Helping evolve our engineering practices and technical standards.
Our Tech Stack
We work with a practical and evolving backend stack that supports our platform’s current needs while allowing for future improvements. While we don’t expect candidates to be familiar with every technology, experience with some and a willingness to learn are important.
Technologies we use include:
Languages: Python (backend), ReactJS with TypeScript (frontend)
Frameworks: FastAPI, Pytest, and others depending on the service
Databases: PostgreSQL, MongoDB, Redis
Infrastructure: Docker, GitHub Actions, Terraform, CDK
Cloud: AWS (primary), with services deployed and managed via CI/CD pipelines
Monitoring: CloudWatch, Sentry
Collaboration Tools: Jira, Confluence, GitHub
We’re continuously improving our stack and architecture, and engineers are encouraged to contribute ideas and help shape our technical direction.
How We Work
We work in cross-functional product teams that include backend and frontend engineers, product managers, and domain experts. Each team is responsible for delivering and maintaining its own services, with a strong emphasis on collaboration and shared ownership.
Engineers are expected to take full responsibility for the quality of their work, including writing automated tests and participating in peer reviews. We follow agile principles, with regular planning and refinement sessions, and aim for a balance between structure and flexibility.
We value clean code, thoughtful design, and clear documentation. Collaboration happens both synchronously and asynchronously, supported by tools like Confluence, GitHub, and Jira.
Hiring Process
We aim to keep our hiring process clear, respectful of your time, and focused on your skills and potential. Here’s what you can expect:
Introductory Call: A short conversation to get to know each other, understand your background, and answer any initial questions you may have.
Technical Interview (60 minutes): A structured conversation where we explore your technical background, experience, and depth of understanding. This is not a hands-on session.
Design or Code Review Interview (120 minutes): A deep-dive session where we assess your ability to reason through architectural decisions or evaluate real-world code, depending on the role level.
No specific preparation is required if you are already somewhat familiar with Python—we’re more interested in how you think, communicate, and collaborate than in textbook answers.
Location
This is a remote-first role open to candidates based in Spain. While most of our collaboration happens online, we occasionally meet in person for team events or workshops.
Job requirements
We’re looking for a Senior Backend Engineer with 5+ years of professional experience who combines strong technical skills with a collaborative mindset. You should be comfortable designing backend systems, writing clean and maintainable code, and contributing to the growth of your team through knowledge sharing and technical leadership.
Minimum requirements:
Bachelor’s degree in software engineering, Computer Science, or a related field.
Excellent written and verbal communication skills in English.
Strong experience with Python, or deep backend experience in another language with a willingness to learn Python.
Solid understanding of backend architecture, APIs, and database design (relational and non-relational).
Experience designing backend components and reviewing code in a team setting.
You’ll thrive in this role if you:
Enjoy mentoring and supporting the growth of less experienced engineers.
Take initiative to improve team practices, code quality, and development workflows.
Are comfortable leading technical discussions and influencing decisions within your team.
Are curious about the business domain and motivated to build software that solves real-world problems.
Contribute to communities of practice and foster a culture of learning and collaboration.
or
All done!
Your application has been successfully submitted!