Thursday, June 21, 2018

Saving My "Recruiters" Rant

It's already June of 2018, and I still haven't made but one other post this year. I really had hoped to be a better Blogger. Sorry to my legions of listeners out in the world. 

Now that I've gotten my Pitty Party out of the way, I want to save something here so that I don't lose it again. I've recently received another recruit email totally unrelated to anything I've ever done, and I am debating on whether I should respond to this pathetic, resume-keyword-scraping "recruiter". Since I've ranted in the past about "recruiters" like this, I went looking for my old post and discovered that GoDaddy had moved their Lazy-Person's Page (or InstantPage). I thought I'd lost my rant, but was able to recover it. Since it's something near and dear to my heart (and I've actually been complemented on it by one of the legitimate recruiters I've spoken of), I figured I needed to re-post it somewhere that is less likely to disappear. So without further ado......


GoDaddy InstantPage for CodeFuMonkey.com, Advice To Recruiters.

NOTE: July 2015 - I was going to remove this, but the last several months have shown that this paragraph is still just as relevant now as it was when I first wrote it. The number of recruiters that I have worked with has increased, but so have the number of purely BAD recruiters who don't even take the time to bother figuring out who I am before they shotgun-approach me for some irrelevant position. You people are doing a HUGE disservice to your profession. Do your shady practices really work? Get with the program. Please.
--------------------------------------------------------------
I like recruiters. I've had mostly good experiences working with them. All of my contract gigs were through a recruiter. My last two permanent positions were due to recruiter placement. I tell you this because I don't want you to think I have a bad opinion of recruiters. I don't. But I am annoyed with some of you right now. So I have some advice for recruiters from an IT professional.  
PLEASE PLEASE PLEASE actually take some time to read my resume before sending me an email telling me what a great candidate I am for a Senior-Level Developer position in a language that I have done a single project in many years ago. Or even worse, that I'm the Director of Nursing that you've been looking for, as a recent recruiter messaged me. 
I know that a lot of these emails are automated. I know a lot of the candidate flagging is done by keyword scanning. You may think this saves you time, but more often than not, it doesn't. What it does do very effectively is alienate you. It makes me not want to work with you. If you can't take the time to understand what it is that I do or have done, how can you be a good advocate for me? You can't. 
I don't mind if you flag my resume through a keyword search. I understand why you have to do that. I'm sure that there are thousands upon thousands of resumes that you hunt through every day. It would be impractical to manually look at them all for even a single position. But when you do get a hit on my resume, take a minute to read it before you send me a form letter about how perfect I am for the position you're trying to fill. Trust me when I say that, for something like this, a targeted approach is much more valuable than a shotgun approach. Not only will you be more likely to get a response, but you'll be working to better the reputation of recruiters everywhere.  
IT people can be finicky. We have long memories and, more importantly, we talk to each other. It behooves you to make a good impression on us. And it can really hurt if you become known as someone who spams us for unrelated jobs.  
And to those recruiters out there who have been doing a good job for us, who have taken the time to find out who we are and what we do before trying to place us, who take the time to check in with us every now and then to see how we're doing, I offer a sincere thank you.  
Shawn

Wednesday, March 14, 2018

Happy Pi Day 2018!

Since March 14, 2018 is the 30th Anniversary of Pi Day, and I haven't posted anything in 271 days :-(, I give you the first 271 Digits of Pi....

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104.......






Thursday, June 15, 2017

Impostor Syndrome

Impostor Syndrome. I've heard that term for years and kinda just ignored it. But I must admit: I've suffered from it for years.

I "flew" my first airplane when I was just 5 years old. My dad has been a pilot my entire life. He struggled through college to earn his wings, and he worked hard flying jobs before I was born. That was well pre-9/11, when a corporate pilot could fly his family down to Florida in the company airplane (thus my "flying"). In 1978, he went to a tiny airline called Federal Express. His friends laughed at him for for taking such a chance on a tiny cargo hauler in Memphis, TN. After helping many of those same friends (and their kids) move to an airline job, he just retired as a 777 Captain at FedEx. I grew up in aviation, and ever since I can remember, I wanted to be a pilot.

Oddly enough, it was my father's pilot salary and his fondness for new gadgets that enabled me to initially become a geek. He saw a shiny new Commodore 64, paid a hefty sum for it, and plugged it in at the house. I taught myself how to "write code" with that machine and Family Computing Magazine. I played "online" in the days of CompuServe. I absolutely LOVED it. But not enough to not still be a pilot, much to my mother's chagrin.

In 1992, I realized my dream. I became a private pilot. Then I went to flight school, where I met interesting people and earned some advanced certifications. I went to Louisiana Tech University to earn a degree in Professional Aviation, and I spent a few years there as a Flight Instructor, training several people who are airline pilots today. I left there to continue my career and follow in my father's footsteps as an airline pilot. But as I began actually doing the thing that I always thought I wanted to do, I began having doubts.

I was still looking for another "in" to the big airlines, so I moved to Memphis, TN to work as an Unloader for FedEx while I sorted out what I wanted to do. My brother was fully smacked by the geek bug (and he listened to our mother), and he actually WAS a web developer there in Memphis working with FedEx. As fate would have it, two big things crossed. He had a Dutch developer who was going home for a month-long vacation, and I had a TON of PTO days that I needed to either use or lose. He asked if I could come help him with some basic website stuff for FedEx, so I took some half-days to work with him as a Java developer. I spent about enough time with Java to say "Hello, World" then was switched over to FedEx's language of choice: Allaire's Cold Fusion. I was hooked. I just didn't know it yet. When his developer came back, he asked me to stay on board. I did.

That was about in late 1999. The Internet was a wildly different place. Netscape, Geo Cities and the <blink> tag were still things. There was no differentiation between design and development. There was only ONE flavor of JavaScript. But none of that mattered. I enjoyed what I was making, for FedEx and for our other clients.

So now it's math time. I was an active flight instructor until roughly 2001. So, 2001 minus 1992 is about 9 years, give or take a few months. 2017 minus 2001 is about 16 years, again, give or take a few months. This is where the Impostor Syndrome comes in to play. Last year, I came to the realization that I have been an active developer almost twice as long as I was an active pilot. But I still sometimes think of myself as a pilot who is a developer. Check my Stack Overflow. As of today, I have more Answers in the Aviation forum than in the regular Stack Overflow forum. WTF???

I have had the fortune to work with some incredibly intelligent developers. I've met some people in the development world that make me feel like a complete fraud. I know these people are MUCH smarter than me. It took me a while to realize that technology has a pretty broad landscape. There are areas of knowledge where they make me look like a child. But some of those same people have also asked questions that I have thought were pretty basic. The answers have come to me about as quickly as if you'd asked me the size of a Cessna 152 engine.

I've been in this industry for a very long time. There are people that I definitely wouldn't want to compete against. Does that make me an Impostor? Not really. They know what they know. I know completely different things. I shouldn't think of myself as an impostor.

The moral of my story:
1) I know there are many things I don't know yet. I can't learn them all. But if I need to, I will.
2) Always listen to your mother. If she says you should pursue your love of computers, she might be on to something.
3) On second thought, I am who I am because I skipped #2. You don't have to do what your mother says when she says do it, but always keep it in mind. She's smarter than you think.

Thursday, October 6, 2016

More Date Masking

I'm a bit ashamed of myself. I've been a member of the ColdFusion Community for over 15 years, yet I just submitted my first bug to the BugBase yesterday. And I'm not even really sure that it's a "bug" per se; just an inconsistency in behavior of similar functions.

https://bugbase.adobe.com/index.cfm?event=bug&id=4194962
(Lucee bug added: https://luceeserver.atlassian.net/browse/LDEV-1025)

Basically, it touches on what has become a pet-peeve of mine: Date Masking. I know I've ranted about it before, but I wish that everyone could just agree on what a proper date mask was for all of the common date parts.

In the latest update to ColdFusion, Update 3, one of the things Adobe announced in the release notes was that you can now use lower- or upper-case letters in DateFormat() masking. My issue with this is that it is completely different behavior from DateTimeFormat(), which seems to make a bit more use of Java's case-sensitive SimpleDateFormat. Granted, I don't agree with Java's way of using "M" to mean "months" and "m" to mean "minutes" (I like CF's "n" minutes), but I still think the two CF functions should be consistent with each other. It's feasible that a dev would have to switch between a date format with and without a time component or have multiple types of date masks on the same page. And the natural assumption would be that the mask from one should work as the mask for the other. At least I would think so.

Last year, I got bit by this behavior when it came to the Year mask. December 29, 2015 was being displayed as 12/29/2016. ???? FYI: DateFormat(someDate,"MM/DD/YYYY") may not return the same thing as DateTimeFormat(someDate,"MM/DD/YYYY"). This is where I learned about the slight difference between a Calendar Year and a Week Year. Not to mention the fact that it will only happen at most on the last few days of a year.

And to make matters worse, we also used moment.js, which expects the year to be formatted as a capital "Y". :-/

I've never made it a secret that I'm not a fan of silent errors. And, yes, this would be an error on the developer's part for not using the proper mask, but it's an easy error to make (especially when using different masks) and even easier to completely miss.

I would like to see Adobe make the date formatting functions be a bit more consistent with each other.


THANK YOU, TRYCF.COM! http://trycf.com/gist/78a374effc62c05330cd33030da265cd/acf2016?theme=monokai

Adobe ColdFusion 2016
Adobe ColdFusion 10

And Lucee just gets wonky with its CFMXish behavior of kinda passing through masks it can't interpret.
Lucee 4.5

Monday, October 3, 2016

ColdFusion 2016 Update 3 Is Live!

http://blogs.coldfusion.com/post.cfm/updates-for-coldfusion-2016-and-coldfusion-builder-2016-is-available-now

ColdFusion 2016 Update 3 is now live. There were quite a few bugs fixed. https://helpx.adobe.com/coldfusion/kb/bugs-fixed-coldfusion-2016-update-3.html

Boolean Girl - STEM Teaching With RaspberryPi

I should have shared this last week when I saw it. STEM education, especially when it comes to bringing more young girls into the dev community, is one of my soap boxes. And as a geek (and lover of Erector sets and those old "Build Your Own Radio" kits with springs and wires from the 80s), the RaspberryPi is one of the coolest inventions of my lifetime. So when I saw the Kickstarter for the Boolean Box, I ordered one for my niece (and to be honest, one for myself, too). Please, if this interests you, back it. 

Boolean Box Kickstarter  (https://www.kickstarter.com/projects/71092263/boolean-box-a-technology-discovery-kit-for-girls)

Boolean Girl Website (http://www.booleangirl.org/)

DON'T PANIC!

Before I was a code monkey, I flew airplanes. I never realized how the lessons I learned then could apply to regular life. I've always said I can teach someone to fly a plane in just a few hours; it's the hours after those first few that teach you to be ready for the unexpected. You learn early that when things go sideways, you only make it worse if you panic.

I was driving back to North Carolina from Nashville on Sunday, and I had a tire-disintegrating blowout. I drive a Silverado, so it wasn't a small tire. I was in traffic, doing about 75 mph, when my front passenger tire decided it was time to let go. I'm sure anyone who's ever had a blowout can attest that it's somewhat of an adverse situation. And I know we've all seen news reports of serious road accidents caused by a high-speed blowout.

So how does this relate to piloting? First and foremost, as I said above, when bad things happen, you learn to stay calm and deal with the problem. More directly, when flying multi-engine aircraft, one of the first things you learn is how to deal with an engine failure and the resulting tendency to "pull" to one side. When bad things happen, like an engine failure or a blowout, they don't usually give you a lot of warning. So you learn that, rather than be surprised, you STAY CALM and KEEP OPERATING YOUR VEHICLE.

When my tire blew, my truck immediately started pulling me to the right. But there was a car there who probably wasn't too keen on sharing space with me. So I couldn't let my truck take me there. I let off the gas and, when I was clear, moved over to the shoulder. I didn't panic.

As I write this, I'm sitting in NTB having a new tire mounted. This isn't how I wanted to spend my lunch break today, but it could have been much worse. I could have been one of those stories on the nightly news. But instead, when a bad situation suddenly developed, I kept my head and dealt with the problem. My old training (even though it was in airplanes and not cars) kicked in.

A quick Google search shows that my lessons weren't exactly unique to piloting. They were based in some common sense steps for disaster preparedness found in many fields. Operate, Communicate, Mitigate. In that order. Whether you're flying a plane, driving a car, or dreaming peacefully in bed, you should be prepared for the engine failure, the blowout, or the 3am call that lets you know the website is down. If you know what you're going to do when a problem happens, you won't have to think about how to handle it when it finally does.


NOTE TO OTHER DRIVERS: If you see someone on the side of the road, PLEASE PLEASE PLEASE show a little bit of courtesy and move over. It's rather unsettling to have a car zip past you at 70+ mph. Especially when they're only a few feet from you.