👋 Hi, I'm Nicolas Charpentier

I'm a Software Engineer mainly playing with React Native, React, GraphQL, and Continuous Integrations (CircleCI, GitHub Actions). I'm an open source enthusiast, and I enjoy removing friction from the developer experience. I often describe myself as someone doing the "backend" work of the frontend: frontend architecture and infrastructure. Currently working at Shortcut (formerly Clubhouse).

Blog Posts

Agile Rotisserie

Agile Rotisserie

Software Engineering is like cooking chicken.

Be Careful With JavaScript Default Parameters!

Be Careful With JavaScript Default Parameters!

In JavaScript and TypeScript, we often rely on default parameters to define optional parameters, but should we?

Find What Commit Introduced a Bug With Git Bisect

Find What Commit Introduced a Bug With Git Bisect

Let's see how to efficiently track down a bug even without knowing the codebase.

Array.prototype.groupBy to the rescue!

Array.prototype.groupBy to the rescue!

Ever wondered how to do array grouping properly with JavaScript? Good news, Array.prototype.groupBy is coming soon.

Wrapping Gatsby's <Link> with TypeScript

Wrapping Gatsby's <Link> with TypeScript

How to properly wrap Gatsby's <Link> component while preserving GatsbyLinkProps type.

Setting up an Example App for Your React Native Library

Setting up an Example App for Your React Native Library

Having a hard time with a React Native example app? Here’s how you can simplify this with Metro bundler.

React Native at Classcraft

React Native at Classcraft

We had to carefully find a way to introduce React Native bit-by-bit into the existing native application.

Arrow Functions in Class Properties Might Not Be As Great As We Think

Arrow Functions in Class Properties Might Not Be As Great As We Think

Since the last year, the Class Properties Proposal simplify our life, especially in React with the internal state, or even with statics ones like propTypes and defaultProps. But, should we really use arrow functions in class field properties?

5 Things You Should Know About ES8

5 Things You Should Know About ES8

ECMAScript 2017 8th edition (ES2017/ES8) has been officially released and published a few weeks ago, let’s figure it out some important changes. All of these are available with Node 8 and with the latest version of browsers without babel or any polyfills.

Continuous Integration with Angular CLI

Continuous Integration with Angular CLI

Angular CLI is a powerful tool to scaffold and build Angular apps. Not only it provides you scalable project structure, instead, it handles all common tedious tasks for you out of the box and it already follows the Angular best practices.

Reliable Continuous Integration in JavaScript

Reliable Continuous Integration in JavaScript

When you build a piece of software you want to build a reliable one, so often you’re using various continuous integration tools. But, is your continuous integration process is as reliable as you think?