Engineer, programmer and technical manager, with deep expertise in digital printer development, especially in image processing, data pipeline and color workflows. I have been the technical lead of developer teams since 2001: together we've built some really interesting software for HP —changing in the process how printers work, how the imaging pipeline is architected, and how engineers design the data pipeline. I am a manager and technical lead that can —and does— actually code.
My interests include team dynamics, and in the processes and structures that make teams work and innovation possible.
I received a Ph.D. from the Polytechnic University of Catalonia (UPC, Spain) in 2000 and an MD in Mechanical Engineering from UPC in 1994. I have worked as an engineer specializing in inkjet writing systems at Hewlett-Packard in Barcelona since 1996. From 2007 to 2010 I managed an technical R&D team at HP. In 2010 I became an HP Master Technologist, which means that I got to have an impact in the technical direction of the company, and significant latitude in choosing which problems I work on, while still leading technical teams. In April 2015 I moved to Cambridge (UK) to work for Xaar, a company that designs and manufactures inkjet printheads, as a Principal Engineer in charge of building the data processing discipline in the company.
I started programming professionally 21 years ago. The first program I wrote and sold, in 1994, was the C++ controller of a machine for testing helmets. After a period of self-employment —during which I also founded a company that designed and built data loggers for the major Spanish motorbike magazines— I was hired by HP's Barcelona lab as an R&D engineer. During the 19 years I spent at HP I always worked with partners in the US West Coast, traveling regularly and at times reporting to US managers. Even though I have been leading engineering teams for the last 13 years I have always retained direct development responsibilities.
My last months at HP were spent working on a new way of processing color for printing, and designing and implementing the pipeline for a 3D printer.
I have also written a couple of iPhone apps. The only one still in the iTunes store, MapJotting, allows you to take notes and store them, with their geographical coordinates, in Dropbox text files. I wrote it in a weekend because I wanted a sensible way to keep track of a bike trip around Europe.
I have also done contract work, including working with Pyramid and SQLAlchemy in Python to add database functionality to a website, and implementing a Bayesian classifier in Python.
I enjoy writing and teaching. Most of my short articles I publish at juanreyero.com.
I started writing The Hacker Ways in order to help my teenage boys learn to use the computer at the command line. At some point I realized it would be useful for other people, and formatted it as a book. It is not finished: I need to add a couple more chapters, at least. You may read it online, buy its current version, or fork it at github.
I created unarueda.com in order to promote unicycling as a teaching aid in Spain. I imported and sold unicycles, wrote a tutorial on how to learn to unicycle, and taught many kids to do it. The fact that it teaches perseverance and that the rewards are high makes unicycling a great tool for helping kids increase their self-confidence. I closed it down because it was too hard to keep up with bureaucratic requirements.
Developing inkjet Writing Systems and Color pipeline for all products in the Barcelona labs, and mapping out the future technologies.
Part of my job involves working with management to figure out what will be the future technological needs. For example, when I realized about a year and a half ago that our main design and prototyping software was becoming too unwieldy (after 10 years evolving) I had to convince the organization that we needed to set up a development team to re-implementing it.
Another part of my job is actually building stuff. I get quite a bit of freedom on choosing my problems; when we started the redesign of the above piece of software, for example, I implemented a significant part of the framework myself. I believe that a great way to architecture software is to map it out —not only documenting it, but also with working code.
These days I am spending about half my HP time devising a new way of processing color for printing, and the other half designing and implementing the pipeline for a 3D printer.
Manager of a team of 11 engineers, physicists and mathematicians, designing and implementing image manipulation and printer control algorithms for all new inkjet printers. I retained direct engineering responsibilities.
Most of my time was spent working with the engineers, helping them in their day-to-day work, and removing obstacles. I also had to make sure that we covered the needs of all the new products being developed in the lab, and balance our efforts adequately.
I stopped being a manager because I figured out that I am more effective leading a team when I don't have people manager responsibilities, and have enough time to actually contribute code and solutions to the problem at hand.
The group's responsibilities included developing the image processing algorithms required by increasingly sophisticated printers, and building the infrastructure that enables engineers to deploy them in our products. I implemented part of the embedded software that controls the printing process of HP's new generation of large format printers.
During this time I started, architected and led a multi-site effort to create a common set of development tools for designing printer's writing systems across divisions. Two key aspects are:
This software is probably my main contribution to HP's business. It is used by many engineers across US, Asia and EU divisions, and it powers millions of printers. I recently led a full re-architecture —after 10 years it suffered a bad case of bit-rot.
Responsible for algorithms for image manipulation, printing strategy and print-head maintenance.
Faiter designed and built plastic injection molding machines. My tasks included:
This was my first job out of school, and I was the only mechanical engineer in a small company designing and building injection molding machines. Instead of doing the sensible thing —sit down and design mechanical parts— I taught myself Autocad Lisp, and wrote a program that could design the overall machine from specs. And I did it in 3D (which at the time required figuring out the geometry yourself). When I had it working we could, for the first time, actually know the size and shape of the piping we were going to need.
A note on names: my full name is Juan Manuel García-Reyero Viñas, translated to Catalan as Joan Manel or Joan Manuel. It has been in various occasions shortened to Joan Manuel Garcia, Juan M. García or Joan Manel Garcia; that's me on the patents below.
(The list is incomplete, sorry).