
Software Engineer II
Job description
About the role
This role shapes the future of observability by building an intelligent platform that delivers real-time insights. The position focuses on the Service Architecture Intelligence team, where engineering drives innovation in AI-assisted workflows. You will optimize digital applications for the world's best companies while pioneering modern agent-powered development practices. You turn product ideas into working code within small, cross-functional teams. Your daily work involves rigorous code review, debugging, and performance optimization alongside feature development. You will spend part of every week on planning, code review, and debugging, not just writing new code. The ability to explain a technical decision in plain words separates strong engineers from the rest in this role. You will set standards for wide adoption across engineering teams through your contributions.
Key facts
What you'll do
This work ensures reliability and performance for large-scale distributed systems in production environments. You contribute to improvements that support efficient operation and evolution of observability platforms globally. On-call rotations are part of this responsibility for maintaining service health and rapid incident response. The team sets standards for tooling and practices that enable wide adoption across the engineering organization. You will build technical excellence, embrace continuous learning, and share knowledge through pair programming and design discussions. This culture supports sustainable development and high-quality outcomes through disciplined engineering practices. You evaluate and integrate modern AI coding assistants and AI agents into daily workflows to drive innovation. You implement asynchronous programming patterns using streams, event-based flows, task queues, and message queues for resilient systems. Your work directly impacts customer experience by improving the reliability and performance of digital applications. You mentor colleagues and collaborate closely to solve complex problems affecting multiple services.
Requirements
The posting states a bachelor's degree requirement for this position. Distributed systems experience, including concurrency and scaling in production environments, is required. You must have strong software writing skills in OOP languages, with Java as a must-have skill for this role. Comfort with different languages and frameworks is necessary to adapt to evolving technology stacks. Familiarity with asynchronous programming techniques is required for building responsive systems. Skills include streams, event-based flows, task queues, and message queues for scalable architectures. Active experience using, integrating, and mastering modern AI coding assistants and AI agents is required for this position. A mindset of continuous workflow innovation is essential to keep pace with industry changes. Comfort in a fast-paced environment focused on delivering high-quality production code at a regular cadence using Agile methodologies is required. You must demonstrate a collaborative work style that includes colleagues in important decisions. This approach leads to shared code ownership and collective responsibility for technical outcomes. Adaptability in a rapidly changing industry and a proactive drive to push boundaries of modern software tools are required. Proficiency in English is required for effective communication and collaboration with global teams.
Nice to have
Proven experience evaluating, benchmarking, or developing custom agentic AI tools, prompt workflows, or developer automation scripts is valued for this role. Contributions to open source projects are viewed positively as they demonstrate real-world engineering impact. Deep understanding of build and test automation value is appreciated, with passion for applying these techniques consistently. Experience setting up and managing observability tools is beneficial for reducing time-to-insight during investigations. Technical mentorship and supporting colleagues' skill development are considered bonus points for team growth.
Practical notes
The role is remote-first, with a strong presence in Barcelona for collaboration and team events. Typical interview steps for engineering roles usually start with a recruiter screen. Candidates then proceed to one or two technical rounds involving coding problems and system design discussions. Some loops include a take-home task to assess practical implementation skills. Final rounds typically cover team fit and give candidates a chance to ask detailed questions about the role. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer quickly. Practicing a few problems aloud and reviewing your own past projects are the best preparation methods for success.