Today I Learned

TIL, 2017-03-17, RubyconfPH Day 1

RubyConfPH 2017 First Day

Bobbilee Hartman/Dylan Wolff: Fostering Jr. Dev Talk

  • Culture:
    • Whole team needs to be on board.
    • Making mistakes is okay.
    • Senior are proactive about checking in. They (junior) might be embarrassed about asking. You (senior) have to show that they (junior) are worth their time.
    • Share other interests, not just all work, all the time.
    • Open and honest communication. Speaker said that she was having a hard time figuring out ember, and when she opened up the other devs said they had a hard time too.
    • Ownership of a discrete feature: Giving them a responsibility/own a feature (while reinforcing that its okay to ask sr. what to do.)
    • Jrs. leading standup/meetings. When they have that kind of responsibility, they feel like they deserve to be ther.
    • Jrs. representing their company at meetups.
  • Support
    • Pairing: Not always, but it can work, switch people up so they are not always paired with the same person always.
    • Don’t let them isolate themselves. Sometimes they are overwhelmed, don’t allow that to happen.
    • Training/conference budget.
    • Learning lab. 2 meetings, one with product manager and one with engineer and ask whatever.
    • Keep them focused on their own growth. They should not compare themselves with others, especially when they are learning with people more senior than them.
    • Regularly scheduled one-on-ones (about once a month)—super helpful, get feedback on how they are doing.
    • Code reviews—consistently review code.
    • Encourage juniors to “timebox” any problems.
    • “How difficult is this question?” If they have a question, it has a number (1-10 1 easy 10 hard). If they ask a question, sr. can say “ah yeah that is a 10, it’s a hard problem, I’ll think of a solution later then chat with you about it” or “that’s a 2 or 3, you can solve that if you google it a bit”

Netto Farah - Challenges with API

  • Multiple clients with different access patterns - iOS wants to download a lot at once jic no connection, web app assumes you have a decent net connection
  • API must be granular—more endpoints, or heavier response/json on the endpoints
  • Soundcloud blog/microservices— 30 api calls to render a track one (not really productive)
  • Documentation/conventions—Documentation is seen as “duplication” and you need to be disciplined to keep it updated with the code
  • GraphQL - A language specification for defining APIs
    • Describe your data in types:
    • Problem GraphQL API as an integration layer for multiple (not so micro) services and front-ends
type Rubygem {
  name: String
  downloads: Int
  versions: [ Int ]
}

Konstantin Hasse - Magenta is a Lie

  • Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.
  • Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.
  • Anything invented after you’re thirty-five is against the natural order of things.
  • Abstractions occur only in your mind. Abstraction is the basis of Computer Science. Without abstractions, every software development talk would start with explaining with flowing electrons.
  • Colors of the Rainbow - “as many as you can see”.
  • Good rules make good programs.
  • “Don’t abstract things too early. Duplication is far easier to deal with the wrong abstraction.”
  • Strong external abstractions allow weak internal abstractions
  • Things we invent that exist in our mind: types, inheritance, composition, type hierarchies, mixins…
  • Most attacks rely on switching up and down abstraction levels. Ex: heartbleed, it worked on the assumption that users use the same password for different sites.
  • Business logic - Only exists in our minds. OOP—none of this actually exist, they are just concepts in our mind. They are not inherent to how we perceive the world.
  • UI elements only exist in our minds, we are just relying on the fact that people will understand what these things look like alone or in combination.

Lightning Talkz (with a Z)

  • CodeCuriosity
  • 1 + 2 + 3 + 4 solution.
  • Always search for a gem with the word gem
  • Repeat what the guy is saying in you head and look at their forehead if you don’t want to look at their eyes.

This project is maintained by daryllxd