Ha desempeñado su trayectoria profesional íntegramente en Cataluña. De 1976 a 1980 ejerció la abogacía. En diciembre de 1982 comenzó la carrera judicial, y fue nombrado juez en febrero de 1983. En 1987 ascendió a magistrado y la mayor parte de su carrera se ha desarrollado en la jurisdicción penal.
Ejerció como juez en Prat de Llobregat (1983-1984), y como juez decano en Badalona (1984-1985) y en Hospitalet de Llobregat (1985-1987). Como magistrado, ejerció en el Juzgado de Primera Instancia e Instrucción n.º 3 de Hospitalet de Llobregat (1987-1989), en el Juzgado de Instrucción n.º 22 de Barcelona (1989-1991), en el Juzgado Penal n.º 4 de Barcelona (1991-1993) y en la sección 10.ª de la Audiencia Provincial de Barcelona (1993-2000). De 2000 a 2010 fue presidente de la Sección 6.ª de la Audiencia Provincial de Barcelona. En paralelo, de 2004 a 2007, fue miembro del Consejo Rector de la Escuela Judicial, y en 2006 fue nombrado miembro de la Comisión Pedagógica de Formación Inicial de la Escuela Judicial.
También fue presidente del Tribunal Superior de Justicia de Cataluña (TSJC) de 2010 a 2015, y posteriormente magistrado de la Sala Civil y Penal del TSJC hasta septiembre de 2016, cuando fue nombrado director de la Oficina Antifraude de Cataluña.
Por otro lado, ha compatibilizado la carrera judicial con la docencia en la Escuela de Policía de Cataluña (1991), en la Universitat Autònoma de Barcelona (1992-1994) como profesor asociado de Derecho Penal, y en la Universidad de Barcelona (2000-2008) y el Ilustre Colegio de la Abogacía de Barcelona (2005-2009) como profesor en diversos programas de máster en el ámbito del Derecho Penal.