Okay let’s dig into this.
I tweeted this earlier this week, to some fanfare and a little pushback:
I should have expected the pushback; I followed up shortly afterward…
This blog post isn’t really about fixing the problem that, at least in New York, it is really really hard to get your first job. Instead, it’s a description of my understanding of the problem and how it’s evolved.
So I know a lot of juniors. I’ve been running a peer lab for three years and we welcome people from all experience levels, and I help with Coalition for Queens. I know a lot of people who are looking for their first jobs and are having really difficult times. I’m close to people, I’m close to their pain and frustration. And that pain and frustration was the motivation for my tweet, not any sort of malice towards hiring managers.
And before we go any further, I have to point out that there is a huge power imbalance between a company trying to hire someone and someone trying to get hired. The company has most of the power in this relationship. The worst case for the company is that they waste a bit of time interviewing someone and it doesn’t work out, and they need to keep looking. Not a huge deal. The worst case for the applicant can be that they don’t get the job, so maybe they can’t make their rent, maybe they can’t feed their family, etc. So from my perspective, I naturally empathize more with the individual than the company.
This is not to say companies are bad, or have bad intentions. I’m only pointing out that one party of this relationship has the power. That imbalance needs to inform any discussion around hiring practices in our industry.
And not all companies are even in a position to hire juniors. That sucks, but that’s the reality of the economic world we live in.
There are lots of things junior developers can do to distinguish themselves. In the past, I’ve told iOS juniors to focus on getting their first app into the App Store, since that shows employers that you are capable of nurturing and building an idea into fully shipped software. But I know lots of juniors who have done this and are struggling. Having an app in the store isn’t the distinguisher that it used to be. They need something new, to stand out. I haven’t had a satisfying answer, but based on feedback I’ve gotten from hiring managers, I think open source contributions might help.
(Note that not everyone looking for their first job is even capable of making open source contributions. We all have different lives, and contributing to open source is just intrinsically easier for some groups of people. So “make some OSS contributions” isn’t a comprehensive solution to this very broad problem.)
Making open source contributions shows employers that you’re able to contribute to a larger goal through collaborating with other people. That’s really important. Building software in a company is never done in isolation; the software always serves the needs of the business, which means you’ll be interacting with business people at the very least. Probably designers, product managers, and other engineers, too. OSS contributions confer skills that will be helpful in that sort of collaborative business environment.
So look at the open source libraries you use. Or at least the one’s your heard of. Look at Trending Repos on GitHub, see what looks cool, and look for issues labeled “good first step” or “you can do this” – lots of projects set aside introductory issues for newcomers, and those should be your goal. Hopefully the project has some setup instructions for contributing, checkout out their contributing guidelines for more info.
There is also a disconnect between acquiring skills and acquiring experience. I don’t have a good answer about what balance to strike, but it seems like employers are looking for a mix of both. A lot of juniors I talk to ask me “which framework should I learn next?” And the answer might be: none of them. If you’ve learned a few frameworks on iOS – UIKit, CoreLocation, MapKit – maybe it’s time to shift from honing skills to acquiring experience. Building your own app and helping out with open source can help, too.
Part of the problem, I think, is that companies are unwilling to take risks. This is probably my biggest frustration, actually. See, hiring any engineer is a risk, and hiring an engineer without a lot of experience does increase that risk. Maybe they’re overestimating that increase, or maybe they really are just that risk adverse. My point is, it seems like companies would rather hire no one than they would hire someone who they were only 95% sure would be a good fit. I think there is room for short-term contracts to evaluate engineers before hiring them full time, or other ideas like that. And again with business realities, companies are operating as they are meant to in our capitalist society: to avoid risk and maximize returns. I don’t like that, but it’s the reality we live it. Again, I don’t have the answers, I’m still wrapping my head around this situation.
If you’re looking for your first iOS job, take a look at Orta’s blog post. Try to stay positive, stay focused, and be patient. I wish things were better, that our industry was more inclusive, and I’m doing what I can to help. If you’re in a position to help move the needle on this, even a little bit, I encourage you to help as well.