Clojure/north

June 25th - 26th, 2020

Worldwide

Register

About the Remote Conference

Due to the craziness of a global pandemic, the only responsible way to put on Clojure/north is virtually as a remote conference. We've worked hard to put something together that you'll find meaningful and unique over just watching talks on Youtube. Come join us at Clojure/north 2020 in a socially distant fashion!

What

Clojure/north is a non-profit event from the Clojure community for the community. Our goal is to share knowledge and be an accessible, enjoyable event for newcomers and veterans to Clojure.

Where

Virtually! Through the magic of the internet

When

Thursday - Friday
June 25th - 26th, 2020

Tickets


Note: attendees who have purchased the previous in-person tickets will be granted a partial refund and extended an opportunity to request a refund up until June 21st.

How it works

Experience the conference from the comfort of your home!

  1. Watch recorded talks anytime starting June 22nd. Our speakers are internationally renowned members of the Clojure and FP community (check out last year's talks for examples)
  2. Attend Clojure/north on June 25th and 26th from your home and take part in:
    • Live Workshops on a variety of topics. For programmers from beginners to experts!
    • Exclusive Q&As with speakers. Get a chance to ask that burning question you've had.
    • Virtual networking breakout rooms. Meet and connect with members of the Clojure and functional programming community from across the globe.
    • After party socials (games, virtual drinks, and more!)
By Pablo Stanley. CC BY 4.0

Pre-recorded talks will be released publicly two weeks after the conference.

Event Schedule

All times are in EDT (GMT-04:00)

09:00 AM

Intros / setup

Q & A [Keynote] Parens for Python

Carin Meier

Clojure Katas - Functional Programming

Rafal Dittwald & James Cash

12:00 PM

Break

Q & A Duckula: Type Safe Backend Services with Clojure, HTTP & Avro

Łukasz Korecki

Clojure Katas - Designing Data-Driven DSLs

Rafal Dittwald & James Cash

Q & A Evolving Code Through Accretion

Wilker Lucio

Building Marvelous and Heroic Systems from the Ground Up

Mark Bastian

06:00 PM

Wrap-up

09:00 AM

Intros / setup

Concurrency with Clojure

Kapil Reddy & Rhishikesh Joshi

11:30 AM

Break

Concurrency with Clojure cont'd

Kapil Reddy & Rhishikesh Joshi

02:00 PM

Break

Concurrency with Clojure cont'd

Kapil Reddy & Rhishikesh Joshi

03:30 PM

Q & A Data Diffing Based Software Architecture Patterns

Huahai Yang

Q & A [Lightning] Gluing Clojure Microservices

Alexander Fertman

Q & A More Powerful Multimethods

Cam Saul

The REPL as a General Purpose Tool

Wesley Matson

06:00 PM

Wrap-up & Social

Workshops

Workshops are interactive sessions that will range between one to five hours in length (with breaks as appropriate). The goal is to offer a guided experience for attendees on a new subject for them, be it entry level or advanced.

  • There’s more than one way to solve a problem. This workshop is an opportunity to step out of your Clojure bubble and see how other Clojure developers approach and solve programming challenges.

    In the first hour, participants will be tasked with solving 1 (or more) challenge problems, and in the second hour, we will review and discuss the various solutions.

    There will be 4 problems, but each participant will only work on 1 (or 2 if there’s time), and then participate in the discussions for all 4. These problems won’t be “puzzles” that require discovering a particularly ingenious solution, but rather, reasonable-scoped “boring” tasks that have been designed to allow for varying kinds of solutions and showcase the strengths (or weaknesses) of Clojure and functional programming.

    (For beginners to Clojure, you’ll be welcome to solve the problems in your preferred language, or attempt one of the simpler problems with Clojure).

    1st Hour:

    • introduce format and problems
    • participants work on problems

    2nd Hour:

    • participants submit their solutions for critique
    • review and discussion of solutions to each problem

    Length: 2 hours

  • In recent years, there’s been a wave of new Clojure libraries written with “data driven” APIs. Be it routing, database-querying, or composing systems - problems that were once solved with string-, function- or macro-based DSLs are now being re-solved in a new “style” that’s somewhat unique to Clojure. What does it mean to be "data driven"? Is it just a fad? Is it only for libraries?

    In the first hour, we will do a brief explanation of data-driven APIs, and then participants will be tasked with designing data-driven APIs for some prepared problems. In the second hour, we will review and discuss the various solutions.

    (Since we’re focusing on design rather than implementation, this workshop should be accessible to Clojurians of all levels).

    1st Hour:

    • introduce “data-driven” apis
    • introduce design problems
    • participants work on design problems

    2nd Hour:

    • participants submit their solutions for critique
    • review and discussion of solutions

    Length: 2 hours

  • Clojure is a fantastically powerful, yet simple language. Despite this assertion, it is not uncommon for those new to the language to have a hard time grasping how to build complete applications from the basic building blocks of Clojure.

    This workshop will bridge the gap from the basics of data literals all the way to building a complete, stateful web backend application. Participants will learn the following key takeaways:

    • Clojure is a data-centric language that frees developers to think about their problems simply and clearly.
    • The core functions of Clojure can be thought of as a powerful data DSL that is appropriate for working and thinking in any domain.
    • Clojure code is often developed in a bottom-up, functional style.
    • Powerful libraries exist beyond Clojure core that are also built on data-driven and functional concepts.
    • Stateful applications can be developed and organized in a functional manner by pushing state to the edges of their applications and isolating stateful components.

    Length: 2.5 hours

  • Some of us fight production fires using the REPL, even for non-Clojure projects. Each experience yields a useful script as an artifact. With a smidgen of forethought, these tools we build for ourselves can be shared and reused in creating investigative tooling for our teams.

    Format:

    • Intro/Icebreaker Exercise
    • Data Manipulation Exercise
    • Data Joining Exercise
    • "Next Steps"
    • Q&A

    Length: 1 hour

  • Format:

    • Introduction
    • Introduction to basics and discussion about concurrency
    • Solving thundering herd
    • A few anti patterns with concurrency constructs
    • Introduction to CSP and how it differs from shared-memory concurrency
    • Introduction to core.async library and its capabilities
    • Build an in-memory data processing pipeline using channels
    • Q&A

    Length: 5 hours

Questions & Answers

Q&As are your opportunity to ask questions to some of our speakers. Each Q&A session is up to 30 minutes in length. Ask that question that's been burning in your head since you watched their talk!

Event Speakers

Alexander Fertman

Alexander Fertman

[Lightning] Gluing Clojure Microservices

Asaf Chelouche

Asaf Chelouche

Introduction to Lambda Calculus

Cam Saul

Cam Saul

More Powerful Multimethods

Carin Meier

Carin Meier

[Keynote] Parens for Python

Dana Borinski

Dana Borinski

Unleash the Power of the REPL

Dann Toliver

Dann Toliver

Software, but not as we know it: Part Two

Dmitri Sotnikov

Dmitri Sotnikov

[Lightning] Hassle-free reporting with Lumo

Francisco Viramontes

Francisco Viramontes

Literate Stream Processing

Huahai Yang

Huahai Yang

Data Diffing Based Software Architecture Patterns

James Cash

James Cash

Don't Stop Now

Kapil Reddy

Kapil Reddy

Building Reliable, Scalable Services with Clojure and Core.async

Łukasz Korecki

Łukasz Korecki

Duckula: Type Safe Backend Services with Clojure, HTTP & Avro

Luke Meyers

Luke Meyers

Monoids and Software Engineering

Mike Fikes

Mike Fikes

ClojureScript on Microcontrollers

Paul Lam

Paul Lam

Debugging Clojure Services Under Stress

Paulo Feodrippe

Paulo Feodrippe

TLA+ and Clojure, a Small Primer

Ramsey Nasser

Ramsey Nasser

The Language of the Language: Comparing my experiences of compiler construction in Clojure and F#

Rhishikesh Joshi

Rhishikesh Joshi

Ants in My Chans

Tomáš Lamr

Tomáš Lamr

[Lightning] How Clojure Saved Our Office

Wilker Lúcio

Wilker Lúcio

Evolving Code Through Accretion

Xavier O'Neil

Xavier O'Neil

Surfing With Clojure

Sponsors

Clojure/north is a non-profit conference so every dollar you put in goes directly towards making the event a better experience for everyone.

Sponsor package

F.A.Q

  • Please send us an email at hello@clojurenorth.com with a copy of some sort of verification you're enrolled in a post-secondary institution (student ID, timesheet, formal verification from institution, etc.), and we will reply to you with details on how to get your discounted ticket.

Mailing List

Code of Conduct

All attendees, speakers, sponsors, and volunteers for Clojure/north are required to agree to the event code of conduct. Organizers will enforce this code throughout the event. We are expecting cooperation from all participants to establish a safe environment for all.

Need Help?

You can contact us at hello@clojurenorth.com or call the number in your event package during days of the event.

The Quick version

We are dedicated to provide a harassment-free conference experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter and other online media. Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organizers.

The Less Quick Version

Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.

Participants asked to stop any harassing behaviour are expected to comply immediately.

Sponsors are also subject to the anti-harassment policy. In particular, sponsors should not use sexualized images, activities, or other material. Booth staff (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.

If a participant engages in harassing behaviour, the conference organizers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund.

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff immediately. Conference staff can be identified as they'll be wearing branded volunteer buttons.

Conference staff will be happy to help participants contact hotel/venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance.

We expect participants to follow these rules at conference and workshop venues and conference-related social events.

Original source and credit: http://2012.jsconf.us/#/about & The Ada Initiative