Today I published a long overdue update to my guides. You can read the FAQ in the repo or read my Twitter post for more information.

I am only posting here for those few friends who’ve, unlike me, not abandoned Medium at this point.

You can find the 4.0 version of my guides in their normal repository on GitHub, here.

Native JavaScript to implement ScrollSpy (change active menu based on scrolled location on page)

Bootstrap has an awesome feature baked into it for highlighting the ‘active’ item in a page’s navbar based on what section of the page a user is currently viewing — as the user scrolls down the page, the menu automagically updates, adding the active class to the appropriate nav item.

But what if you’re not using Bootstrap?

Well, there are a metric ton of npm packages that’ll help you accomplish the same thing if you’re using jQuery, or Angular, or React, etc, etc, etc.

But what if you just want to code up the functionality in plain ‘ole JavaScript?


A public service announcement

I hit the Sass part of the freeCodeCamp curriculum today.

I am not going to write a wall of text.

Instead, a public service announcement:

If you are doing one of the FCC Sass challenges, enter a solution you believe to be valid, and see it make the correct change in the display frame, but a bunch of the test cases fail, do NOT waste even a minute (much less 30 like I did) trying to figure out what you did wrong.

Instead, just submit it a few more times (without changing anything), just keep clicking…

@raisedadead is awesome

Photo by Robin Pierre on Unsplash

For this sprint I decided to stop worrying about the brittle user stories on the web dev projects and just bang out the JS cert. It took me around 8ish hours to go through all the lessons and do the 5 required algorithmic “projects”. I wrapped them up, headed to my settings page to collect my cert and … bam, settings page is borked. So I hit up the FCC github to see if there was an open issue, there was, it had been open for a couple weeks but it must have been some special sort of magic because…

My June speedrun is over — ok maybe not

Image from:

I gave input on the new freeCodeCamp “test suites” that automatically test project submissions back when they were first implemented. None of what I felt were reasonable concerns put forth by myself and others were addressed at all. Well, I take that back. Now the projects have this disclaimer tacked to the top of them:

You can use HTML, JavaScript, and CSS to complete this project. Plain CSS is recommended because that is what the lessons have covered so far and you should get some practice with plain CSS. You can use Bootstrap or SASS if you choose. Additional technologies…

Unannounced downtime with no warning and no expected duration is bad

“A pair of glasses on top of a laptop with a phone on one side and a mouse on the other” by Jesus Kiteque on Unsplash


I continued on with my speedrun this evening. I finished a few more sections and was just completing the section on CSS grid and thinking “almost done with the lessons, I bet I can whip out the 5 projects and get the first cert tonight” …. and …. bam … site shutdown.

No advance notice.

No estimate for when it’ll be back up.

Downtime happens. Anyone who’s done any sort of professional development knows that — but they also know that communication is key, and a clear sign of competency.

I guess I’ll go get some sleep and hit the Speedrun again tomorrow — FCC’s been down close to an hour, the chances of it coming up in time for me to crank out some more Speedrun tonight are pretty darn slim.

Donation popup spam — is not delightful.

“Close-up of a MacBook on a dark surface” by seth schwiet on Unsplash

Thusfar, I’ve finished “Basic HTML and HTML5” and am halfway through “Basic CSS” and I’ve discovered what I think might be the real reason this shitfest of a release finally saw the light of day.

Holy donation popup spam

export const shouldShowDonationSelector = state => {
const completedChallenges = completedChallengesSelector(state);
const completionCount = completionCountSelector(state);
const currentCompletedLength = completedChallenges.length;
// the user has not completed 9 challenges in total yet
if (currentCompletedLength < 9) {
return false;
// this will mean we are on the 10th submission in total for the user
if (completedChallenges.length …

I am. It’s speedrun time!

Photo by Osman Rana on Unsplash

freeCodeCamp released it’s new curriculum recently. I finally got my stylus settings to where the new platform isn’t actively annoying. So — I’m going to try the new curriculum out — challenge-style.

My profile is reset.

You can find it here: P1xt’s Profile

I’ve made my profile public through the weekend even though typically I don’t because FCC is ridiculously awful about privacy.

The challenge:

How fast can I (or you) finish the new freeCodeCamp curriculum (to a decent standard, with the projects built out with enough quality that you wouldn’t be embarrassed if a potential employer saw them.)

The rules:

  • start from a…

And — the UI is awful — but it is in your power to make it look however you want it to

My twitter feed was abuzz last week with comments about the new FCC release. It seemed, from what I read on my feed, to be a predominantly negative reception based on the UI redesign which, lets be honest, is truly awful — it’s cluttered, it’s messy, there’s no dark option, there’s scrollbars ****ing everywhere. They took an ugly UI, spent two and a half years revamping it, only to make it a far worse user experience.

The thing is — it’s in your power to fix the UI to look however you want — using skills you learned from FCC…

I’ve supercharged last year’s speedrun template and added more options

Photo by Jonatan Pie on Unsplash

What should I build?

I field that question a lot. When you’re learning to program, sure, you have to spend a fair amount of time reading the docs, hitting some courses, diving into books — but then you get to the point where you know some stuff and the one thing that will really up your game is practice — a lot of practice. You know the syntax, you’ve built a couple tiny things that if you put them on your portfolio will literally scream “I’m a junior dev who’s never built a real thing in my life” at potential employers. The one thing…


Software Engineer. Gamer. Geek.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store