As we build and grow HubTran, we’ve spent a lot of time thinking about the culture we’re trying to build. I’ve written about the HubTran values before. Obviously these values are part of our culture, but they aren’t the whole story. It’s one thing to talk about what kind of culture you want, it’s another thing to make it real.
I’m excited to be a panelist at Digital Ocean’s TIDE SF: The Power Of Simplicity next week.1 Preparing for the panel gave me an opportunity to organize my thoughts on how we scaled HubTran. In particular, I’m going to focus on server scaling today. I’ll write more about scaling other parts of the organization in the future. Are you in San Francisco? You should come by! It’s free! ↩
In the past, I’ve written about playing soccer and how that has impacted my day to work. Outside of work, I also coach a soccer team of 6 to 8 year olds. This season was my seventh season coaching kids this age, and I feel like I’m starting to see the same pattern over and over.
Over the weekend, I had a great idea for a blog post based on It Doesn’t Have To Be Crazy At Work. I got to the office on Monday morning and wrote it. On Tuesday, I re-wrote it. On Wednesday, I re-wrote it again. On Thursday, I re-wrote it for the third time. Today, I realized it just wasn’t good. I’m a bit bummed about it, but sometimes that happens. In writing and in code, not every idea is a good one. Instead of publishing something I’m not happy with, I threw it away. In it’s place, I’m giving you a picture of my office dogs.
Last week, all of HubTran got together in Chicago for our second annual company summit. We spent three days together talking about what we’ve been up to and where we’re going. It was a great opportunity to get to know each other better. During the summit, a number of podcasts came up in discussion. I loved hearing about what people listen to, and wanted to share our podcast list! I was excited to see the variety of what we listen to. Sure, How I Built This is popular, but I was happy to see a variety of non-technical podcasts as well.
There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton
Hiring is one of the hardest problems in software development. When we hire, we’re trying to determine if a person has not only the technical skills necessary to work at HubTran, but also the interpersonal and communication skills. We need to know if they share our values and are capable of working remotely. At the same time, we need to help them decide if HubTran is the kind of company they want to work for.
This problem frequently appears in #testing on Elm Slack, and I’ve been curious about what a “dependency injection” API might look like. Dependency injection, in general, is quite simple. If you have something that you want to test (or just isolate), then instead of working with that thing directly, pass it as an argument wherever you need it! This repo is an example of what it might look like to use Dependency injection to make Cmds easy to test!
As a person who runs every day, I spend a lot of time listening to podcasts. A few weeks ago I heard Sam Sanders interview Niecy Nash and was struck by a comment that Niecy made:
One of my favorite parts of being the CTO of HubTran is building an amazing team. We try to do that a number of ways. Obviously, we want to hire outstanding developers (I’m email@example.com if you are interested in learning more!) but we also want to help the team improve. One method we’re using is a book club.
Getting support from a software company can be a painful experience. It's not unusual to spend 20 minutes on hold only to talk to somebody who is clearly reading from a script. They have no idea how to use the software they are supporting, let alone how to fix your issue. At HubTran, we want our support staff to be able to solve your problem quickly. That's why we've decided to have our development team provide our customer support.
To get started, we want to share a bit about the software development team at HubTran. In particular, we want to talk about our core values and some practices that support our values.