Aaron's Blog

Tech, tinkering, and occasionally, a banjo tune


Moving (Back) To Linux

I'm a bit of a productivity nerd, I'll admit. Over the last couple of years, I've cultivated a workflow that revolved around a lot of OS X tools that I LOVED:

  • Alfred
  • TextExpander
  • iTerm2

These tools were my bread and butter. My professional life, if you will. However, I found myself in a bit of an odd spot in recent months--my MacBook Air was proving to be underpowered for running VM's, and doing any sort of virtualized anything (which I wanted to be able to do for some training and other projects). While I wanted a shiny new MacBook Pro, I found it to be overpriced, and something that I couldn't justify spending the kind of money on, despite that all of my tools were built exclusively for the MBP platform.

So I decided to move back to Linux. At Rackspace, I'd had an Optiplex workstation that ran Fedora, and it worked OK, if not for the fact that every update screwed up my display drivers. I honestly wasn't very keen to be back on Linux. The last thing I wanted to do was be in a situation where I'd have to cobble some sort of solution together, and it would require more time and effort that I have at the moment.

Serendipitously, one of my former coworkers and her husband turned me onto Korora. To be fair, there's not a whole lot more that Korora has over Fedora. Thus far, it's proven to have some prettier defaults. Not much more than what Fedora would have, but it beats taking the time out of my day to hunt around and change things.

To my delight, the experience has been surprisingly Mac-like (even to the point of competing with ElementaryOS). To my further delight, it has dark themes out of the box (swoon), which makes working at night much less stressful on the eyes.

The biggest challenge in moving back to a Linux distro as a daily driver has been finding a replacement for Alfred & TextExpander. The terminal challenge was easily solved with either terminator or tmux (now being a bit wiser, I'm using tmux with GREAT success). However, finding something that had similar functionality to TextExpander and Alfred was a bit difficult at the onset.

I'd tried Albert, an Alfred-like replacement for Linux, but to no avail. While Albert's got a decent start, it lacks quite a bit of Alfred's functionality. For example, Alfred has built-in clipboard management (now using Clipit), built-in snippets (which Autokey seems to do a decent job of), and workflows, which I haven't quite figured out a replacement for and probably won't at this point since I wasn't using them all that much anyways.

At the time of writing this post, I'm back up to speed in terms of where I was with my Mac. I've managed to recreate my level of productivity and automation with the following:

  • Alfred --> Korora menu button/Clipit
  • TextExpander --> Autokey
  • iTerm2 --> Terminator/tmux

Next on my productivity list is tackling my dotfiles. More to follow!



How I Work

A long time ago, in a galaxy far away, I thought I was productive. I used a whiteboard (still do, by the way) for my todo lists, was running a Windows laptop for work, and that worked. When I moved to Texas and started working at Rackspace, things changed...drastically. First, my workload changed, and it changed how I had to approach my workload. I went from a workload that was so full of technical snowflakes (read 'Unique and one-off issues') and remote support (me logging into customers' laptops and desktops), that any sort of automation was useless.

When I started at Rackspace, I found that my workload was largely repeat issues (low disk on a server, same Apache misconfigurations, same user creation specifications). This led to me using quite a few tools that were focused on 1.) accurately and quickly diagnosing, or solving those issues, and 2.) using tools that allowed me to make templated responses (a la TextExpander and/or aText). While I tend to shy away from response templates, a consistent queue of 80-100 tickets and a focus on response times necessitated working quickly, and utilizing tools that allowed me to do so.

That said, I still carry that need and drive to work quickly and efficiently, and my work setup and the software I use (I feel), reflect that need. My setup also enables me to be mobile and pack light (sans the desktop setup), since working remotely is definitely contributing to my former coffee shop rat habits.

So let's get to the good stuff:

Gear and Software

My Gear

  • MacBook Air (early 2015)
  • Custom desktop dual booting Fedora and Windows
  • 2x Dell 2715Q monitors
  • Logitech Z533 desktop sound system

When I'm On the Move

Mac OSX Tools/Sofware

Other Apps

My Workspace

  • Hand-built iron pipe desk (I'll show it off in the week 5 post for the Support Driven writing challenge)
  • ...Starbucks*

Other Tools

So now that those are out of the way, let me get to my favorite tools. The ones that are indispensable.

My Favorite Tools

Favorite OSX Tool Software:

BetterTouchTool: It was either this, or Atom. I know, who knew a text editor could be awesome. Well, it is, and you should totally use it (or SublimeText), if you're not already. But anywho, the real star: BetterTouchTool. I'm a sucker for window snapping. You know, having a split screen? I use this DAILY. Not only does it do window snapping, but it also creates hotkeys/macros for doing snapping, other window positioning preferences, and various and sundry other functions. To be honest, I'm likely underutilizing it, but it's awesome. Go snag it.

Favorite Non-Digital Tool:

Gridit XL Organizer: Let me say, it's not easy having a favorite out of the tools/gear that I have. The Code & Quill notebook almost won out here. But here's why the Gridit wins: It took the chaos that was my backpack, and brought it all into order. It holds all the cables I have (and let's face it, good cable management is next to godliness) and keeps them tangle-free and organized. It's without a doubt the best $15 (at the time) I've spent on gear.

Favorite WebApp:

Brain.fm: Hands down, Brain.fm is worth the subscription for me to stay sane and focus. I don't do music with lyrics when I need to focus--I end up jamming out in the middle of coffee shops and get weird looks. I'm stuck on this one song in the "Intense Focus Mode" that I just end up on a roll every single time I listen to the track. I've used it when I'm relaxing too (e.g., reading a book, or writing this post, for example). I can't get enough of Brain.fm. Not only is the app great, but their support is fantastic, and responsive. Definitely worth the subscription.

As a note, there are some tools that I've tried like Todoist, Evernote, Magpie, and Wunderlist, just to name some of the ones I formerly used. I've found that fore me, they just haven't stuck. Instead, I stick to my Code & Quill notebook for notetaking, and have started using Slack's native 'remind' function for task management (they start off on the whiteboard so i remember them first, and then make their way to Slack). This seems to have streamlined a lot of my task management and has done away with the task/notetaking tool overload that I've found myself in lately.

Well, there you have it! This, ladies and gents, is how I work.

* So Starbucks requires a bit of explanation and defense (as most people who know me well find it a bit appalling that even a mild coffee snob like myself would spend his/her time at a Starbucks). Let me start by saying, I've found that most local coffee shops in SA do one of two things well: amenities or coffee. There's really not a place here that does both well. Most of the local coffee shops focus on the latter, and rightfully so. However, there's a bit of a knock-on effect: there's a ton of people (most of them students, or remote workers like myself) all pounding the poor little consumer-grade wireless network to death. So I have a choice: Great coffee and crap internet, which as most workers know, it's kind of needed to do our jobs, or mediocre coffee and internet comparable to what I have at my house. I opt for the latter, since I tend to do the coffee pretty decently as a former barista.

It Came From the Night Shift

Whew, I'm catching up on posting for the Support Driven Writing Challenge, and I'm fairly caught up at this point. So this week's post is a 'Day In the Life' of whatever it is you do. Since I'm in my first ever third shift position, this should be interesting!

The Schedule

Before coming to DigitalOcean, I was in a 'normal' 9-5 position. Then, I flipped completely over to 3rd shift when I joined DO. Now I'm working 11pm CDT to 7am CDT. I'll walk you through what my typical day looks like:

  • 14:30-15:00: Wake Up, get ready
  • 15:00-17:00: Head to Starbucks to write, learn, catch up on stuff while people are in the office, maybe run some errands
  • 17:00-17:30: Head home
  • 17:30-20:00: Start cooking dinner, run other errands
  • 20:00-22:00: Take a nap and get ready for my shift
  • 23:00-07:00: Do all the work

That's a quick breakdown of the schedule. But what, you ask, does a Customer Success Engineer actually do?

What it is I say I do at DO

Let me start by explaining my team's mission: [To] forge and foster close relationships with key customers by ensuring their success on our platform. What does that mean practically? Well, there are really three 'hats' that our duties fall into:

  • Account Management
  • Tier 2 Support
  • Solutions engineering/consulting

So on any given night, I can have a mix of tasks that is a random collection of those duties. Right now, there is a pretty heavy leaning to support and account management requests since I work primarily with our APAC customers. Let me give you an idea of how these sorts of things fall into a normal night.

I'll usually come in and give a nod to my colleagues Huck and Jon (depending on the night) on Slack as they're headed out for the evening. I'll also ping our Support team and Cloud Operations team to let them know that I'm in, and to ping me if they need anything. From there, I'll catch up on what's gone on during the day. This usually consists of reviewing what's happened in our Slack channels (we have a general channel, as well as a 'standup' channel for any notable issues that occurred, or that need follow up) and perusing my email. A quick note here: I get TONS of email. I've got everything filtered so that anything that doesn't come in through HelpScout, and isn't a general notification gets pushed to the top of my inbox.

After I've caught up on the day and email, I'll check and see if there's been any movement on any Jira tickets I've opened previously, or if anything is needed from me on them. Nine times out of ten, one of my DayWalker colleagues have addressed the Jira if it's a customer-facing/impacting issue.

From there, the rest of my time is spent responding to support requests and Hatch(our initiative to support startups as they launch) applications. The requests that we get are pretty varied. Most of the time, the requests that come in are that a droplet (our term for a VPS) has become unresponsive, or that the customer can't log into the droplet and need us to boot it into a recovery mode. However, we do get some interesting issues during the night. For example, a customer's MongoDB cluster had an issue that resulted in their metadata getting corrupted, and we had to troubleshoot that. Keep in mind that DigitalOcean is a self-managed platform, which means we don't log into customer droplets. This can make troubleshooting a challenge. It's forced me to get better at thinking through an issue, how I would address it/troubleshoot it, and explaining that process to a customer. We also see issues end up being symptomatic of something larger, and may require the customer to re-architect their infrastructure.

In addition to the customer-initiated support requests, there are also the inevitable issues that arise when dealing with technical gremlins. These tend to manifest themselves in us having to reboot hypervisors (underlying infrastructure that runs customer droplets), and can be for any number of reasons.

Our solution engineering/consulting process is in the process of changing. When I started, each of the Customer Success Engineers at DO were responsible for consulting/engineering requests and calls that came in to our team. Now, our Customer Success team does more of a qualification process to see if a customer would need to have a chat with our Solutions team, who are the ones who take on more of the engineering/architecting sort of work. When I have those sorts of calls scheduled at night, they now tend to fall into the pre-qualification sort of vein where I chat with the customer to see what problem they are currently experiencing, how they have their infrastructure set up, and what their end goal of the re-architecture process is.

When I don't have any requests, or issues to address, it can be a bit lonely/quiet, especially working from home. So I'll fill my time learning what I can via Linux Academy, Udemy, and my ever-growing stack of Oreilly ebooks. When that fails, I'll get up and try and give myself a change of scenery. At 3-4am, this is a bit difficult. I'm not too keen on wandering around in my Cthulu slippers and having our local law enforcement called due to the 'creeper in octopus shoes walking around the neighborhood' (note: this has NOT happened yet, and I aim to keep it that way). So sometimes, I'll go outside and smoke my pipe, or at the kitchen table, or in front of the TV with some anime playing in the background. In the case of last night, a fire at 2am sounded grand, so I made one and worked outside last night.


I wrap up my shift by doing a brief handoff with our first shift CSE's, greet the wife as she wakes up and heads out to work, and then promptly conk out for the 'night'. I'll be writing a follow up post to this about surviving 3rd shift, since I feel like I could write a small book on it. Stay tuned for more!



My Story

I've told pieces of my story in recent posts. You know, the ones about Homebrewing being a salvation, and moving to a role in Customer Success at DigitalOcean. I don't think I've ever posted about the long, circuitous route that my career has taken. Perhaps it's time to tell you the story. So sit back and grab a cup of joe...this ride is known to cause whiplash. Trust me, the trail from aspiring academic to customer success engineer is not exactly the smoothest.

The Younger (Wonder) Years

My single-prop Cessna carrying supplies to a remote African village hit a patch of turbulence, sending my stomach lurching...or at least that was the dream I had when I was a kid. All I wanted to do was be a pilot. I was going to go to school like all good kids do, graduate, and be a bush pilot. Things changed when I realized that the school I wanted to attend was planning on closing.

In the mean time, I had taken a trip where we traced the 101st Airborne's route through Europe during World War II. It was the trip that forever kicked off a desire to learn foreign languages (specifically German). I returned from the trip in the Summer of 2002, met with my guidance counselor, and had her completely rearrange my sophomore class schedule just so that I could learn German (I had also been taking Spanish up to that point). Over the next three years, I did everything I could possible do to learn German. As a sophomore in high school, I'd aced the county German exam (and found 3 grammatical mistakes), taken the national German exam (scored a 96), and was invited to participate in the American Association of German Teachers Summer Study Program. Not to mention, I was the first person from TN in 12 years to be selected for that program.

Until this point, I had thought that I was going to spend the rest of my life and career in Germany, with a German wife, happily speaking German. All roads led to Rome...er, Berlin, in this case.

College (Or, The Real World Sets In)

I graduated in 2005 having kicked the proverbial pants off of my high school's German program. Along with two friends, we'd forced the school to start providing German AP classes, had all scored high marks on the German AP exam, and were going to continue our German studies in college. In fact, I'd waived up to senior level courses, completed the required classes, done another exchange stent in Leipzig during the 2006 Weltmeisterschaft (World Cup), and was merrily on my way to being a career academic. All the while, I'd somehow acquired a bit of technical acumen (designed a website for a local non-profit, fixed computers for friends, etc.)

Here's where the path gets a bit wonky. While I'd completed the German degree requirements, I was at a four-year institution that required me to complete the whole four-year stent in order to earn my degree. I was two years in, and had no idea what I was going to do. Me being the chatty dude that I am, I picked up another degree in Speech Communication. What better combination? I could ramble in German, and put a bit of communication theory behind it. "How to Be Persuasive in German" should have been my senior project...

Oh, did I mention I met an amazing woman along the way? We knew each other since high school, but started dating in college. Our relationship had blossomed to the point that the thought of pursuing further German studies was going to take me far away from her. We'd spent 2006-2009 dating long distance, and I wasn't keen to be further away from her (we also began our relationship by starting to date each other two weeks before the three-month exchange trip I took to Leipzig).

I decided then that I would pursue further studies in Communication, and enrolled in the MS of Communication and Information program at the University of Tennessee.

Communication is Cheap...Literally

After Ashley and I graduated, we both ended up back in Tennessee. I had started my Master's program, and she was studying to be a forensic pathologist. While searching for a job on campus that didn't involve spending my days at the local Chick-fil-A breading chicken, I started applying for assistantships. My department's assistantship paid ~$300/month (which was NOT going to cover rent), so I looked to other departments. After 13 rejections, I landed a job at the Office of Information Technology at the helpdesk.

Over the next two years, I worked on just about everything related to desktop support and have the horror stories to prove it. Professor-dad screaming about how his non-student daughter's desktop got infected by malware and we're not helping him? Check. Crazy cat lady's ancient, dust-bunny infested desktop that has barely enough resources to run notepad? Check. The student who has a completely disarticulated hard drive and wants us to 'fix it?' Oh yeah, check.

Graduation was looming, as was my marriage to Ashley. I decided that a $1000/month job wasn't really going to cut it for a young family (and neither was surviving on the rest of my student loans), so I met with my then manager, beefed up a resume with her help, and eventually ended up with a contract job at Pilot/Flying J where I re-architected their desktop deployment process as contractor in their QA lab. It's safe to say that the deployment process was...archaic. In the first two months of my contract, I was able to reduce the number of 'golden images' from ~30 to two, decrease the average deployment time from two weeks to four hours, and decrease the total space taken up by the images from ~100gb to < 16gb. At the end of the contract, I moved next door to a small MSP--I wasn't going to be able to get them to use WSUS (which would have brought its own challenges) and was still going to be a contractor with no benefits.

Starting Support, Leaving the Southeast

The move to the MSP I worked at was my introduction to a proper ticket queue (often hundreds of tickets). I started beefing up my support chops there, where I supported everything from random line-of-business applications for doctors, to Outlook, Exchange, MSSQL, and everything in between. You read correctly--I was a Winows admin at one time (shudders). But honestly, without that job (or really any of my technical positions), I wouldn't be where I am. It was there that I also beefed up my technical chops. I took the little that I knew from my job at the University of Tennessee's helpdesk, and the bit that I knew about Windows and applied that in this job.

Eventually, I realized that if I wanted to grow technically, it wasn't going to be as a Windows admin in the Southeast US. I'd come to find out that if you're not in Atlanta, Georgia, and not in/around the research triangle in North Carolina, finding a technical job that pays well and wasn't one of those 'purple squirrel' type positions was nigh impossible. If I was going to get anywhere, I needed a mentor. Thankfully, one of my best friends took me under his wing. For around 6 months, we met every Tuesday night at a local coffee shop talking Linux, operations, and everything in between. He even gave me a project that was designed to incrementally teach me more about the basics of being a Linux admin.

At around the six-month mark of our coffee shop meetings, I started applying to companies outside of Tennessee. Usenix, AWS, NIST, and Rackspace were the companies on my list, and amazingly, I got interviews with each one. The mentorship had paid off, even if I was a bit green and hadn't worked on any Linux production infrastructure up to this point. In the end, I ended up getting turned down from AWS, NIST moved too slow, Usenix didn't have a competitive offer, and while I had been turned down from Rackspace initially, they offered a position (Linux Technician) that would allow me to learn, work on customer production infrastructure, and provide the space for me to grow and learn more about being a Linux admin.

Texas and Beyond

Loaded Uhaul
The move from Tennessee to Texas was the hardest thing I've done in my adult life. My wife and I moved 16 hours from all we'd ever known, to a town where we knew two people (my aunt and uncle, who have been our surrogate parents in the time we've been in San Antonio). The drive was hard, and the first 6 months of being in Texas almost broke us. We missed the mountains, the people, and our homes. Ultimately, we found a home at Rackspace. Some of our dearest friends were made there as we met for the first time at the Tamale Festival in sub 40F weather (unusual for San Antonio).

The time I spent at Rackspace grew me immensely. I went from knowing only what I had learned in the project my mentor had provided me, to working on projects that affected a number of customers, writing automation to take some of the pain out of support as well as reduce the number of hours we spent supporting customers, and mentoring other greenhorn admins.

While Rackspace was an amazing opportunity, I realized that the need I have to keep growing and learning wasn't getting satisfied, and I was getting burnt out staying in the same place. I then started looking for a new role. I needed something that would allow a bit more creativity, as well as further growth. In March, I took a role with DigitalOcean, which you can read more about here. It's been an amazing chance to grow technically, and touch more cutting edge technology than I would have at Rackspace.

Looking back, I can say that each new role and phase of my career led to the other. The path to support (yes, Customer Success is support, at least at DigitalOcean) hasn't been a straight one at all. It's been a bit caddywhompus at times, and has entailed making decisions that I never thought I'd have to make (like moving). But I can see that the roles built upon each other, whether it be developing new technical skills, or improving the ways in which I communicate and relate to customers. I also see the direct and tangible results that being in a mentoring relationship has had on my career. I'll leave with a couple of thoughts: 1.) Unless you know 100% for a fact that support is the career you want to have, starting a career in support is never a straight path. Those of us in the Support Driven community know this, and come from various and sundry backgrounds that have led to where we are. 2.) If you're starting out in a support role, I can't stress enough how important it is to be in a mentoring relationship. It's the difference in say, using two sticks to start a fire, and pouring some jet fuel on that fire. It made all the difference for me, and is something I actively try to pass on as I mentor other admins.

So You're In Customer Success, Now What?

Starting Out

Back in April, I started a new role as a customer success engineer with DigitalOcean. Admittedly, I didn't know what to expect coming from being a systems administrator. During the interview process, I got the impression that the role was a mixture of account management, solutions engineering, and support.

Now three months into the role, I can confidently say that with regard to duties, my impression was more or less spot on. But in practice, the role is so much more than that. It's more than taking care of discounts, payments, and other account level issues. It's more than specing out a solution for a customer, or writing scripts to provision that solution automatically. It's more than just making sure that an issue is fixed, or that you have the answer to every technical question.

There's a relational element to customer success that's hard to quantify. The best way I can explain it is like this:

Suppose your grandmother, significant other, or best friend suddenly starts up a company. They come to you and ask you, "Heya! I want to use for my startup and need your help. Can you help me out?"

What would you do? If you're invested in that person, you'd likely do everything you can to help them out. In practicality, it might look like:

  • Taking a hands-on approach to managing their account to ensure that they have a butter-smooth on-boarding process
  • Take an extended time to understand what they're doing with their business and what they're looking to do on the platform
  • Advising them about any pitfalls that they might encounter along the way
  • Making sure that they now about everything on the platform that will help their business grow
  • Showing genuine concern and empathy when things aren't going so smoothly
  • Being transparent about the platform's shortcomings/weak areas and suggesting ways that they might be able to work around those weaknesses

In short, you'd do everything you feasibly can to make sure that their company grows and succeeds. So yes, being a customer success engineer (or customer success manager, in other industry-specific parlance) is different than being an admin.

So how does one make the transition from being an admin to being a customer success engineer/manager?

Moving from Admin --> Customer Success

The last three months have been a challenge, I won't lie. I'd developed some bad habits in my last role, and it comes down to two big ones:

  • Lack of empathy (largely due to ticket crunching...when your team addresses hundreds of tickets a day, it's hard to have enough time to be empathetic in every one)
  • The aforementioned being myopic when addressing issues/tickets

In short, I didn't care. I didn't have time to care. Don't get me wrong, it's not that I didn't want to care. The last thing I think anyone wants in their job is to come off as apathetic and disinterested. However, high volumes of support tickets don't lead to an environment that engenders empathy and a holistic focus on customer accounts.

So how did I get past that? Well, for one, starting a new role helped. I didn't feel as burned out, and being in a new environment was refreshing. Also, accountability is another HUGE help. When you're part of a team that calls you out for not being empathetic, or showing genuine care for your customers, you learn quick that you need to change your behavior. The other thing that's helped is being involved in the customer success community. For me, that's looked like:

  • Reading up on customer success literature (So far, the book that's helped with the transition the most has been Farm, Don't Hunt)
  • Being present and (somewhat) active in the Support Driven Slack channel
  • Reaching out to other customer success organizations, like Glide Consulting to see how they do Customer Success

Also, it's taken asking myself the hard questions about how I approach customer issues and taking a step back when I realize I'm defaulting to a break/fix mentality. That's definitely not fun.

Now, I'm prone to wanting to make everything repeatable and testable. I blame it on my training as an academic researcher. I love patterns and I love it when I can make something fit into a pattern that I just automate and set on autopilot. I've found that's not how Customer Success works. Why? Relationships. Like I mentioned earlier, Customer Success is more than fixing a single problem. It's about establishing trust and rapport with customers and being invested in their growth. There are patterns and methods that I've found in some of the interviews I've been doing, but they're certainly well-suited to a "one-size-fits-all" approach. They take tweaking, adjusting, and above all, the ability to admit that those methods may just not work for a customer success organization. All that to say the journey into Customer Success requires hard work and for me, quite a bit of introspection to reflect on what I do on a daily basis to see if it fits within a Customer Success mold.

So if you're just starting out in Customer Success from a more technical role, and you're finding it hard, don't worry. It's not an easy transition. But if you take some time to reflect on your default habits, get involved in the customer success community and be open to the fact that it's going to take some time to make the transition into the new role, you'll be off to a good start.