Always a nerd, never a jock

[This post is one in a series about my fitness journey. Consider starting at the beginning.]

I’ve always been a nerd and I will always be a nerd. And growing up a nerd up did not in any way prepare me for my fitness journey. Turns out that you can have muscles even if you don’t start in grade school with the jocks.

Imagine the most quintessential high school nerd stereotype: non-athletic, a loner, avoids all sports, and reads all the time. The only thing I was missing was the taped glasses. In my high school and junior high you had to either be in athletics and play some sport (football, basketball, baseball) or take physical education (PE). Not being a sports person at all, I took PE, taught by coaches who saw those of us in PE as degenerates who couldn’t handle real sports. To cap it all off I grew up in Texas in a very small town where everything revolved around the all-powerful football.

Because of that I’d never stepped foot into any sort of weight room until I went to college. Texas A&M had a brand new and really fantastic student rec center which had volleyball courts, basketball courts, racquetball courts, indoor track, a strength and conditioning room (weight room + cardio equipment), and probably tons more that I never knew about. I remember going into the strength and conditioning room and being overwhelmed with everything in there and not knowing where to start. It didn’t help that I was suffering from some major body-image issues, something that continued until 2016 and still does to some degree. I felt scrawny and ugly compared to all the buff college guys who were working out.

IMG_0747
May 2005

Really it wasn’t until I graduated in 2000 and moved to Austin to work for IBM that I ever entered a gym and didn’t turn around and run. I honestly can’t tell you what motivated me to get a gym membership and start going regularly, but that’s when my fitness journey really started.

Your fitness journey begins where you are, wherever that is. And frankly it’s a journey that lasts a lifetime even as your effort into it over the years ebbs and flows.

Next post: Finding a gym and making time

My fitness journey

Almost two decades ago I started working out at a gym, thus began my fitness journey. In all that time I’ve made a whole lot of progress and have finally landed in a place where I’m ecstatic with how I look.

A friend suggested that I blog about my experience, not because I’m a personal trainer or some fitness guru, but because I’m not — I’m just a nerd who started fumbling his way around a gym.

IMG_20180315_084305
June 2011 to March 2018

Initially I resisted this idea because I have zero professional experience in the subject — my Computer Science degree gives me cred to suggest the best sorting algorithm for your dataset, not the optimal superset for the best shoulder workout.

But then Daniel wisely reminded me that I’m the world’s leading expert on my journey, a story that others might find useful. So after giving it some thought, here we are.

I’m blogging about it not because my path was the best or only one, but to show that it might not look like what you would expect. My hope is that in these posts you find something that resonates and helps you on your own individual journey.

To prevent this blog post from being insanely large, I’ve broken it into smaller posts:

tl;dr, here are my fitness “secrets”:

  • Persistence & habit – making working out an integral part of my daily life & schedule
  • Gym familiarity – being comfortable going to the gym and working out without feeling out-of-place
  • Workout repertoire – having a large selection of workouts that I can do based on how my body is feeling on any given day
  • Avoiding vice calories – not drinking alcohol has made it easier for me to consume fewer hollow calories

If you have questions about my journey drop a comment and let me know!

Tumblr: fracturing communities

One of the biggest problems about Tumblr’s demise is that it will permanently and irreparably fracture the communities that have been built there.

Artists whose content is no longer acceptable on Tumblr (or whose content Tumblr’s bots keep incorrectly identifying as not acceptable, and there are many of them) find themselves with a wide range of other platforms to choose from. And that wide range is a negative, not a positive. Because it doesn’t matter how awesome and welcoming a platform is to a content creator if there isn’t an audience on that platform to consume it.

Sadly, I don’t see that there are any good outcomes. Two weeks isn’t enough time for a critical mass of content creators to rally around a couple of platforms and have their followers follow them there. Instead, content creators will fracture across multiple different platforms, take root, and hope that they aren’t just screaming into the void. Content followers will be forced to create accounts and follow creators across multiple different platforms. And that’s going to be too much work for many people.

It’s generally accepted that the death of Tumblr is inevitable and nigh. It’s sad that they will likely take a large portion of their content creators with them, ironically because there are too many places for the creators to go.

Why I live a semi-public life

I intentionally live a semi-public life. I blog about work and personal things here, post on Facebook (generally locked to friends-of-friends, which is still a pretty wide audience), post shameless selfies on my Instagram, use LinkedIn, and am highly googleable. I do this because I believe living an open life breaks down stereotypes and misconceptions.

Growing up I felt implicit pressure from my family to present the “right” image to the public. It could be summed up by: don’t do or reveal anything that might prevent you from running for office on an evangelical conservative Republican ticket. And yes, that’s fucked up. This contributed to my shame about being gay and other people knowing that I’m gay. It also boxed me into not wanting to publicly admit that I might do or enjoy activities that might not be seen as “traditionally masculine”.

Over time I’ve realized that while we all present some front to the world, presenting one that demonstrates the breadth and depth of our person and character helps break down stereotypes and misconceptions and allows us to find commonalities in our shared humanity. In short, it helps us to relate to each other.

Growing up I mentally divided up the world into nerds and jocks — you were either smart or attractive, but not both. This certainly contributed to some of my body-image issues. Turns out that’s not true! I’ve always identified as a nerd and over time have both made peace with my body and made great strides on my fitness journey (more on that in upcoming blog posts). It’s also one reason why I post shirtless photos on Instagram — to break the stereotype of what a nerd looks like.1

I likely present a “traditionally masculine” appearance. But let’s delve a little deeper. I often blog about my work in the tech industry – ok, that reinforces the stereotype. I think most people would agree that weightlifting and running are masculine activities and I love both of those. What about reading, throwing pottery, and partner acrobatics? I love those too, but we might be stretching classic masculinity for some folks. Ballroom dancing, baking, and sharing recipes? All things I enjoy and might make some dude-bro’s head start to hurt.

I’m not done: advocating for women & social justice, bellydancing, and knitting? All things I actively do or have done, and I suspect at least bellydancing does not rate on anyone’s “traditional masculinity” scale. Oh, and of course I’m gay and an ardent feminist. So am I masculine or not? Does it matter? Maybe the definition of masculine is so horribly broken and constraining that it actively hurts men and we need to break free of it.

My point is that once you start seeing more of a person you start to break down preconceptions about what boxes they fit into. But until we start showing more of ourselves than the label on the boxes, we only serve to perpetuate the problem.

My openness didn’t happen in a day. I slowly started revealing more about who I am and what makes me happy over time. The more I do it the easier it becomes. I still hide some of who I am for fear of being rejected or judged but that becomes less with every passing year. Eventually I will become the embodiment of Betty White, who just doesn’t give a damn about what people think. #lifegoals


1 Also, frankly, it’s because I enjoy the affirmation since I finally like how I look after hating my body for so long.

Casey’s 2018 Mix CD

2018 has been a hard year for many of us. Between the shit-show that is the GOP administration to #metoo, my community has really struggled. And this year’s mix CD playlist reflects it. (See the mix cd tag to see prior years.)

Pink’s Barbies and Better Life reminds us of simpler, arguably better, times as does Ben Rector’s Old Friends. I discovered Fire Drills by Dessa and Rescue by Yuna which are great reminders of the underlying struggle women face in this country as well as their strength and perseverance through it. This year I became estranged from some formerly-close people, bringing Somebody That I Use To Know to the forefront of my mind; because really: Take Me or Leave Me.

But this year wasn’t without (musical) redemption as I found Girl Blue’s song Fire Under Water (from a touching Las Vegas tourism advertisement of all places). Sam Hunt’s song House Party and Your Song by Rita Ora always makes me want to scoot-a-boot. Daniel and I heard orchestral performances of Billy Joel’s And So It Goes and Simon & Garfunkel’s The Sound of Silence by the Seattle Symphony this year too. The former was an instrumental arrangement for strings that was simply astounding and I’ve been unable to find a recording of it anywhere.

Also, did you know that Dolly Parton is a huge advocate of childhood literacy and her Imagination Library celebrated delivering their 100 millionth book to kids this year? That’s worth a little 9 to 5 for sure.

So without further ado, this is my 2018 Mix CD:

  1. And So It Goes – Billy Joel
  2. The Sound of Silence – Simon & Garfunkel
  3. Barbies – Pink
  4. Somebody That I Use To Know – Walk Off the Earth
  5. 9 to 5 – Dolly Parton
  6. Your Song – Rita Ora
  7. Rescue – Yuna
  8. Take Me or Leave Me – Jonathan Larson (from RENT)
  9. Fire Drills – Dessa
  10. Fire Under Water – Girl Blue
  11. House Party – Sam Hunt
  12. All Night Long – Lionel Richie
  13. You Can Call Me Al – Paul Simon
  14. Better Life – Pink
  15. Old Friends – Ben Rector
  16. 2 Places at 1 Time – Zac Brown Band
  17. Ladies in Lavender – Joshua Bell

You can listen to the songs on Spotify too. Note the order of the songs have been carefully curated as well, although I don’t think Spotify will let you listen to them in order on the free account.

Bye SFI, hello ExtraHop

After much deliberation and soul-searching I’m changing jobs. Next Monday, November 26th is my last day at Spaceflight Industries. I will then have 3 glorious weeks of vacation before I start my new job at ExtraHop as a lead on their performance team.

I gave notice a month ago but I wanted to stay at SFI to support my team through our first commercial satellite launch — a launch that was suppose to take place today but is now delayed (the challenges of planning around rocket launches was one factor in my decision to leave the aerospace industry).

I’ve learned a great deal during my 2.5 years at Spaceflight Industries. I’ve worked with some brilliant and hardworking people, whom I will miss, and together we solved some really challenging problems in ingenious ways. I appreciate that SFI was willing to take a chance on me being a manager and giving me the flexibility to explore what that looked like for me.

That said, I’m looking forward to stepping back into an individual contributor position. While I’m told I was a good people manager it didn’t feed my soul and I found it really draining. I’ve had some really great managers over the past 18 years and attempting to live up to the high standards I set for myself was exhausting. I’m not ruling out going back into it in the future, but for now I’m excited to sink my teeth into some gnarly technical problems and to sling some code with the rest of the performance team.

I’m also looking forward to working, albeit indirectly, with the esteemed Jeena Khan and her team of writers! Frankly, I’m not certain ExtraHop knows what they’ve gotten themselves into with Jeena and I working together again. The building might not be able to contain our mutual enthusiasm!

Constellation orchestration with Gemini

This is a company blog post I wrote about Gemini, the cloud-based constellation orchestration software my team and I created at Spaceflight Industries. I’m duplicating it here from the original that was posted on 2018/11/12 for posterity.

Constellation Orchestration using the Cloud

Since the launch of Pathfinder-1 two years ago, the BlackSky ground and control team has been working on Gemini, our internal name for our next-generation cloud-based constellation orchestration system. We’ve taken operator interactions with our first demonstration satellite Pathfinder-1 combined with lessons learned from our first-generation software and redesigned the system from the ground-up for fully-automated operations of our Global satellites. From the very beginning, Gemini was designed to scale up with our constellation.

Designed for fully-automated operations

The initial checkout of the satellite post-launch begins with our satellite operators. Satellite constellation operators use Gemini for manual commanding of Global satellites during launch and early operations to confirm the satellite is healthy in orbit. After checkout is complete, the operators take a step back and the satellite is handed over to Gemini automation. Gemini is responsible for orchestrating the tasking and downlink from the satellite, engaging the groundstations around the world to communicate with the satellite during contact passes, create and upload satellite mission tasking scripts, manage telemetry & health logs, and alert operators to any anomalous telemetry. The automation is designed to protect the satellite but as additional safeguard Gemini alerts operators in the event of anomalous behavior so that they can intervene if needed.

In addition, Gemini also:

  • plans images and tasks them across the entire constellation
  • orchestrates connectivity with multiple satellites around our world-wide network of groundstations
  • manages the radio chain & antenna tracking
  • propagates satellite and equipment telemetry in sub-seconds from groundstations to operator dashboards during contact passes
  • monitors the entire system in real-time and alerts on anomalies
  • provides infrastructure for our image processing pipeline, code-named Obscura internally, that does georeferencing and orthorectification and more
  • exposes web-based UIs to operators for manual satellite commanding in addition to insight into automated activities and constellation health

Cross-team development and validation

Gemini development was a collaborative effort using input from many cross-company teams to ensure that we could test the system in the same way we expected to use it while in space (as they say in aerospace: test what you fly, fly what you test). The Gemini development team worked closely with operators to design a system that provided the control and insight they needed for successful satellite operations. Our development team worked hand-in-hand with flight software and hardware AI&T teams to validate all radio, commanding, and telemetry interfaces. An agile development approach allowed operators and other stakeholders to request features and resolve issues through an iterative testing and release process.

Our validation team created multi-satellite constellations using virtual satellites — a novelty in the aerospace industry — to ensure our system scalability. They also created automated deployments and tests to run nightly against our physical test satellite (Flatsat) to validate end-to-end radio equipment functionality and full-system integration. This innovative testing showcases the robustness of our constellation automation ahead of launch and allows the cross-functional team to evaluate the space to ground system while still on Earth.

Under the hood

Gemini was built leveraging technologies and practices that, while common in many software development shops, are new to aerospace. Our microservices architecture runs on EC2 instances running CoreOS in Amazon GovCloud and in CoreOS virtual machines on top of VMware ESXi hosts in our groundstations around the world, allowing a unified architecture across these disparate environments. Microservices are coded in Python 3.6, primarily with asyncio/aiohttp, with a smattering of node.js and are deployed via Docker containers.

To handle the firehose of critical telemetry, both from the satellite as well as the groundstation systems, we propagate telemetry in real-time using Redis pubsub then store it in KairosDB/Cassandra and expose it to operators in Grafana dashboards. WebSockets are used for real-time service alerts and messages making them available nearly instantaneously to the user. Our Polymer-based operations UI allows for tight coupling between the microservice source of the data and the operator interface all while being presented together as a single cohesive interface. Using encapsulated web components allows quick deployment of new features and easy integration with third party tools.

We use the HashiCorp stack (Terraform, Consul, Vault, and Nomad) to manage our infrastructure as code, Gitlab for source management, and Pants/Concourse for builds.

Launch ready

We’re excited to put Gemini to work when the rubber meets the road with the upcoming Global launches!