Reader Question Roundup: Working at Google, Remote Freelancing, and Side Projects
I’m doing reader question Monday on a Tuesday once again. But this time it’s not my fault. You can thank organized labor for interrupting your reader question Monday with their US holiday yesterday.
I did this once before, and I’m going to dust it off and do it again. You folks send me far more questions than I can answer at a pace of once per week. And thanks for that! It’s awesome.
The result is an ever-growing backlog of questions. And, while I may start doing something ala John Sonmez with his youtube channel, where he answers a lot of reader questions as videos, for now, I’ll try to catch up a little bit by answering several in a single post.
On the docket today, an eclectic mix that hopefully you find interesting. I’ve picked questions likely to be relevant to a decent cross section of folks.
Should I Work at Google or Facebook?
This reader wrote a lengthy question with a lot of situational explaining. I’m going to try to paraphrase, condense and thoroughly anonymize without sacrificing any context.
I’ve worked at a small, growing company for several years, and have prospered here. I went from junior developer to team lead, and have been extending my career prospects and leadership into the community. At first, I had people here to mentor me, but now I’ve kind of reached the top. The big guys, like Google and Facebook, have reached out to me. Would it be worth leaving this small pond where I’m a big fish to become a small fish in a lake? I’m happy where I am, but it seems like the compensation would be better and I could learn from people there.
My take on whether you should work at a company like Facebook or Google? Probably not, if it’s just a matter of comp, career, and learning.
First of all, those companies undeniably have great benefits packages. But consider a couple of things. First, their cachet creates a sort of manufactured job scarcity among developers, which lets them maintain the mindset that “the privilege of working here is a part of your compensation package.” And secondly, as I pointed out in Developer Hegemony, several of those companies literally colluded to depress software developer salaries, so bear that in mind. You can do just as well on total compensation elsewhere.
As for the learning, you can also get that anywhere. Since your current employer is your first employer, you won’t believe how much you learn just by going to a second shop. After a few hops, you might start to max out on what the average software shop can teach you, but that still won’t mean that you can only find deep learning at a tech giant. What I’d recommend instead of having some vague concept of “learning from the best” is to get specific about exactly what you want to learn. If you really want to get into learning algorithms for HVAC control, then, by all means, interview to work at Google on the Nest. But if you want to learn, say, about entrepreneurship or a particular business domain, going to work at a mega-corp that forces hyper-specialization on staff is probably not your best bet.
And, career-wise, you’re going to sacrifice a good bit to go there. Sure, you can write your own ticket afterward. But, frankly, if manage to get hired by Google or Facebook, you can already do that, so you don’t need them to help you. And, once there, you’re employee number 400 billion at the bottom of a gigantic corporate pyramid. Your upward mobility is nearly non-existent, especially compared to somewhere that took you from entry level to “team lead” in a few years.
If you want to go work at Facebook or Google or wherever, then definitely do it. By all accounts, people love working at those places. But make sure you’re doing it as an end because it’s not really a means to any other end.
Is Physical Presence Necessary for Freelancing?
Is a physical presence required when scouting for freelance work? I.e. do you have to actually meet up face to face, or is geography not important?
I’m asking because I live a flight away from the nearest big city.
Good question. I’d be lying if I said that living near a big city didn’t help with freelancing. Clients love physical presence, and there are simply more prospects in big cities besides.
That said, I’m currently living mostly in rural Michigan, a 2.5 hour drive from any airport or big city. And I have no problem running my own show. So, no, physical presence isn’t necessary. You just need to be a little more strategic.
First, if you have existing rapport with past employers or clients, leverage that. They won’t care too much where you are. Secondly, pick out and steer toward a niche more conducive to remote work. If you specialize in teaching people to pair program, you’re probably hosed. But if you specialize in something low touch, it can be an easy sell. For instance, I’ve started a blogging/content marketing business for tech tools companies. People really don’t care where I am when I write blog posts because, why would they?
There are some resources that aggregate remote-friendly freelancing operations. That’s particularly helpful for the generalist, hired gun programmer wanting remote work. But your best bet is to pick an offering that requires very little synchronous collaboration, or collaboration at all. Generalist programming is often a team sport.
One last point. A willingness to do at least occasional travel (e.g. for kickoff or wrap-up meetings) will go a long way.
How Do You Get Started on a Large, Side Project Undertaking
This was another fairly lengthy question that I’ll do my best to paraphrase/distill. And, addressing this specifically to the reader, your backstory was interesting, even though I’m omitting.
I have an idea for an application that I’d like to build, and I have good reason to think there are folks out there that would enjoy using it. The primary goal isn’t necessarily to make money, though that’d be nice. But it’s a little daunting to try to build a tiered web application all on my own in my spare time. How do you get started?
Well, to put it flippantly, one line of code at a time. Less flippantly, let me say this. Don’t conceive of it as (or make it) a “3 tier app.” Start with something simple that feels more manageable.
I can’t really speak for others. But what I’ll say for myself is that I’d probably feel too daunted to take on your project, myself, if described as “build a 3 tier app.” But if someone instead asked me to put up a little site that some people might find valuable, I’d think, “sure, I can do that.” Then, I could add a feature or two here and there. And, I’d just keep doing that until I’d built something impressive. Think of walking a tightrope. The whole crossing is daunting, but each step might be manageable.
And really, you couldn’t take on a side project in any other way. Almost by definition, you have to slice it down into a series of little, tiny projects that you can knock out in an evening or over a weekend.
Fire Away with More Questions!
If you have a question, please feel free to ask:
And, by the way…
If you like the wisdom here, such as it is, you can get a whole lot of that more in my recently released book, Developer Hegemony. If you want a sample of that, you can sign up to download some chapters below.
Want more content like this?
Sign up for my mailing list, and get about 10 posts' worth of content, excerpted from my latest book as a PDF. (Don't worry about signing up again -- the list is smart enough to keep each email only once.)