I'll teach you anything you want to know, just don't ask me any questions.

So, this is really one a quick one-off post of no real major technical achievement, I just had to do it today to get rid of some cruft left by Atom in my home directory, so I figured I’d share it. Mostly so the top post is a technical post, not some sentimental stuff from last year.

NodeJS, you love it, it’s everywhere. Sadly, they have a funky edge case that can occur on windows for really deeply nested dependencies that looks like this:

project/node_modules/dependency/node_modules/dependency/node_modules…

Windows file APIs have a big problem with file paths longer than the path limit (260 chars), it has trouble reading, writing or deleting them. So if we actually cared we would have to do something more involved, but since we want to delete them anyway, let’s just mangle the names.

A requiem for my wasted youth

I don’t often talk about myself, but I think today is a special day when the truth of things should be laid bare. What a treat for you, dear reader! To get a chance to peer behind the curtain and see the sentimental man behind the giant talking head.

I am the great and powerful SMUG.

Alas, it is not so. It’s all an act. I’m still the same shy nerd I’ve always been inside. I’m more outwardly confident these days, and I have this tiny platform and a readership numbering in the dozens, but I’m still that guy deep down.

Today is special, because when I started this post, I had just turned in my resignation today after 11.7980037352215 years working for the same company.

I’ve often (as in constantly) been asked “Why are you still there!?”, and the truth is, I ran out of satisfying answers, so, I’ve decided I won’t celebrate my 12 year work anniversary. I used to say it was the people, but most of the good people left a long time ago. Then I thought it was because they cared about me, but they don’t. There’s a video clip of me in my early 20s floating around where our marketing director Bruno asks me “Why do YOU work for Santander”, and I sheepishly answer, “Because they let me express myself creatively!”.

It is true, I got to express myself all the time, it just didn’t matter to anyone.

Finally, it came.

I was scared

I didn’t want to leave because it’s scary out there, and this place has not prepared me for life on the outside.

Dropping Out

I think a large portion of my insecurities came from my decision to leave school early. It has definitely left me feeling inadequate even though I work with college grads every day, and mentor college students every summer, and I know I don’t have anything to feel inferior about, the little HR recruiting gate-keepers don’t know or care about that shit.

Unfortunately all of the roles I’m currently working on do require a degree in computer science (or related field) to be considered for the role.

Thanks… thanks a lot.

I did it for the money

TL;DR

I was 22.

The money was too good.

The classes were good but not great.

The commute sucked.

Incentives work, but not always in the way you expect. When someone says “You can have a full-time salary now, or continue to be underpaid and finish your degree…” that’s an out I would wager few college students would begrudge me for taking. It was short-sighted ultimately, and I have paid the price for that mistake many times over.

Learn from my mistakes kids. Stay in school.

Breaking Things

It’s not all happy memories, and I think no careful accounting of my history with Drive/SC would be complete without owning up to my failures.

That time Ryan and I took down Production (for a few seconds)

This blog is technical right? Well here’s a fun technical annecdote for you. Back in the day, on ye-olde Windows Server 2003+IIS6, if you wanted to swap the version of the .Net framework used by a particular application pool, you had to click through a series of menus and opt-in to the new version. This was before I had learned the peace that comes from embracing the command line.

We were a much smaller company then, so I waltz over to my sysadmin buddy Ryan and the exchange went something like this:

Yo man

Hey Chief

Can you do me a favor?

Sure man whatcha need?

My shit isn’t working. Can you log in to this production box and flip this over to .net 3.5? It’s totally safe.

[ IIS Resets ]

Oh fuck…

Something you kids today with your JSON and your java-beans cool beans might not realize is that the .Net version wasn’t tied to the pool, it was on the site, and when updating the metabase, the site went down… along with all the other applications.

He took the fall for me and it cost him his bonus for the month. My bad bro. My bad.

In case you read this, I’m much more responsible now, but I’m still largely that same developer, running around with no shoes on.

Some things never change.

Other Bad Decisions

I don’t have any fun anecdotes for these. This is my public apology for endorsing Sitecore, failing to deliver NCache properly, shunning WordPress for static pages and writing that god-awful 2000+ line javascript file that is so needlessly complex, simply because I wanted to reinvent all the wheels. You guys, look at all those closures!

I fucked up guys. I’m sorry.

Victories

Interns

Oh my beloved interns. So full of wonder and optimism. It has been my sincerest pleasure working with you all, even if it did keep me artificially at the company well past my expiration date. I’m leaving with a heavy heart knowing I won’t be around to see the newest group of you flow in, and that last year’s Bootcamp might have been the last.

Trainees

We took call center reps and made them programmers. I literally made men (and a few women) in my image. I am Smug almighty.

Marketing Reconciliation

In my autumn years of this place, my greatest joy has been working with my friends over in the Marketing department again. It was nice to finally put down the guns and end the blood-feud that was started so many many years ago. We carried those same animosities around with us as a culture, long after most of the older generation who started the fighting had gone.

And now for the flames

I’m trying to turn over a new leaf here, so I’m not going to do some kind of expose on the SC culture, or why I left specifically.

There are people there who are toxic, but I’m not going to rattle off their names. I’m pretty sure they know who they are.

Change Comes Slowly

and sometimes not at all

All-in-all, I don’t have much to show for over a decade of service. After the dust settled, and all the features and bug fixes are tallied, nothing was ever really solved. We just kept doing what we’ve always done, what all companies of sufficient size do. We didn’t get better, or stronger, or faster, we just got bigger. That’s the sad moral of the story: Nobody will change unless they have to.

Purge Yourself

If you (like me) are the best, and everyone knows it, and you’re miserable.

if you (like me) were insecure about looking elsewhere.

If you (like me) think that your company has your best interest at heart, then you clearly don’t understand how business works.

If you (like me) think you somehow “owe” the company something, you are perhaps the victim of mental abuse.

You are stagnating.

Take the leap. It’s probably the right choice.

I’m a little sad, but then I remember that we aren’t a family, and we never were. At best we were all just seeking shelter from the same storm, lucky to be alive.

So don’t be like me kids.

Set a timer.

Evict yourself after two years, or sooner if you don’t like the looks of things. There are lots of benefits to doing this, that maybe I’ll expand on someday, but just trust me, you don’t want to rot on the vine.