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, ...).
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, ...).
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.
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
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)
I have implemented several custom server side rendering solutions, and have also worked with tools such as Next & Gatsby.
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 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.
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 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, ...).
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.
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
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.