Menu Close

Graham McMillan

Senior Systems Architect at Pressed.net (previously CTO @ Site5.com); I toil in Linux, Ruby, and infrastructure automation. In my free time I enjoy cycling, reading, video games, and traveling.

My Tips For A Good Résumé / Employment Application

I have done a lot of recruiting over the years. It’s never been my main job, but at a smaller company, it’s always been something I’ve had to do. I’ve probably done hundreds and hundreds of interviews at this point and hired dozens of people. Working on recruiting is very rewarding once you find the right person for your company, but unfortunately it’s a long process to find the right person.

This means I come into contact with a lot of bad applications. Sadly, there are a lot of good, talented people hiding behind bad résumés. After seeing the same problems over-and-over, I thought it might be helpful to share my tips on making a résumé better. Most of these are geared towards tech because that’s what I know. So, here we go:

  • Tell me what you’ve done with the services/apps/AWS products you’ve used, don’t simply list them all.
    Anyone can create an AWS account and “use” those services. I’ve interviewed people that listed off tons of AWS services on résumés, but after I interview them, it’s clear that they haven’t been using AWS any differently than a normal VPS or dedicated server provider. Or many of the projects they worked on never made it to production. I want to know what you built, how long you used/maintained it, what problems you ran into, what your responsibility was, what type of things broke on it and why, why you chose those services in the first place, etc.
  • Make it clear what your role in any project was.
    Did you build the platform from scratch on your own? Was it you and one other person? Was it a team of 10? Did you only handle QA or support for the platform? Were you on-call when it broke? Was the platform in maintenance mode when you came on or did you make changes to it? All of these answers change your seniority level and are important to know and they are frequently unclear on resumes. Sometimes (although rare) this is an intentional deception but it will come out eventually and it simply means you’re wasting your time and mine. Other times it seems like people focus too much on summarizing what the company they worked for did instead of what they did at that company (which becomes especially useless information for people coming from larger companies).
  • Skipping a cover letter or writing a generic one that is a few sentences is a wasted opportunity.
    The résumé/CV is the item you send around to a bunch of different companies. The cover letter should be where you customize your message to the company you’re applying for. It’s where you can highlight projects/skills from your past that are applicable to what the company is working on. This is where you should really be heavily selling yourself to the company. The company is looking to solve a problem and you are the solution! At the bare minimum, you can show you actually know what the company does and took an interest. This is a good place to ask questions, too. If the company is unclear about what their pain points are, ask them!

If anyone has any other suggestions or disagree with my feedback, feel free to hit me up on twitter @gmcmillan or email me.

Goodbye, Apple Music

I’m switching back to Spotify, at least for streaming music. Ever since Apple Music launched, iTunes stability has taken a dramatic turn for the worse. Considering the first three months were free, I was more willing to ignore these problems, but now that i’m paying for it, it’s pretty annoying.

Especially today when I started receiving this error every few minutes:

XsWEkr2tSaneoPndFppdyKmgmVIuMZq5bRz8hg6ofHs

This error makes the iTunes dock icon bounce every time it happens, so it’s very intrusive. So, Apple thought it was important enough to interrupt your work, but not important enough that it can be dismissed automatically. And it appears to be happening even when I play offline tracks. Restarting iTunes does nothing. It doesn’t affect playback of my music, it’s just an annoying error.

This is on top of all of the other random errors and nonsense in the new version of iTunes and Apple Music (I have an almost daily iTunes crash, usually more per day). The iTunes app needs a dramatic overhaul; it seems to be getting more bloated each year and more confusing to use.

I originally switched away from Spotify because I liked the idea of having everything, both my offline music and streaming, in a single app. But the iTunes and Apple Music experience is so poor it’s not even worth that added convenience when the entire thing is a fluster cluck.

I guess i’ll have to get my Taylor Swift tracks somewhere else.

Stopping Spam Phone Calls

For some reason, I get a lot of spam calls on my mobile. They rarely ever leave voicemails and the phone number is always different and always in a different area code. It’s mostly student loan refinancing, cruise trips, and a bunch of other similar bullshit. Googling the numbers yield a lot of people receiving the same calls. I sometimes get one call per hour, several times per day, but always from a different number so the “block number” feature in iOS is useless. Until now, I would just ignore any call that was from a number I didn’t recognize, but this still means an almost daily interruption and it has come to the point where I’d like to do something about it. My options are:

  1. change my phone number
    • get a fresh number and discard the old one
    • get a fresh number and port the old number to google voice
  2. adjust ios settings to curtail interruptions
  3. try to get removed from these lists

The first thing I did was turn off all the “handoff” stuff in iOS/OS X. I’ve realized how annoying it is to have my phone ringing on my Mac, my iPad, and my phone at the same time. This feature is significantly more annoying when any spam call can interrupt you in such a fantastic way. I was excited about this feature when it was announced, but it’s more trouble than it’s worth.

I am seriously considering either porting my number to Google Voice so I can better control inbound calls, but I am hesitant to do this because it feels like Google is getting ready to kill Voice. They haven’t updated the iOS app in forever and I get the vibe that Google has abandoned it. If I did port the number, going forward, I would only give my mobile number to people I actually know. Businesses wouldn’t get it. The other reason I don’t really want to change numbers is that notifying people about number changes is a PITA and a lot of two-factor things are tied into that number.

iOS has a feature called “Do Not Disturb” which I thought would fix this problem. Unfortunately, it doesn’t offer the right level of customization and it’s pretty much all or nothing. I had intended on only allowing people in my contact list to ring through, but when DnD is enabled, it also silences ALL notifications for any other app. Which means PagerDuty alerts, important alerts, would never alert audibly. So that option is out.

Which brings me to my final act of desperation. Here is what I’m doing for now, which is a pain in the ass to setup, but it works great…

  1. First, either make or buy a “silent ring tone” in the itunes store and set it as your default ring tone
  2. Then, go into your contacts and customize what the actual ringtone should be for each contact (this is the most time consuming part, but you only need to do it once per contact)

Now, any time someone not in your contacts list calls you, it will come through on your phone but there will be no ring/noise or interruption. If someone is in your contact list, it will ring/alert you normally. This probably won’t work for everyone, but most of the people calling me are people in my contact list, so it’s just about perfect. Having to remember to adjust the ringtone anytime I add a new contact is slightly annoying, but worth the tradeoff.

 

Wireless Routers

I’ve used many wireless routers over the years; from the basic 802.11b Linksys models to running my own PFSense installation with a separate wireless AP. Sadly, it is difficult to find reliable consumer routers/APs that have a decent set of features and don’t require regular reboots to continue working. You often have to trade reliability for good speed/range.

Apple Airport
For several years I’ve been using an Apple Airport Extreme alongside an Airport Express that extended the range of my wireless; it was just enough to give me the range needed to be usable so I could get decent signal outside. It’s also the easiest router i’ve ever setup and one that I think the average person has a better chance of getting working than most competitors. It’s definitely the easiest system I’ve used to extend my wireless signal with repeaters — you just add more airport expresses to extend your range. Setup is extremely easy in the Airport Utility app. The biggest downside is the lack of features and visibility into what is going on; all you get is what you see in the Airport Utility app. I’ve also mentioned before how easy it is to get IPv6 working with this system and with Apple’s coming IPv6 priority changes in El Capitan, it’s nice to see that it’s easier than ever to get IPv6 working for wide adoption by all clients.

For the most part, these Airport devices are incredibly reliable. I can’t remember the last time I needed to reboot them. My last router was a D-Link draft-N router and it required constant reboots and QoS was a joke; a single user could make the network inoperable for all other users.

Speed is very good with Airport, especially if you use 5Ghz. In the same room as the AP, I can transfer files locally at around 20MB/sec (160Mbps) over rsync/SSH.

Mikrotik RB2011UiAS-2HnD-IN
A few people I work with told me about this 802.11b/g/n 2.4Ghz Mikrotik router; it runs on software called RouterOS. Granted, this router does not exactly compete with the Airport system on features. I’m not a networking expert, but you do need some networking knowledge to get this thing working. Your parents won’t be able to use this without your help. On the bright side, this router gives you enough features that you can manage their network remotely if they have trouble.

I was able to get up and running in under 30 minutes, including setting up my native IPv6 configuration (note: I had to do this from terminal, not the web interface). The signal strength is very good throughout my house, but unfortunately it is not enough to reach outside. Still, the speed inside is consistent — I received about 10MB/sec (80Mbps) persistently when transferring a file over wifi to two machines in the same room. I’m still impressed considering that this is only a 2Ghz router; I would love to see a 5Ghz version of this router.

The number of features in this router are simply too many to list. I don’t even know what some of these features do, but the amount of features is almost overwhelming. This is basically an enterprise level router at (below) consumer prices.

Considering the Airport still wins in range, I’ve setup the Mikrotik as my router and the Airport has been switched to AP mode only so I get the best of both worlds.

Comcast IPv6 Support

I’ve had very few positive experiences with Comcast, but I have to hand it to them — they did a great job on their IPv6 deployment. My modem died today due to a power surge so I figured now would be a good time to get an IPv6 capable modem so I could have native IPv6 support instead of using a tunnel.

IPv6 support worked on the router as soon as I powered it on. In order to get IPv6 working on all of the devices connected to my Airport Extreme, I simply had to check the “Enable IPv6 Connection Sharing” option:

Screen-Shot-2015-03-02-at-6.53.56-PM

Restart router and done. No fuss. If anything, Comcast made IPv6 easier than Apple did. Which is something else I noticed — Chrome seems to prefer IPv6 over IPv4 and Safari is the opposite.

Updating Your Duo WordPress Integration

If you need to change your Duo integration on a live site and one where you have lost WP admin access but still have server/database access, you need to make some manual updates to the database to fix the integration.

The API host, integration and secret key are all stored in the MySQL database under the “wp_options” table in WordPress (the wp_ prefix might be different if you changed the default).

1. The first thing you need to do is get into your MySQL CLI and run a “use whateveryourdatabase_name_is;”

2. If you want to see the current integration data, run this SELECT query:

3. Now that you have this information, you can easily update update each value with the new integration information from Duo:

4. Done! Your next WP login should work immediately.

Working From Home

I thought I would start my inaugural post by writing about my experience working from home considering the recent Yahoo press. I’ve worked in physical offices and from home for a mix of my career, but more time has been spent in 100% remote positions. At Site5, where I currently work, I’ve seen our company grow from a handful of employees to over 90 today, all while still remaining 100% remote. I believe remote working is better for both the employee and the employer, for many reasons:

  • No commute.
  • No dress code.
  • Employees can setup their work space however they want to be more creative and comfortable.
  • Employees can live in a city they prefer, to stay near family and friends or simply in an area with a lower cost of living.
  • For the travelers, it’s easier to travel around the world and take extended working vacations.
  • If the company is 100% remote, employers don’t need to rent expensive office space.
  • Hiring is global so employers get access to the best talent and employees have more choices for employment, even in a small town. This is very important when you’re hiring in competitive industries like tech.
  • Covering 24/7 shifts is easier due to time zone differences.

Most of the negative comments or experiences I’ve read about remote working not being productive appear to be due to people not giving it a solid try. This appears to be most prevalent at companies that are not 100% remote. A big challenge can be communication. The more you use remote work, the more you need to focus on tweaking how your company communicates internally. A few things you can try:

  • If constant contact is important, use a chat system (Jabber/IRC/HipChat/Gtalk). Email is not helpful when you need an answer right now. Phone calls seems excessive when it’s a quick question. Also, require employees to be logged in and available to chat and require that away messages be used — a simple “brb” if they’re stepping away from their desk or “lunch” if they’re at lunch. It’s the polite thing to do.
  • Setup group chat rooms on the internal chat server for teams or project groups. A “water cooler” channel is also recommended so there is a place for non-work chat.
  • Use a voice communication system like TeamSpeak or Skype. Voice quality is significantly better than a phone call, even when the person is half way across the world. TeamSpeak is better because it performs more like Jabber with voice instead of Skype which feels more like a replacement for a regular phone. I can easily ping someone on Jabber and ask them if we can have a quick voice chat on TeamSpeak in a private conference channel.
  • Use some kind of internal forum for discussion and maybe an internal blog for big company announcements. Ask probing questions and encourage discussion from everyone.
  • Use Google Docs to collaborate in real-time on conference calls to make sure everyone is on the same page. Encourage contributions from everyone.

Working from home is still work and it should be treated as such. Employees shouldn’t be disappearing randomly throughout the day or watching their children as that wouldn’t be acceptable in a physical office, either. I don’t deny that there are people who work from home who slack, but that is not innate to working from home — it’s innate to bad employees. But to think that employees who show up in an office will immediately be in “work mode” is naive.

Having worked for other companies in physical offices, I tried to think of some ways those experiences were better or different than working from home. This is what I came up with:

  • Some people miss the physical contact with co-workers. I can sympathize with this, but I still don’t think you need to see your co-workers in-person every day or even every month. However, a lot of people meet their friends or start relationships at the office, so you do need to be more proactive about socializing in other circles to meet people.
  • It can be hard to “separate” from work. This isn’t necessarily a problem unique to remote working, but when you work in the same place that you live, your home can sometimes feel like the office. Having a separate space you work is key, plus doing all of your work under a separate computer login so you can “log off” at the end of the day. Or working at a coffee shop or co-working space every now and then for a change of scenery.

On Yahoo

I don’t know all of the internal details surrounding the Yahoo policy change on remote workers, but it has started a discussion about remote working, which is good. Yahoo has the freedom to end their remote working program, but it strikes me as either a knee-jerk reaction or a quick cost-cutting attempt. Considering Marissa Mayer is a data-driven person, I was a bit surprised to see no specific data on why they were eliminating remote working entirely (especially when there is data indicating the opposite). If some Yahoo employees were abusing the work-from-home privileges, why not fire those employees instead of ending the program entirely? There is no reason you cannot have accountability in a remote working environment.