JSFoo is a platform for:
- Front-end engineers
- Fullstack developers
- Web application development teams
- Senior architects
- Share insights from work on web application development.
- Learn from peers.
- 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 firstname.lastname@example.org
Speaker Travel Sponsor
Jai Santhosh, Software developer at Microsoft Research
Working with large Monorepos for web developmentA 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 codebasesCodemods - 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 conservationWhat 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 alreadyOptional 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
Abhay Nikam, software engineer at BigBinary
Revert back to REST or resume GraphQLIn 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.