Conceptual Compression:
- Like putting the SQL behind an ORM such that you don't need to know as much of it to use it.
- Why build yourself when you get it for free from something else?
- The list of things to know gets so long people get intimidated to even get started in it.
- allows for people with no programming understanding to get started quickly
- gets around a lot of gatekeeping in programming
"Leaky Abstractions"
@nmeans
"The Field Guide for Understanding Human Error" by Sidney Dekker First Stories:
- Hindsight Bias, exaggerating your ability to have predicted it in the first place
- Outcome Bias, you judge decisions made based on knowing their outcome
Second Stories:
- understating the context in which people made decisions that led to something
Human Error is never the cause.
- as WHAT is responsible, not WHO
- understand WHY it made sense
- Seek FORWARD accountability, not backward.
Always look for the second story!
Vladimir Dementyev @palkan_tula
Authentication - answers "Who's there?" Authorization - answers "am I allowed to do that?"
- Granting and revoking access
- How to verify access?
Becomes permission records in DB
Security clearance check ( a hierarchy of access to compare to )
Collects permission into one role that can be applied
Being a mom in tech sucks:
- parental leave isn't good
- more like maternity leave
- companies have a huge impact on how much time you can actually take
Flex Schedule allows for unexpected things of raising a kid to not impede your job
Think about parents' needs around company outings or team-building events
Career Growth
- going home and learning more is not an option for parents
-
Maintenance Mode
- the fail whale mode
-
Read-Only Mode
- no saving of information
-
Feature Flags
- allows for controlled experience for when certain things aren't working
-
Rate Limits
- Protection from malicious traffic
- drops load effectively
-
Stop non-critical work
- prioritize what needs to be computed
-
Known Unknowns
- features or fixes that you're unsure of
- Scientist Gem
-
Circuit Breakers
- responsive shut-offs
- cutting off things at a certain capacity automatically
- hard close
Caveats:
- visibility
- does it actually work?
- knowledge vs control
@megantiu
- Fulfills a real need.
- Unify and engage your team.
- create more diverse/inclusive organizations
an entry level job to allow for much more learning
focuses on growth, rather than internships that may focus on a project
You need:
- A plan
- Cash
- Buy-in
Decide:
- Program length
- number of apprentices
- who's going to do what
You need a game plan
establish an ubiased, level playing field
- Application
- Code Challenge
- Final Interview
end-to-end anonymization to prevent bias
What does your background bring to the table? Tell us about a problem that challenged you?
Numerical review values for data-driven decisions
Code Challenge:
- decide what you want to know
- figure out what format to use
- write the code challenge
used a script to anonymize commits and everything
Use an HR platform! Don't limit code challenge to one language.
Set Goals for the apprentices
Similar onboarding experience as full time devs
Scavenger hunt!
Include lessons in some foundational concepts like OOP
Early exposure to the product development cycle
Team rotations doing customer facing work.
Apprenticeship Patterns
regular communication, via 1:1
include them in team rotation decisions
don't be afraid to let them fail
look for early warning signs and be proactive about intervening
ensure everyone is on same page for expectations
Stop the bleeding first before developing features/bug fixes, at least on upgrade branch.
Failing tests can be marked and passed anyway to allow use of Continuous Integration so that they can come back to them while still using the CI.
Having more people actively working on the upgrade helps it go faster.
https://github.com/Edouard-chin
lazyatom.com/crazy-ones
Brew Gentleman
@sinthetix
Recognize a problem that needs to be solved
Assemble your team
- importance of shared values
- importance of shared commitment level
Team Compositin should be different roles
- Diversity is a necessity
Utilize strengths
Strong Leaders
Are both guides and servants
Motivate and drive
Keep the team working together!
Communicate Effectively
Central information base
Experiment!
- requires a certain amount of blamelessness
Browser tests have been an insane amount of work, even using capybara setup, plus poltergeist isn't a real browser
some puma editing in Rails 5.1, but fixed in 5.2
- Implentation docs vs usage docs
- It's not a burden when it's a tool for iteration
- If you came here you probably need docs
Why are docs so hard?
- we keep forgetting
- hate updating docs
- complexity
No need to remember things if you document first then write code.
- have a test that fails until the code matches the docs
Documentation-Driven Development
- create docs that computers can read
- Swagger/OpenAPI