Adrien Harnay,
Lead Front-End Engineer
5 years experience as a JavaScript developer
4 years experience with React and React Native
Lead Front-End Engineer for 3 years

I have faced countless challenges while working on several different products, and I keep learning everyday. What I enjoy most is helping others grow as developers.
I am available for contract work.
MVP for your start-up
New feature on your product
New project for your organization
Introduction of a new technology or library to your organization

Skills

You can click on each group of skills to know more about my experience.

In depth

Each skill listed here has been used in a professional setting, for several years for the vast majority. I like to try new things on side projects so that I can later on introduce them in my work, but I stick to my area of expertise when working on professional projects.

React
react
I have shipped several React apps to production, and have experience with different syntaxes (hooks, classes), different build chains (vanilla apps, Next, Gatsby, create-react-app), and different use cases (authentication, routing, forms, ...).
React Native
react-native
I have shipped several React Native apps to the stores, and have experience with different syntaxes (hooks, classes), different build chains (vanilla apps, Expo), and different use cases (authentication, routing, forms, ...).
JavaScript & TypeScript
javascript
typescript
I know JavaScript like the back of my hand and am very proficient with it. Today, I mostly use TypeScript as I think it delivers more value in terms of code maintenance and ratio of bugs. I have migrated large codebases from JavaScript to TypeScript, and can also focus on critical parts of a codebase so you get the more bang for your buck.
HTML
html
I know semantic HTML, and always leverage native features so that your website works flawlessly on all supported browsers. Accessibility is always one of my top priorities.
CSS
css
responsive-design
When working with CSS, I optimize for great user experience and maintainability, so that developers who come after me can iterate quickly as the features need to evolve. I have a lot of experience with responsive design.
Network & state management
redux
apollo
I have consumed a lot of different REST APIs throughout the years, and have built apps with Redux as a state management solution. I have also worked with Apollo GraphQL for over a year, at first by writing a gateway over a REST API, then by consuming a native GraphQL API. I am quite familiar with the internals of the Apollo codebase.
Server side rendering (SSR)
server-side-rendering
I have implemented several custom server side rendering solutions, and have also worked with tools such as Next & Gatsby.
State machines
state-machines
When working on complex or critical workflows, state machines can add extra safety by forbidding impossible states. I have worked with state machines several times, using tools such as xstate.
Design systems
design-systems
Design systems are in my opinion one of the tools that bring the more value to an organization. I have been in charge of a design system for over a year, and can help you implement one in your organization. It will also be compatible with all your different browsers and OS using the same API, and your productivity will increase tenfold.
Component libraries
component-libraries
Documenting components is important when you need several developers or several teams to know how a set of components are working. I have worked with tools such as Storybook and Playroom, and can implement a component library for your organization.
CMS
cms
CMS are great to offload work from your developers team, and to give ownership to the right teams. I have been in charge of implementing several CMS for blogs and public websites, and I know multiple SaaS and open source solutions (Strapi, Contentful, ...).
Web performance & SEO
performance
seo
I have led projects focused on Web performance and SEO, and have a lot of experience on the matter. If your apps suffer from a performance problem, I can audit them and implement solutions to improve Time To Interactive and help you set up a performance budget that will track the performance of your apps over time. I am also be able to fix the most common SEO problems and give you tips on your SEO strategy.
Internationalization (i18n)
internationalization
It is quite common to need an app to be available in different countries and languages. I know how to manage an app available in different languages, how to setup a translation service, and how to make sure you app works in all the countries and timezones you target.
A/B testing & feature-flagging
feature-flagging
A/B testing can help you improve your product based on the decisions of your user. Feature-flagging allows you to provide some features only to a subset of your users, and to have control over what and when you are releasing. I know how to implement both solutions, and how to make them fit in the architecture of your apps.
Analytics
analytics
I have implemented analytics services such as Google Analytics, Facebook Pixel, Amplitude, and Google Tag Manager in several apps, and can quickly set you up on the solution you need.
Bug tracking
bug-tracking
A strong bug-tracking pipeline can be the difference between releasing once a week and several times a day. I can set up this kind of pipeline in your organization and give you the confidence you need to iterate even faster.
Generated documentation
generated-documentation
There will never be enough documentation, but few people like to write it. I know how to set up a generated documentation system so that your documentation can live right beside your code, and make it all accessible via a neat website.
Monorepositories
package-managers
monorepositories
Monorepositories are all the rage right now, but they can cause nasty bugs if you don't know how to set them up properly. I have encountered countless bugs because of monorepositories, but keep using them extensively because once you know how to set them up properly they're a huge win.
Bundling
webpack
I use Webpack to bundle most of my apps, and Webpack configs don't scare me one bit. I know how to set up parallel builds, different builds for your server, your client, and latest browsers, how to write plugins and loaders that will fit your use cases, or how to optimize your builds so they become blazing fast.
Linting
eslint
A strong linting system can help avoid many bugs, and I have set up many different over the years. It is now the first thing that I do when starting a new work project, and I can help your team gain confidence and stop wasting time during PR reviews.
Testing
jest
cypress
Tests are a must if you want to deploy on fridays with confidence (or any day, that is). From unit tests to end-to-end tests, I can help you implement a testing strategy that will be as smooth as possible for your dev and/or QA teams, and that will help you make sure critical code paths and user scenarios are always working.
CI & CD
docker
shell
circleci
I have implemented several pipelines that handle building and deploying the code to your platform of choice. From linting your code to deploying your app to your infrastructure, I can set up an optimized workflow that will replace your manual deployments.
Hosting
aws
vercel
I have practiced hosting apps on several platforms, and I can help you choose which platform is best suited for your project. I can also help you optimize the release process of your project on your platform of choice.
Back-end
express
mongodb
apollo
graphql
I know back-end technologies such as Express, MongoGB, and Apollo Server. I can set up a back-end for your MVP, or build a GraphQL gateway on top of your existing REST services to help you integrate Apollo Client in your front-end apps.