Theme this year: The broad theme this year is going to be Building Reliable Web Apps. Please refer to the Topics section below for the subject of talks and workshops we are looking for.
We are inviting proposals for:
Full-length 40 minute talks.
Crisp 15 minute talks.
Sponsored sessions, of 15 minutes and 40 minutes duration (limited slots available; subject to editorial scrutiny and approval).
Hands-on Workshop sessions, 3 and 6 hour duration.
Proposals will be filtered and shortlisted by an Editorial Panel. Please make sure to add links to videos / slide decks when submitting proposals. This will help us understand your speaking experience and delivery style. Blurbs or blog posts covering the relevance of a particular problem statement and how it is tackled will help the Editorial Panel better judge your proposals. We might contact you to ask if you’d like to repost your content on the official conference blog.
We expect you to submit an outline of your proposed talk – either in the form of a mind map or a text document or draft slides within two weeks of submitting your proposal.
You can check back on this page for the status of your proposal. We will notify you if we either move your proposal to the next round or if we reject it. Selected speakers must participate in one or two rounds of rehearsals before the conference. This is mandatory and helps you to prepare well for the conference.
A speaker is NOT confirmed a slot unless we explicitly mention so in an email or over any other medium of communication.
There is only one speaker per session. Entry is free for selected speakers. As our budget is limited, we prefer speakers from locations closer home, but will do our best to cover for anyone exceptional. HasGeek provides these limited grants where applicable: two international travel and accommodation grants, three domestic travel and accommodation grants. Grants are limited and made available to speakers delivering full sessions (40 minutes or longer). Speaker travel grants will be given in order of preference to students, women, persons of non-binary genders, and individuals for Asia and Africa first.
Updated (19 April 2017): We are currently looking for talks in the following topics:
Testing: Testing tools and strategies; test driven development and testing culture; continuous integration and testing workflows; and case studies around testing your application.
Performance optimization: Performance analysis tools and techniques; best practices for building performant applications; browser, NodeJS, and framework internals; network protocols; and performance case studies.
Crash and performance monitoring: Monitoring applications for crashes and performance issues while in production.
Commitment to open source
HasGeek believes in open source as the binding force of our community. If you are describing a codebase for developers to work with, we’d like for it to be available under a permissive open source licence. If your software is commercially licensed or available under a combination of commercial and restrictive open source licences (such as the various forms of the GPL), please consider picking up a sponsorship. We recognise that there are valid reasons for commercial licensing, but ask that you support us in return for giving you an audience. Your session will be marked on the schedule as a “sponsored session”.
Deadline for submitting proposals: 15 June 2017
Conference dates: 15–16 September 2017
For more information about speaking proposals, tickets and sponsorships, contact email@example.com or call +91 76763 32020.
Note: We aren’t accepting any new talks.
Robust UI development with ClojureScript
This talk will be an overview of ClojureScript and its ecosystem from a philosophical and architectural perspective, with the aim of showing the audience how these tools and architectures enable fast development while at the same time writing correct, bug-free code. I’ll explain how ClojureScript’s immutable data structures and its tools for carefully managing state can make programs easier to understand in and of themselves. Then I’ll talk about some ClojureScript tools and libraries.
Broadly, this is how I plan to structure my talk:
- Discuss the importance of state management in user interfaces. A user interface is a giant blob of state. How do we manage this?
- Introduce ClojureScript, its philosophy of immutability and separation of values from state. How do you get anything done if you can’t mutate? What are the tools for state management in ClojureScript? How does this make it a good fit for React?
- Talk about Reagent, a ClojureScript wrapper for React. I’ll show how Reagent components can be written expressively as just a function of their parameters(props), and how Reagent atoms can be used to manage state.
- A nice consequence of ClojureScript’s philosophy of carefully putting state in atoms is that hot code loading is simple to implement. I’ll talk about Figwheel, a hot code loader for ClojureScript. Figwheel makes feedback cycles very quick during development compared to traditional dev servers that refresh your browser when you change your code. This section will include a demo.
- Can we make state mutations and side effects more predictable, instead of scattering them about our application? I’ll talk about re-frame, an application framework and state container based on Reagent. I’ll discuss the architecture of a re-frame app and its approach to working with side effects.
- Talk about clojure.spec, a new library for specification and runtime validation of data. spec is not a type system; it is a system for specifying data as a composition of predicates. I’ll briefly cover the scope of spec, then explain how spec can be used with re-frame to validate the entire application state at runtime and detect errors quickly to avoid invalid and inconsistent state. This section will also include a small demo.
Sandy is a developer at Nilenso, where he writes production quality Clojure and ClojureScript for their clients. Sandy spoke about clojure.spec as well at the Bangalore Clojure meetup – see the link section for the code.
- Github: https://github.com/jysandy
- Code for the talk on clojure.spec I delivered at the Bangalore Clojure meetup (there are no slides): https://github.com/jysandy/spec-talk