Amanda McNeal

About

Working Together

My goal is to ship clean, scalable code while communicating clearly and minimizing friction for everyone involved.

What You Can Expect From Me

Autonomy
  • No baby-sitting necessary. I treat every project with the care and attention that I would if it were my own.
  • My many years of experience allow me to make decisions on my own, when necessary (provided that's allowed).
Transparency
  • I bring up concerns/blockers as early as possible.
  • I share what I'm doing and where things stand on a regular basis.
Speed & Accuracy
  • I like getting things done and done well.
  • If there is a repetitive task, I will automate it (usually with Python).
Future-proofing
  • I write code that can be easily read and maintained.
  • I love documentation, if not for you, then for myself 6 months in the future.
Humility
  • I welcome feedback and critique.
  • I don't think I know everything.
  • If you know a better way of doing something, I want to know about it.
Respect
  • I do not believe in being late, I know your time and attention are valuable.
  • I like hearing other perspectives and ideas.

What I Expect From You

  • Clear communication. Written is my preferred form so that I can reference later if I forget something.
  • Respect that my time and attention are also valuable.
  • Under-promise and over-deliver (in respect to work that is done for other people) and not the other way around.

What Makes Me Sad

  • Scope creep. Sometimes things have to change, but I expect changes to be accounted for and them to change other parts of a project.
  • Expectations/deliverables being vague. I don't need everything laid out, but it's best for everyone if we're all on the same page.

Tech

This is the tech that I have experience with.

*Preferred

Languages

  • HTML
  • CSS
  • Sass/SCSS*
  • Tailwind CSS
  • JavaScript
  • TypeScript*
  • PHP
  • Python (Tooling)

Frameworks & Libraries

  • React / Next.js*
  • Vue / Nuxt.js (2 & 3)
  • Vuex
  • Pinia*

APIs

  • GraphQL
  • REST

Content Management Systems

  • Contentful*
  • WordPress (headless, monolithic)
  • Shopify
  • Custom (I have worked with many custom backends)

Testing

  • Cypress
  • Jest
  • Playwright
  • Axe DevTools
  • Chrome Lighthouse

Tooling

  • Vite*
  • Webpack
  • ESLint
  • Prettier
  • npm
  • yarn*
  • Git

Personal Philosophies in Development

Empathy is my guiding principle. I always try to think about how someone else might use something I have built.

These are not exhaustive lists.

Accessibility

Accessibility isn't just about those who are differently-abled, it's about making things as frictionless as possible.

  • I expect that others will use a site differently than I anticipated.
  • Input fields should have proper names and types so that tech, like autofill, works the way a user expects.
  • Markup should be semantic.
  • Don't rely on color to communicate.
  • Text size should be adjustable.
  • Respect the users preferred color scheme.
  • Respect users that prefer less motion.
  • Expect third-party APIs to not work.
  • Expect network conditions to not be ideal.
  • Don't prevent users from taking normal/expected actions (zooming, being able to select/copy/paste text, back button actually goes back, etc).
  • Optimized and properly sized images should be the norm, but also give users the ability to download the full size.
  • WCAG 2.1 compliance should be the standard.

Performance

  • Assume the user is on slow internet.
  • Use solutions like SSR (Server-side rendering), SG (Static generation), selective hydration, and/or lazy loading to make the experience as fast as possible.
  • Layout shift is a heinous act. Nothing worse than trying to click on something and clicking on an ad instead.
  • Minimize third-party scripts unless they're essential.
  • Cache static assets effectively.
  • Defer non-critical scripts and styles.
  • Bundle only what's necessary. Split code by route or feature.