So, for a while now I've had this cool idea to make a live git visualizer based on the way I represent the different git environments & behavior in my talk Git-ing Out of your Git Messes. You can get a sense for what I'm talking about in this video I made from some of the slides in that presentation:

The general idea is that you'd be able to run git commands in the terminal/command line on your local repo, and a web app would live update with a visual indicator of what the commands have done to change the state of your local and remote environments. I've had multiple people tell me that this mental model (which I myself discovered at this awesome git cheat sheet visualizer from NDP Software) has helped them to finally understand what is happening under the hood in git, so I would love to share it more widely!

But how? #

For a long time I thought, gosh, wouldn't this be cool and fun someday if I could manage to find some time & energy in between working full time and raising two small children? I'd start to think about all of the problems involved and the time required, and shake my head sadly because I didn't think I'd ever be able to get it done.

I realize now, that under the surface was a healthy dose of fear and the huge white whale of imposter syndrome, preventing me from getting started. To take on a fun, cool project like this, I'd have to admit, potentially in public, that I don't really know things that are considered standard these days for frontend engineers - things like React and ES6 and Webpack and Node and GraphQL and the list goes on and on and on.

See, I've been writing javascript for about 15 years now (whatup to all my old school DHTML peeps), but in the last 4-ish years, I've worked mostly on legacy codebases writing Javascript in largely the same way I have for a long time. Instead of keeping up with the latest and greatest in frameworks and tools, I've been focusing a lot more on related disciplines like design systems, performance, and accessibility.

I really do believe with all my heart that you don't have to spend every waking moment writing code or learning everything about everything to be a good engineer, but hoooo boy I have been ashamed to tell people that I've never written React for a production website. Not to mention being terrified that people will think that I don't deserve to be a Staff Engineer at a prestigious company, compounded with the feeling of not belonging that already comes with being a woman in tech.

But you know what? Fuck that. Thanks to the latest iOS update, I now know that I spend an average of 2.45 hours A DAY staring at my stupid pocket distraction rectangle (I can't remember who that quote is from but thank you for it!) generally depressing and/or enraging myself on social media. I have plenty of free time.

And that imposter syndrome? Well, my 7 year old daughter suffers from perfectionism and a fixed mindset (which she inherited from me). Thankfully, her school's entire educational philosophy centers around developing a growth mindset, so her teachers and I constantly remind her that she is learning, she can train her brain, and she doesn't have to be perfect. It's time I listened to my own advice, and developed my own growth mindset.

So, deep breath...

Hi, my name is Katie, I'm a Staff Engineer, and I don't really know a whole bunch of modern web development practices, but I'm going to learn. I hope you'll share this journey with me.

Check out the next post, Part 1 - Setup.