So you want to know more about me. Great!
When I’m not building things on a computer, I enjoy biking, running, swimming, and outdoor sports in general. But I suppose I should tell you about my CS background. Here we go…
Particle random walk in a flow field: code here.
My first real dive into computers happened in high school when my parents sent me to a programming boot camp. We started with Basic as the introductory language, then jumped to C - talk about a leap in abstraction! I blazed through the Basic part, eager to spend as much time as possible with C. Both languages were fascinating, but C had something special. Its set of constructs, while relatively small, were incredibly subtle. I was hooked, though it would take me a few years to truly grasp just how powerful the language was.
This experience lit a fire in me to understand computer systems more deeply. That same year, my parents got me an MSX Sony personal computer. I spent hours playing games and writing little programs, amazed at how much I could create with that compact machine. It was my first taste of the vast potential of computing, and I couldn’t get enough.
The most photographed barn in America. Jackson Hole, Wyoming.
When it was time for college, I knew I wanted to major in CS. Interestingly, most of my friends opted for Electronic Engineering (CS wasn’t as popular back then as it is today).
On a side note, if you’re reading this and planning to study CS in college, keep in mind that writing software isn’t the main focus of the degree. Edsger W. Dijkstra, a pioneering computer scientist, captured it eloquently: “Computer science is no more about computers than astronomy is about telescopes”. Expect to dive into tons of math, algebra, and physics in your first years. Be prepared for that and make the most of it. These days, it’s pretty obvious how crucial those courses are, but it wasn’t that clear to me at the time.
I also took a substantial number of electronic courses, which I enjoyed and found incredibly useful for understanding computers at a deeper level.
Clarity of thought. The best programming book ever written?
In college, we used dumb terminals to connect to “powerful” hpux servers. We completed most of our computer assignments on these machines. We also used X terminals (a graphical version of terminals). At that time, our Internet access consisted of a couple of 128K ISDN pipes.
My first computer was a MSX.
As I mentioned earlier, the first year of college for CS is heavy on math, physics, algebra, and electronics. But I was more captivated by the UNIX machines available to students. Their power and flexibility fascinated me. I remember poring over manual pages and discovering the power of pipes.
The more I learned, the more I wanted to play with those fascinating devices. In retrospect, I wish I hadn’t skipped my Math classes that first year. It’s surprising that we’re still teaching Math the same way today. There’s so much room for improvement. But I digress…
The BCN city council logo.
In my second year, to help pay for college, I joined the city council IT team. I felt right at home since all the infrastructure was UNIX-based. We had many different UNIX flavors: Solaris, IRIX (Silicon Graphics), AIX (IBM). I couldn’t believe they were paying me to fix and write software for those machines. My main contribution there was writing a dashboard to automatically report various stats on the hundreds of domains under the city council. I’m so grateful for that opportunity. It was a great experience and another iteration that exposed me to the power of UNIX.
I wanted to have that same power at home, on my PC. At that time, Linux was just starting to take off. I ordered the Slackware CDs, waited a couple of weeks to get them in the mail, and installed it on my machine. Now we were talking.
The FreeBSD's logo. One of my old time favorites.
In my third year of college, during the summer break, I accepted an internship at a software startup in Switzerland. They were building a platform to help NGOs by abstracting the complexities of running Internet services (mail, web servers, FTP, etc.).
We had a web interface that allowed NGOs to control these services. I remember the stack we used: three beefy Linux boxes running Red Hat with tons of disk space (10TB, if I recall correctly) running RAID (hardware) over SCSI disks. On the software side, we had Apache, PHP, and MySQL to serve the web app. We were using Postfix as a mail server and OpenLDAP to manage all the lower-level configuration details. I remember hacking Postfix and LDAP together to tailor the software to our needs. I had a great time and was very lucky to work with a remarkable and talented group of individuals.
My first Linux distro.
In my last year of college, I started a small company with a couple of friends. Our main product was providing Wi-Fi infrastructure for hotels. At that time, Wi-Fi technology was just starting to emerge, and laptops didn’t come with built-in Wi-Fi hardware. Customers would use PCMCIA cards to access the network. We had a dedicated machine controlling access and sharing Internet connectivity for users.
For our product, we used OpenBSD on the server, with Apache, PHP, and MySQL running the web app. The product did well, but for various reasons, the company didn’t take off. We also offered VPN solutions based on IPsec running on soekris hardware. Of course, these were also running OpenBSD.
A soekris mini computer on which I run OpenBSD.
For my final degree project, I joined forces with my good friend Sergio Ramos (you’re an awesome dude). We built an MP3 player from scratch - both hardware and software. We used a Fujitsu micro-controller with a bunch of external chips to do specific work (like decoding MP3) and Compact Flash for storing data. This was a micro-controller, so we didn’t have a full OS running. We wrote our own firmware to implement the MP3 playing functionality. Additionally, we wrote device drivers for Linux and BSD to transfer files to the player. It could store any type of file since we implemented a full filesystem (FAT32). What an amazing experience!
I remember sending a white paper to Nokia explaining our work. I wasn’t sure what I was expecting from them. I think I just wanted to show them what we built, hoping they would be interested in it. Maybe even get a job? I got an email (or letter?) back. They told us that what we were doing was pretty cool but it wasn’t aligned with what the company was doing. Three months later, Apple released the first iPod.
I am very proud of what we built. Sergio knocked it out of the park with the hardware. The board was very small considering the resources we had, and the functionality was rock solid. The only difficulty was the enclosure we built. It was metal-based and too heavy.
An eye candy visualization of genomic data using a circos plot.
After spending a couple of years at Eracks, I worked for a company in San Diego called Digitaria, building web apps for various companies. It was a great experience, as we managed both hardware and software. We had our own datacenter running a wide range of OSes and hardware. There, I also met my friend Manuel, a solid sysadmin with an outstanding work ethic. Thank you, Manuel!
After a couple of years at Digitaria, I went through a career change (to a certain extent). I joined the Human Genome Sequencing Center at Baylor (Houston, Texas) as a Scientific Software Engineer. I joined the organization at a pivotal time for the genomics field. Advances in genomic sequencing dramatically increased the amount of data generated when sequencing DNA. Baylor was one of the three centers in the world with access to this new hardware. We received significant funding to use the sequencers’ data to aid scientific discovery. I was at Baylor for about 7 years and had a couple of main roles. It was an unforgettable experience - so many challenges and the opportunity to work with talented scientists from a wide range of fields: Statistics, Biology, Computer Science, Physics. I even had the opportunity to write a paper as a first author. Thank you for your support, Jeff!
After a wonderful time at Baylor, I joined a group of very talented individuals running a startup in San Francisco (Librato). We had an online product that provided metrics as a service. Clients sent us their metrics (servers, daemons, apps, etc.), and we would store them and expose these via our UI. Users could create dashboards to view their metrics from different angles. Probably the winner in that space these days is Datadog - they were our main competitors. At Librato, I worked on building the charts and visualizations, as well as developing “full stack” features. The founders eventually sold the company to SolarWinds. After a few months there, management decided to create a new product to merge all the different services they had acquired. I was part of the talented team that built the new app, which is now AppOptics.
And that’s most of my career story. Currently, I work as a Freelancer, where I try to create value for my customers using the experience and skills I’ve accumulated over the years.
drio out!