All posts by bogeywebdesign

Maybe a lazy developer is exactly what you want

I was on LinkedIn this morning looking for jobs and a post was recommended in my feed that’s been living rent free in my head all day, to my own detriment. Basically to paraphrase it was something like:

Had 3 developers on calls for interviews today. Had canned / AI generated answers to questions. Don’t developers know they need to prepare for these and be willing to go the extra mile, especially as a mid level / senior developer?

On the one hand, I sort of get it. Recruiting is expensive and hiring the wrong candidate costs a lot of time and money. So I understand the goal. My gripe is with the solution – what I hear is something I’ve always heard “devs must be willing to jump through hoops to prove themselves to me.”

But, why? What makes your company so special?

Hiring is a two way street. As a candidate I’m interviewing you just as much as you’re interviewing me. Which means the more friction you create, the more candidates you lose out on. My premise is – a lot of those ones you’re driving away might be really good candidates.

Some of the best developers I know are “lazy developers”. The ones that see a repetitive problem and write a script that automates it saving hundreds of hours. Or sees us doing basically the same bit of code multiple times in different places and moves it all to a function / component with parameters so they don’t have to change it multiple times the next time the requirements change, it all changes in one place (also they write a test around it to know if any future code breaks the assumptions). The ones that look for simple, reusable solutions that make everyone’s lives better, including stakeholders / customers, rather than trying to show off how much code they wrote or how many PRs they opened that week.

What I’m really asking for is a bit of grace for both sides. Because yes it sucks trying to recruit good, talented developers. But it also sucks from the other end. Sending out hundreds of applications to hear back from a tiny percentage many of which then grill you on technical questions that if you encounter on the job any good developer is going to look up anyways to remind themselves of the common solutions or make you build a sample application that isn’t something the developer can showcase on their github nor the company use in any meaningful way. All in an effort to prove yourself as a developer.

I sort of get this for entry level positions – you want them to show a basic understanding of the necessary skills. But even there a lot of it is going to be teaching and mentoring on the job, so I would argue to keep it to a bare minimum. But for a developer with say 8-12+ years experience, which seemed to be what this person was looking for, I find it unlikely that they’re going to have fooled companies for that long. I’ve met a few developers in my career that have “failed up” repeatedly. But it’s a rounding error. I’ve met way more really sharp developers that are just burnt out from the grind – both in a job and looking for jobs – that they’re mostly checked out. The lost productivity and creativity from all that is far greater than the few that got jobs they shouldn’t. And it’s amazing when you throw a problem in front of them that sparks their interest and then they just light up unexpectedly. 

For me, based on my experience, it’s things like that original post that sort of feel like flags to me. That it’s likely a company that will worry more about RTO mandates than how many problems are solved. Or that people are “in their seats” (virtually or physically) for a certain number of hours, rather than other far more useful metrics. And my claim is not “you’re missing out on me, your company is doomed”. My point is – if I’m picking that up, all the people I know that are far, far more talented than me are as well. They’re the ones you should worry about missing out on. They’re the ones that will make everyone around them better.

My suggestion therefore is just to have a little faith in a body of work someone has and spend that time interviewing not forcing a candidate to prove their technical skills with LeetCode questions but whether they’re interested in the problems you’re facing and are a good personality match for the team you’ve already built. I already talked a bit about this in a previous post. Ironically in that process you’ll likely get them to open up and be a lot more excited about sharing how they’d approach solving real problems you’re working on – which is exactly what you want in the first place. Oh and keep the whole process as short as possible, because we all have but one precious life and time is our most valuable resource that none of us knows the remaining balance of.

Or maybe it’s just me and I’m seeking a way to justify my laziness or low tolerance for BS. I honestly don’t know.

Being a good colleague

It could just be my impostor syndrome but I’d never claim to be a good developer. I’ve always felt like I was more of a hacker, and not in the cool movie sense. But I’ve gotten enough feedback that I think I feel comfortable claiming to be a good colleague. At the very least it’s something I put a lot of effort into being. I do find it challenging because until someone gets to know me and builds a little rapport, I feel I can be off putting. I’m often blunt, have difficulty with eye contact, speak in monotone, and I’m very introverted. So what do I think makes a good colleague?

  1. Be kind. Mr. Rogers is a big hero and inspiration of mine and probably said it best: “There are three ways to ultimate success: The first way is to be kind. The second way is to be kind. The third way is to be kind.” Everyone is going through something, often something you don’t know about. Try to be empathetic. Give people grace when they have challenges. Be the person you’d want to encounter when you’re struggling the most.
  2. Build people up. Compliments are free, sincere ones are invaluable. We all are a bit unsure of ourselves. Try to be observant about what you like most about your colleagues, then tell them about it – preferably in front of others. Remind them that they’re awesome. Build confidence in others, even if you struggle to have it in yourself.
  3. Offer solutions, not just problems. Often as a developer I’m presented with a solution to build. Sometimes it’s one I feel is non-ideal. But we have to be mindful that everything is a tradeoff. There is an adage I enjoy that basically says: “good, fast, or cheap – pick two”. So when presented with a solution that you feel is non-ideal or you’re not sure will solve the problem, try to offer an alternative and why you’re suggesting it. Not just “we shouldn’t do that” but “we should consider doing this instead and here’s why”. Sometimes you just have to dig deeper too: “what is the problem we’re really trying to solve here?”
  4. Strong opinions, held loosely. This was one I struggled with for too long in my career. We should have and offer opinions, and be able to justify why. But we should also recognize that we work with a lot of smart people that also solved a lot of problems to get to where they are on our team. So we need to be open to new ideas, information, and be willing to compromise. There’s always someone smarter or better than you, even if (especially as a developer) it’s hard to admit that sometimes. Some of my favorite colleagues over the years were low ego – they would tell what they thought, they would back it up with data or examples, but if you went another way as long as they had a voice at the table they didn’t take it personally. Those are some of the best developers to work with.
  5. Accountability. Admit when you’re wrong or don’t know something, especially when you’re a senior colleague / developer. People earlier in their careers think it’s bad to say “I don’t know, but I’ll find out / research it” when presented with a problem. They often feel it will hurt their career. So if you’re a senior developer and you can admit you don’t know something or that you made a mistake it gives them permission to do the same. Which allows them to grow and become better colleagues. Plus having a team where it’s ok to do this prevents people from hiding things only to find out about them at a worse time – like when something goes to production. Also, ancillary to this, as a developer QA is one of your best friends. They are literally helping you look better. Be respectful of and thankful for what they do.
  6. Be additive. For this I can only mostly speak to developers and code review. Offer good, useful constructive criticism. It doesn’t have to be perfect, just a little better is often good enough. Leave things better than you found them – if you’re working in a section of code and it’s non-ideal, don’t just fix the thing you were there for, clean up that function / component. But also don’t rewrite the whole application. Finally you’re often going to have to make non-ideal solutions for some reason – document why that compromise was made. Others coming after will appreciate it, including future you who will have forgotten why you did this and be very critical – until you git blame and realize it was you.
  7. If you have privilege, use it responsibly. Magnify others, talking them and their contributions up especially in front of stakeholders or skip level leadership. Listen to them. If they mention in private conversations questions they have but might be uncomfortable to ask, ask them yourself without mentioning their name so they get answers without risk. Offer advice, especially what you might have done differently at that stage in your career. Admit past mistakes. We’re imperfect and the sum of our mistakes. That’s a feature, not a bug. 
  8. Mentor. Pass on knowledge, tricks, tips, why you do things or use tools you do. Make it easier for the next generation. Advocate for them – more responsibility, better title, promotions. Write them recommendations and help them build their network. You had help along the way, pay it forward. Not everything has to be transactional, sometimes it’s just about putting good out in the world and hoping that it improves for all of us collectively.

I know, nothing new or mind blowing. All just a flavor of Wheaton’s Law or the Green brother’s “don’t forget to be awesome” or really all the things Mr. Rogers taught me growing up. Still, I think it’s worth repeating and being mindful of. 

LinkedIn Skills Match

So I’ve recently been using LinkedIn to apply to jobs a lot. On the job posts, it has this very useful feature that lists the skills that are important to them then how they match up to yours. So you’ll see something along the lines of “this is a good match for you, you match 8 out of 10 skills”.

The problem is that I’ve noticed a lot of the ones that I’m highly matched for are not positions I’d consider myself very qualified for. Now I know your first thought might be, could that be your impostor syndrome talking? While it’s possible, I don’t think it is as some of the skills it was saying I was proficient in were not ones I would consider myself proficient in to any degree. In fact several were ones I had zero proficiency in. So obviously there was something going on somewhere and it got me curious. If for no other reason than the fact that I like to live by “underpromise, overdeliver” rather than the inverse. 

My first assumption was – obviously I had been recommended for skills by others that I don’t have or aren’t confident in my ability and hadn’t noticed. So I looked and the handful that had stood out to me recently weren’t there. Digging into the feature at the bottom of job posts, I found LinkedIn offers an article into how it determines the skills you have and how well you match. There I found my answer. It uses two sets of skills. First the ones listed under your skills section. The second is what they call “implicit skills” which they define as:

Implicit skills: Skills that are extracted from text within any section of your profile, such as the summary, position description, title, and headline. Implicit skills are extra skills that are not directly editable. Any skills on the matched list that were not added by you are considered “implicit skills.” 

I’m not certain if it’s bad descriptions by me or inferences from job titles I’ve had – which the way companies make up and assign job titles is a whole topic on its own that I have some opinions on. But either way, this feels like a code smell. 

I understand the value of automated screening systems. But if it’s making bad inferences, it’s hurting both sides. Candidates seeing jobs that aren’t a good match, and possibly not seeing ones that are because they’re further down the list as a result. Companies potentially getting candidates that don’t really match what they’re looking for, and missing out on ones that do because they’re further down the list.

It’s possible it’s still a me problem. Maybe I just need to rewrite my resume again, making it more succinct and focused. Maybe I need to omit some of my job titles that may have poorly described my talents, but I had no control over.

But to me it still feels like a code smell or possibly even a bug. If nothing else, I feel it’s a problem others might have been feeling but were unclear why. So if this isn’t just me having a “senior moment” and you’ve encountered this issue as well, hopefully this sheds some light on why and possible ways for you to alleviate it.

Impostor Syndrome

Let me start this by saying I’m not writing this for me. One of the blessings of my career at this point was being able to advise and mentor colleagues as they progressed through their own career. Using my experience and privilege to be vulnerable – to share the doubts I still had and mistakes I made so they had space to feel more comfortable about similar feelings they may have been experiencing. It was something I wished I’d had early in my own career.

Recently my position was eliminated. So for only the second time in my career I find myself unemployed. As I’ve slowly begun the process of refining my resume, searching and applying for jobs, and the inevitable string of rejections it’s been – understandably – very humbling. It also has validated those thoughts long in the back of my brain that many developers feel. Developer friends and I had joked about how your career is often an oscillation between moments of bliss where you feel you can conquer any problem and moments of despair where you sit head in hands wondering why anyone trusts you to build anything at all.

Any job search is humbling and demotivating. It’s a lot like dating where it’s 99% rejection (or perhaps I’m just inadvertently revealing how bad I was at dating). Yet you have to have a short memory. Almost like a quarterback who throws a pick six then has to go out in the next series only thinking ahead, never back if they want to succeed.

As someone who is admittedly much more of a specialist I find it especially difficult. Years ago I lamented that it didn’t feel like anyone needed someone with my skills, even though I found myself hired over and over again for exactly those same skills. Reading job descriptions today I find those same feelings rising up. My JavaScript skills have definitely progressed a great deal since when I originally wrote that. But still when I see UX Developer positions asking you to be an expert in React (or Vue or Angular or etc) I feel those doubts rising again. Yes, I’ve built React components and written a lot of React, jQuery, CoffeeScript, and even just plain old vanilla JavaScript. But I would never consider myself an expert and have never felt really confident in my skills there. I’ve always felt like a hacker – piecing solutions together by looking at examples or Stack Overflow posts and adjusting it to what I need. Much more a MacGyver than a NASA engineer.

Sometimes, late at night like when I write this, I wonder if those feelings of impostor syndrome are getting validated. That I really was a fraud all those years despite all the contributions I’ve made to numerous companies / repos and the recommendations I get on LinkedIn. Why would anyone hire me when there are so many more talented developers out there?

While it’s true I’ll never be one of those “10x programmers” I still think I can provide value to a team. I believe I have strong communication and empathy skills, the data combating my doubts. I know how to write accessible, responsive, semantic, and modular components which are necessary and valuable – even if I might struggle to manage state or pull from an API. I’ve been told I’m good at discerning what the real problem we seem to be trying to solve, rather than just building the solution asked for – which can often save frustration and valuable time. Or as a friend recently told me when I talked about my doubts “You can do a lot of meaningful work.” – which is kind and gracious of them to say, even if the more cynical part of my mind wryly thinks it’s something you might tell Grandpa so he’ll behave and stop annoying people.

I don’t think this will be an easy search. Going through my network there’s a lot of very talented people who are either also laid off or in threat of it. But I’m hoping both that someone gives me a chance and that I validate that show of faith. So I can still have my impostor syndrome, but with health insurance and a paycheck. 

Again, all that to say if I can feel this insecure and doubtful about my future with all the data accumulated telling me I’m wrong – if you’re at a very different point in your career and feel the same, those feelings are valid. Not that they’re right, just that it’s ok to feel them. But we still have to just keep swimming.

Remembering Loafy

Loafy
Loafy, June 2021

It’s probably sad to say that a cat is your best friend. But, for better or worse, Loafy was my best friend. He’d been through a few different family members before I agreed to take him when I bought my first home late in 2009. I didn’t realize the blessing I was about to receive.

I’ve had a few cats that have had a lot of personality and Loafy was definitely one of them. When he was younger he used to tear up and down the length of my house chirping, for lack of a better word. He would come running from anywhere when he heard me open a can of food or a bag of treats. And like Mugsy he just seemed to know my mood, especially when I was down and would always try to cheer me up.

Because he’d gone through several homes I wasn’t always exactly sure when his birthday was. I was pretty sure it was in 2004 but was told June and March at different times. Regardless, last year he celebrated his 19th birthday. During the pandemic I had almost lost him. He started losing a ton of weight and being extremely tired. I found out he had hyperthyroidism and knowing that he hated pills or anything of the sort, and being blessed with resources, I decided to get him radiation treatment.

I was terrified. The only other time he’d been in surgery of any sort he’d had a really bad reaction to the anesthesia. Plus being so frail I was convinced I was about to lose him. Thankfully he pulled through, although I do think I annoyed the vets with how often I called to check on him. Unfortunately through the sickness and everything else he’d lost his hearing but other than that he was in pretty good shape for a teenage cat. Plus he now had a new quirk where he didn’t realize how loud he was and would scream. It used to drive me nuts. I’d give anything for it now.

Just before Christmas he started to be very tired and lose weight again. I knew something was up. I took him to the vet multiple times and they’d treated him for cold like symptoms. His kidneys had started to go a few years ago but had stabilized at stage 2 as I adjusted his diet. But just after I got back from visiting my family for Christmas he’d started to get real bad. They had done bloodwork only a few months before but I got him retested and that’s when they told me it’d progressed to stage 4 and he probably had a few weeks left at best.

I was devastated. I had prayed and begged God or the Universe or anyone that would listen for him to go peacefully in his sleep when his time came. But now I knew I’d have to once again make that difficult call all pet caretakers dread. His last weekend was the most difficult. I knew I wanted to use my vet but they were only open half days on Saturday and closed on Sunday. On Friday he was doing really bad but he rallied on Saturday and stayed stable until Monday morning.

But Monday I could tell it was time. He could barely hold himself up. He had lost all interest in food or treats. It was just time, as much as I didn’t want it to be. Life is cruel in making us choose to have our family put down, even if it may be a kindness in saving them from suffering.

It was January 22, 2024 and I had lost my best friend. Now it’s been just over 7 months and while I’m still so thankful that I got him in my Life and for so long, I do miss him so much.

The one consolation is back when Loafy was around 9 I decided he needed a buddy. So I had gotten a kitten named Grizzly. He’s about to celebrate his 11th birthday on Halloween and we both miss our best friend. Neither of us is as close to each other as we were to Loafy, but at least we still have each other.

Loafy and Grizzly
Loafy and Grizzly, January 2021