Did you ever imagine yourself at work, drinking coffee, working on an acceptance test for a CLI that paves an IaaS environment for your users to do their work on? That between sips you’d work to automate deployment of a heavily distributed PaaS software system in a fraction of the time it would take to deploy by hand?
Surprisingly, this is not what I dreamt of as a young girl, but I could not be more pleased with my unforeseen new morning routine.
I’m Genevieve, anchor of the Pivotal Cloud Foundry Infrastructure team.
This is a day in my life!
I like to start early.
As such, this is what happens before breakfast: I (sometimes) wake up before my alarm, jump out of bed, grab my spin clothes, and head out the door to a cycling studio nearby. Angela, another software engineer with Pivotal Cloud Foundry, meets me there and we strap in. After class, I race home, get ready for work, and pick up a latte on my way.
Everyone gets to the office before 9 AM because we have catered breakfast! You don’t want to miss out on the omelette or juice bar.
At 9:06 AM, we ring a cowbell and stand in a circle around the event space for the office-wide standup. This standup is a chance to introduce new folks to the office, share interestings, and highlight upcoming events in and out of the office. This helps us start the day off together!
After office standup, every team has their own standup.
Our team is composed of four engineers and one product manager. We pair program at Pivotal, so each pair will give a status update on their work from the day before. After that, we decide pairs for today.
Our standups are pretty quick because we don’t have any remote team members right now. Our team sits next to each other and we inevitably talk throughout the day, sharing context on our respective stories.
If you want to know how remote pair programming works, check out Brenda’s post!
This is where the fun begins, it’s time to start programming/debugging/exploring.
Cloud Foundry is an open source Platform-as-a-Service with contributions from a number of organizations and individual developers. My team works entirely in the open-source.
Working with the open-source community is exciting because you get more brain power on a problem. I’ll often find issues or pull requests in my backlog from individual developers looking to add support for some new feature or they are simply interested in contributing a refactor.
I like that I can talk about what I do in great detail with anyone… unfortunately for those I'm talking to.
My team maintains 3 very different projects - cue the Charlie’s Angels theme song. They are:
consul are 3rd-party software components that we packaged to run on
We maintain those packages for the numerous teams working on CF. You can learn
more about these components with
Now, on to the new kid on the block.
bbl supports Amazon Web Services, Google Cloud
Platform, and Microsoft Azure.
To get a BOSH director and load balancers for CF, run:
export $BBL_IAAS=iaas-of-your-choosing export $BBL_ENV_NAME=santa-monica # export the necessary credentials for your IaaS bbl up bbl create-lbs --type cf --cert $BBL_LB_CERT --key $BBL_LB_KEY
To tear it all down, run:
bbl down # yup, really
bbl is opinionated in terms of networks and security groups.
We are currently completing a security feature where
bbl deploys a jumpbox in
front of your BOSH director. You can think of a jumpbox as a bastion: a single
point of entry to the system. A jumpbox has fewer ports open than the BOSH
director (only an ssh port) and the ingress rules for the BOSH director can be
reduced to only the jumpbox instead of accepting traffic from anywhere on a
handful of ports.
This is important because it drastically reduces the surface area with which your CF or concourse installation can be compromised.
You can experiment with it on GCP:
bbl up --iaas gcp --jumpbox --name super-duper-secure-environment
Creating, configuring, securing, migrating, and destroying “things in the cloud”
is tricky and fun. Different IaaSes have different rules and different
bbl users can
have very different needs.
We use terraform to create these resources as it supports the IaaSes we currently pave and the ones we want to support in the (near) future.
At Pivotal, we <3 test-driving and automation. Being able to do that with infrastructure management is made easier with terraform.
Side Note: In terms of test-driving, Cloud Foundry is a really interesting case. Nima and Amit have a great explanation here!
To learn more about
bbl, check out Angela and Christian's talk
on deploying Cloud Foundry with bbl, BOSH 2.0, and cf-deployment.
Alright, where were we?
In the middle of the morning, we take a break. You can sit on the balcony to get some sun, go for a walk, or chat others up.
After a break, we work till lunch.
Speaking of lunch, it's a really popular time of day for events and clubs.
Angela and I run the Diversity & Inclusion initiatives in the Santa Monica office. She led an incredible book club for Citizen: An American Lyric.
Lunches for D&I are sometimes a support forum and sometimes action-oriented where we plan for upcoming internal or external events, like with Project Scientist.
On days without lunch events, I like to walk one block over and down the California Incline to the beach. I’m from Montreal so I find time during the day to call my family back home. Or I listen to Kaytranada’s 99.9% because it’s phenomenal and will never get old.
As anchor, once a week I have a pre-IPM with Evan, our product manager.
An iteration planning meeting is where the team meets to talk about stories in the backlog and point them based on their anticipated complexity.
In the pre-IPM, Evan and I work to flesh out stories with acceptance criteria. We are considerate of writing stories that deliver real user value in incremental units of work for the engineers. Sometimes as anchor, I represent the engineering team by negotiating the prioritization of certain chores that the engineers feel are important to improving their workflow.
After pre-IPM, I return to my pair and we continue any stories in flight.
We take a break in the middle of the afternoon too because, hello, our office is in Santa Monica by the beach and sunshine is addictive!
Our day ends at 5PM and we disperse.
At this point you might be thinking: “This schedule feels a little rigid.”
Pivotal has a set 9 AM - 12:30 PM / 1:30 PM - 5 PM schedule.
That’s 35 hours with your team. The other 5 hours can be moved anywhere. These five hours a week don’t need to be spent in your team’s backlog or in the office. You can explore new technical domains or work on diversity and inclusion efforts. It’s flexible in time, topic, and location.
We believe in sustainable pace - you hear it a lot in the industry and we really practice it.
When you take vacation, even to somewhere with cell service, you don’t have to worry about being contacted. We respect each other’s mornings, evenings, and weekends.
Depending on the week, I’ll spend flex hours at a coffee shop on Saturday morning. I can pick up an interesting story in the icebox or work on an iOS/Go application just to change it up!
We have a yoga class in the office on Monday nights!