JSFoo is a platform for:
- Front-end engineers
- Fullstack developers
- Web application development teams
- Senior architects
to:
- Share insights from work on web application development.
- Learn from peers.
- Discover of emerging trends for JavaScript in India.
- Understand perspectives on component architecture, front-end security, performance and emerging trends.
Talks from previous editions of JSFoo are published on hasgeek.tv/jsfoo
The Pune edition will be held on 28 February 2020 at MCCIA, Pune.
View schedule on https://hasgeek.com/jsfoo/2020-pune/schedule
JSFoo Pune 2020 will cover the following topics:
- Monorepos and tools to use for collaborating across large teams.
- Typescript - patterns and anti-patterns.
- New developments: ESNext
- DevSecOps for front-end; building defenses for client-side attacks.
- DevOps for front-end, including discussions on Kubernetes.
- PureScript and production use cases.
For inquiries about speaking/collaborating with JSFoo, write to jsfoo.editorial@hasgeek.com
Click here for the Sponsorship deck.
For more details and ticket inquiries, write to sales@hasgeek.com or call 7676332020
Silver Sponsor
Speaker Travel Sponsor
Sessions
-
Jai Santhosh, Software developer at Microsoft Research
Working with large Monorepos for web development
A closer look at package management Since there are 100+ highly inter-connected internal npm packages which declare over 2,500 external dependencies, we will briefly take a look at how packages and dependency management. We will discuss the structure of each package in the monorepo and how dependencies are expressed across these packages. The packages contain transpiled TypeScript code and bundles generated using webpack and the modules from these bundles are used across various product endpoints. Handling package dependencies We use yarn workspaces to install our external dependencies and link the Midgard-hosted packages together based on the dependencies expressed in the package.json files. We will use an example with yarn workspaces to handle package dependencies in a sample monorepo. Cross-package orchestration The other major part of managing monorepos is cross-package orchestration. We would want to execute scripts across all the packages easily like build/packaging commands, linting, etc. We will take a look at achieve this using Lerna through the talk. Using Test Apps to validate user behaviour To validate more complex component behaviors, like user interactions, we use test-apps. Test apps are either webpages or native applications which load our bundles to render our components for manual testing. This is probably the second most popular validation workflow, therefore we care a lot about it. Improving “watch” across packages We will also briefly look at how we will manage watch processes for the monorepo-hosted packages. Its also important to discuss the Intellisense performance here. We will go over a sample monorepo structure to explain this in detail. -
Rajasegar Chandiran, front-end developer at Freshworks
Codemods: a paradigm shift in migrating large codebases
Codemods - Why and What, Problem with Regex pattern matching, Find & Replace Limitations, AST, How codemods work, Tooling around codemods - jscodeshift, recast, astexplorer.net, ast-types, codemod-cli and possibly a small demo of creating a codemod if time permits. -
Nikhil Lanjewar, technology agnostic fullstack developer
Project Langdon:'React'ing to linguistic diversity and conservation
What to expect? (2 minutes) Background and motivation (5 minutes) Linguistic spread across regions in India Ethnic literature and music Current status of documentation and archives Project Langdon (15 minutes) Inspiration UI development with Semantic/Fomantic UI for React UI development with StorybookJS Testing with Jest User Authentication with AWS Amplify and Amazon Cognito Role based access control with Amazon Cognito Identity Pools Schema development with GraphQL Graph data persistence with Amazon Neptune API design with AWS Lambda functions and API Gateway CI/CD with Travis CI and Surge Next steps (5 minutes) Features Community and developer experience QnA (5 minutes) -
Santosh Viswanatham, senior development engineer at Pramati
Optional chaining and null coalescing: using ESNext already
Optional Chaining What is it? Usecases Code samples Current Hacks Current Status Integrating with our build tools Null Coalescing What is it? Usecases Code samples Current Hacks Current Status Integrating with our build tools -
Pulkit Kashyap, software engineer at Wingify
Break down to take down
Break down to take down: The title might seem vague but breaking down the project into meaningful modules is what most of us miss out on. Well, by meaningful I mean not only is it important to break down code base into individual modules but also to make those modules reusable. This session would also summarise my learnings while working on a product that relies heavily on the smooth working of a Javascript Library(which is obviously broken down into modules) and how we manage that. I would also talk about the different module patterns and when to use them. Moreover every Javascript framework depends on a good design system. In short, this session would give a clear picture on how breaking down your codebase will help you take down a lot of problems. I plan to cover the below mentioned points -: Why focus on this? Examples to depict how modular system helps in writing efficient program in less number of lines. Importance of making modules meaningful. Give more power to your modules by writing end-to-end and unit test cases. Different Modular Patterns -: Facade Pattern (pros & cons) Mediator Pattern (pros & cons) -
Abhay Nikam, software engineer at BigBinary
Revert back to REST or resume GraphQL
In this talk, we would not be speaking about why GraphQL is great(we know it is great) but rather we would be more focused what were some difficulties we faced while using GraphQL and why we had a call to revert back to REST and remove GraphQL. Introduction Why revert GraphQL? Thumb rules to decide: GraphQL or REST.