My Management Philosophy

Photo by rawpixel on Unsplash

This is the start of my Manager README. If you’re just starting out in management, or looking for help managing a remote team, hopefully my experience can help.

Why should you listen to what I say?

I currently manage the Front-end and QA teams at Measurabl. I recently helped launch Kingston Lane while at Native Axis, a fully remote startup where I was the head of engineering for two and a half years. For over ten years I have been a Front-end Developer and at almost every position I have been the lead developer; responsible for mentoring junior developers, performing code review, defining the tech stack, establishing code design pattens based on best practices, etc.

During my career I have conducted hundreds of technical screens and interviews. I have helped design the hiring process at multiple startups. I have had regular 1:1s with direct reports on a weekly basis for the last three years. I’ve worked with great and terrible managers throughout my career and I’ve learned from all of them.

Lessons Learned

One of the most important lessons I have learned is that software development is 20% coding, 80% communication with other people. Even the code we write is mostly for other developers. The computers break it down into ones and zeros anyway. All of our organization, patterns, and variable names are only for our peers and future selves. The better you can be at communicating through code, pull requests, email, Slack, video chat, and in-person, the more successful you will be.

Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …[Therefore,] making it easy to read makes it easier to write.
– Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship

What do I value?

When I started at Native Axis, I wanted to create a remote software development company that embraced flexibility and trust in it’s employees to enable huge productivity gains. By removing the physical requirements of being colocated, everyone on the team was able focus on doing their best work instead of being distracted and stressed by commuting and sharing office space.

My philosophy on management aligns very well with how remote companies have to function: on trust. I want to work with people that I can trust.

[Y]ou need to learn to manage by expectations rather than by “butts in seat,” so make sure you can show trust in those you hire.
Wade Foster, CEO of Zapier

My goal as am anager is to enable them to do their best work without micromanagement. I really like how Help Scout prioritizes “players” (relative to management “coaches”) and follows “servant leadership”. This aligns well with how I tend to manage my own teams. I believe it is my job to improve the health and productivity of their team through optimism, empathy, and leverage-based thinking.

Although clear communication is key for any company, I think it’s the most important aspect of a remote company. Without the nuance and context of body language and tone of voice, it’s easy to misread any Slack message. I always assume the best of intentions from everyone else and infuse my communication with optimism to avoid negative conclusions by anyone else.

Empathy is equally important for communication. With every pull request comment I use language like “what do you think about”, “have you tried”, and “you could also” instead of “you should” or “this is wrong”. I think these simple techniques keep people open to receiving feedback.

Leverage-based thinking (thanks for the term Edmond Lau), means focusing on improvements to the development process that allow everyone on the team to iterate faster. These may or may not involve some actual coding. For example:

  • Adding automated unit test coverage thresholds to every build.
  • Upgrading dependencies and picking tools that have quicker build times to remove downtime for developers.
  • Staying on top of blockers and distractions that take developers out of their flow. This translates to scheduling meetings in blocks instead of throughout the day and responding to questions or feedback from QA, product, or upper management so that developers don’t have to.
  • Streamlining CI/CD integration.
  • Adding automatic error tracking (Sentry), type checking (TypeScript), and style guide enforcement (ESLint).
  • Facilitating mob programming (like pair programming, except with the entire team).

How do I deal with different levels of experience?

I have worked with and managed junior engineers fresh from code school, as well as senior engineers with over twenty years of experience. Engineers from either side of that spectrum can be overly confident and inflexible. I would prefer engineers more like myself that are positive, confident but humble, and willing to change their mind or their habits for the betterment of the team and company.

Do I still still code?

Sometimes I do miss being an individual contributor, but I believe that as a manager you have to give up on many of the “fun” projects to allow your team to enjoy their work and learn from those new experiences. I also do several things to stay close to the code. For one, I review every pull request, so that I’m up to date on the codebase and can share my knowledge with the rest of the team on a daily basis. When I do have time to code, I tend to focus on changes that will boost productivity for the entire team (see “leverage-based thinking” above).

7 Failures and 2 Reasons I’m Moving to Southern California

Before you read any further, I have a warning for you: this is a post about New Year’s Resolutions. Yes, in March. I failed spectacularly at following last years goals, only achieving 2 of 9. Fortunately, the two I did accomplish are huge because they allow my family and I to move back to California, San Diego to be specific. In order to understand why I failed the other 7 goals, and figure out how to do better in 2014, I’m going to review each one in detail.

1. read a book a month

Reason #1 I failed: I didn’t bother to keep track. Looking back at my Amazon.com orders, I only bought 4 books, which were all reference books that I certainly didn’t read cover to cover. I got a couple books for Christmas that I read and I bought a handful of computer books through work that again, I didn’t read cover to cover. This year, I’m keeping a strict budget (with the help of YNAB), including a line item each month for books at $30/month. That’s 2-3 books a month, so even though I failed to read just 1 book a month last year, I’m setting even higher standards this year at 2 books a month. So far I’ve done just that. Here’s what I’ve read:

  • The Overspent American: Why We Want What We Don’t Need
  • The Shallows: What the Internet Is Doing to Our Brains
  • Early Retirement Extreme: A philosophical and practical guide to financial independence
  • The Dog Stars
  • Remote: Office Not Required

Revised 2014 goal: read 2 books a month

2. create a $50/month income stream

When I wrote the goal, I know I was considering this as a “passive” income stream like a niche blog or eCommerce site. I definitely did not do that, despite doing lots of research. However I think I blew this goal out of the water with a combination of raises and freelance work.

I did a freelance gig for $2,400. Spread over 12 months that’s $150 more than my goal. Success! The much bigger win though, is that I switched jobs and increased my salary by $40k (not including a bonus). That was in June, so in those 6 months I added $20k of income. Spread over the entire year that’s $1,666/month in extra income. Since I didn’t officially list “passive” in the goal, I’m going to call this a major success.

For 2014, instead of focusing on earning more, I’m going to try to spend less and save more money. More on this in a future post, but here’s my revised 2014 financial goals:

  • max out IRA
  • 6 month emergency fund
  • full month buffer in budget
  • increase net worth
  • decrease spending to 50% of take home pay

3. increase fiat500abarth.us income to $200/month

Major fail here. I didn’t really even try until late 2014 and it was a fairly feable attempt. I wrote up a post for hiring another writer but never posted it. My AdSense revenue and traffic has continued to decline. I might try selling this website in 2014, but I’m not setting any specific goals. Mostly I just don’t want to worry about it.

4. do push ups and sit-ups before every shower

Started off strong here but at some point I just stopped, probably after I sprained an ankle playing basketball. I never picked it up again. I’ve realized that I just don’t have the motivation to do strength training of any kind and frankly, I don’t need to. Sure it would impress my wife if I had bigger arms. It certainly would make some things in life a little easier. But, I’m realistic with myself so I’m not going to set a goal that I can’t accomplish.

5. stretch every night

Fell off the wagon here pretty quickly as well. My wife still stretches just about every night and it would be easy to join her. But I’m lazy and I’ve never noticed a benefit so it’s hard to keep at it. Dropping this from 2014 because again, I know I won’t keep at it so I’m not going to set myself up for failure.

6. exercise every day (run, walk, or play basketball)

I definitely didn’t do this everyday, but on average I would say I did something 3 days a week. Pretty good, but that’s over 200 days over the course of a year that I sat on my butt and did nothing. Common excuses: too sore from basketball, too hot/cold outside, and too late (it’s dark). Since I’m now permanently working from home, this should be easy to accomplish.

7. figure out how to move to San Diego in 2014

This is a big one and probably the most important thing I did all year. My wife and I have been wanting to move back to California for the past couple years. Texas just isn’t for us. While I was sure I could get a job in San Diego, I wasn’t sure if I could get the same salary. The “sunshine tax” is a common phrase in southern California that for employment, basically means companies can afford to pay less, despite the higher cost of living, because so many people just want to live there. Through a handful of interviews, I confirmed this to be true. Given another couple months I probably could have found something with at least equal pay, but late in the year I decided to up the ante by also making working from home a requirement. That opened up the job search to companies located pretty much anywhere in the world and in February of this year, I started work for RebelMouse as a full time remote employee.

This was perfect because now we’re able to live just about anywhere we want. Once our lease is up in May, we’re moving to San Diego. We’re not sure exactly where yet, but we’re leaning towards somewhere more rural like Fallbrook, Romona, or Alpine. It’s only been a few weeks, but I’m loving working from home. I can’t wait to do it in sunny southern California weather!

8. write 300 words every day

I gave up on this pretty quickly. I know I should write, I just never figured out how to make it a habit. It’s hard to write while drinking coffee and wrestling with a toddler, so first thing in the morning wasn’t working. After she goes to bed I usually try to spend time with my wife and get some reading in, so this is a hard task to find time for. Overall, it’s not important for my life and once again, to be realistic for myself I’m dropping it from my 2014 goals. I’d rather stay focused on other things.

9. publish a blog article every week

Since I didn’t write, it was hard to publish anything either. I only managed to publish a couple articles from freelance writers for my Abarth blog, well below my weekly goal. I’d like to setup an editorial calendar for my own blog, but I also don’t want to set myself up for failure here. I’m keeping a soft distance from blogging for 2014 so I can focus on saving more, spending time with my family, and reading. I think this is something I may come back to at a later point, maybe next year.

Full list of 2014 goals:

  • max out IRA
  • 6 month emergency fund
  • full month buffer in budget
  • decrease spending to 50% of take home pay
  • read 2 books per month
  • exercise every day (run, walk, or play basketball)

Removing Distractions and Automating Production

It is amazing how much you can accomplish in 15-25 minutes. I have used writeordie.com to help me focus on slamming out 300-500 words at a time. It provides a distraction free page that will flash red when you stop writing for a few seconds and eventually will play horribly obnoxious sounds after 30 seconds or so. The only other interface elements it has is a countdown timer and word count. This allows me to focus on one goal: finish writing 300 words. Once I pick a topic and start the timer, it’s easy to just sort of open my brain and let the words flow out. Continue reading

JavaScript, failure, a baby, and other upcoming blog topics.

A lot has been going on in my life lately. Just in this past year, my wife and I celebrated our 1st anniversary: we traveled to the Bahamas on a Disney Cruise for 7 days straight. We visited San Diego, CA just before my parents started their move to Orlando, Florida. I left SiteGoals after almost 4 years for a position as a UI Engineer at Incisent Technologies. We moved, I sold my GTI and I am now walking to work. The biggest news of all: Karen is pregnant and we are expecting our first child in late February! Continue reading

Links of the Week

I come across great content on a daily basis. Twitter and Google Reader are my modern replacements for the newspaper, which I read every morning with coffee. But instead of just consuming, filing, and never coming back to it, I wanted to start writing about some of the best stuff. Continue reading

One Step at a Time

Too often I get caught up in lofty goals which are impossible to achieve. I set the bar so high that I give up before taking a single step (I know, I’m mixing metaphors left and right). On top of that, I spend way too much time consuming and not enough time producing. I’m addicted to Google Reader. I have too many subscriptions. I can’t tell you how many amazing tutorials and articles I’ve read, bookmarked and stored for later, that I’ve never come back to. What good is that information? Well instead of storing that knowledge up like a chipmunk, I’m going to start producing again.

I’m going to plan less, or at least plan for shorter and smaller goals. I want to be proactive and not plan so far ahead that I never reach my goals. Really my checklist is very simple. Every day I want to learn something, build something, and write something. I’m hoping each one leads to the next. We’ll see how I do.

Learning Object Oriented Javascript

I’ve never considered myself a programmer. Developer yes, coder, sure, but not a programmer by any means. Although I took some computer science classes in college, I never learned the basic tenets of programming and instead always learned just enough to get by. Focusing on HTML, CSS, and jQuery has always been enough. With my new position at Incisent, I’ve had to dive into the deep end of some very complicated, custom Javascript. This code has huge custom classes, uses Underscore, fastFrag, and Lawnchair (three JS libraries I’d never heard of). Although it’s easy to fix bugs, given enough time, adding new features the “right way” requires a bit more knowledge.

A few weeks ago I saw this post: learning object oriented Javascript in 15 minutes or less and I knew I needed to walk through it. So I finally did. The best thing about this is that it was short. Like the title says, it took less than 15 minutes and I was able to understand some concepts that were always at the edge of my knowledge. So it was definitely successful.

From there, in the comments, someone linked to this short collection of OO JS articles. These obviously go more in depth and are helping to take my knowledge to the next level. Armed with this new information and I’m starting to really enjoy the challenges at work and I hope to apply what I’ve learned for some of my own after hours projects.