Me, a year in review
Tags: meta, opensource, devjournal, yearinreview
Published: 2019-08-08 22:14:29

---
title: Me, a year in review
published: true
cover_image: https://thepracticaldev.s3.amazonaws.com/i/c2ax67xjcc3uwjgdnx81.jpg
description: Sometimes it's good to take a look back, and recall what you have done. Why today? It's my birthday!
tags: meta, opensource, devjournal, yearinreview
---
> "Me" - 37 yo Senior JavaScript Developer in Atlassian, father of 3 boys and one Maine-Coon cat, plus active Open Source contributor.

Sometimes it's good to take a look back, and recall what you have done. Today I would try to remember all the things I've created past year, almost like I just did for my _performance review_ at the work, but related to open source this time. Only about the stuff you might be interested in.

Why today? Well, it's my birthday!

> - period: 9 August 2018 -> 9 August 2019
> - 26 articles, 4 are not technical - an article every two weeks
> - 1618 commits - 4 commits per day!
> - 92 PRs and 124 issues created
> - ~20 new projects, 161 total

## August 80 commits in 19 repos
- replaced [gaearon/react-side-effect](https://github.com/gaearon/react-side-effect) by [theKashey/react-clientside-effect](https://github.com/theKashey/react-clientside-effect) to make my "singleton" components, like [react-focus-lock](https://github.com/theKashey/react-focus-lock) more SSR-friendly, and more lightweight.
- team up-ed with [react-powerplug](https://github.com/renatorib/react-powerplug). An awesome headless state containers, which were the hooks for be before the hooks. I saved so much time!
- created [react-push-channel](https://github.com/theKashey/react-push-channel) to solve "Helmet" rendering for async SSR. Basically that's a callbacks in a declarative form.

### 📖 Articles
Article introducing __partial hydration and progressive code splitting__ - [react-imported-component](https://github.com/theKashey/react-imported-component) and [react-prerendered-component](https://github.com/theKashey/react-prerendered-component) I've created a bit before.
https://medium.com/@antonkorzunov/react-server-side-code-splitting-made-again-a61f8cbbd64b

Case study for [react-remock](https://github.com/theKashey/react-remock) and it's usage with shallow/mount testing. An easy way to handle render props and _sugar_.
https://medium.com/hackernoon/why-i-always-use-shallow-rendering-a3a50da60942

My __first 📷 blog post__ - one day of my life in beautiful Australia :)
https://medium.com/@antonkorzunov/one-day-of-a-js-developer-in-sydney-from-50mm-1-8-0-3ev-point-of-view-5a65aa081905

My testament for Redux. You probably need it.
https://codeburst.io/you-probably-need-redux-e0c49ab4d98f

## September 112 commits to 24 repos
- jumped into React/Redux/Context [optimisations](https://github.com/reduxjs/react-redux/pull/1021). Take aways are [with-known-usage](https://github.com/theKashey/with-known-usage) - a simple _object keys usage tracker_ and [react-event-horizon](https://github.com/theKashey/react-event-horizon) - just a declarative event suspender.
- published [plimited](https://github.com/theKashey/plimited) - a small promised based connection pool I've created to control Puppeteer for our needs. Haven't seen anything more usable since then.
> "Connection Pool quiz" was a common question in our technical interviews. A saw a few dozen times how interviewees were trying to implement it in 10 minutes, and spent a few days to do the same.

### 📖 Articles
What is immutability and why do you need it?
https://itnext.io/immutable-vs-immutable-js-d524bf515bcd

## October 115 commits to 27 repos
- created [runtime-compress-loader](https://github.com/theKashey/runtime-compress-loader) to remove burden of babel(or ts) helpers inlined into the every file. Result is a smaller bundle size, and hotter (faster) code!
- created [jsx-compress-loader](https://github.com/theKashey/jsx-compress-loader) to replace all calls to `React.createElement` by `$JSX$`. Result is a smaller bundle size and a bit better runtime performance.
- created [react-shallow-context](https://github.com/theKashey/react-shallow-context) shallow React.Context, which is a good solution to a few common Context related problems

{% twitter 1047672006408208384 %}

- also created a very useful [react-event-injector](https://github.com/theKashey/react-event-injector) to passive (or aggressive) events. And never used since then.
- extracted aria-hidden code from reach-ui/smooth-ui to... [aria-hidden](https://github.com/theKashey/aria-hidden).
- opened React RFC about [controlled type comparison](https://github.com/reactjs/rfcs/pull/74). All hot-reloading today is working literally on that principle.

### 📖 Articles
A "mocking" way to do your SSR better. Or just possible. Everything I know about __dependency, and module management__.

https://medium.com/hackernoon/ssr-dependency-mocking-is-the-answer-d8d8c371aa94

## November 141 commit in 18 repos
- no new projects :)

### 📖 Articles
Using `rewiremock` and `react-remock` to control your storybook. Because you can, not because you should.

https://medium.com/@antonkorzunov/rewrite-a-storybook-ae4682176cc3


## December 106 commits in 20 repos
- and no new projects again

- 🙀 JOINED DEV TO 🙀

### 📖 Articles
React-Hot-Loader 4.6 was a big step forward(as I thought these days).
{% link https://dev.to/thekashey/react-hot-loader-46-3d7c %}

Testing Finite React Components. My __main approach for designing__ since then.
{% link https://dev.to/thekashey/infinite-war-995 %}


## January 102 commits in 20 repos
- created [react-remove-scroll](https://github.com/theKashey/react-remove-scroll) as a smaller version of [react-scroll-locky](https://github.com/theKashey/react-scroll-locky). Created not for fun, but for `reach-ui`.

## February 83 commits in 11 repos
- created [devolution](https://github.com/theKashey/devolution) - a babel for your bundle. A super easy (and very fast) way to ship modern and legacy bundles, as well as use es6 in node_modules.
- created [used-styles](https://github.com/theKashey/used-styles), a tool to extract, well, used styled during SSR process. One more issue to solve and it would be awesome!


## March 107 commits in 24 repos
- created [kashe](https://github.com/theKashey/kashe), as weak map based memoization library.
- popularised [multiple-entry-points-example](https://github.com/theKashey/multiple-entry-points-example) pattern to ship :) multiple entry points.

### 📖 Articles
Mocking is a powerful pattern, here is why:
https://medium.com/@antonkorzunov/a-javascript-mocking-case-65f67ab9f6d2

Overview of all client side and server-side code splitting solutions.

{% link https://dev.to/thekashey/react-code-splitting-in2019-3cmg %}

CSS properly ordering could be hard, and there is a simple way, or let's call it a pattern, to fix it.

{% link https://dev.to/thekashey/happy-potter-and-the-order-of-css-5ec %}

## April 86 commits in 16 repos
- tried to created [useReselect](https://github.com/theKashey/useReselect) - a `kashe` powered version of `reselect`.
- with help of my friend Dai-Shi made [proxyequal](https://github.com/theKashey/proxyequal/pull/17) `O(logn)` times faster.

### 📖 Articles
Super fast synchronous client/server side cache for React components.
{% link https://dev.to/thekashey/a-new-react-and-the-old-cache-15h5 %}

Modern memoization is a hard thing. A big case study about it.
{% link https://dev.to/thekashey/memoization-forget-me-bomb-34kh %}

Object key usage based memoization (like MobX) testimonial.
{% link https://dev.to/thekashey/how-i-wrote-the-world-s-fastest-memoization-library-34io %}

Why `sinon` and `proxyquire` are bad, and why `rewiremock` is slightly better.
{% link https://dev.to/thekashey/please-stop-playing-with-proxyquire-11j4 %}

## May 103 commits in 20 repos
- published [sidecar pattern](https://github.com/theKashey/use-sidecar)
- open sourced [my-sql-files](https://github.com/theKashey/my-sql-files) - mysql-based small file storage
- and made [rewiremock](https://github.com/theKashey/rewiremock) [ESM compatible](https://github.com/standard-things/esm/issues/805)
 
### 📖 Articles
The SideCar (Batman/Robin as I called it) code splitting pattern
https://dev.to/thekashey/sidecar-for-a-code-splitting-1o8g

Using `react-remock` to make snapshot testing more bearable
{% link https://dev.to/thekashey/reach-shallow-snapshot-506 %}

A single example how browser-driven "html state" could replace js-driven "component state".
{% link https://dev.to/thekashey/behold-the-html-state-5e8b %}


## June 153 commits in 17 repos
- created [use-callback-ref](https://github.com/theKashey/use-callback-ref). Should be in react standards!
- fixed [size-limit](https://github.com/ai/size-limit) a bit
- used `sidecar` to make [react-focus-lock](https://github.com/theKashey/react-focus-lock) and [friends](https://github.com/theKashey/react-focus-on) at least twice smaller.

### 📖 Articles
`createRef`, `useRef`, too many refs, and all are different. `useCallbackRef` this time.
{% link https://dev.to/thekashey/the-same-useref-but-it-will-callback-8bo %}

📷 Report from React Sydney
https://medium.com/@antonkorzunov/reactsydney-june-19-50mm-49de33daed8b

📷 Report from SydJS
https://medium.com/@antonkorzunov/sydjs-jun-2019-aws-showcase-93265e4d0e10

## July 115 commits in 17 repos
- no new (interesting) projects

### 📖 Articles
A never-ending​ article about fighting complexity we created for ourselves.
{% link https://dev.to/thekashey/eat-bear-in-parts-3f0o %}

There are no such things as unit and integration tests. It __requirement__ and __implementation__ tests.
{% link https://dev.to/thekashey/prefer-integration-tests-think-twice-1l6d %}

📷 Report from React Sydney
https://medium.com/@antonkorzunov/react-sydney-45-1d52c061a3a5

## August
- 🍺

📷 Report from React Sydney
https://medium.com/@antonkorzunov/react-sydney-46-bfe5fa4fc658