3. What makes a great software
developer?
Constructive and varied experience
Sees the value in testing (automated
and manual)
Good grasp of system planning and
dependencies
Positive attitude
Self-motivated learner
Able to identify personal ability
Motivated to keep improving
What part of this list says
“5 years with C#?”
4. Why is this code bad?
function addThingsTogetherToGetAResult(int1, int2, int3, int4, int5)
foo = 0
if int1 ~= nil and int1 ~= 0 then
foo = foo + int1
end
if int2 ~= nil and int2 ~= 0 then
foo = foo + int2
end
-- …continue ad nauseum…
return foo
end
5. What can an experienced
software 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 the
architecture that goes with it
6. What does language experience
provide?
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 of
software development
Not willing to train
Expect you to be overqualified
“You have a Computer Science / Software Engineering degree, so this
should 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 in
knowing 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 personal
time
If you can, host a meetup – shows you support the dev community and
gives an opportunity to address the crowd
12. How do you attract a hacker?
Open House
Work environment & culture is super important to developers – show
yours 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 informal
environment
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. Sometimes
people 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 team
player
Editor's Notes
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