Who Am I? 🔗︎
Hi, I'm Mark Erikson, and I'm currently open to new job opportunities.
I'm known for a number of things:
- The primary maintainer of the Redux family of JS libraries, including Redux, React-Redux, Redux Toolkit, and Reselect. I maintain code that runs in apps you use every day, like Twitter, Slack, and many more.
- "Tech support to the React and Redux community", constantly answering questions anywhere there's a textbox on the internet
- A prolific technical blogger, covering React, Redux, JS, TS, Git, and web development
- Author of numerous Redux docs tutorials and usage guides, including the comprehensive "Redux Essentials" and "Redux Fundamentals" tutorials
- Conference speaker / teacher, and occasional podcast guest - always happy to chat, but just please don't ask me to answer "does Context replace Redux?" again!
- Experienced senior developer with a talent for adapting tools and solving problems, and a tendency to write giant deep dive blog posts about how it all works afterwards
- An uncanny ability to search and find the info I'm looking for somewhere on the internet (and then paste that as a link to help answer a question)
and of course, "That Guy with the Simpsons Avatar" :)
What I'm Looking For 🔗︎
- Staff/Principal Front-End Engineer role
- I've been a Team Lead for the last few years (about 50% time actively coding) and enjoyed it, but am ready to focus on full-time development again
- Remote, full-time
- Prefer a reasonably established company, but open to possibilities
- I strongly value consistency and stability in a work environment
- Good work/life balance - typical 40hr/wk, flexible schedule, with a consistent pace rather than urgent deadlines
Projects and Team 🔗︎
- React, Redux, and TypeScript as primary technologies
- Interesting technical challenges and problem solving across the stack
- Building a product, rather than internal infrastructure
- Working to build something meaningful with tangible purpose that has clear value to end users
- I prefer to avoid working on projects that involve abstract metrics, business processes, or questionable social value
- I work best in a smaller team where I have freedom to make technical choices and design solutions based on clear broader business requirements
- Being part of a team of peers who can solve problems and get things done
- Mentoring junior developers
Contact Me 🔗︎
If you have a position that you think would be a good fit for my interests and experience, please get in touch via email!
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'm currently a Senior Principal Software Engineer at Northrop Grumman. 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-builderC++ 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
As a team lead, I have:
- Planned quarterly project roadmaps, and created/prioritized full sprints worth of stories
- Worked with managers and stakeholders to gather requirements, design features, and juggle prioritizing requested features vs existing tasks
- Reviewed all team PRs and provided guidance on code standards and implementation approaches
- Mentored and trained junior developers by answering questions, teaching useful techniques, and providing learning resources
- Designed systems and technical implementation approaches
Job Experience 🔗︎
For more details on my prior experience, please see my resume:
Mark Erikson - Resume.pdf
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 ❤️"
- @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."
- @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!"