SlideShare a Scribd company logo
1 of 51
Download to read offline
proper care and 
feeding for your 
junior developer 
Eric Stiens 
Software for Good 
@mutualarising
how to be an awesome junior developer 
how to mentor junior developers you work with 
how i became a junior developer 
2 stories and some other stuff
(it's not very 
technical)
THIS 
WILL BE BRIEF 
(i promise)
Background in Sociology and Social Work 
15+ years working in non-profit field 
Racial Justice researcher
Highly Trained and 
Professional SJW
web coordinator for international 
mental health non-profit 
drupal without php...whee! 
solo consulting company for non-profits 
mailchimp, dropbox, listservs, fixing printers, online 
donations, social media, networking, hardware 
support 
And a bunch of Wordpress sites (without php...whee!)
Bitmaker Labs 
Bootcamp in Toronto
GETTING HIRED 
mutual meeting not an audition 
make sure they want a junior 
developer 
(not just a sr.developer lite! make use of other skills. 
know how to onboard)
I ASKED ABOUT 
support for my learning, pairing, 
mentoring, commitment to 
diversity and social justice, when 
I'd push production code, testing, 
ability to work on front-end and 
back-end stuff
full stack developer 
primarily working 
with Ruby and Rails 
ask me about it 
later
MY FIRST DAY! :nervous:
model.rb 
def method_missing(sym, *args, &block) 
if sym == :data || sym == :data= 
super 
elsif (m = sym.to_s.match(/^([w]+)_before_type_cast$/)) && args.length == 0 
send m[1].to_sym 
elsif sym.to_s.match(/^[w]+$/) && args.length == 0 
if self.class::EAR_ATTRS.include?(sym) 
get_dynamic_result(sym) 
else 
super 
end 
elsif sym.to_s.match(/^[w]+=/) && args.length == 1 
m = sym.to_s.chop.to_sym 
if self.class::EAR_ATTRS.include?(m) 
set_dynamic_result(m, args.first) 
else 
super 
end 
else 
super 
end 
end
wtf?
schema.rb 
t.text "data",:null => false 
⬆ 
(100 attributes live inside me as a giant serialized hash)
WTF?
YOU ARE IN A LEGACY CODEBASE 
-> RUN TESTS 
YOU HAVE NO TESTS 
-> READ SPEC 
YOU HAVE NO SPEC 
-> WRITE FIX 
YOU ARE EATEN BY AN ELDER CODE HACK
TESTING 
and 
READING CODE
“Programs must be written 
for people to read, and 
only incidentally for 
machines to execute.” 
- SICP
(i haven't actually read SICP yet)
(Interestingly, 
writing tests for 
someone else's code, 
is a particularly good 
way to read it)
MENTORING 
Don't hire a junior developer you 
can't mentor. It's not fair to them. 
It's not fair to your team. 
Everybody loses.
Some mentoring rules 
No feigning surprise 
No well-actually's 
No back-seat driving 
No subtle -isms
DON'T USE THEIR 
KEYBOARD 
(Yes, it will be frustrating. They 
will be slow. They will make 
typos. They will get flustered. 
They will get syntax wrong. They 
will stumble. It's okay. Be 
patient.)
CODE REVIEW 
We do code review on pull 
requests. You can never merge 
your own code into master, no 
matter how small the change.
BAD CODE REVIEW 
writing code for them (too specific) 
not being specific 
anything mean or too terse 
focusing too much on inconsequential style choices
GOOD CODE REVIEW 
"Great job getting this feature to work, but you could probably 
refactor X and Y into another object." 
"We probably need some tests on this logic" 
"A more idiomatic way of doing this is..." 
"You should look into this Rails method here, it does what you 
want" 
"What will happen if we pass nil into this method?" 
Also, nitpicks are good. (Just not all the time).
have your juniors do 
code reviews as well!
www.exercism.io
PAIRING 
(sadly, we don't do enough of this at SfG...yet! But we are 
working on it)
LET JUNIORS PAIR 
TOGETHER 
Rarely have the same strengths. 
Builds team cohesion. 
Increases productivity
A STORY ABOUT A 
SIDE PROJECT
WHAT DID I LEARN? 
how to build an API, lots of stuff about JSON, how to 
use RABL, how many people make feature requests to 
open source projects and how little people fork and 
PR, how to scale an app on Heroku, that timezones 
suck and are really hard, nokogiri tricks
My company paid me to work on 
it and then paid for the hosting 
They ended up with a developer that had leveled up in 
some skills, some great publicity, and even a few job 
inquiries
SOME MORE 
IMPORTANT THINGS 
IN NO PARTICULAR 
ORDER
DESIGN PATTERNS
WATCH OTHER 
PEOPLE CODE 
(check out peepcode.com! / 
pluralsight)
READ A BOOK 
READ A BOOK
Some thoughts on the 
pipeline...
DIVERSITY == 
SOCIAL JUSTICE 
desegregation is not the same as 
integration
DIVERSITY 
♻ 
SOCIAL JUSTICE
thank you buffalo ! 
@mutualarising 
eric stiens
Some further reading on diversity and social justice in tech 
The Myth of a Magical Future 
by Kate Losse 
http://www.katelosse.tv/latest/2014/9/12/magical-futures 
Etsy’s Trying to Fix Tech’s Women Problem. Why Aren’t 
You? 
by Ann Friedman 
https://medium.com/matter/this-is-the-last-thing-youll-ever-need- 
to-read-about-sexism-in-tech-56b9a3a77af0
Manufacturing the Talent Shortage 
by Dimas Guardado 
http://modelviewculture.com/pieces/manufacturing-the-talent-shortage 
Even At Highest Level, STEM’s Leaky Pipeline Failing 
Women and Black People 
by Laura Mandanas 
http://www.autostraddle.com/even-at-highest-level-stems-leaky- 
pipeline-failing-women-and-black-people-245489/

More Related Content

What's hot

Embracing Startup Life and learning to think The Startup Way
Embracing Startup Life and learning to think The Startup WayEmbracing Startup Life and learning to think The Startup Way
Embracing Startup Life and learning to think The Startup WayBen Hall
 
Learning to think "The Designer Way"
Learning to think "The Designer Way"Learning to think "The Designer Way"
Learning to think "The Designer Way"Ben Hall
 
What Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignBen Hall
 
Making Effective Prototypes
Making Effective PrototypesMaking Effective Prototypes
Making Effective PrototypesMatthew Ho
 
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7Elisha Tan
 
Five Stages of Development - Nordic.js
Five Stages of Development  - Nordic.jsFive Stages of Development  - Nordic.js
Five Stages of Development - Nordic.jsRobert Nyman
 
[EN] Great software development quotes
[EN] Great software development quotes[EN] Great software development quotes
[EN] Great software development quotesEudris Cabrera
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developersMichael Marotta
 
Geecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelieversGeecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelieversBruno Bossola
 
Pimpin' [Software Projects] Ain't Easy
Pimpin' [Software Projects] Ain't EasyPimpin' [Software Projects] Ain't Easy
Pimpin' [Software Projects] Ain't EasyAmy Hoy
 

What's hot (10)

Embracing Startup Life and learning to think The Startup Way
Embracing Startup Life and learning to think The Startup WayEmbracing Startup Life and learning to think The Startup Way
Embracing Startup Life and learning to think The Startup Way
 
Learning to think "The Designer Way"
Learning to think "The Designer Way"Learning to think "The Designer Way"
Learning to think "The Designer Way"
 
What Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual Design
 
Making Effective Prototypes
Making Effective PrototypesMaking Effective Prototypes
Making Effective Prototypes
 
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
 
Five Stages of Development - Nordic.js
Five Stages of Development  - Nordic.jsFive Stages of Development  - Nordic.js
Five Stages of Development - Nordic.js
 
[EN] Great software development quotes
[EN] Great software development quotes[EN] Great software development quotes
[EN] Great software development quotes
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Geecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelieversGeecon10: Object Oriented for nonbelievers
Geecon10: Object Oriented for nonbelievers
 
Pimpin' [Software Projects] Ain't Easy
Pimpin' [Software Projects] Ain't EasyPimpin' [Software Projects] Ain't Easy
Pimpin' [Software Projects] Ain't Easy
 

Similar to proper care and feeding for your junior developer

How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to CodeMattan Griffel
 
Kickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond ConferenceKickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond ConferenceDan Chuparkoff
 
Sp branding in idp discovery & login
Sp branding in idp discovery & loginSp branding in idp discovery & login
Sp branding in idp discovery & loginmarkwilliams
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersZeroTurnaround
 
On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)Zoe Landon
 
Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developerTopu Newaj
 
TMA 2015 The Technical Mind
TMA 2015 The Technical MindTMA 2015 The Technical Mind
TMA 2015 The Technical MindSteve Levy
 
A Cup of Tea With Michael Larsen
A Cup of Tea With Michael LarsenA Cup of Tea With Michael Larsen
A Cup of Tea With Michael LarsenMichael Larsen
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentSven Peters
 
15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript ProgrammingFusionCharts
 
A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)Crystal Stephan
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Developmentjazoon13
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinAlessandro Nadalin
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
12 interviews with russian experts
12 interviews with russian experts12 interviews with russian experts
12 interviews with russian expertsElenaMarchenko10
 
How to hire a hacker
How to hire a hackerHow to hire a hacker
How to hire a hackerRTigger
 
Life in the tech trenches (2015)
Life in the tech trenches (2015)Life in the tech trenches (2015)
Life in the tech trenches (2015)Julien SIMON
 
CTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoCTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoFrance Digitale
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)Rachel M. Carmena
 

Similar to proper care and feeding for your junior developer (20)

HackerRank
HackerRankHackerRank
HackerRank
 
How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to Code
 
Kickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond ConferenceKickass Agile Development - Agile & Beyond Conference
Kickass Agile Development - Agile & Beyond Conference
 
Sp branding in idp discovery & login
Sp branding in idp discovery & loginSp branding in idp discovery & login
Sp branding in idp discovery & login
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)
 
Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developer
 
TMA 2015 The Technical Mind
TMA 2015 The Technical MindTMA 2015 The Technical Mind
TMA 2015 The Technical Mind
 
A Cup of Tea With Michael Larsen
A Cup of Tea With Michael LarsenA Cup of Tea With Michael Larsen
A Cup of Tea With Michael Larsen
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
 
15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming
 
A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in Turin
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
12 interviews with russian experts
12 interviews with russian experts12 interviews with russian experts
12 interviews with russian experts
 
How to hire a hacker
How to hire a hackerHow to hire a hacker
How to hire a hacker
 
Life in the tech trenches (2015)
Life in the tech trenches (2015)Life in the tech trenches (2015)
Life in the tech trenches (2015)
 
CTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoCTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, Viadeo
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

proper care and feeding for your junior developer

  • 1. proper care and feeding for your junior developer Eric Stiens Software for Good @mutualarising
  • 2. how to be an awesome junior developer how to mentor junior developers you work with how i became a junior developer 2 stories and some other stuff
  • 3.
  • 4.
  • 5. (it's not very technical)
  • 6.
  • 7. THIS WILL BE BRIEF (i promise)
  • 8. Background in Sociology and Social Work 15+ years working in non-profit field Racial Justice researcher
  • 9. Highly Trained and Professional SJW
  • 10. web coordinator for international mental health non-profit drupal without php...whee! solo consulting company for non-profits mailchimp, dropbox, listservs, fixing printers, online donations, social media, networking, hardware support And a bunch of Wordpress sites (without php...whee!)
  • 12. GETTING HIRED mutual meeting not an audition make sure they want a junior developer (not just a sr.developer lite! make use of other skills. know how to onboard)
  • 13. I ASKED ABOUT support for my learning, pairing, mentoring, commitment to diversity and social justice, when I'd push production code, testing, ability to work on front-end and back-end stuff
  • 14. full stack developer primarily working with Ruby and Rails ask me about it later
  • 15. MY FIRST DAY! :nervous:
  • 16. model.rb def method_missing(sym, *args, &block) if sym == :data || sym == :data= super elsif (m = sym.to_s.match(/^([w]+)_before_type_cast$/)) && args.length == 0 send m[1].to_sym elsif sym.to_s.match(/^[w]+$/) && args.length == 0 if self.class::EAR_ATTRS.include?(sym) get_dynamic_result(sym) else super end elsif sym.to_s.match(/^[w]+=/) && args.length == 1 m = sym.to_s.chop.to_sym if self.class::EAR_ATTRS.include?(m) set_dynamic_result(m, args.first) else super end else super end end
  • 17. wtf?
  • 18. schema.rb t.text "data",:null => false ⬆ (100 attributes live inside me as a giant serialized hash)
  • 19. WTF?
  • 20. YOU ARE IN A LEGACY CODEBASE -> RUN TESTS YOU HAVE NO TESTS -> READ SPEC YOU HAVE NO SPEC -> WRITE FIX YOU ARE EATEN BY AN ELDER CODE HACK
  • 22. “Programs must be written for people to read, and only incidentally for machines to execute.” - SICP
  • 23. (i haven't actually read SICP yet)
  • 24. (Interestingly, writing tests for someone else's code, is a particularly good way to read it)
  • 25. MENTORING Don't hire a junior developer you can't mentor. It's not fair to them. It's not fair to your team. Everybody loses.
  • 26. Some mentoring rules No feigning surprise No well-actually's No back-seat driving No subtle -isms
  • 27. DON'T USE THEIR KEYBOARD (Yes, it will be frustrating. They will be slow. They will make typos. They will get flustered. They will get syntax wrong. They will stumble. It's okay. Be patient.)
  • 28. CODE REVIEW We do code review on pull requests. You can never merge your own code into master, no matter how small the change.
  • 29. BAD CODE REVIEW writing code for them (too specific) not being specific anything mean or too terse focusing too much on inconsequential style choices
  • 30. GOOD CODE REVIEW "Great job getting this feature to work, but you could probably refactor X and Y into another object." "We probably need some tests on this logic" "A more idiomatic way of doing this is..." "You should look into this Rails method here, it does what you want" "What will happen if we pass nil into this method?" Also, nitpicks are good. (Just not all the time).
  • 31. have your juniors do code reviews as well!
  • 33. PAIRING (sadly, we don't do enough of this at SfG...yet! But we are working on it)
  • 34. LET JUNIORS PAIR TOGETHER Rarely have the same strengths. Builds team cohesion. Increases productivity
  • 35.
  • 36. A STORY ABOUT A SIDE PROJECT
  • 37.
  • 38.
  • 39.
  • 40. WHAT DID I LEARN? how to build an API, lots of stuff about JSON, how to use RABL, how many people make feature requests to open source projects and how little people fork and PR, how to scale an app on Heroku, that timezones suck and are really hard, nokogiri tricks
  • 41. My company paid me to work on it and then paid for the hosting They ended up with a developer that had leveled up in some skills, some great publicity, and even a few job inquiries
  • 42. SOME MORE IMPORTANT THINGS IN NO PARTICULAR ORDER
  • 44. WATCH OTHER PEOPLE CODE (check out peepcode.com! / pluralsight)
  • 45. READ A BOOK READ A BOOK
  • 46. Some thoughts on the pipeline...
  • 47. DIVERSITY == SOCIAL JUSTICE desegregation is not the same as integration
  • 49. thank you buffalo ! @mutualarising eric stiens
  • 50. Some further reading on diversity and social justice in tech The Myth of a Magical Future by Kate Losse http://www.katelosse.tv/latest/2014/9/12/magical-futures Etsy’s Trying to Fix Tech’s Women Problem. Why Aren’t You? by Ann Friedman https://medium.com/matter/this-is-the-last-thing-youll-ever-need- to-read-about-sexism-in-tech-56b9a3a77af0
  • 51. Manufacturing the Talent Shortage by Dimas Guardado http://modelviewculture.com/pieces/manufacturing-the-talent-shortage Even At Highest Level, STEM’s Leaky Pipeline Failing Women and Black People by Laura Mandanas http://www.autostraddle.com/even-at-highest-level-stems-leaky- pipeline-failing-women-and-black-people-245489/