We’re not talking about hiring someone to take down a website or steal credit card numbers for you – sorry if I mislead, feel free to vote with your feet We’re talking about software developers. But not just any software developers, the ones that stand out from the crowd. It’s relatively easy to get “someone who knows how to write code”. It’s hard to find a software developer.
Ask the audience before revealing points, write them down on a whiteboardSo if nothing here says “5 years with C#”, why is it a job requirement?
What’s wrong with this code? (ask audience)Arbitrary number of argumentsRepeating logic for each argumentCrappy function & variable nameGlobal variableHow many people know Lua?
People argue, “you can’t be a master of (language X) without using it for years”. Not trueYou just pick up a bunch of other experience while you’re using language X that happens to be in that contextYou’re still learning good software development skills, and you don’t immediately lose all that experience as soon as you switch to something else. You have to relearn syntax, structure, libraries, but not much else. You can look that up, for free, online.
Not willing to train – a flawed perspective. Most expect that because “you know coding” you can sit down with an existing team or codebase and get up and running within a week or two. Why aren’t they willing to invest in your productivity?Overqualified – unrealistic view of what is taught in university. “You made your own operating systems in university, why can’t you extend this CRUD app?” This is somewhat understandable, and speaks to a disconnect between the university and job marketHow many grads feel like they learned job-related skills in their program?Most, not all. There are good employers that get this
Based on a recent example for a regina job posting: we received roughly 100 applications through Resumator. 90 of them were recruiter spam – blanket applications from a recruitment firm. Over half were from out of town, willing to relocate or work remotely.All the applications had some level of degree – Bachelor or Masters of ComSci & Software EngineeringHow many people were in your graduating class? (ask audience) How many people graduated before you? U of R started its ComSci program in 1971 (42 years ago)When everyone has a degree, you can’t differentiate by degree anymore.
There is nothing preventing you from learning what you want to do online. Resources are free, most tooling is free.There’s a difference between saying “I can do web development” and actually showing it. Publish online.(give examples like github, codersumo, rtigger.com)
Ask the crowd first, some ways that they would be “attracted” to a company
1. How to Hire aHackerCHAD MCCALLUM@CHADEMMWWW.RTIGGER.COM
2. First things first…Not this kind of hacker This kind!
3. What makes a great softwaredeveloper? Constructive and varied experience Sees the value in testing (automatedand manual) Good grasp of system planning anddependencies Positive attitude Self-motivated learner Able to identify personal ability Motivated to keep improvingWhat part of this list says“5 years with C#?”
4. Why is this code bad?function addThingsTogetherToGetAResult(int1, int2, int3, int4, int5)foo = 0if int1 ~= nil and int1 ~= 0 thenfoo = foo + int1endif int2 ~= nil and int2 ~= 0 thenfoo = foo + int2end-- …continue ad nauseum…return fooend
5. What can an experiencedsoftware developer provide? Ability to notice “code smells” Duplicate code Long methods Large classes Too many parameters Poor class & method design Appreciation for dependencies and structure of code Automated (unit/integration/behavioural) testing and thearchitecture that goes with it
6. What does language experienceprovide? Nothing that can’t be learned over a week with Google
7. Employers are looking for the“Perfect Employee”Most employers have an unrealistic view ofsoftware development Not willing to train Expect you to be overqualified “You have a Computer Science / Software Engineering degree, so thisshould be simple”
8. It’s hard to hire “great” 90% of applications are recruiter spam With the advent of telecommuting, anyone can apply for anything A degree isn’t enough anymore How do you differentiate?
9. How do you stand out?Show the employer you will add value Targeted Practice & Experience Wanna be a web developer? Learn web development! Demonstrable experience Make your code & experience public Blog, open source, public code repository, online code submission ABC: Always Be Coding
10. How do you find a hacker? “Good developers aren’t looking for jobs – they already have one” We’re just like any other employee – there’s a certain comfort inknowing we have a solid job, even if there’s a better opportunity We need to be flirted with :P
11. How do you attract a hacker? Approach us in context No form-emails Follow a project we’re working on, send us a question or comment If you don’t speak the language, get a developer to follow up Attend meetups (like barcamp!) Attended by passionate developers, who are willing to invest personaltime If you can, host a meetup – shows you support the dev community andgives an opportunity to address the crowd
12. How do you attract a hacker? Open House Work environment & culture is super important to developers – showyours off! If you’re not comfortable showing it off, then you probably need to work on it Great opportunity to interact with potential employees in an informalenvironment Be Interesting Don’t ask us interview questions, show us an interesting problem
13. How do you find a hacker? Culture Fit Your team, office, and company works in a certain way. Sometimespeople won’t fit A smart developer with a bad attitude can bring down an entire team Arguably, more important than technical skill You can teach someone C#, you can’t (easily) teach them to be a teamplayer