Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Clojure @ Attendify @ 2021

Clojure @ Attendify @ 2021

Avatar for Serhii Nechyporchuk

Serhii Nechyporchuk

April 22, 2021

More Decks by Serhii Nechyporchuk

Other Decks in Programming

Transcript

  1. Agenda 1. Short Intro 2. Why are we using Clojure

    3. Setting your expectations • Stability • Open Source • Libraries Inactivity 4. How to run Clojure team • Hiring • Onboarding
  2. • Event tech company • Company goal • Way before:

    “Engaging attendees” • Before: “Using data to personalize” • Pandemic: “Survive mode, mostly streaming and virtual” • Now: “Using data to personalize” • Fully remote since March 2020 • We have 12 Clojure(Script) developers • Loc: 240K Clojure, 150K ClojureScript About Attendify
  3. • Because it works for us • It is fun

    to use • We are productive • What makes it practical • Based on JVM 🔥 • What we care less • Atoms, agents, refs, transactional memory - rarely used • Macro system - rarely used • core.async, clojure.spec - not sharing core principles Why Clojure
  4. • Clojure is great language • I’m not critiquing •

    Maybe useful for newcomers • Clojure Stability • Clojure Open Source model • Libraries inactivity Setting Expectations
  5. • Clojure core team is about stability • Do not

    expect new features in the language • And the “core” libraries too • Annotations support, Lambda support, etc • Do not expect improvements of a compiler • Startup time, compile time, etc • Do not expect that important (to you) bugs will be fixed Clojure stability
  6. • It is different from the “traditional” • The code

    is open • You can read, fork • But it is hard to contribute • You have to sign CA • Contribution process is optimized over Rich Hickey’s time [Open Source is Not About You] • Clojure community is not a place for discussing [Etiquette] Clojure Open Source
  7. • Clojure has lots of super popular libraries • Libraries

    drop in activity much faster than in popularity • 6 months after last activity is OK • Partly because many Clojure libraries are just wrappers over Java • At Attendify we are trying not using them • They are usually have nice APIs • You don’t have to wait to upgrade • You have access to all original API features Inactive 3rd Parties
  8. • Hiring is key for any team, not only Clojure

    • Ukrainian Clojure market is pretty small • Not only Ukraine • No growth in respondents in Clojure Survey • You may be forced to hire people you are not sure about • Becoming remote expanded our reach • Do not expect people with experience Hiring
  9. • We are serious about hiring • Our interviews: •

    Sure, we check technical level • Sure, we do require solid technical level • Tech interview • It defines your current occupation - 100% • How fast you will able to grow? • How far you will able to grow? Attendify 🤓 Hiring
  10. • Key questions • Will you like working with us?

    • Will we like working with you? • Will all of us benefit from this collaboration? • Will you grow beyond technical expertise? • Think about most productive you were working in • People were all different • Something has unite them Attendify 🤓 Hiring
  11. • Why is it important • First impression on a

    team • You don’t know anything • At Attendify, we are always working on improving onboarding • What worked for us • Pair Programming! Onboarding
  12. • Two engineers are working (classical) • On same task

    • On same computer • Only one of the is coding • You can switch roles • It is Peer Review on steroids • Continuous version Pair Programming
  13. • During the first weeks at Attendify for newcomers •

    Pair newcomer with every team member • Change tasks: infrastructure, feature, bug fix, etc • People are onboarding much easier and faster • It is easier to learn new language • You get to know lots of people • You are getting feedback immediately • You are providing feedback immediately • It is calming to have a person to ask any question Pair Programming @ Attendify