I’m Derrick, a Senior Software Engineer at ActBlue! My personal career mission is to do good work with kind, capable people. I can do that here. We’re a relatively small organization of around 70 product managers, engineers, and designers as of September 2021. My specific team consists of talented engineers distributed across the U.S., with half of us dotted along the West Coast and the rest of us clustered in Austin, TX. I’m in the Bay Area. I know the names and faces of most of my colleagues and never feel like I’m sending a cold message to someone about a project. Here’s a day in my life working on the ActBlue Technical Services team:
- I usually start my morning around 9 a.m. On average, I spend just over an hour each day in scheduled meetings, and another hour in ad-hoc calls with teammates talking through an approach, debugging, or doing traditional pair-programming. Even on the most meeting-heavy days, I have afternoons to myself to focus.
- Mornings before my first call are usually spent working on a ticket, engaging in code review for whatever someone on my team submitted yesterday, or picking the next ticket off the backlog and making sure I have whatever I need before my team standup, which we do three times a week. It’s wild how much socializing we’re able to fit in around 15 minutes of updating on sprint work. During our team standups, we usually each share something we learned while working on our ticket and a roadblock that we either worked through or are still idling at. If someone is currently blocked by something unknown, chances are someone else on our team will volunteer to look at it with them. Within 20 minutes, we’ve either gotten a solution, a clearer theory on what to try, or a message sent in our help-a-geek Slack channel soliciting insight from someone who can help unblock the issue.
- One thing I really appreciate about meetings here is that they tend to start with an honest check-in. People ask “How are you? Is now still good?” and listen to your answer. My co-workers feel comfortable saying things like, “I’m a little frazzled, but I can be here if you’re okay with me needing something repeated more than usual.”
- After my first call, I take a walk and stretch a bit. We’ve all got a year and a half of experience now, but I’m still finding the right rhythm for breaks when working from home. I try to get up and at least walk between rooms after each call.
- I’ve got an hour and a half before my other meeting today, so I jump into some feature work. This ticket involves backfilling data to some records on a high-write table. I take a couple of minutes to think through approaches and what their limitations would be. Afterward, I check our wiki to see if we have an established pattern and where that does or doesn’t fit my use case, depending on the size of the backfill. I take a crack at writing a SQL query against our reporting database to see how much work I have to do. It’s got a few complex joins, so it takes some time to get right. I manage to get it working before the meeting, but it’ll need about 20 minutes to run. I make a note to follow up on it afterwards.
- Meeting time. It’s a call with our service provider. We jump in and hash out some complex edges of our use case and some portions of our integration where the docs are missing something. We raise some questions, they note them down, and send us answers in Slack within a few hours.
- My SQL query finished during the meeting. I message my team’s product manager to tell him the tradeoffs and to clarify the organizational needs. I recommend a less comprehensive backfill so we can handle a few million fewer records. He’s on board with the shorter approach, so I plan to spend the rest of the day writing up the code for the backfill. I drop a message in my team’s Slack about my simpler plan and how I’d like to do it to see if anyone has suggestions or concerns, then I go stretch and eat lunch.
- I come back and write the backfill. I deploy it alongside a PR to update a bit of our tooling someone else made earlier in the day. While it’s deploying and running, I weigh in on a few Slack threads (some work-related, some fun), and start planning tomorrow’s batch of work.
There are several things that make me excited to work here. More than anything else it’s the mission and the people. The people I work with at ActBlue are all deeply committed to making things better for ourselves, our immediate communities, and the country at large. The easiest way to sum this up is recognizing that our teammates are other human beings we’re reciprocally accountable to. We give each other compassionate feedback – code reviews are anchored in curious questions instead of arguments. We disagree with each other constructively – people are people, not just an amalgam of their ideas. When someone has an incomplete or ill-fitting idea, we name that and work together toward the bigger goal.
We do a lot, but I think our team attends to its culture well. We have big ideals and goals, and a lot of our culture decisions address the questions of how hopeful, caring people build a sustainable institution. There are a lot of organizations with good intentions that want to build cultures oriented toward a more just world. I’m here because I feel ActBlue is working hard to actually do it.
Thanks for spending the day with me! If you’re interested in joining me and my team in the important work of building software to support the small-dollar donor movement, apply here!