We began in Pune in 2016 and after two editions in namma Bengaluru, we’re delighted to come full circle back to apla Pune (and all those delicious bakarwadis and modaks).
As India’s premiere Clojure and ClojureScript conference, we strive to facilitate the free exchange of ideas between new and experienced programmers alike.
Over the years, IN/Clojure has served as a platform to kickstart a series of Clojure workshops and meet-ups across the country. And it has helped attendees make a strong case for Clojure, and Clojurescript adoption in their companies.
We believe that this edition of the conference, like previous editions will foster the growing Clojure community in Asia.
Who should attend?
Whether you are knee-deep writing macros that write macros, or struggling to escape the beginner’s plateau, or wondering if/why/how to adopt Clojure in your organization, or are in it purely for the joy of learning, IN/Clojure is the event bringing together a great mix of Clojure/Script masters, practitioners, and newcomers from across India and beyond.
We welcome you to join nearly 149 other people and…
- Speak: CFP is open till 20 Jan 2020.
- Learn: We run two all-day hands-on Clojure workshops. Check ‘em out here.
- Converse: Derive some sweet cerebral expansion from the talks, the tweetstorms, and the “hallway tracks”.
- Inspire: Trade notes, ideas, tools, and techniques with new and experienced Clojure programmers alike (photostream).
- Be Inspired : Start that project, that meetup, that hack night, that business, that beautiful work of art.
- Sponsor: Help foster the growing Clojure and FP community in India/Asia.
- Network: Meet seasoned practitioners and awesome sponsors (listed below). Hire or get hired. Acquire or get acquired ;-)
- Grab: Some cool swag, and some fun swag, and some zany swag.
- Party: Eat, drink, and make merry with some of the nicest people around.
Plus, this year we enjoy the company of the perennially effervescent Bozhidar Batsov; prolific Clojurist, Emacs fanatic, maintainer of CIDER, and Lisp hacker extraordinaire.
(Oh, and tickets are going, going, going… grab yours while stocks last.)
IN/Clojure 2020 Sponsors:
Speaker travel support
Growing a Clojure Company from small to mid-sized (and hopefully beyond): tips, tricks, habits, practices
This is a crisp talk targeting engineers in leadership roles in Clojure companies. I will cover our experience at Helpshift, growing from 5 Clojure engineers to 30+ today. I will talk about:
1. Clojure as a force-multiplier in a small company
2. Clojure as a way to attract a certain kind of talent
3. Problems as the company grows. Specific things around Clojure that have worked for us over time.
- Hiring senior vs junior talent. Problems and solutions around both sets of people.
- How Clojure can get in the way, and how to deal with this.
4. Comparison of using Clojure and language patterns at a small company vs a mid-sized company.
- Prerequisites for growing a Clojure company successfully.
- Challenges specific to mid-sized companies
- Why I’m hopeful about a large-sized company that has grown this way.
While this talk and my experience is specific to Clojure, I believe that the underlying principles apply to growing a company successfully using any other niche language. I’ll go so far as to say that many of the problems are universal and plague “standard” companies using “standard” languages as well.
Clojure as a force multiplier in small companies.
Startups are fast, and Clojure startups are even faster
- REPL: the best tool for iterative changes in dev and production
- Fast turn-around on bug fixes makes for impressed customers.
- The testing story of Clojure is incredible.
- The ability to redefine functions means that writing complex tests is simpler than in popular languages like C, Java, Python.
- The compatibility story of Clojure is incredible.
- Upgrading Clojure is often just changing the version number to the latest version number
Clojure as a language choice
- Lisp, imposes great constraints, like immutability. Dynamic typing is great for rapid iteration.
- “I bet there’s a Java library for this.” > JVM + interop is a super power.
- Packaging as a Jar means deployment is an understood and solved problem.
- Clojure attracts a certain kind of programmer: opinionated, passionate, experienced.
- It is an easy language to learn for a new comer. Blank slate can absorb and get started incredibly fast.
The Clojure mess: Going from small to medium - people
- Going from < 10 Clojure engineers to > 10 Clojure engineers.
Onboarding and training
- For a Clojure company, focusing on onboarding and training is a full-time job.
- How we went from 6 months to 2 months needed for making a new engineer productive.
- Our mentoring program, what we do in the first month
- Personal opinion: Why being forced to do this is a good thing.
Senior vs Junior talent
- With a good onboarding program in place, hiring and growing junior talent is easy and rewarding.
- Junior devs are the best folk to improve your onboarding programs.
- Optimize for self-driven individuals and listen to their feedback.
- Hiring senior talent is hard.
- Why? Challenges and dealing with self-doubt, unlearning.
- Improving onboarding for senior engineers.
The Clojure mess: Going from small to medium - language
As a small company, build any way you want, just ship fast.
- Hello macros and DSLs for everything. Sections of code become personal fiefdoms - understandable only to the authors.
- This works fine for small code-bases and small teams, but starts to be a problem as the team grows.
- Clojure is an expressive language, so people have built libraries for everything.
- core.async, core.spec, core.typed, core.logic
- And this is just the core.
The medium company brings the reality of the common denominator.
- Understanding the code can become a challenge. How to deal with this.
What can you do to make this better?
- Process around committing code.
- Dealing with and abstracting common patterns. Each person should do these in the same way, via the same libraries.
- Using templates of code in projects
- A new project should have a predictable layout, with necessary libraries imported and base code written in.
- Reviewers should know exactly what they need to review, and should be able to safely ignore the rest.
- Exploring new / complex features of the core language in a deliberate manner
A large Clojure company: an amazing vision
- What we can do when we have bandwidth to dedicate senior Clojure devs to projects which don’t immediately focus on customers / features.
Closing thoughts: Mid-sized companies, Clojure, perspective building
Hi! I’m Vedang. I live in Pune, India and work at Helpshift. Now-a-days, I head the Helpshift Core backend team and work on improving processes and workflows within the team with the help of my team mates. Previously, I was an individual contributor and helped design and write some of the code that runs Helpshift.
I’m passionate about programming, and some of my work can be found on GitHub. I use Emacs as my editor-for-everything, and blog about it from time to time.
- My personal website: https://vedang.me/
- Our company engineering blog: https://medium.com/helpshift-engineering
- Some interviews I’ve done before:
- (2017) Working at Helpshift: https://medium.com/@helpshift/image-ine-working-in-engineering-at-helpshift-8818247e2188
- (2014) Scaling systems at Helpshift: https://yourstory.com/2014/08/vedang-manerikar-helpshift/
- A talk I’ve given before:
- (2015) Dead simple scalability patterns https://www.youtube.com/watch?v=k10_trKtKNk
- My github: https://github.com/vedang
- Some work I like on it:
- The Emacs config for Clojure dev that we ask our employees to try: https://github.com/helpshift/emacs-up
- An early-version Clojure wrapper on top of the Java API for FoundationDB: https://github.com/vedang/clj_fdb
- Super powered configuration for org-mode: https://github.com/vedang/org-mode-crate