Hi, I'm Mark Erikson
Who Am I? đź”—︎
Redux Maintainer đź”—︎
- Redux Libraries:
- Created Redux Toolkit
- Wrote React-Redux v7 and v8
- Directed design of React-Redux v7.1 hooks
- Actively maintaning Redux, React-Redux, Redux Toolkit, and Reselect
- Redux Documentation
Answerer of Questions đź”—︎
I've beeen labeled as "Tech Support for the React/Redux community", and will answer questions pretty much anywhere there is a textbox on the internet:
- @acemarke: BlueSky, Twitter, Reactiflux Discord, Reddit, Hacker News
- @markerikson: Github, Stack Overflow
- Admin in Reactiflux Discord and Moderator in /r/reactjs
Collector of Interesting Links đź”—︎
- Links lists:
and ready with a link to paste in response to just about any topic :)
Writer of Very Long Blog Posts đź”—︎
- A Mostly Complete Guide to React Rendering Behavior
- Why React Context is Not a State Management Tool (and Why It Doesn't Replace Redux)
- Using Git for Version Control Effectively
- Migrating a MEAN AngularJS App to React, Next.js, and TypeScript
- Series: How Web Apps Work
- "Greatest Hits" blog posts
Speaker and Teacher đź”—︎
- Reactathon 2019: The State of Redux
- ReactNext 2019: A Deep Dive into React-Redux
- React Boston 2019: Hooks, HOCs, and Tradeoffs
- JavaScript for Java Developers slides
- Learn with Jason livestream: Learn Modern Redux with Mark Erikson
- Series: Presentations
- Podcast Appearances in 2020 and Podcast Appearances in 2021
But Also, That Guy with the Simpsons Avatar đź”—︎
What Have I Worked On? đź”—︎
While I'm primarily known for my free-time work as an OSS maintainer, I've also been a full-time software engineer since 2008, and had several years of personal project experience before that.
I've spent much of my career building geospatial visualization tools with a variety of web app technologies, led an internal UI infrastructure team, and more recently led a team building a project metrics dashboard. I've also frequently trained other team members on how to use modern web dev technologies, and written extensive documentation on project tools and architecture.
I particularly enjoy front end web app development with React, Redux, and TypeScript, but over the years I've tackled problems across the entire stack:
- Built a full-stack geospatial visualization web app as a sole developer, using GWT, Java, and Cesium.js
- Built features in a related geospatial tool using Backbone and Python, including constructing a custom Backbone base config using plugins like Marionette, Epoxy, and Ampersand-State, and designing custom integration to drive display of Cesium 3D graphics primitives using Backbone Views and React Components
- Designed and implemented new capabilities in a C geospatial LOS calculation library to enable 3D calculations based on radio antenna pattern data
- Optimized ASM-level calculation performance in that C library and used Cython to optimize a related Python radio algorithm calculation service
- Modified the
cesium-terrain-builder
C++ project to support writing million-tile datasets to MBTiles format rather than disk folders - Implemented a custom Python service to serve web map data stored in MBTiles format
- Generated web map image and terrain tile datasets from scratch based on publicly available source image/terrain datasets
- Created custom Webpack configs and set up other JS build tooling from scratch
- Architected and directed development of a "server push" service that used Crossbar/WAMP and backend data diffing to replace an existing polling-based implementation for real-time data updates, shrinking bandwidth requirements by over 80%
- Debugged and solved race conditions in complex Python services
- Rewrote the history of an entire Git repository to eliminate unwanted files, and additionally rewrote the entire history of the JS and Python source code to apply ES6+ syntax and consistent formatting across every single historical commit (thanks to a set of custom Python and JS scripts that optimized the migration runtime by rewriting source files in memory and avoiding disk usage)
- Led migration of multiple web apps built with GWT, Backbone, and AngularJS 1.x, to modern web stacks using React, Redux, TypeScript, and Next.js
- Configured Jenkins CI build pipelines, updated Ansible deployment scripts, and spent countless hours configuring and using static analysis tools like Fortify
What Do Others Say About Me? đź”—︎
I've received frequent compliments from the community about my OSS work and blog/documentation writing.
OSS Support đź”—︎
- @philip_roberts: "@acemarke is a total saint helping out beginners in the reactiflux discord. You have a very admirable ability to help people who are struggling, and to persist when most would give up"
- @SuperG4bry: "you are the most patient person I've met in a while. I truly admire the energy you put into educating people about Redux."
- @kyleshevlin: "Mark is one the smartest, hardest working people I know. The amount of redux questions he has single handedly helped with is astronomical."
- @nomadtechie: "Mark is the best! So kind. So helpful. So patient. He is also the archivist, librarian and master indexer of all things React and Redux. <3 We are lucky to have you Mark ❤️"
- @nomadtechie: "Mark is tech support for the React community at large. Reactiflux is a Discord server where there’s different channels on different kind of popular React frameworks, libraries, or just areas of expertise… And Mark really is very active there, answering questions… And he’s very patient, because he’s answered the same questions multiple times, again and again and again. He’s been answering the same questions; as this community grows and you have all these newcomers entering the community, Mark is just patiently – he’s not even linking them to the answer anymore, he’s just like answering the same questions… And I just really wanna thank you for that, Mark, because you’re such a good custodian and teacher, and you’re so patient, and we’re just really lucky to have you, and I just wanted to say thanks for everything you do."
- @natehiggins: "@acemarke truly is one of the best of us. I tweet him with a random thought I’m having, a few hours later he tweets me back with a gist illustrating his point. Rarely have I met someone so generous with their time. Thank you Mark."
- @tannerlinsley: "Mark is a breath of fresh air, right?! He'll forever be at the top of my list for people that I trust to always deliver an objective take on something, regardless of stake or emotion. Keep it up Mark."
- @Djcarrillo6: "I once tweeted out about something minuscule about Redux & Typescript, and @acemarke responded within minutes of me Tweeting it. His passion and dedication to his craft make is remarkable. True quality"
- @pcthrowaway: "Acemarke isn't just "a Redux maintainer", he's incredibly active on Reddit, HN, and Discord, helping people understand Redux better, and also, when it doesn't make sense to use it. I can't speak to his code contributions, but in terms of documentation, tutorials, and community engagement, most open source projects would be lucky to have similarly prolific contributors."
Writing đź”—︎
- @omgwtfmarc: "Mark effectively already has written a couple books on Redux. His blogs posts, documentation, and so on heavily influenced our perspectives. Doubtful he’ll ever get enough credit, but those in the know tip their hats "
- @swyx: "It’s obvious but deserves to be said every so often: the @Reactjs and Redux communities are extremely lucky to have @acemarke so actively and meticulously involved. I learn a tremendous amount from his writings and stewardship of both community and code."
- @giovannibenussi: "@acemarke’s articles are the kind of quality content that I’d like to produce: well explained, deep content, and very good writing. Very inspiring and completely recommended Thanks to you! Is good to see quality content so you know it’s possible to do it better and raise the bar"
- /u/minty901: "This is by far the best, most comprehensive blog post I've seen on this sub; by an author who clearly has a deep and precise understanding of how React and Redux work. Well done!"
- /u/D3scobridorDos7Mares: "I'm a newbie developer and you must get this all the time, but I will say it anyway: Your tutorial is nothing short of perfect! Going through every step, "developing" the components the same way you did, and refactoring it afterwards, made learning very fun, intuitive and rewarding!"
Interests đź”—︎
- Avid golfer - I'll play any time the weather is halfway decent
- Lifelong voracious reader of sci-fi and fantasy
- PC gamer: Battletech, Mass Effect, Master of Orion, Deus Ex, and assorted other single-player FPSs and RPGs
- Native Cincinnatian, and thus sadly a fan of the Bengals, Reds, and Buckeyes