Curriculum Vitæ

Founder, technical manager, programmer and engineer, with many years of experience successfully leading international teams of programmers and engineers, and building innovative software tools and products.

Education and experience overview

I received a Ph.D. (2000) and a Masters degree (1994), both in Mechanical Engineering, from the Polytechnic University of Catalonia, Barcelona.

I worked as an engineer specializing in ink-jet Writing Systems at Hewlett-Packard (HP) Barcelona from 1996 to 2015. From 2007 to 2010 I managed a team of twelve R&D engineers. In 2010 I was promoted to Master Technologist, which enabled me to have a significant impact in the technical direction of the company, and latitude in choosing which problems I worked on, while still leading technical teams. 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. During the 19 years I spent at HP I worked with partners in the USA and Singapore, traveling regularly and often reporting to overseas managers.

In April 2015 I moved to Cambridge (UK) to work for Xaar as a Principal Engineer in charge of building the Writing Systems discipline in the company.

In 2017 I left Xaar to work my own company, Greaterskies Ltd, which I had started in my spare time some time before.

Greaterskies Ltd, Cambridge, April 2017 to present

Founder. Greaterskies makes high-definition maps of the sky, with the stars, the planets, the Sun and the Moon as seen from a chosen location and time, including past and future. I wrote the Common Lisp program that produces the maps in 2006. It uses a database that I compiled with the declination, right ascension and spectral color of thirty thousand stars; computes the projections of those in the visible celestial hemisphere; and creates a PostScript file with an accurate and aesthetically beautiful rendition of the sky. A Python program uses this file to automatically compose the final product.

In 2010 I wrote a web interface, and started selling downladable and printed maps online. By April 2017 its revenue was sufficient to allow me to start working on it full time. It now has two employees, working mostly on customer support. Over the past years I have been improving the interface and automating its operation, so that now everything but customer support runs autonomously.

I built it with a scalable architecture, running in several AWS Linux instances (some inside a Virtual Private Cloud generating the maps, some outward-looking serving the site, and one for data analysis). I manage all the code and data with git in private GitHub repositories.

Xaar plc, Cambridge, April 2015 to April 2017

Xaar is a company that designs and manufactures ink-jet print-heads. As a Principal Engineer I was in charge of developing the Writing Systems discipline, and leading the image quality aspects of what was to become their flagship product.

As part of my work I wrote a full printing pipeline using Python and Numpy, and a spectral simulation tool that can predict the image quality that an ink-jet printer will produce given a set of manufacturing tolerances.

I also introduced modern software management tools to the company, including git.

Additionally hired and mentored an engineer whom, by the time I left, was able to successfully take over from me and keep the new assets and discipline alive.

Hewlett Packard, Barcelona Lab, 1996 to March 2015

Master technologist, January 2010 to March 2015

Developing ink-jet Writing Systems and Color pipeline for all products in the Barcelona labs, and mapping out the future technologies.

My job required working with management to assess future technological needs, and championing and getting approval for the projects I identified as important for the future of the division. It also required direct development work, and being the technical lead of key projects. My team and I were working in languages including, in chronological order, C, C++, Bash, Perl, R, Matlab and Python.

R&D Function Manager, January 2007 to December 2009

Manager of a team of 12 engineers, physicists and mathematicians, designing and implementing image manipulation and printer control algorithms for all new ink-jet 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.

Principal Engineer, 2001 to January 2007

Leading the Writing Systems Technology Group. 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:

  • It combines a high level language (Python in the second version, Perl in the first one) with a fast C++ core. This enables easy prototyping and makes it available to non-CS engineers.
  • The same code that runs in the host and is used by the engineers to experiment and figure out the best algorithms is then run by the printer. This removes transcription errors and makes development much faster.

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. In 2012 I led a full re-architecture —after 10 years it suffered a bad case of bit-rot, and by then Python was stable enough to replace Perl.

R&D Engineer, 1996 to 2001

Responsible for algorithms for image manipulation, printing strategy and print-head maintenance.

  • Designed the automatic print-head maintenance routines of a large format printer. I reported to the San Diego-based team designing the print-head.
  • Designed image processing algorithms. Established the mathematical foundation of print-mask design, a key contributor to the image quality of ink-jet printers. The algorithms have been granted several US and European patents (the Catalan and shortened version of my name, Joan Manel Garcia, is used in this patent). I published some of them in “Constraint Solving for Ink-jet Print Mask Design”, Journal of Imaging Science and Technology, September/October 2000, vol. 44, no. 5; p. 391-397.

Independent Programmer, 1994 to present

The first program I wrote and sold, in 1994, was the C++ controller of a machine for testing helmets. I then designed and built data loggers (that tracked and analyzed motorbike speed), which I sold to major Spanish motorbike magazines.

Over the years I have built a number of online apps, starting with a news aggregator in 1997 (in Perl). In 2006 I started Greaterskies, which has become a self-sustaining company.

Between 2007 and 2010 I wrote two iPhone apps. The only one still in the iTunes store, MapJotting , allows you to take notes and store them, with their geographical coordinates, in text files in Dropbox. I wrote it over a weekend because I wanted an easy 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.

Some of my code is at GitHub , including a simple implementation in Python (using symbolic math) of key concepts in Economics , and Magnitude , a fast and convenient Python library for doing computations with numbers with units.

Founder,, 2008 to 2010

I created 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 children to do it. It teaches perseverance and the rewards are high, which makes unicycling a great tool for helping kids raise their self-confidence.

Faiter 1994 - 1995, Mechanical Engineer

Faiter designed and built plastic injection molding machines. My tasks included mechanical design of injection molding machines, including creating a CAD-based design environment, and writing a CAD program in C++ for hydraulic systems.

This was my first job, and I was the only mechanical engineer in the company. Instead of doing the sensible thing —sitting down to design mechanical parts— I taught myself Autocad Lisp, and wrote a program that could design the overall machine from specs. I did it in 3D, which at the time required figuring out the geometry.


I like writing and teaching. Most of my short articles I publish at .

The Hacker Ways (book)

I started writing The Hacker Ways in order to help my teenage sons learn to use the command line and the UNIX toolkit. At some point I realised it would be useful for other people, and formatted it as a book. It is not finished (I want to add a couple more chapters) but it is nonetheless available: it can be read online , purchased , and forked at GitHub .

US Patents

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.

Pending (partial list)

  1. Algorithm For Fast Print Mask Generation FPG (1998).
  2. Pen Dependent Complementary Weighted Printmasks (1999).
  3. Pre Cooked Masks (1999).
  4. True Two Bit Pipeline (2000).
  5. Progressive Print-masks Generation Algorithm (2001).
  6. Nozzle Health Assesment Scanning Printed Data Using The On-board Scanner (2001).
  7. Allow For The Effect Of Drop Satellites During The Masking Process (2002).
  8. On-the-Fly Swath Height Determination (2002).
  9. Roll Printing Bar (2007).