JSFoo 2019
JSFoo For members

JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)

Make a submission

Accepting submissions till 21 Sep 2019, 07:20 AM

NIMHANS Convention Centre, Bangalore, Bangalore

Tickets

Loading…

JSFoo is in its ninth edition this year. Talks at JSFoo 2019 will cover the following topics:

  1. Component architecture -- how different web components have been stitched together to build apps; outcomes on UI and performance as a result of architecture choices
  2. Deployment practices for front-end and how Kubernetes and CI/CD fall into this picture
  3. Accessibility
  4. Developer experience (DX)
  5. Functional programming paradigms: ReasonML and ClojureScript
  6. Privacy and Content Security Policy (CSP)
  7. New developments such as SvelteJS

Speakers from Razorpay, CloudCherry, Myntra, Innovaccer, GitLab, Microsoft, Atlassian and Gramener will share their work and learnings on these topics.

Who should attend JSFoo:

JSFoo is a conference for practitioners, by practitioners. JSFoo 2019 is a conference for:

  1. Front-end engineers
  2. Senior software developers
  3. Team leaders and engineering managers
  4. Fullstack developers
  5. InfoSec professionals

##JSFoo 2019 details:
Dates: 27 and 28 September
Venue: NIMHANS Convention Centre, Bangalore

##JSFoo workshops:
The following workshops have been curated for before and after the conference:







##Contact details:
For inquiries about conference tickets, workshop tickets and any other details, call JSFoo on 7676332020 or email info@hasgeek.com

#Sponsors:

Click here for the Sponsorship Deck.
Email sales@hasgeek.com for bulk ticket purchases, and sponsoring JSFoo 2019.


JSFoo 2019 sponsors:


#Platinum Sponsor

Microsoft

#Gold Sponsor

Atlassian

#Exhibition Sponsor

Publicis Sapient

#Bronze Sponsor

Innovaccer ThoughtSpot

#Community Sponsor

Hasura Obvious

Contact

For tickets and sponsorships, contact info@hasgeek.com or call +91-7676332020. For queries about proposing talks, write to jsfoo.editorial@hasgeek.com

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

Jai Santhosh

@jaisanthosh

Developing in a Large Monorepo

Submitted Sep 1, 2019

In Microsoft, we have a very large TypeScript-based git repository where over 250 developers build and write code for high-value frontend components which is used across all Microsoft365 products like Outlook, Office, Bing, SharePoint, etc.It contains over a 100 npm packages, containing over a million lines of TypeScript code. Co-locating these components encourages collaboration and sharing code across teams very easier.

In this talk, we’ll focus on the tooling used and code organization to make the development easier, fast and reliable and will not discuss in detail unit tests and automation for a better focus on development.

Outline

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.

Speaker bio

Jai Santhosh currently works on the Microsoft Search team at Microsoft. He previously worked on the Outlook Web Team and led some efforts on the mobile web version. He is quite passionate about the Web, JavaScript and is a Web perf enthusiast. He had previously led UI efforts at a fintech startup, ClearTax and worked on building Offline heavy web applications. He was also part of the first real-world Progressive Web App, Flipkart Lite and the new Flipkart Desktop website and had earlier worked in teams at large-scale like Yahoo! Maps and Media sites at Yahoo!.

Slides

https://speakerdeck.com/jaisanth/developing-in-a-large-monorepo

Comments

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

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

{{ errorMsg }}

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

Make a submission

Accepting submissions till 21 Sep 2019, 07:20 AM

NIMHANS Convention Centre, Bangalore, Bangalore

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