Looking for Opportunities
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.
- Experienced staff-level developer with a talent for adapting tools and solving unique technical problems, and a tendency to write giant deep dive blog posts about how it all works afterwards
- "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 frequent podcast guest - always happy to chat, but just please don't ask me to answer "does Context replace Redux?" again!
- 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 I Looking For ๐︎
Role ๐︎
I'm primarily looking for a full-time Staff/Principal Software Engineer role, where I can be hands-on with:
- React, Redux, and TypeScript as primary technologies
- Interesting and unique technical challenges and problem solving across the stack
I have prior Team Lead experience and enjoyed it, but prefer to focus on full-time development work.
Alternately, I am also open to consulting opportunities that leverage my unique expertise around Redux, React, and dev tools, such as:
- Sponsorships of my Redux maintenance work
- Advice and help migrating legacy Redux patterns to modern Redux Toolkit
- Insights into React and Redux performance
- Implementing and maintaining developer tooling
Company and Environment ๐︎
I am specifically looking for:
- 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 ๐︎
I've worked on a variety of projects and teams, and work best when:
- I'm building a customer-facing product, rather than internal infrastructure
- I'm 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'm part of a smaller team where I have freedom to make technical choices and design solutions based on clear broader business requirements
- I'm part of a team of peers who can solve problems and get things done
- I can mentor junior developers and help level-up my team
Open-Source Involvement ๐︎
I have significant ongoing involvement in the Open Source community, and am looking for positions where that OSS work overlaps with my day job:
- Corporate support and involvement with OSS (and ideally much of the code is OSS as well)
- Understanding and support for continuing my work as Redux maintainer alongside day job work
- Direct or indirect support for my ongoing participation in conferences in the React ecosystem, possibly with a light DevRel aspect to the position
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!
Resume ๐︎
Please see my resume for an overview of my career:
Experience ๐︎
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 Staff Software Engineer at Replay.io. I'm deeply familiar with developer tool internals, spent much of my career building geospatial visualization tools with a variety of web app technologies, led an internal UI infrastructure team, and 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:
- Modernized Replay's front-end codebase, migrating from 140K LOC of plain JS and legacy React and Redux (from the original Firefox DevTools source), to 100K LOC of modernized Redux Toolkit, React, and TypeScript
- Implemented Replay's support for React and Redux DevTools inspection, using our time-travel backend API to extract React component tree data and Redux actions from recorded React applications
- Implemented "Jump to Code", which lets users time-travel-debug React apps by jumping to the React props that handled events
- Revamped the official React package build pipeline to generate sourcemaps for React production build artifacts
- Prototyped runtime perf analysis of React renders and Redux dispatches using our time-travel API
- Implemented backend recording processing logic to extract and cache recording paint data in S3
- Built a full-stack prototype of "Root Cause Analysis" to diff failing tests, including Postgres tables, GraphQL layer, and UI
- 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
- 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)
- 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
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."
- @ephemjs: "A hero for hire! I struggle to think of anyone I'd rather work with than this kind, passionate, deeply skilled developer. The work he has put into this community, the mountain of knowledge he has and shares and the incredible amount of people he's helped speaks for itself."
- @benghamine: "If you've ever wondered "Are 10x engineers real, or just a myth?" Hire Mark, and you'll have your answer!"
- @JessePence5: "He's so insanely helpful too! I've lost count of the amount of Reddit/Twitter threads where he's popped up out of nowhere to clear the air about some issue with Redux or something. His commitment to the community really can't be understated. Definitely an OSS inspiration!"
- @TejasKumar: "I tell you the truth: @acemarke is one of the best engineers Iโve ever had the privilege of knowing/working with. His skills are rare and very excellent. Like sometimes you have conversations with people and after you stop for a minute and go โwowโ. I had that 2-3 times with Mark today. Itโs pretty unbelievable. Heโs busy with a million and a half things to do, but never seems to get overwhelmed. He communicates respectfully, clearly, and kindly every single time and gives undivided and high-quality attention to people. No question is a stupid question. He thinks deeply and educates/shares context beyond surface level stuff that most of us can infer."
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!"