Hello Texas! I am here!
Off to a good start!
Hello Texas! I am here!
Off to a good start!
What a week.
I started with Mozilla on Monday. One day I will have to tell the story of how the job came to be (or, ask me over 🍻), but it did. I'm super excited.
I spent my first week in Toronto, in the Mozilla office, which was a great experience. If anyone from the Toronto Mozilla office ends up reading this, thanks so much for being very kind to me. I really appreciated it.
Today is the end of an era. I have handed in my badge, and I am no longer an employee of IBM. Off on a new adventure.
The above badge is not my first IBM badge, but it is my first IBM badge picture, taken in May of 2009. Though I have not been an IBM employee for all eight years since then, I have worked with IBM teams continuously in that time.
I started working with IBM as a 16 month intern on the Toronto Portable Optimizer (TPO) team in May of 2016, having been connected to that job by a professor at the University of Alberta who had supervised an NSERC USRA the summer before. That professor would go on to be my Master's supervisor, and an a guest at my wedding.
In the TPO team we were working on a 'high level optimizer', which both consumed and produced the IBM intermediate representation W-Code, and performed high level compiler transformations like loop optimizations. During my 16 months there I worked on a number of different projects, ranging from helping a researcher make changes to a polyhedral compilation system in TPO, to trying to productize a research quality memory-layout transformation.
After the end of my internship, I continued working with the team part time remote, through an IBM program called Student-on-Call. It wasn't that long before I had a chat with my manager at the time, who said, "We are working on building the runtime system for Transactional Memory support for Blue Gene/Q, and there's an opportunity to do some work around it". And so I started learning about transactional memory.
Not that long after, I was admitted to the graduate program at the University of Alberta, and pursuing Transactional Memory on Blue Gene/Q seemed like a really sensible choice. It was in a fairly real sense the first shipping commercial hardware transactional memory system, and I had the opportunity to be involved in publishing about it. The entire time of my Masters, I was working closely with the IBM teams. I took a detour into investigating transactional memory on the IBM z/Architecture, in particular using it for lock elision on Java, though, that work didn't end up in my thesis.
As graduation approached, I took a full time job with IBM. I had been told about a new project that the Java compilers team was pursuing, which they were calling at the time Open Managed Runtimes. The goal was to cut apart the IBM Java Virtual Machine, splitting out the technology that wasn't inherently java specific, and creating an open source project upon which new runtimes could be built, and pre-existing language runtimes could be enhanced. It was a very different kind of project, but I was excited by the possibility of making it happen.
My full time career at IBM started as a fairly complete left turn into software engineering: Trying to figure out how to structure a large complex system in such a way that we could open source the code, while still supporting all the proprietary code bases interior to IBM. It was hard work! There's a longer story to be told here about the history of OMR, but not today. Suffice it to say, as of September of 2016, we accomplished the goal, open sourcing 500,000 lines of compiler code. Shortly after that, plans were announced to open source the entire IBM JVM, which happened less than a year later.
In April of 2017, after trying to weather the stormy real estate market of Toronto, Andrea and I decided we would move to Ottawa, where we could afford a house. We took possession of our house in July, and I transferred to the IBM team in Ottawa. My own role started to shift at that point, as I started to focus on the question more directly of "How do you test Testarossa", the compiler technology in OMR.
Leaving IBM is something I do with very mixed emotion. I'm excited for my new role, and the changes that come with that. However, I leave behind a team that has been supportive, and where I have had visible impact. I am leaving behind work that I feel strongly about, and people who I care deeply about. Having seen (and helped set) the trajectory of the team, I hope they succeed beyond my wildest dreams.
I got to take a lovely honeymoon with my wife a little less than five months after our wedding. We waited, to accomodate buying a house, moving cities, and generally having far too much to do in the early months after the wedding.
We went to the town of Furnas, on São Miguel, in the Azores, more than a thousand kilometers off the coast of Portugal.
What an amazingly beautiful place.
São Miguel is a volcanic island, part of the volcanic island chain that is the Azores. It's the largest island in the group. Volcanoes played a huge part in what made the island so amazing; the geography written in the form of volcanic cauldrons and rocky coasts.
Furnas, the town that was our home base, sits inside a volcano. No joke. The volcano hasn't erupted in about four hundred years, but powers much of the magic of Furnas. The easy access to volcanic energy is what powers the thermal baths of the Terra Nostra park, and provides the heat to cook a local delicacy cozido das caldeiras, literally a stew cooked by putting it a pot, and dropping it into holes dug in the volcanically heated earth.
We stayed in the absolutely gorgeous Terra Nostra Garden Hotel. As you might expect, it's embedded into the Terra Nostra Gardens. These gardens have been cultivated for over 200 years, and are filled with species of plants from all over the world.
The hotel itself is a beautiful piece of Art Deco design, and many times I felt as though I had been transported into an episode of Poirot.
The island is not large: According to one person we spoke to, circumnavigating the island in a car would only take about 3 hours. For two of the ten days we were gone, we rented a car, and drove the island.
On the first day we had the car, we took only a short jaunt south to the town of Ribeira Quente, with its beautiful Fogo Beach.
Fogo beach is broad and sandy, and smoothly deepens out with sand all the way we could feel. Even in mid October, the water was absolutely fantastic for swimming. Wikipedia and an Azores Travel website both suggest the warmth may have also had something to do with hydrothermal vents in the area.
Andrea and I had a huge amount of fun just floating and bouncing in the waves. Each time I return to the ocean, I'm reminded of how different swimming feels in salt water. Fantastic.
After swimming and exploring the range of the beaches, we retreated to a beachside bar for lunch, coffee and then returned to Furnas. The next day would be our larger drive.
The next day we set our sights on reaching a couple of viewpoints near Sete Ciades. The drive wasn't terribly long, maybe an hour and a half, including all the viewpoint stops we made
Pro Tip for Visiting São Miguel: When driving keep in mind that the roads are riddled with rest stops and viewpoints to take a look around. They're just not always marked terribly far ahead 😂
Our first stop was Miradou da Boca do Inferno. A fifteen minute hike from where we parked (though, in hindsight, we could have parked much closer 🤷🏽♂️). You start climbing a set of stairs, when suddenly you're faced with an incredibly steep slope, looking into a deep valley. Then, as you climb further you take a path with railing on both sides out onto a ridge, ending in a railing circle and an incredible view.
Next was Miradou do Rei, or the Kings viewpoint. This is on the south side of the crater, looking north, and home to the spooky remains of the Hotel Monte Palace.
After a lunch in Sete Ciades, we talked about where to next. After a bit of research and reading (thank goodness by the way for the profusion of free wifi throughout the Azores. I didn't purchase a SIM for the trip, and we did fine) we decided that we would head over to Termas da Ferraria, a place where volcanic springs heats small coves that interact directly with the ocean.
This drive took us to the west coast of the island. I didn't take any photos of the bathing pool we went into, but it was incredible. Having ocean waves mixing hot and cold water around you is fascinating.
After this, the long drive home. We didn't do a whole lot more exploring after this, instead preferring to spend most of the time in Furnas, hanging around the hotel and gardens, relaxing. This led us to miss the vents that sit inside the town, but I'm not too upset.
The honemoon was amazing. I was so happy we did it, and so happy we took the time away.
Atop a dormant volcano in the Azores, the remnants of the abandoned Monte Palace Hotel slowly disappear behind vegetation. In the late 1980s this hotel was the culmination of more than ten years of planning. It offered its guests top-shelf accommodations surrounded by million dollar views, but the business collapsed before its second operational birthday