outputs of gingervitis

Drawing Hiatus. :'(

As you may have noticed, I haven't posted any drawings on this blog in a while.
I know it's not a good excuse, but I've gotten really caught up in a lot of different web projects recently.
  • I recently became the Web engineering team lead at work. Not only will I be continuing to do my usual IC work, I now also have to lead by example! This means I've been trying to catch up on all the general web/frontend things I'm not very familiar with so I can step up my game and make proper decisions when needed. (Oh there's so many in this field I don't know about and probably should, I'm embarrassed to post it publicly! I'll post them below.)
    • I've also been organizing goals for my team, and inserting myself into more meetings and initiatives at the company to make sure I get at least bit more knowledgeable about other projects that my team may be involved in. Plus I've been spending more time doing code reviews to be more aware of what my team is up to.
  • I've been working on various aspects of the open-source Owncast project. I started off building out the frontend player, spending several iterations making it responsive. I got to write in framework-less & build-tool-less vanilla Javascript again. But as we needed better functionality, the vanilla wasn't scaling cleanly and I started missing React. In order to keep it simple without build tools, I later learned about Preact where I could still write some JSX(-ish) with out installing all the Babels. I also learned to CSS --variables! So handy!
    the owncast player

    the owncast player

  • I started this blog site. I learned about the ease of building with the hot new NextJS framework, I learned about using Static Site Generators (seems like most of the internet is made this way now!), I learned more about using Markdown, and learned how easy it was to integrate a bunch of things through my GitHub account to deploy my site live, without archaic FTP tools.
    • I'm trying to do as minimal work as I can on this site, but every so often I create work for myself while I try to decipher what gets rendered on the server, and what gets run on the front end. (Image optimization has been a headache, and still is.).
  • I spent a week regressing back to PHP as I obligated myself to consolidate my OMQ databases into a single source of truth.
  • Later I also started some work on the Owncast Admin portion of the service which involved working with more NextJS and playing around with the hot new(?) AntDesign frontend framework library. (TBD on how I feel about AntDesign. Part of me likes the idea of pre-made components that do all the right things, but I really hate being locked into someone else's design. I prefer the flexibility of my own layout choices.)
    • I got started on this Admin, but I haven't touched in a couple weeks and I feel bad for the empty promises I've made. I will get back to it soon! I really want do give all of Owncast an actual design. Right now I've just been helping to piece things together and coming up with random color hex codes and sizes to make it look not-bad. All the Owncast sub-projects need cohesion in their design, so it will really impress potential users who aren't just backend nerds with self-proclaimed lack of eye for design!
Anyway, all of these have been happening in the last couple of months! When it rains, it pours!
During this time, all of these experiences have given me opportunities to learn more about this frontend dev role. While I feel like I suck at engineering most of the time, I honestly feel like these last couple months of projects I've been involved with have really helped to level up my engineering skills.
I don't know if I would call it fun? But I feel good getting things done.
The energy in this wave of coding-related opportunities has been quite strong, I need to capitalize on it while I can. The energy currently is not around trying to be creative. If I attempt anything my heart probably just isn't in it and I would still distract myself with wanting to accomplish web things instead.
So sadly, the itch to draw has subsided a bit, but I'm pretty sure at some point this coding energy will burn me out a bit in some weeks, and I'll want to release by scribbling some drawings.

Web things I'm still bad at

Inspired by this post which helped relieve my impostor syndrome at the time, here is my even humbler list of things I don't know in web, but probably should improve on.
Wait, first here's what I think I'm good at. My strengths lie in areas such as
  • coding up layout and css, making things look pixel perfect responsively.
  • problem solving UX things
Yeah the fun meaty things that makes this field rewarding to me. Everything else.. not so much. Especially all the parts that involve setting up all the pieces that make your website run.
Here's what I currently have insecurities about:
  • Hooks. They've been around for a couple years. Still haven't used them. Still learning about them. Ok well I wrote a couple of them last week! But I'm still not in the habit of thinking about using them just yet. I still have the default habit of writing a bunch of Redux boilerplate. I do think I'll eventually get into a habit with using these.
  • Calling Promises correctly. I'm fine with calling things like fetch() and then() and catch()ing errors procedurally. But I still have trouble using them with callbacks or standalone thing to resolve(). (If I leave my job no one will hire me for lack of this knowledge!)
    • I also recently found myself in an environment where my peers preferred using Async/Await. Ugh. When do I use them where again?! What is my async function doing right now? Can I resolve it yet?
  • Writing tests. I never had a good habit of this. I'm working on it. I need to make sure my team's projects achieve 50+% code coverage by the end of next year. Testing documentation and tutorials make it look so easy, but I constantly struggle with every project. What the hell. With the complex React code base we have at work, I often struggle with how to write the test. I also struggle with wording. What's the diff between a unit test and a smoke test, and a mock? How do I test my damn HOCs that complexly wrap other components with all this Redux and Apollo wrapped around that?! A lot of my tests have taking me weeks to set up and write. Am I even testing for the right things at this point?
  • Accessibility. I used to be really negligent about it. That's something I been consciously learning more about and getting better at as I develop. Apparently there's no right answer to some UX situations. Some of them seem to require quite a bit of complex coding to make them work well. This sort of falls into the realm of "problem solving UX things" which is fun. It's just the extra work that I should make the habit to always invest in.
  • Typescript. More more cool kids are jumping on this. I understand the benefits, but I I can think of right now is the new syntax and extra code I'll need to write or forget to write. I'll get in a better habit with it eventually.
  • CSS Grids and really fancy animations. I haven't needed to use these yet. Flexbox has been working fine for me for years! Before that, I was doing just fine with float!
  • Things not React, like VueJS, Angular. I really do enjoy React, and haven't found a need to use anything else. But if I had to, I might face a bit of a learning curve.
  • Bundling, Webpack, Babel, things that run on the server, and optimizations around that. I've rarely had to do this from scratch myself. I've always worked with an existing set up, so I always treated that stuff as a black box.
    • My nascent experience with NextJS has been helping me gain a tad more experience with this, but it's still black-boxy to me.
  • I'm also just not an early adopter. I can keep using a technology until someone tells me it's not cool anymore. I find myself initially thinking, "why do I need this new thing, when what I have works pretty well enough??" This default mentality greatly limits me from learning quickly about the latest and greatest things that could help my team achieve better results.
#frontend#web