title | revealOptions | ||
---|---|---|---|
Patterns for Hiring |
|
Claudina Sarahe, @itsmisscs
Note: Important for both hiring managers and for us as developers and workers. In short,this is an area where I think everyone should be involved and care because it is a pivotal backbone to the culture and environment. We spend so much of our lives at work. Processes...institutions.
Note: these experiences from few years hiring at high growth startup coupled with learnings from organizing and colleagues.
Take a 10-15 minute break after the talk
Note: Do something different. Challenge us here as we gather. Keep your questions and jot them down. Break. Drinks. Food. Circle up chairs. Discussion / QA.
- Global: Hiring leads + team
- Candidate level
- Hiring leads
Note: You are what you eat adage holds true. I believe that an in order to have an enjoyable hiring that yields diverse, inclusive, creative,productive teams you must
Note: If you have a hiring process or are putting in a more formal one, start by inviting those that want to be a part of it
What qualities do you most value in a code and in a candidate?
- Simplicity
- Consistency
Note: Set these up early. Invite the whole team to be a part of it. Core tenets can function both as code and person
Core languages of our craft: JS, CSS, HTML
Note: We valued JS, CSS, HTML. I stand that a good developer can and will know everything. Specialist are necessary. If you need a specialist, then test for that specialization.
Sets expectations for the candidate and your team
- What are some of the tasks this person will be doing?
- Are you hiring for a specific project? What happens after it ends?
- Are you filling a specific need?
Note: Doing this may help you realize you need to define current team roles and responsibilities
- What are the steps in the process? (Phone screen, code, in person)
- Whose going to participate in each step? Are the positions fixed?
- What tools are we going to use? (Greenhouse)
- How are we going to control against bias?
Note: Key is that everyone is aware of process. Hiring is a huge load. Spread it as much as possible.
Note: For us, phone Put someone the phone that cares, will listen, make conversation, and is invested in learning about that person.
Note: You need to collaborate. If you don't want to be on the phone, help them screen candidates by providing questions they can ask. Greenhouse for notes.
Note: Not everyone interviews well. This can either come directly via form sent to candidates or through references. Some ideas
- Do you prefer morning or afternoon interviews?
- Would you prefer in person or remote for your first conversation?
- Do you have any needs we can assist with, such as an energy so to minimize walking?
Note: So many people I wanted to hire but needed to wait until there was stability. Be sincere about this by working with TS to keep in touch. As canddiate, if you really liked it, follow up, even if you do get a job. If no movement after 6 months, tell candidate.
Note: Hiring leads you must be willing to provide feedback so TS send out. Be prepared to offer. Call candidates you personally connected with. Candidates, ask for feedback. What's one things I could improve on my test? If tenets, feedback becomes really easy to give.
Note: What do you want to get out of the job? clear: room to grow, better process; for a new dev could be get a job on respectful teams
- What's the process for a typical feature or sprint?
- How do you spend your day?
- What does a typical day for team member look like?
Note: Ask about someone at your level and also ask above is you are looking to grow
- Pairing
- Code review process
- How are code decisions and standards formed?
- Learning budget—encouraged to learn
- Developer ratio (Junior to Senior)
- Tech stack
Note: A job for jobs sake will not help you. Signs to look for.
Note: All in the details. Areas. Pitfalls to pay attention to
Note: how detailed does it get. if you do something different, note it. documentation helps people.
JSDOC style syntax across all file types
Note: Lots of patterns here. Here's good vs signs of lack of organization
Within the root folder:
- Core code files:
src/
orapp/
- Compiled files:
dist
,public/
,build/
app
├── js
│ │── vendor/
│ │ ├── jquery.js
│ └── main.js
├── css
│ └── main.css
├── views
│ └── index.html
├──
dist
├── // compiled assets
- Spacing
- Indentation
- Stale code (e.g. commented out)
- Plugins available for most editors
Note: Pluggable different standards
- Clear, concise, patterns
- Remix from other frameworks
Note: Check out semantic UI or frameworks for ideas. visit sites you like.
- Are you using more semantically appropriate element?
- Is accessibility a fore or afterthought?
<div class="price">
${{ price }}
</div>
<output for="price-field" name="price" class="price">
${{ price }}
</output>
Represents the result of a calculation or user action.
Note: Okay. Esoteric. But this isn't..
<div class="btn">
Get it
</div>
<div class='item'>
<div class='item__name'>
{{ name }}
</div>
<div class='item_description'>
{{ description }}
</div>
<div class='item_price'>
{{ price }}
</div>
<div class='item__purchase' data-name='{{ name }}' data-price='{{ price }}'>
<div class='btn'>
Get it
</div>
</div>
</div>
<article class='item'>
<h2 class='item__name'>
{{ name }}
</h2>
<p class='item_description'>
{{ description }}
</p>
<output for="price-field" name="price" class="price">
${{ price }}
</output>
<div class='item__purchase' data-name='{{ name }}' data-price='{{ price }}'>
<button class='btn'>
Get it
</button>
</div>
</article>
- Understanding of specificity
- CSS Architecture
- Organization
- Style
button.delete {
}
.price {
}
.sidebar {
margin-left: 3%;
padding: 1.5em 40px;
}
- SMACSS
- BEM
- CSS Modules
- ITCSS
- ExpressiveCSS
- FunctionalCSS
Note: some are more about styles and less prescriptive about organization. others are more coupled.
- Process your CSS
- Transpile your JavaScripts
- Compile your HTML Templates
- Easy to grok
- Lots of tutorials and good content
- More intuitive working with HTML templates
Note: If react job or JS heavy, sure. Any of the followign can work in either
@mixin box-sizing( $type: border-box ) {
-webkit-box-sizing: $type;
-moz-box-sizing: $type;
-o-box-sizing: $type;
-ms-box-sizing: $type;
box-sizing: $type;
}
*,
*::before,
*::after {
@include box-sizing(border-box);
}
Note: If you are using a build process, this is must @EXTRA Webpack way vs gulp way.
@mixin box-sizing( $type: border-box ) {
box-sizing: $type;
}
*,
*::before,
*::after {
@include box-sizing(border-box);
}
$(".cart .count").html(count);
$(".cart .total").html(total);
Note: Going to refactor.... better
$(".js-cart .js-count").html(count);
$(".js-cart__count").html(count);
Note: Scientiest doesn't keep up with research in their field. They will become obsolete
- Digest Lists & Newsletter
- Podcasts
- Meetups
- Conferences
- Twitter accounts and lists
- Slack groups
- Medium
Note: Volunteer at conferences.
- Bleeding edge. Hottest. (0-18 months)
- Best practices (3+ years)
- What’s on the mind of the community?
- Wipe your node modules
- Re-install node version
- Ask a friend to try out
- nvmrc
- n
Note: Include license files or mentions in code comments. Add mention in your readme. This also shows that you keep up.
Note: Seniors (must work) and mid-levels. recap should flag it. hopefully discussed in the interview
- Why are you looking to leave your current position?
- What do you like to do when you aren’t coding (and the answer can be coding)
- Tell me about a project or moment you were most proud of in the last year
- What went well?
- What would you improve given/more time resources?
- Do you have any feedback on the challenge (what would you change, improve, keep…)?
Note: Anecdote—story about how got this from a candidate. These are great way to provide more perspective about the work of the candidate