JSFoo 2017

JSFoo is a conference about JavaScript and everything related.

About the conference: JSFoo is a JavaScript conference hosted by HasGeek.

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.

##Selection process
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.

Selection Process Flowchart

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.

Debugging: Tools for locating and fixing bugs in JavaScript applications; real world post-mortems of bugs that affected your organization; and using telemetry for debugging.

Immutability, type checking, and alternative programming languages: Alternatives to vanilla JavaScript; functional programming and immutability; types and type systems; and real-world case studies of introducing alternative programming languages and tools in your organization.

Build tooling: Build tools and automation, including task runners, linters, JavaScript bundlers, CSS pre- and post-processors, continuous integration tools, static analysis tools, and optimization tools.

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”.

##Important dates
Deadline for submitting proposals: 15 June 2017

**Conference dates: ** 15–16 September 2017

For more information about speaking proposals, tickets and sponsorships, contact info@hasgeek.com or call +91 76763 32020.

Note: We aren’t accepting any new talks.

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more

Lakshman Prasad


Loop like an ES6 Native

Submitted Feb 9, 2017

One of the first things someone learns in programming is to loop, i.e. perform a sequence of steps on a set of elements. Any developer - beginner to advanced, writes atleast a few loops every hour. It’s ubiqutious nature merits a deep dive into the fundamentals of looping.

Let’s explore the various ways to loop in Javascript and it’s appropriate use cases. We explore loops in the imperative style and functional variants such as map and reduce. We look into the implementations of underscore.js, lodash and other such libraries that were often used with ES5.

ES6 comes bundled with many of these including the new generator syntax, which we will dig deep into, so your loops going forward can be both machine-efficient, and developer-friendly.


  • Basics
    • Various ways to loop
    • for ... of loop and it’s comparison
    • for ... of loop working on Maps, Sets, Args, DOM collections
    • Examples from other languages
    • “Array Like” and “Duck Typing”
    • Benefits with example - Unit Testing
  • Within the builtins
    • Iterators returned
    • Iterables consumed
      • spread operator
      • min, max etc.
    • Consistent interface
  • Under the hood - The Protocols
    • Iterator Protocol
    • Iterable Protocol
    • Examples
    • Custom Iterators/iterables
  • Generators
    • Builtin function
    • Lazy evaluation
    • Implements both iterator and iterable protocol
    • Keywords - yield, yield*, function*
  • Generators example
    • Example of a normal program
    • Comparison
    • Example of AJAX chaining
  • Generators Algorithm example
    • Recursive algorithm for fibonacci
    • Generator algo
    • Recursion algorithm for factors of a number
    • Generator algorithm
  • Your own generators in the real world
    • Examples

Speaker bio

Lakshman Prasad has been programming for a decade and finds ways to do efficiently, things that are often done. He works for a management consulting firm in developing technology solutions.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more