Letting Go

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.
  • Amy, Jaime, Brian, it’s been a pleasure.

Shoutouts

  • Shane Battrick – Thanks for always scrutinizing my commits a little harder than everyone elses. It made me better.
  • James Fugitt – Thanks for not listening to my dad. I liked the pay bump.
  • James Hinze – Thanks for challenging me to be a better… everything.
  • Christy Miller, you were awesome. I’m gonna miss you.
  • Amanda Mangelsdorf – No surprise, but if you must have the best, accept no substitutes.
  • Todd Bredhoft / Brian Brooks – These two godly DBAs could replace 100 mere mortals.
  • Tai Anwar – The only PM I ever loved. Gonna miss you BC.
  • Ravi Kant – I’ll miss you most of all bro. ❤

And now for the flames

kidding

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.

 

 

Yours Smugly,

Ross

I R Blogger

Here are my notes from my talk at The Iron Yard Dallas

I had a lot of fun over there and if you’re currently walking the lonely road of the self-made developer and need a foothold, check them out. This is not a sponsored post, they are just really cool people.


Welcome to the community

Unscientific Poll

Are you here for:

  1. The money?
  2. The code?
  3. The lulz?

Dunning Kruger

  • The less you know, the more you think you know.
  • Applies to Most .Net developers

Imposter Syndrome

high-achieving individuals who are marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a “fraud”.

What’s next?

After you leave here, what happens?

  • You join the workforce
  • You become a “real” programmer.

Life Long Learning

Graduation isn’t the end

  • “Job Security” means knowing more than can be automated cheaply
  • Having a satisfying career means not just churning out code for others.

Be a Voracious Reader

Programmers stereotypically don’t talk much, but we sure as hell write a lot.

  • /r/programming
  • Ted Dziuba
  • DHH

Recipe: A good time

  • Your Pajamas
  • Flux (for dimming your monitor)
  • A nice glass of your favorite sippable adult beverage
  • bourbon, scotch, brandy, cognac
  • https://github.com/rails/rails

Watch / Listen

  • Handmade Hero
  • This Developers Life

Make Something

  • A resume only gets you past the recruiter.
  • Any portfolio will set you apart from the other candidates.
  • A good portfolio will put you at the top of the list.

Case Study: Shon

Sonic

Write Something

Writers get a nice break in one way, at least: They can treat their mental illnesses every day. – Kurt Vonnegut

Blog For Yourself

  • It proves you have a pulse
  • Practicing keeps you sharp
  • This industry is frustrating

Anyone Can Do It

smugdeveloper.com

  • Like
  • Subscribe
  • Validate Me

Contribute

  • Be a good citizen
  • Get active in the community
  • Submit Issues
  • Learn the culture

OSS

  • Open source software is vital
  • Giving back is easy
  • You might find a mentor
  • You will definitely learn something

Get Involved

Why?

Why does anyone do anything?

  • Gain Confidence
  • Show Your Work
  • Make More Money

Questions?

  • I’m a professional programmer Smug Developer. AMA!

Yours Smugly,

Ross

Smugcast: Awesome slides done quick

I’m feeling very prolific lately! Enjoy nerds!

Fix Your Presentations

A quick walkthrough of my writing and publishing process for everything.

Content vs Presentation

  • Think like a programmer
  • Do not author in the output format

Nerds Like Text

  • It’s searchable
  • It’s Cross Platform
  • No special viewers
  • It’s SMALL
  • IT’S VERSIONABLE ahhhhh

Minimize Friction

  • If you can remove the things that get between your thoughts and your words, you’re gonna have a good time.

MARKDOWN

If you are a programmer who does not use and love markdown, what the fuck mate, get with it.

Not just for slides

Do this for your:

  • Design Docs
  • Blog Entries
  • Meeting Notes

Honorable Mention

  • Org-Mode: A super advanced
  • reStructured Text
  • LaTex

Get the Tools

  • Decent Text Editor (Emacs, Vim, VsCode, Sublime, Atom?)
  • RevealJS
  • Pandoc

Walkthrough

links

Be (2x) More

insightful

Say, for instance, you are given a seemingly impossible task, that over the next thirty days you are to be twice as good as you are today. How might you accomplish that? Would you break it apart? Try to focus on the most meaningful changes first? Tackle them one at a time, perhaps utilizing some sort of list? Congratulations, you might be an engineer. Would you instead, shift uncomfortably in your chair, attempt to point fingers at others, pretend you’re doing fine, and quietly start looking for a new job? Congratulations, you’re an asshole.

Nerds:

First, let me say, that the goal of attaining the unicorn status of the 10x programmer is probably unattainable, but 2x is definitely within your grasp.

Improve your basic skills

The 2x speedup is not, I repeat, NOT from a new language or toolkit, it’s from mastering the basics. Using Angular instead of static html pages does not make you a better programmer. It’s possible, that once mastered, you can be more proficient in setting up rich, responsive and scalable single page web applications, than you would using a simpler toolchain, however this is not going to help you attain 2x in the next thirty days, so don’t waste your time. I don’t mean to pick on Angular, it could easily be React+Redux or any other such framework-du-jour. The point is that there are better uses of your time.

If you were a chef you would practice knife skills

If you were a ninja, you would practice nunchuck skills.

If you were a hairdresser you would practice cutting doll hair.

Why would software be any different?

Master basic keyboarding Skills

  • Do you hunt and peck?
  • Can you navigate your OS / Editor without your mouse?
  • Can you type quickly and accurately for sustained periods of time?
  • Did you know that holding control while moving left and right can advance a whole WORD at a time. Magic!
  • Have you learned the joys of Ctrl+A and Ctrl+E instead of home/end?
  • Seriously, rebind that shit. Your life will change for the better.
  • You don’t have to go full emacs or vi binds, given the learning curve, but that could be a worthwhile long-term goal.

Set aside time to practice programming

Do it on the company dime or not that’s up to you. The point is to seek measurable improvement.

  • Write a function.
  • Now delete it.
  • Write it again.
  • Delete it.
  • Continue until the function is perfect or your boss notices what you’re doing.

Get better tools

If you’re not willing to invest in yourself, then why would anyone else?

Do not decry your company for failing to provide you with adequate tools. Go out, find the tools, and if your company won’t buy them or approve them quickly buy them yourself or LEAVE.

Be pragmatic

Practice Taco Bell Programming

functionality is an asset, but code is a liability.

There is of course, value in re-inventing the wheel, but only to learn more about wheels. In the next 30 days, you have no such luxury. Work smarter, not harder.

Pick the simplest solution that could possibly work, test the hell out of it, and move on. My colleagues don’t have the luxury of the beautiful Linux tools that the author talks about here, but we should at least learn the lessons the Unix way. Make small composable units and combine them to make even more useful units. Repeat until you are the master of the universe.

Okay hopefully the non-nerds didn’t make it this far, and they don’t think to read up. I want them to take this seriously too, but honestly, nerds, realize your value. You are more vital to the company than they are. Now that you know that, stop being cowed into doing things by people just because they talk loudly at you or as “are you sure?”. These are laughably transparent attempts at manipulation, and they shouldn’t work on you. Man (or woman) up and do something about it.

Transform this

My scrum master said that we’re behind schedule

into this

My scrum master said she was going for coffee, anyone want one?

PS: It wouldn’t kill you to write a few tests too. Code fearlessly because you’re backed by tests

Non-Nerds:

Don’t think I forgot about you. This concerns you too. If you would like to help these nerds achieve their dreams of literally doubling their output, and attain all the moneys that you so desperately want, then could you please do the following?

Understand the power dynamics, and stop abusing them

My favorite programming joke of all time goes like this:

How can you tell if you’re dealing with an extroverted programmer?

(pause for dramatic effect)

He’s staring at YOUR shoes!

(hold for applause)

Why does this joke work? Because it’s true. I touched on it perhaps a little too softly last time, so I’ll spell it out in no uncertain terms. Programmers are, generally speaking, afraid of confrontation and really bad at communication. If you take advantage of this fact, not only are you a terrible person, but you’re also doing yourself a disservice because again, you have no idea how this shit works.

If a meek expert tells you it’s going to take several days because of the [a bunch of shit you don’t understand], and you say: “Have it in by tomorrow”, they will likely not argue. You have just torpedoed your own project. Stop it.

Stop Breaking My Flow

Flow is great.

This post was conceived and authored in a single day. Granted, it has been brewing for the last 10 years or so, but today was the day that it became manifest because I had a long swath of uninterrupted time to compose my thoughts.

If you stop interrupting people, they will produce double the output in half the time. They’re on a different schedule than you are, and you should respect that, or at the very least understand it. Maker Schedule vs Manager Schedule

Armchair Psychology 101

Freakanomics reminds us that people respond to incentives, but rarely in the way you expect. You cannot just pay people more money and expect better outcomes. In fact, you actually get worse outcomes.

Axiom: People are willing to work harder on something they care about, the quality is better, and they tend to stay at companies where this is true longer.

Sadly, you cannot force people to care, but you can trick them into it. Much like smiling to fool your brain into thinking you’re happy, you too can manipulate others to achieve your financial goals. Bonus: it’s good for them too.

  • When they make something you like, praise them.
  • When they make something you don’t like, tell them how they can make it better.

If you consistently pretend that the work they do matters, they might just start believing it.

One of my most rewarding work memories happened on a conference call to some vendors I had never met. The business owner I had been developing for said the phrase “They’ve built us a wonderful tool”. It took a handful of seconds and zero effort on his part, and it motivated me for months. If you can’t do this, you’re a bad leader, or a sadist, or both. Shout out to Matt Watters, wherever you are.

Mythical Man Month

If you are a project manager, scrum master, product owner, program manager, middle manager, release manager, delivery manager, and you have not read this book, you are wrong.

This is required reading for anyone in the software field, but doubly so if you are in charge of any aspect of delivery.

How does a large software project get to be one year late? One day at a time!

TLDR here are the cliff notes:

  • Software projects fail a lot.
  • More people slow down a project.
  • Estimates are hard.
  • Fixing bugs often results in more bugs.

I think that’s everything. As always, please don’t fire me.

❤ Ross