Megan Taylor

front-end dev, volunteacher, news & data junkie, bibliophile, Flyers fan, sci-fi geek and kitteh servant


Things That Happened in 2018

Fewer than the usual number of walking and eating visits with Marla, but I did go visit her in NJ.
Got involved in politics for the first time with Alexandria Ocasio-Cortez’s primary campaign.
Spent a couple of days walking around Philly with my best friend.
Saw Flogging Molly and Dropkick Murphys.
Built a mobile canvassing application with people I met while working on Alexandria Ocasio-Cortez’s primary campaign.
Had a health scare, but everything is fine. :D
I kept doing CrossFit, didn’t die, and have gotten much stronger.
Another great year of teaching with ScriptEd.
I have continued to shave my head.
I voted in 2 primaries and one general election.
I attended a family reunion in Indiana and met a whole bunch of people I’m related to but had never met before.
Kyle and I celebrated our 8th year of mawwidge.
I tweaked a tendon in my shoulder early in the year and healed quickly, thanks to PT, but missed the CrossFit Open.
My best friend came to visit me and I took him on a four-day food tour of NYC, working our way from Flushing to Lower Manhattan.

And probably a lot of other stuff I can’t remember right now!

December 31, 2018 | Comments Off on Things That Happened in 2018 | Categories: Posts | Permalink


Permutations vs Anagrams vs Palindromes

Check Permutation: Given two strings, write a method to decide if one is a permutation of the other.

I’m working through algorithm exercises with a group of people, and there was a lot of confusion about what permutation means, and how it differs from anagrams and palindromes.

So, to clarify:

A permutation is one of several possible variations, in which a set of things (like numbers, characters or items in an array) can be ordered or arranged. A permutation of characters does not have to have meaning.

Example: Given the string abcd, the permutations are abcd, abdc, acbd, acdb, adbc, adcb, bacd, badc, bcad, bcda, bdac, bdca, cabd, cadb, cbad, cbda, cdab, cdba, dabc, dacb, dbac, dbca, dcab and dcba

An anagram is a word, phrase, or name formed by rearranging the characters of a string. An anagram must have meaning, it can’t just be gibberish.

Example: These words are anagrams of carets: caters, caster, crates, reacts, recast, traces

A palindrome is a word, phrase, or sequence that reads the same backward as forward. A palindrome must have meaning, it can’t just be gibberish.

Example: Civic, level, madam, mom and noon are all palindromes.

All palindromes and anagrams are permutations, but not all permutations are either anagrams or palindromes.


Documenting a Clean MacOS Mojave Install

I’m reviving a 2013 MacBook Pro with a clean install and fresh setup. This is mostly documentation for myself.

System Preferences

Install some apps

Chrome Sync + Extension Settings (must check each extension and copy from previous settings manually)
Mac App Store Apps


At this point I decided to take the opportunity to learn something new. A coworker had recently taught us about dotfiles at our weekly tech check-in, so I wanted to see if I could install the rest of my apps using Homebrew.

I installed Homebrew and Homebrew Bundle and created a Brewfile based on what I had installed on my work machine. I created a dotfiles folder in my Documents folder and stored the Brewfile in the dotfiles folder. Then I opened that directory in Terminal and ran brew bundle.

Mischief managed!

Last couple of steps to reach basic usability:

  • make bash auto-complete case insensitive with echo "set completion-ignore-case On" >> ~/.inputrc
  • setup git/ssh keys

At this point it’s been about 1.5 hours since I started.

My Specific App Setup / Persnickety Shit

Add licenses for Alfred, Bartender, BetterTouchTool and HyperDock
Setup/log into Airdroid, Alfred, Bartender, BetterTouchTool, Franz, HyperSwitch, HyperDock, Kindle, ReadKit, Slack, Spillo, Stretchly, Todoist (copy settings for ReadKit and Spillo from previous settings manually)
Add Spillo, ReadKit, Chrome, Slack, Franz to dock
Install SetApp apps
Customize right-click menu
Enable dragging by swiping on trackpad:
System Preferences > Accessibility > Mouse & Trackpad > Trackpad Options > Enable dragging
Enable git colorized output: git config --global color.ui auto
Setup VSCode with Settings Sync extension (Gist)
Add git auto-completion:

November 8, 2018 | Comments Off on Documenting a Clean MacOS Mojave Install | Categories: Posts | Permalink


Reducing dependency on console.log

A co-worker recently brought to my attention that I always reach for console.log when I’m trying to figure out why some code is not behaving as I expect. It’s rather like always reaching for a hammer and ignoring the screwdrivers and wrenches. Sometimes a hammer is the right tool. Sometimes it’s not. Ultimately, scattering console.log around your code like fairy dust is not a particularly effective debugging method.

These are some things I’m reading to branch out and get comfortable with more debugging tools and techniques:

I hope these links are helpful to others looking to improve their debugging processes!

October 26, 2018 | Comments Off on Reducing dependency on console.log | Categories: Posts | Permalink


Reflecting on my years of teaching web development with ScriptEd

A new school year means another year of teaching with ScriptEd. This will be my 5th year! I’ve been reflecting on how much I’ve grown since my first year with ScriptEd:

I had the worst stage-fright and could barely get through a 5-minute lecture without becoming breathless and shaky. Once I actually stopped in the middle of a lecture and ran out of the classroom, leaving the other volunteers to pick up where I left off. While I’m still no TED speaker (though ScriptEd’s co-founder is), I can get through a class without heart palpitations. I don’t have to read directly off the slides and it doesn’t completely throw me off-track when I stumble over something or when a student interrupts with a question. I’ve even given talks at QueensJS and DjangoGirls events.

I knew just enough JavaScript when I started teaching to read a simple function, mostly understand it and maybe edit it. I learned JavaScript by teaching. Nothing is more motivating than having students depend on me. I’m driven to understand the material at a deeper level and find engaging ways to help them understand it.

Now I write JavaScript almost every day at work. Over the past 4 years I’ve built websites with advanced animations (pieces of a car that fall into place as a user scrolls, a tumblr-style lazy-loading masonry page that scrolls forever and ever) and several applications using React.

Teaching has also improved my ability to communicate at work: I use similar strategies to explain technical concepts to producers and product managers so they understand what I’m working on, struggling with, or need clarity on.

I have more empathy, patience, self-confidence, and new friends among my fellow volunteers.

Teaching is one of the hardest things I’ve ever done, and its also an amazing way to learn.

October 21, 2018 | Comments Off on Reflecting on my years of teaching web development with ScriptEd | Categories: Posts | Permalink


Things That Happened in 2017

Kyle and I spent two amazing weeks in Japan.
I traveled to Turkey and Israel for two weeks with my Dad.
One of my bestest pals from high school got married.
A friend brought her kid to NYC for the first time and I got to take a train-obsessed 6-year-old on his first subway ride.
I got my ears re-pierced.
Kyle and I saw Dropkick Murphys, Rancid and Bouncing Souls at Coney Island.
I participated in the Day of Dinners, and had some amazing conversations with cool people in my neighborhood who I haven’t heard from since.
During a round of layoffs at work, I didn’t lose my job.
I finally made it past the shin splint phase of starting to run again and went from a 16-min mile to a 12-min mile before it got too cold to run anymore.
Kyle and I spent the holidays with our families.
Many walks and foods around NYC.
I visited a friend in Miami, we went rock climbing, and the car died on the way home.
Another great year of teaching with ScriptEd.
Kyle and I took his parents to The Cloisters, which was my first time there not for a Medieval Festival.
I kept doing CrossFit, participated in the CrossFit Open, didn’t die, and have gotten much stronger.
My mom took us to see The Play That Goes Wrong, and my face hurt from laughing.
NYC Summer Ice Cream Blizzard!
I got to pet, hold and/or cuddle a ridiculous number of animals.
Both sets of parents came up from FL to visit. (Separately, thankfully.)
Kyle and I built our own coffee tables when we couldn’t find what we wanted.
I have continued to shave my head.
A trip to The Miami-Dade Zoological Park and Gardens.

And probably a lot of other stuff I can’t remember right now!

January 1, 2018 | Comments Off on Things That Happened in 2017 | Categories: Posts | Permalink


CSS initial Keyword

Note to self: The initial keyword is not supported in Internet Explorer 11 and earlier versions. Just use auto!

July 13, 2017 | Comments Off on CSS initial Keyword | Categories: Posts | Permalink


Things That Happened in 2016

This is super overdue, but 2017 has been busy!

Celebrated being bed-bug free after a harrowing couple of weeks.
I got a standing desk setup at work.
Kyle and the kitties got me an All-Clad pan for Mother’s Day.
I squatted 175lbs.
I started doing CrossFit.
Shortly after starting CrossFit, my face got into a fight with a 20-lb ball. My face lost.
Kyle and I started planning our 2017 trip to Japan.
I started learning about React, Redux, and functional programming in JavaScript, and using these skills at work.
We all survived Dad’s hip surgery, part IV.
I spent a week in Miami to celebrate my best friend’s birthday.
Mom and I spent a day exploring Philadelphia’s Market St (and adjacent areas) from 30th to 3rd.
Another great year of teaching with ScriptEd.
Many walks and foods around NYC.
Visits from parents.
Met some family members from another branch of the tree.
Saw Fully Committed.
I shaved my head for the first time.

And probably a lot of other stuff I can’t remember right now!

June 6, 2017 | Comments Off on Things That Happened in 2016 | Categories: Posts | Permalink


JavaScript Code Kata

Dave Thomas was recently on the CodeNewbie podcast and talked about code kata for a few minutes.

A kata is an exercise in karate where you repeat a form many times, making little improvements each time.


The code kata is a way to bring practice sessions into programming.

In my day-to-day work, the problems I solve with JavaScript are not complicated:

  • sticky nav
  • add/remove class based on behavior
  • handle click tracking
  • carousels
  • form validation
  • lightbox


So this seems like a great way to stretch my JavaScript legs, so to speak. There are many places online to find code kata; I signed up on Codewars. Even at the beginner and novice levels, I’m working through problems that extend my abilities.

But also, math.



If you’re interested in doing code kata yourself, LMGTFY. If you happen to sign up on Codewars, I’d love to know so we can compete against each other!

January 27, 2016 | Comments Off on JavaScript Code Kata | Categories: Posts | Permalink


Things that happened in 2015

I proposed and helped shepherd changes in tools we use at work for QA and HTML emails.
I planned and executed a field trip for my ScriptEd students to my office, with a lot of help from my awesome coworkers.
I spoke at Career Day at Chelsea Career and Technical Education High School.
I worked on a Chrome extension to help coworkers write presentations in markdown.
Some coworkers and I (wo)manned a table for Career Day at Harlem Village Academies High School.
I spoke about learning web development at Django Girls NYC.
I helped The Story Exchange produce their 1000 Stories project about women entrepreneurs.
I worked on more than 30 websites.
I closed more than 700 tickets at work.
Kyle and I saw Kinky Boots.
I was in the office 2 blocks away when an armed veteran walked into the lobby of a federal building, shot and killed an armed private security guard and then shot himself.
I went to Smorgasburg in Brooklyn and Queens.
Kyle and I went to the Queens Night Market, where Kyle discovered lumpia.
Kyle and I went to an Atlas Obscura event in Greenwood Cemetery.
Kyle and I spent 8 days running around Prague and Southern Germany. We rented a Mercedes and drove >200 MPH on the autobahn. We ate amazing food. We saw beautiful things. We stayed in a hostel.
My family survived my Dad’s hip surgery with minor bickering.
I visited high school friends in the DC area.
Pixel earned the nickname “String Butt” after an emergency trip to the Animal Hospital.
Kyle and I went to the The Rocky Horror Picture Show Experience at the Museum of the Moving Image.
Kyle and I went to the Great Big Bacon Picnic with some of my coworkers.
Kyle and I saw Louis C.K. at Madison Square Garden.
Kyle and I got renters insurance.
I went to the Hamptons for the first time with some great people from ScriptEd.
I played ping pong (badly) with my Mom.
I redesigned the Bummer Bears website to be responsive.
Kyle and I reached the peak of adulthood by buying a frame for our bed.
I learned to like guacamole.
I started lifting weights with a personal trainer.
I went to physical therapy and resolved my back and neck problems.
Kyle and I started saving up to buy a house (someday).

And probably a lot of other stuff I can’t remember right now!

December 31, 2015 | Comments Off on Things that happened in 2015 | Categories: Posts | Permalink