John’s Blog

My personal journal and blog. Subscribe via RSS


April 18, 2020

Thoughts on Recruiting

For the past few weeks, I've been helping out a friend with some technical recruiting. This is a bit of new territory for me and with that always comes new things to learn. I've done my fair share of hiring in the past, so it isn't completely foreign but this situation is unique for me.

The process is exhausting and difficult but in the end you're bringing a new person onto your team to help your company grow. So it's worth it. You keep pushing through because that one next person can really help your company grow.

But I've never tried to hire someone for someone else's team. It feels counterintuitive in a way. But I'm wrapping my head around it so far. I'm helping talented people find a great job and that's wonderful. I'm also helping someone else build a team to do important work. I'll only be involved from afar, but the end result is the same.

The Industry

The technical recruiting world is broken and awful. The vast majority of people that I've encountered doing this job are playing a strict numbers game. They blast out job postings, candidates, and poorly researched e-mail introductions by the thousands just hoping for a few suckers to respond.

From a candidate's side it's a beat down. I've long ago disabled all notifications from LinkedIn and I have a number of pattern matching filters on my e-mail addresses to keep this stuff from ever reaching my inbox. I'm not trying to be rude, but there is so much garbage out there that it's hard to find a signal in that noise. Every few weeks I'll go into LinkedIn and my message queue is filled with recruitment notes for "once in a lifetime" and "top tier" positions at great "brands". If these positions were that unique, I wouldn't get 20 of them a week.

From the company's side, it's also a beat down. Many of the companies are actually doing interesting work. They have a real problem on their hands and they have a business opportunity they could accomplish if they could just find a few good people to focus on it. Many (but certainly not all) of the hiring managers in these companies are not technical and feel unequipped to find the right people for the positions. To solve the problem there are usually both internal company recruiters and external staffing and recruiting firms. Both have their benefits and both approaches can be completely terrible.

Staffing firms have a less than desirable reputation in the tech world. For good reason too. The numbers game playing out each day is a complete turn off and gives the industry a bad name. It's not usually that they don't care, they just don't know what to do. They are tasked with hiring for a very technical position that they don't understand and don't know how to qualify people for. It's a beat down all around.

Getting Better

I'm not here to solve the world's recruiting problems. I'm passionate about building software and companies around that software. Recruiting is certainly one piece of that puzzle, but it's usually something I leave to others. In short, I'm not leaving my 'day' job to become a recruiter, but I can still help a little bit.

The biggest thing I think I'm contributing to this process is that I know these technical jobs. I've done the jobs myself, I've been in these roles. I've hired for them before in my own companies. I know the tech and I understand the problems the companies are trying to solve by hiring. I also know a thing or two about shipping software and actually accomplishing organizational goals. So I'm using what I know to identify people that I'd hire if I was the company.

The challenging part of finding who I'd hire is: I'm not hiring them! I am just one piece of the process and just one opinion in the room. Sometimes who I'd hire isn't the right fit for a company, and that's totally fine. It's their company and I need to defer to them on what's best. It's hard to present someone I think is great and have them rejected, but that's a part of the deal. I'm working on getting better at this.

The Interview Process

I'm learning about big company interview processes a bit too. The biggest company I've worked for was about 120,000 employees at its peak, and I've slowly moved my career into the opposite direction ever since. I prefer to work in a startup with less than 10 people. So it's a bit different. There's nothing inherently wrong with a big company, as much as it's not for me.

At a bigger company, the interview process is completely different than what I've been exposed to most of my career. For the past decade or so I've almost exclusively been hiring for companies that I own or have built. This is a very different process than hiring for a company that's been around for decades and is publicly traded, for example. I would obsess on every hire and worry about how they would affect the company's vibe and culture. I cared more about their personality and past experience than how technical they were. I can teach programming, but I can't teach someone be kind to their coworkers if they don't think that's worthwhile. With a bigger company, culture is still important, but it's very different than a startup. Hard skills seem to matter more than the soft ones.

My interview style is to speak conversationally with the person and just try and get to know them. I want to know how they think. How do they solve problems? What problems have they solved before? What did they learn from those problems? Sure, we can get technical here. If they built a cool API I'll most certainly ask how they built it. What did they build it with? How did it scale? How did you decide to use this piece of tech over this other one? There aren't right or wrong answers here, for the most part. I'm imagining this person in the role I'm hiring for and trying to see how their past experiences and best practices align with mine and those of my team.

I'm not into tricks and riddles and code algorithm puzzles. Not one bit. I don't care if you know some specific computer science term or how to best write some algorithm. Most good developers I know spend a lot of time Googling and figuring things out. I know I do. If I'm presented with a performance challenge, I'm surely not going to recall some abstract algorithm from college and apply it from memory. I'm going to search for a solution. I'm going to look at forums and read blogs about how others are solving the problem. I'll chat it through with coworkers. Then I'll devise a solution and implement it. Maybe I'll do that whole process two or three times before the best solution presents itself.

So I'd probably be terrible in a coding quiz interview. I might be laughed out of the room if I had to whiteboard some computer science algorithm from memory. I don't need to know that stuff, I just need to know that it's a thing. In the "real world" I'd Google it and solve it within 10 minutes.

But these type of things are quite common in big company land. So I'm learning to adapt. If I find someone I like, it's now part of my job to prepare them for these type of technical interviews. Once I find someone that I think can do they job, I need to also make sure they can pass the interview. These are very different things, but if the end goal is the same, it's a worthwhile effort.

As with everything in this space, I'm not sure if I'm right or wrong. I don't think there is a hard and fast 'right or wrong'. I'm just doing what I know and what's worked for me.

What's Next

As I think I've articulated, recruiting is a big giant mess. It's hard for everyone. There's no perfectly correct way to do this and the only way to get better is to keep trying to get better.

I'm going to keep trying for now. It's a small chunk of my free time, but it's been an interesting ride so far.

Now back to building software.

April 18, 2020

Hiring at Automattic

Jerry Jones (no, not that one) writing about his interview and eventual hiring process at Automattic:

The entire hiring process is text based. Seriously.
Never once did I hear someone’s voice or do a video call. Until my first paycheck arrived, a part of me still believed it was all too good to be true, and it was just an elaborate prank.
They invited me to a slack channel, and I was free to ask questions and talk with the hiring team. They told me how they do what they call “async communication.” You can ask a question, and you may not get an answer for awhile, as the person may be in a totally different part of the world.

I found the idea of a Slack-only interview fascinating. I’m sure it can be difficult waiting for responses in the void sometimes, but this also seems like a great way to also respect the workload of those on the inside doing the interviews as well.

There’s some other interesting parts in the piece about coding tests and trial run too. It’s clear there has been some careful thought put into this process, and that’s nice to see.

April 11, 2020

Apple and Google Announce Contact Tracing Tool, Partnership

From Matthew Panzarino at TechCrunch:

Apple and Google’s engineering teams have banded together to create a decentralized contact tracing tool that will help individuals determine whether they have been exposed to someone with COVID-19.
Contact tracing is a useful tool that helps public health authorities track the spread of the disease and inform the potentially exposed so that they can get tested. It does this by identifying and “following up with” people who have come into contact with a COVID-19-affected person.
The first phase of the project is an API that public health agencies can integrate into their own apps. The next phase is a system-level contact tracing system that will work across iOS and Android devices on an opt-in basis.
The system uses on-board radios on your device to transmit an anonymous ID over short ranges — using Bluetooth beaconing. Servers relay your last 14 days of rotating IDs to other devices, which search for a match. A match is determined based on a threshold of time spent and distance maintained between two devices.
If a match is found with another user that has told the system that they have tested positive, you are notified and can take steps to be tested and to self-quarantine.

This is great news. Any system like this will need deep integration into the operating systems to be effective. Third-party apps can implement some nice features, but the platform itself has to be on board for more widespread adoption. It’s nice to see the two big players in the mobile space cooperating on this level.

They have already started to release some documentation and notes about the APIs. This should be an exciting space to watch over the next few months.

April 4, 2020

Three Weeks

Three weeks down. Who knows how many more to go? We are a bit over three weeks into our family’s social distancing. I’m not sure what to call it really, but we’re staying home and not interacting with anyone outside of the house except for an occasional run to the grocery store. Or to get tequila.

Three weeks ago our schools were still open. Restaurants were still open. There was toilet paper and packs of eggs in stores. If you were sick you could buy Tylenol and Advil. Hospitals had beds available. We were excited to start a new season of tee-ball and I was looking forward to the start of baseball, March Madness, and The Masters.

What a difference that three weeks make. We decided to pull our kids out of school before spring break and they haven’t returned since, and probably won’t finish out the school year. Our county announced a shelter-in-place order requiring everyone to stay home until at least May 20th. March Madness was completely canceled, The Masters is delayed (but probably canceled) and even the Olympics for this year are postponed until next summer. It feels like the whole world is on pause.

For the most part, our time as a family has been great. We’ve never spent this much time all together, and likely never will again. I’ve heard it takes humans a little more than three weeks to develop new habits and routines. This time doesn’t feel new any more and it feels like we’ve established our new routines. We’re slowly figuring out how to do home schooling. We’re adjusting to not being around friends and having things to do outside of our neighborhood. We’re finding new things to cook at home and creative ways to pass the extra time. I’m truly thankful for this time together as a family. As long as the Internet doesn’t go out, we’re doing just fine over here.

I’m anxious about the world around us. I see our family, and others we know, doing everything we can do to prevent the spread of this virus but it’s not enough. There are so many people around us that do not seem to understand what’s going on. They’re playing and interacting like nothing has changed and burying their heads in the sand. I heard one older Texas man say that “we all need to just put on our big boy pants and get on with life.” We continue to have awkward conversations with people about how we can’t meet up for a certain activity now how they can’t come visit right now. I don’t feel like I should have to explain, but I still do. It feels like we’re the ones doing something wrong, and the rest of the world is moving on without us sometimes. But that’s not the case. I know it’s not the case, and soon I hope everyone will understand it as well.

So three weeks down, and on to the next. April is going to be an interesting month. Stay safe out there.

April 3, 2020

Bill Gates: Here’s how to make up for lost time on covid-19

Bill Gates in The Washington Post this week:

There's no question the United States missed the opportunity to get ahead of the novel coronavirus. But the window for making important decisions hasn't closed. The choices we and our leaders make now will have an enormous impact on how soon case numbers start to go down, how long the economy remains shut down and how many Americans will have to bury a loved one because of covid-19.
Through my work with the Gates Foundation, I've spoken with experts and leaders in Washington and across the country. It's become clear to me that we must take three steps.

Very clear and reasonable steps.

It seems about time for the leadership in this country to get its act together and start taking control of this. I’m looking at you too, Texas.

April 1, 2020

Screen

Jahanzeb Sherwani announcing his new venture, Screen:

In 2013, I co-founded a company called Screenhero, which made an app that let pair programmers work together remotely. Through low-latency screen sharing and shared control, it let programmers code together on a Mac or Windows computer. Customers loved us, and voted with their wallets: once we started charging, we reached $1M in annual recurring revenue in 5 months. We had the choice of staying independent, but we opted to join forces with Slack, with the intention of embedding our product inside theirs, to reach more people faster than we could on our own.
In 2015, Slack acquired Screenhero, and I led the team that built Slack Calls: voice, video and screen sharing in Slack. We finally shipped interactive screen sharing almost three years later, but it wasn't as performant as Screenhero, and was eventually removed in 2019. Given that it was used by a tiny fraction of Slack's user-base, and had a high maintenance cost, this was the correct decision for Slack.

The old Screenhero was so great. Slack's video sharing was never the same and I'm so delighted these guys have returned with a new app.

March 21, 2020

Take Control of Working from Home

Speaking of working remotely from home ... Glenn Fleishman has a new (free) e-book: Take Control of Working from Home Temporarily.

We're in a time of unprecedented uncertainty. In the middle of a global viral outbreak, you were told or asked to work from home—and you've never or rarely had to be productive where you live before. What to do? We're here to take some stress out of your life with a new, free book that details how to set up a home office and balance work and home life for those not accustomed to it.

March 21, 2020

Making the Best of a Less-Than-Ideal Remote Work Environment

Some great suggestions on working from home by Matt Stauffer:

Today, I want to talk about remote work—especially right now, as so many people are unexpectedly being told/allowed to work from home—and how so much of it happens in less-than-ideal environments, and what we can do to make the best of it. I'll assume you're working from home, but many of these tips apply in other less-than-ideal remote work environments as well.

I agree with many of his tips. I've been working from home now for over 4 years and it took some getting used to in the beginning. Now I can't imagine anything else.

While working from home takes some getting used to and people may not be as productive as before we have to remember that we're still in the middle of a global crisis, and that doesn't make working easier regardless of your work location.

March 21, 2020

MonoLisa Font

MonoLisa is a new coding-focused font by Marcus Sterz:

As software developers, we always strive for better tools but rarely consider font as such. Yet we spend most of our days looking at screens reading and writing code. Using a wrong font can negatively impact our productivity and lead to bugs. MonoLisa was designed by professionals to improve developers’ productivity and reduce fatigue.

I’m still partial to Operator from Hoefler & Co, but MonoLisa looks very well done.

March 21, 2020

Github and npm

Speaking of Github, this week it was also announced that Github (aka Microsoft) has acquired the de-facto package manager for JavaScript, npm.

Nat Friedman, on Github's blog:

npm is a critical part of the JavaScript world. The work of the npm team over the last 10 years, and the contributions of hundreds of thousands of open source developers and maintainers, have made npm home to over 1.3 million packages with 75 billion downloads a month. Together, they've helped JavaScript become the largest developer ecosystem in the world. We at GitHub are honored to be part of the next chapter of npm's story and to help npm continue to scale to meet the needs of the fast-growing JavaScript community.

On what's next:

Looking further ahead, we'll integrate GitHub and npm to improve the security of the open source software supply chain, and enable you to trace a change from a GitHub pull request to the npm package version that fixed it.

That sounds very cool. Excited to see that piece come together.

For this Mac-loving tech kid that grew up in the 90’s, I still cringe any time I hear Microsoft doing anything. But this is not the Microsoft of then. They’ve done well with Github so far. They’re doing amazing things with the cloud. I need to get over it. Hopefully this is a new great beginning for npm.

March 21, 2020

Github Mobile

New this week: a brand new native iOS and Android app for Github. From what I can tell these are completely native apps. Maybe there’s some web embedded stuff in there, but if there is, I can’t tell and it’s super slick and fast. As it should be.

The app seems very well designed and thoroughly considered. Handy for managing Pull Requests and Issues on the go.

March 21, 2020

Proxyman

Very nice looking app for debugging network requests. Reminds me of the beautiful and powerful Paw app. I love that these little development and tech tools are being so well done lately, rather than having to use some awful cross-platform Java app. via Brent Simmons

March 20, 2020

Video: The Coronavirus Explained

Excellent video from Kurzgesagt on YouTube:

It's the number one trending video on YouTube today for good reason. This video clearly explains what we know so far about the SARS-CoV-2 virus and how it affects the human body.

(via Kottke)

March 16, 2020

Why outbreaks like coronavirus spread exponentially, and how to "flatten the curve"

Harry Stevens, at The Washington Post, with my favorite explanation from over the weekend of why this virus is so dangerous and how it spreads:

[...] these simulations vastly oversimplify the complexity of real life. Yet just as simulitis spread through the networks of bouncing balls on your screen, covid-19 is spreading through our human networks — through our countries, our towns, our workplaces, our families. And, like a ball bouncing across the screen, a single person's behavior can cause ripple effects that touch faraway people.

The visuals in this piece are excellent.

March 13, 2020

WWDC 2020: Online Only

To no one's surprise, Apple announced today that this year's WWDC will be online-only due the "current health situation."

We are delivering WWDC 2020 this June in an innovative way to millions of developers around the world, bringing the entire developer community together with a new experience," said Phil Schiller, Apple's senior vice president of Worldwide Marketing. "The current health situation has required that we create a new WWDC 2020 format that delivers a full program with an online keynote and sessions, offering a great learning experience for our entire developer community, all around the world. We will be sharing all of the details in the weeks ahead.