Biofreeze San Francisco Ultramarathon – 1st place!

Well, I think the title says it all. This weekend’s race was fantastic. It was such a fun opportunity to get to run my city, through the streets that I’ve been living in and training in, with some of my favorite people. Here’s how it went.


Two finisher medals –  one for each marathon. Thanks Michael for the photo!



The San Francisco Marathon was my first full marathon. I ran it in 2010, after I’d run three ultramarathons (I didn’t really understand how to scale training at that point), and finished in a non-terrible 3;52.

I first ran the San Francisco Ultramarathon back in 2016. The ultramarathon race is part of the San Francisco Marathon – for the ultra, you run the course first in reverse, starting around midnight, then you run the full marathon course again, starting at the same time as the full marathon race. The ultra is a double marathon, which comes in at 52.4 miles.

When I ran it last time, I ran it with a few friends – some of whom were running their very first ultramarathon. I paced one of them for the second loop, and the four of us crossed the finish line at the same time at the end. It was a really fun way to do run the race, and such an honor to get to experience a “first” with a new ultrarunner.

My finish time in 2016 was 10:45. After that race, mentor Mike of Badwater fame said that he thought I shouldn’t have run the second loop with them – he said I probably could have finished faster if I’d gone on my own. It’s possible that was true at the time, but I wasn’t really thinking about it then. However, the thought – that I should try to see how much I could push it – had stuck with me for the past few years.

Training and preparation



My race bib. Don’t make any jokes about how appropriate this is for San Francisco.

This year, I was one of the BSFM Ambassadors for the race – which meant I got to help promote the race (and give folks discounts if they wanted to sign up!). It was something I’d applied for with no hopes of being selected, but, once I joined the crew, I found a really great community of enthusiastic, friendly, and inclusive runners. I got to train with a lot of these folks over the past few months, and their dedication and excitement was really amazing. Getting to see some of them on the course was really fun. San Francisco has a very strong running community, and it really shows during race weekend.

Check me out on this web page!

In terms of tactical race preparation, I did some 50k and marathon races, as well as a few 25+ mile runs on weekends. I also joined a couple of long training runs with some SF local groups – SFRR, Run365. Otherwise, I didn’t do anything differently – still swam a few times a week, lifted a few times a week, did about an hour of cycling, and tried to do at least an hour a week of easy yoga (at my favorite venue – Grace Cathedral on Nob Hill). I was fortunate during the last few months that work has mostly been local, which helped me really focus some energy on training.

Leading up to race day, I figured I had a pretty good chance of at least placing in the top three, based on previous winners’ times, my own times in similar races, and my current level of fitness. I thought that, this time, I could probably finish in around 9 hours (two 4:30 marathons), which would give me a decent shot at the podium and would be a PR for me.

This would turn into a pretty comfortable pillow later

I also based on my finish time projection on the assumption that I would get good sleep, eat well, and taper appropriately for the week heading up to the race. One out of three isn’t bad – I did get good sleep that week. My nutrition and tapering, however, were disastrous. For example, I ate three or four donuts the day before the race, and I also worked out every day leading up to the race, except for Thursday, where I slept in. I don’t recommend this approach (that said, donuts are pretty delicious).

At the expo

On Friday, the day before the race, I hit up the expo to pick up my bib. I’m not a massive fan of expos anymore – especially for the bigger races, they tend to be a lot of shiny, overtly branded booths, most of which are at every expo – so there isn’t anything very new. I made my way to the back of the expo, where a few volunteers manned a tiny little table for ultra check-in, picked up my gear, took a picture with the “ultra” sign (so cool that they had one for a race with so few runners!) and headed out.

ULTRA - let's go!
ULTRA – let’s go!

Saturday night

The race started at 11pm on Saturday night. It’s a big of a weird time, but it’s designed to give runners of all speeds enough time to complete the first marathon, rest a bit, and then start the second marathon at the same time as the full marathon runners (the full marathon starts at 5:30am).

On Saturday during the day, I did some errands, got lunch with my brother and his wife, and looked at a few apartments before heading back to my own apartment to nap for a few hours. I woke up around 9pm, packed my gear, and walked down to the Hyatt near the Ferry Building, where the ultrarunners would convene before the start.

In 2016, runners had convened in a frigid, outdoor tent on the Embarcadero, right across from the Ferry Building. This year, the race organizers rented out a conference room in the hotel – complete luxury in comparison. We had a warm, brightly lit space, with coffee and snacks – a runner’s dream. I stashed my gear under a table and strapped on some illumination (required per race guidelines – the first loop was not a closed course, which meant we’d need to dodge some traffic).

Race director Michael Li holding court in the luxury Hyatt conference room

Prior to the race, several of us in the SF Ultra Facebook group had coordinated to run the first loop together, targeting around a 4:00-4:30 pace group. This team-oriented approach was mainly we wouldn’t get lost, as the course markings are notoriously mediocre on the course. In 2016, they handed out paper printouts – try fitting an entire, detailed map of San Francisco on an 8.5×11 sheet of printer paper. Also, it was very foggy that year, so the printouts immediately disintegrated in the moisture.

Learning from this experience, I wanted to make sure that I was running with a group of people so I didn’t get lost. I’d also downloaded turn-by-turn directions on my phone through this cool app called RunGo, just in case (redundancy is a good idea in race prep).

Evan and Harry, who also said they wanted to run around a 4:00-4:30 pace, made their way over to my corner of the Hyatt conference room, and the three of us headed over to the start line together.

Heading to the start line. Check out the glow!

First marathon

The whole group! I’m bottom right

After we took our picture with the group, Evan, Harry, and I settled into a pretty easy pace for the first mile, heading south along the Embarcadero. We had beautiful night views of the Bay Lights on the bridge – this is one of my absolute favorite art installations. Shortly after we started, we were joined by Donna, who was also targeting the same pace, and a few other runners as well. A group of about 7-10 of us formed, and we stuck together for the first fifteen miles of the race.

We passed through the Dogpatch area, running by the new Warriors basketball stadium. This part of the course was tricky to navigate, as it involved a number of turns at intersections. We were appreciative for the directions on the app, and we heavily leveraged the turn-by-turn instructions for the route. We also had a few bike pacers with us, who helped us cross intersections and navigate some of the trickier turns. These guys were amazing.

We headed into the Mission around midnight, where late-night revelers were still partying. this was one of my favorite parts of the 2016 race, too. These folks cheered us on when they figured out what we were doing, which was really fun! One pair of partiers even offered our group some ‘Gatorade,’ which Donna quickly figured out wasn’t actually Gatorade. (I never figured out what it actually was…) Protip: never take nutrition from non-sanctioned aid stations. You never know what you’re gonna find, and it’s (rarely) worth the risk.

We hit our first aid station around mile 7.5 and turned into Golden Gate Park. It quieted down a little bit, as the park is very empty around this time of night. Our group grew more quiet as well. We passed the Conservatory of Flowers and headed to the south west corner of the park.

As we approached the second aid station, one of the women on a pace bike approached our group and shouted, “I’m looking for the elite women!” This meant she was looking for the woman in first place – typically, races provide guides on bikes to lead runners make sure runners don’t make wrong turns, and to make sure runners in the lead aren’t cheating or taking shortcuts. I yelled back, jokingly, that Donna and I were right here, so the woman on the bike should come with us! The woman on the bike responded, “Well, you guys are in first, then!” and started following us on her bike. In all honestly, this was super cool – I’ve never had a bike pacer due to being in the lead before!

Aid station!

Our “pace group” headed into the second aid station, around mile 11, and I took a selfie of us together.

Maybe my favorite photo from the race – selfie time!


The 4:30 “pace group” pausing at mile 11. From top left: two fast runners (they come into the picture during the loop), then Evan. Second row is Moto, Donna, and Harry. A super fun crowd!

The next 3-4 miles were an out-and-back along Ocean Beach. This is not part of the full marathon course, but is added on for the ultra, since we do not cross the Golden Gate Bridge on the first loop. This out and back was pretty fun, because we got to see and cheer on the other runners. It was also nice to run this with a group of people – when I do this stretch as part of my training, it’s an extremely demoralizing, fairly boring, out-and-back.

When we came back to that same aid station  around mile 15, I went to fill up my bottle with water – and who should I find manning the water tank, but Peter Chan – my selfie-taking buddy that I ran into at Oakland Marathon too! (His son was the super consistent pacer that I hung with for that race). We said hi to each other quickly, then our group took off.

Around this time, our group started splitting up a bit. Another woman (I learned later it was someone named Sadie) had caught up to our group, and my competitive streak snuck in just a bit, so I was working to make sure I stayed just ahead of her.

As we headed into the climb before the Golden Gate Bridge, Evan and I fell into step again. It was his first ultra, and he was very in the zone – I was impressed with his concentration. He, another runner named Moto, and I cruised for a mile or two, before two other runners, from Portland and Denver, caught up to us just before the big hill climb. These two guys started charging up the hill (which is about a mile long), and Evan and Moto went with them. I let them get ahead – no reason to burn out the legs right now, and I didn’t see any other women behind me.

Top of the hill – view of the Golden Gate Bridge

Once we got to the top, we were at mile 20 or so. There was another aid station – our last for this loop – and I caught up with the guys at this point. We took off down the hill together. At the bottom of the hill, near Crissy Field, I made a very minor navigation mistake – it didn’t cost us any time or distance, but we did have to cut across a field of wet grass to fix it. Urban adventuring! I gotta say, this app was actually super helpful.

When we got to the last tiny hill, at Fort Mason, I let the two speedy runners take off. At this point, it was just me and the biker pacer – a lovely woman named Julie, from Southern California. Turns out the whole crew of bike pacers came up from SoCal together for this event – super cool! I ran the last few miles of the first loop along the Embarcadero chatting with her.

The first loop was not chip timed – out times were manually recorded, which meant that at aid stations, we would shout out our number to the volunteers. At the finish of the first loop, we would have to check in verbally with a volunteer. When we got close to the end of the first loop, I asked Julie if she knew where the check-in table was – I didn’t want to waste precious minutes trying to figure it out, so I figured I would ask in case she knew. She did not know, but was awesomely able to radio her team – one of whom then came out – also on a bike! – to escort me to the check-in tent. I cruised into the tent after him, finishing the first loop in 4:17 (about 3:17am on Sunday morning).

After the first loop! Basically the same picture as before this loop, but 26.2 miles later.

The break

I had more than two hours until the start of the second loop, which would begin around 5:35am. Phil, a volunteer masseuse, offered to give me a quick massage rub down. I don’t typically partake of post-race massages, mainly because who wants to wait in those lines? But since there was nobody else in the tent, I gratefully accepted – he did about five minutes of work on my hamstrings, and it was pretty amazing.  Evan came in a few minutes after I did, and he was next on the massage table.

I headed back into the Hyatt. Cyndi and Alex, two friends of mine who I’ve run with in the past (most notably, at the Burning Man 50k), were running the full marathon, and they were planning to join me at the Hyatt around 5:15am before we headed to the start together. So I had a few hours to kill.

I retrieved my drop bags, took off my wet shirt, layered on my winter ski jacket and sweat pants, and snuggled up under one of the tables. I thought I’d have a hard time sleeping due to the adrenaline, hard floor, and lumpy plastic-bag pillow, but apparently it isn’t hard to fall asleep at 3:40 in the morning. I immediately passed out.

Sleeping under a table. Not creepy at all.


I woke up about 90 minutes later, around 5:00am, and promptly shoveled 1.5 peanut butter & honey bagels into my mouth.

Cyndi and Alex arrived about five minutes after I woke up, and we hung out in the Hyatt conference room for a bit before heading to the start line.

The start line was packed with runners. The pre-dawn light that morning was beautiful – oranges and blues behind the Bay Lights installation. This was, honestly, perfect running conditions.

A few minutes later, the three of us crossed the start line, beginning the full marathon together.

Second marathon

Start of the second marathon with Cyndi and Alex

My plan was to target 4:30 for the second loop as well, with a goal of trying to keep my splits pretty even. I would have settled for a 4;40, or even up to a 4:42, as that would have kept my final time under 9 hours for the double. That said, the ideal was to come in under 4:30.

Cyndi and Alex were targeting around the same pace, so I wanted to try to stick with them for a bit. I was worried that they would start off quite quickly (they took off like rabbits at the Burning Man race, and I didn’t see them until hours later), so I also wanted to make sure to pace myself if they ended up going out faster than I was comfortable with. The name of the game on this lap was pacing, pacing, pacing.

We ran together for the first few miles – the sun was rising over the city, and the light was beautiful. Also, for whatever reason, it seemed like other runners had self-seeded themselves really effectively – so there wasn’t the typical dodging and weaving through runners that often happens in big races. It was a very peaceful first few miles.

Beautiful dawn over the Golden Gate Bridge

Evan and Harry ended up right next to us as well – we ran a mile or two with them, then they buddied up and fell back a bit.

Running across the Golden Gate Bridge was beautiful.

Running the bridge

Once we reached the other side, I dropped back for a quick bathroom break. Cyndi, Alex, and I agreed we’d meet back up with the 4:20 pace group, which was just a minute or so ahead of us.

On the north side of the bridge, the course goes down a bit of trails – this was a new addition to the course, and I loved it. Downhill trails are my jam, and I passed a number of people on this stretch without needing to overexert myself.

I quickly found the 4:20 pace group, but didn’t see Cyndi or Alex –  I think they were a bit further ahead at this point. I didn’t want to worry about catching them – I was really focused on pacing and didn’t want to blow up – so I decided to stick with the 4:20 group for a while.

The 4:20 group was led by two pacers – Joyce and Paul. They were a study in contrasts, with Joyce leading a vibrant conversation amongst the pace group, and Paul focusing on maintaining as steady a cadence as possible. They were a great team, and I stuck with them for a while.

Pacer Joyce!

I ran into Cyndi and Alex a few times while staying with the pace group – we yo-yod throughout the rest of the race.

Around mile 14 of the second marathon, I was getting pretty tired. We were running through Golden Gate Park, and my legs were feeling a bit heavy. Then I realized I was also actually at mile 40 of my double marathon, and that was pretty motivating, because that’s a lot of miles. So I decided to suck it up and stick with the pace group.

One of the things that happens during ultras is that your brain stops working well. Logic is a little harder, and focusing on more than one thing becomes challenging. Often, people ask me if I listen to music when I run, and are surprised to find out that I don’t usually. The sound ends up being too much distraction, and the fact that songs change every 3-5 minutes is enough to jolt me out of the meditative state that running often provides.

This is relevant because, around mile 45, I was having a hard time both running and listening to the conversation of the pace group. Being an active listener is actually a hard job, and I was failing at it. It was at this point I decided I would pick up the pace a little bit to get to the finish line.

The last few miles were smooth. I passed a number of runners and took no walk breaks, other than to move through aid stations and pick up electrolytes. It was fun to come back along this part of the course, which I’d run almost 11 hours ago (if you’re confused about the timing math, remember that there was a 2.5 hour break in the middle), and see it in different light (literally and figuratively).

I read an article once that suggested that athletes run faster when they know the route they are running. The last two or three miles were like that for me – I’d lived about a block away from where the course passed by, near McCovey Cove and AT&T park, so I knew these streets well. I could estimate the distances, and from about three miles away from the finish, I knew almost exactly how far away I was from the finish line at every step.

With about a half mile to go, another ultrarunner, Ross, caught up with me. He said hi – turns out he’d been running as part of my 4:30 pace group in the first loop. We pushed each other to the finish, slowly accelerating as we got closer.

Crossing the finish line with Ross

I finished the second lap in 4:17. Perfect splits. My overall time was 8:35:04 – a substantial improvement from 2016, and a PR for my 50mile(ish) distance by quite a bit.


Cyndi and Alex had finished less than a minute ahead of me – I found them in the finish chute almost immediately. We took some obligatory selfies and compared notes – it was so great to see these two right after I finished the race. At one point, we saw a sign that said “Family Meeting Area,” which is usually a place where runners can find their families or supporters. “We’ve already found our family!” we said, proudly referring to each other.

With Cyndi and Alex – love these guys!

As we got to the end of the finish line chute, they peeled off to get ice cream, and I headed over to the ultra tent (the same one that I’d checked in at after my first loop). I was in no hurry, since the second marathon was chip timed, so my finish time was already decided when I crossed the finish line.

When I got to the tent, I ran into Michael Li, the intrepid race director for the ultra. This man is a hero – I think he stayed up for 36 hours straight, or something absurd like that, to make sure the race went smoothly. He was on the course for the first loop at a number of places, cheering us on and saying hi.

Michael took a picture of me with my finisher medals (we get two, since we ran two marathons. I think that’s the logic). I asked him if I had won, and he said he didn’t know but would let me know the next day.

I headed back to the Hyatt to pick up my stuff. My friend Conrad, who I work out with at the Potrero 24 Hour Fitness, was around, so he stopped by to say hi for a few minutes too. He came bearing designer chocolate and compression socks, both of which were very much appreciated.

I walked back to my apartment, showered quickly, and then headed to the airport for a 3pm flight to Spain for work. Spoiler alert – I slept VERY well on that flight.

This was my Strava time – about 30s more than my official time.

Further afterwards

The next day, I got an email – a few folks (my dad included!) sent me these neat digital “cheers” – encouragement for along the course. So cool to see those!

Finally, a little later on Monday, I found out the results from the race. I had won! Someone posted the results in the Facebook group. I immediately texted everyone who had been waiting to hear back. I don’t win things typically (aka, almost ever), and I wasn’t embarrassed to celebrate a bit.



I’m pretty proud of my performance at this race. I know that, for someone with my (lack of) speed, winning is more a function of luck than skill – specifically, luck regarding who else shows up to run that day. If there aren’t any faster runners, I have a chance. On this day, there weren’t any faster runners.

At the same time, I also know it’s a little more than luck. I have been training very hard for the past few months – about 18-20 hours a week of running, swimming, and cross training – sometimes as much as 2.5 hours a day during the week. I get up at 4:15/4:30 every morning during the week. This isn’t easy to keep up with my job, and I’ve had to sacrifice probably too much sleep. But I love working out, and I love getting faster. There’s something amazing about having and tuning this biological machine that each of us were given – about tweaking it, taking care of it, optimizing it, and pushing it to its limits.

There’s no such thing as a perfect race. But on Saturday, I felt like my training had paid off. It wasn’t a perfect race, but it was pretty darn close.

Two finisher medals –  one for each marathon. Thanks Michael for the photo!



  1. Hi Lisa
    I ran my 1st ultra marathon too and reading your article allowed me to relive the whole event! Thanks for sharing. That was a great read with some epic pics.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s