You can experience this as a fancy formatted résumé here (PDF).
A small university spinoff company specialized in time-providing
Rabbit) needed a senior engineer to help push the development to a
more professional state and to improve their products.
Most of the work now is detecting and fixing bugs to make the systems more reliable and implementing new features (typical UNIX programming in C, mostly).
After one year of wasting three hours a day packed in multiple forms
of public transport (see HP below) I decided to make life easier and
move back to BarcelonaTM and work for a (then) small
software consultancy for automotive customers (ADAS, time-triggered
That means doing lots of bringups of cutting-edge SoCs from Renesas, Nvidia and Samsung (mostly Yocto-based Linux builds and customizations) and a bit of software porting to QNX.
Really fun place to work in, and incredible people.
I worked in the large format printing business for a while fixing a
lot of bugs, making a lot of minute customizations, testing and
bringing up new hardware and implementing some functionalities here
It was nice but the commuting was killing me. Met a lot of great people, though.
I worked in the PLC projects at Broadcom
(then Corp.). As
a part of the firmware team I developed firmware, fixed bugs and
debugged lots of things (applications, libraries, drivers, network
protocols, simulators, hardware controllers). After a while, my main
focus became the porting of Linux to the PLC SoCs, including board
bring up and BSP, driver development and application programming.
Some time later I was put in charge of the system integration between Wifi and PLC SoCs at software level.
After that, Avago bought Broadcom Corp. and turned into Broadcom Ltd., then the emperor decided PLC was just not cool enough and dumped us all.
All in all, it was a good time. Challenging work, stressful at times, but I learned a lot, we did a very good job and the products actually shipped.
A group of intrepid, young, inexpert hackers were put together to
build an integral IoT platform when IoT wasn't even a thing. We did
pretty well but it didn't go further than a prototype.
The system was formed by very small low-cost boards with a microcontroller + 802.15.4 transceiver and hardware interfaces to physical devices.
The platform got to a rather functional point, albeit at a small scale: It could form wireless mesh networks of geo-localized boards that controlled LED lamps, it could be accessed and controlled from client applications on a PC, from custom web apps, twitter and Google Maps. It was pretty neat.
|I started a web site for publishing purposes and a blog for venting purposes and assorted entertainment. In a pure Knuthian fashion, I spent some time developing my own CMS to build the blog on. I suggest you don't read it if you're easily offended by poor UI design choices.|
|Tea: Tiny Environmental Analyzer
When I was finishing my M.Sc. and my interests leaned very clearly
to systems programming and embedded systems, I developed a
workflow for embedded application development and deployment based on
Linux, Java and OSGi and I implemented a miniature weather station
based on it. The weather station used a BeagleBoard as the computer
and Phidgets for the sensors.
It had a webGUI for control and status info and it exposed the collected data in real time through web services. It also was remotely hot-upgradable, and new sensors could be plugged and used without having to shut the application down.
It won a honorable mention in the IV University Free Software Competition (Spain)
Some guides, manuals, and the code: here.
GNU Make for complex projects
|A guide on how to use GNU Make properly when your project spreads over an arbitrary number of nested subdirectories. This is the proper way to do it. Inspired by this and based on this. Complete example here.|
|A small, simple and feature rich library for implementing Finite State Machines. MIT licensed.|