Inspire

An online repository of everything HEP

Technologies Used: React, Redux, Jest, Enzyme, Puppeteer, Ant Design, ES6, AngularJS, Angular 2, BootStrap, Python

Frontend developer from September 2017 to now

Background Inspire is a modern-day successor of Spires - a 1960s database of particle physics literature curated by Standard Linear Accelerator Center (SLAC) in collaboration with physics institutes around the world. In 1991 it became the first website in North America. In May 2007, CERN, DESY, Fermilab and SLAC decided to build the next-generation High Energy Physics (HEP) information system which would combine the successful SPIRES database content with Invenio digital library technology developed at CERN and thus Inspire was born. INSPIRE is run by a collaboration of CERN, DESY, Fermilab, IHEP, and SLAC, and interacts closely with HEP publishers, arXiv.org, NASA-ADS, PDG, HEPDATA and other information resources.

Homepage of old inspire
Homepage of the (old) inspire

When I joined the Inspire team on 1st of September, 2017, it was working on transitioning Inspire into a new and improved web app which provided a ton of new features to its users, including (but not limited to) google style search, author disambiguation for high-quality profiles and improved search capabilities and faster results. This new application was using Angular 2.0 (and sometimes AngularJS) as a frontend technology framework along with gulp, bootstrap, and jinja.

Homepage of the new Inspire web app built with ANgular
Homepage of the (new) Inspire web app built with Angular.
The frontend architecture and design is now being re-implemented using React and other tools

Even though the generated app could indeed support several new features, the developers were quite discontent with both, the quality of code and team efficiency. Therefore, in February 2018 we adopted the Scrum framework to develop and deliver features in iterations and in April 2018 the frontend engineers decided to build a true SPA using React and Redux for development and state management, Ant design as the design framework, and Jest, Enzyme, and Puppeteer for testing.

Homepage of the current (new) Inspire
Homepage of the current (new) Inspire

Team Structure At Inspire, we are a team of a project leader, a project manager (/product owner), a content specialist, a systems engineer, 2 front-end engineers (including myself), 4 back-end engineers, 2 full-stack engineers, 2 data-scientists, and about 5 curators. After adopting the agile software development approach, we split ourselves into 2 smaller, self-organizing and cross-functional teams. I am now a part of 'Exclusive Unicorns' team (we like to give ourselves cheeky names) which comprises of 2 front-end engineers, 3 back-end engineers, and 1 full-stack engineer. Since our team does not have a dedicated UI/UX designer, the project manager and I contribute to the design and user testing phases of the product.

My role and responsibilities Everyday physicists from around the world submit their articles to Inspire. In addition to that, there are other sources from where papers and reports are harvested automatically on a regular basis. A small team of people at Inspire curate these submissions to make sure that the information saved on Inspire databases is useful to the HEP community. Thus, the tools and services provided by Inspire can be categorized into the following 2 groups:

As a front-end engineer, I worked on both these groups of tools.

Contributions to the front-office tools Conducted user tests and helped in the design and development of the search results page, the 'detailed record page' for HEP literature records, and the author submissions page.

Search results page
Search results page
Page displaying detailed information on an Inspire record
Page displaying detailed information on an Inspire record

Contributions to the back-office tools