Category Archives: life

Resilience takes many forms

I’ve been thinking a lot about resilience lately, mainly for obvious reasons. At my last company we were told it was an important trait. I tend to agree with the overall sentiment but I also think that it takes forms you may not expect.

I see it in reminding yourself that a layoff is not a failure on your part, but on upper leadership – even as you struggle to land your next opportunity. In not listening to the impostor syndrome living in your head, but believing past colleagues when they say, or write recommendations, that you were valuable – both in your work and as a person. In believing in yourself and risking hope, despite a wave of rejection that pushes you towards despair. In helping others – with encouragement or kindness or recommendations to remind them how awesome they are – even when you grapple with how to help yourself.

We have minimal control over the challenges we will face in Life, despite our best efforts. The only real control we have is how we respond to those challenges.

There is a really great Instagram I was introduced to. Basically it constantly reminds you that a bad day does not equal a bad life, that life is hard and sometimes you need to rest and recharge, and you are not broken even if you feel like it sometimes. It reminds me that resilience and success are imperfect and not a straight line. And that often our own worst critic is ourselves.

As I get older I feel like I’m less sure of what I know, paradoxically. One thing that has served me well for a while though is to put the energy into the world that you wish you received. Not in the sense that it will be circular and necessarily make its way back to you – it often doesn’t. Simply because society is an interconnected organism and if we truly want the experiment to succeed we’re always going to need more kindness, empathy, grace, and humor.

Finally I think resilience is about community, as it builds your support network. That could include family – immediate or extended, a church or faith organization, friends, pets, neighbors, or however you find belonging. I’ve felt most resilient when I felt I belonged somewhere. When I don’t is when I struggle the most with believing in myself.

Be kind, show grace, and have empathy – for yourselves and others. Try to find humor, even in your darkest moments. Find a few moments of joy and small things to be grateful for every day. Love those that you care about fiercely and remind them of that love regularly. I think if we do this as best we can each day, we are showing resilience.

Good Leadership

Good leaders praise publicly and discipline privately.

A few jobs ago I was on an email with my team, my direct manager, and a design vendor we were using. We were exchanging ideas and critiques. My manager asked me to basically make a bunch of design changes – something I could do, but not nearly as efficiently or quickly as the vendor, especially since it was in a design tool I had just started learning. Noting this was a non-ideal solution, I recommended we allow the vendor to instead as it would save a lot of time.

The next morning my manager got on a call with me and expressed displeasure that I would bring that up in front of the vendor. I’m not sure if they felt it sacrificed leveraging power or what the reason was. I listened, took accountability, apologized, and said I’d take care of it the way he originally asked. Then I went back to work.

A few minutes later we went into standup. After our usual initial rapport my manager took the floor and proceeded to very aggressively admonish me in front of our entire team for the same thing we had just talked about privately. It was demeaning for me and uncomfortable for the rest of the team, as they reached out privately to me after to express and console me.

I immediately started to reach out to my network and left the company within a few weeks. 

No matter how experienced you are, you are going to make mistakes. It’s important to take accountability and learn as an individual. But as a leader it’s even more important how you address those mistakes. I have left more lucrative jobs due to poor leadership and stayed at less lucrative ones because of good leadership.

As a developer you are also likely giving code review. As a senior developer often to junior colleagues. This also applies here. Make it a conversation, not a directive. You don’t have to make their code perfect (as subjective as that even is) but simply try and steer them towards incremental improvement and growth – understanding that code review is seen by the entire team as well. Things like: “Why did you choose this approach? Did you try [this other approach] and ran into an unexpected tradeoff?” or “That’s an interesting solution. In the past we’ve done X, what is different in this case?”

Sometimes you learn from a colleague who in their passion found some new tool or approach you hadn’t seen yet – so you level up and they build confidence. Sometimes you “rubber duck” it when they have to explain it a little further, and they see something they missed and fix it earlier in the process without having an issue in QA and more eyes seeing it.

Be the kind of leader you’d want – kind, empathetic, and patient. The world, and especially the corporate world, could always use a little more kindness.

Why you should hire me

It’s never been in my nature to speak highly of myself. I’ve always been more comfortable with the “underpromise, overdeliver” philosophy. But I keep getting feedback from colleagues I respect and that I know to be sharp that I need to be more confident. Or at least project it. So, briefly, I will put on my sales hat for myself and state why I think you should hire me as a UX / frontend developer. Or more specifically to build scalable, reusable design system / front end components with a focus on responsive design, WCAG accessibility, and CSS. Components that focus on being simple, easy to understand, and have low CSS specificity ideally.

I’m good at detecting “smells” and asking probing questions to encourage discussion and further thought

Code smells, design smells, specifications smells – something that seems off or begs the questions “why are we doing this specifically” or “what problem are we really trying to solve”? As a colleague recently, kindly, pointed out I tend to use years of experience solving problems to ask probing questions. “How does this adapt when it’s on a smaller screen”, “what happens when we get an error on this part of the form”, “what fields are actually required and necessary here and what can we make optional to streamline progress”, “if this is so important, why is it behind additional steps”, “why are we using this pattern and not this other pattern”?

People tend to be afraid of friction and too much friction – or friction just for friction’s sake – isn’t healthy or good. But the right amount of friction, especially at the beginning can save a lot of time down the road. It can make sure we’re building solutions to real problems, not just a bunch of features. I can think of over a dozen – maybe several dozen – times where asking a few questions made people pause, rethink, and refine, saving the team a lot of time and churn. 

Experience isn’t everything, but it helps.

I’ve worked on various size teams over my career

I’ve built freelance brochure sites with designers I’ve partnered with for small businesses. Worked on startups wearing multiple hats on development teams single digit in size. I’ve been a senior developer on a design system team for a Fortune 100 company building a library used by dozens or perhaps hundreds of developers across the organization. Sites I’ve worked on have seen anywhere from a few dozen to millions of visitors a month.

All this has required me to think about problems and solutions in different ways, to understand audiences and risk tolerance, and to build to different types of needs. Each has their own tradeoffs, challenges, and rewards. So regardless of the size of your team, whether you’re an industry powerhouse or a small startup trying to disrupt in an interesting way or something in between I think I have something to offer.

I have very varied experience and an unexpected skill set

Working in all those types of places I’ve had to wear many hats as I said. I’ve deep dived, learned and advised on Search Engine Optimization (SEO). On accessibility, adaptive devices, and meeting WCAG guidelines. On UX and usability, understanding how users are using the site, working with usability teams and data, and designers doing competitive analysis to spec out and build new features. I’ve educated colleagues on how to use systems I’ve contributed to, as well as taught them on all of the above – UX, SEO, accessibility, etc – in refinement / grooming. A long time ago I designed flats and features in tools like Sketch and Photoshop. I greatly enjoy and have done a lot of writing in a variety of formats – technical, blog / article, and just for fun. And of course, coding and code review for peers which has been the main focus of my career.

All this allows me to approach problems from various angles with various needs in mind. Often sites or teams have conflicting stakeholders / interests they have to try to meet. Also most solutions involve tradeoffs – I’m fond of saying “everything is a tradeoff” honestly. All this varied experience has allowed me to be, I think, a valuable colleague.

Strong technical skill set

As I said previously it’s unexpected, but also I’ve been at this for a bit so I’ve touched a lot of languages, libraries and systems. From jQuery to React to vanilla JavaScript and a few in between. I’m extremely interested and educated on CSS, SASS and HTML with a lot of experience specifically in using Bootstrap. I have a fair amount of accessibility experience including building WCAG 2.1 AA compliant components for the last several years. I’ve also worked with Ruby on Rails and PHP to a fair degree. Finally, although I haven’t developed much on it in the last decade, when I did freelance I had extensive experience building with WordPress including developing custom themes and features with well over a dozen sites – including my own – built on the platform.

All that has given me enough experience and breadth of skills to quickly learn new frameworks or languages that I might not have used before – or in a while – as many overlap with something I’m already experienced with but may just use different syntax.

Ambitious but empathetic

I still have the drive to learn and grow my skill set in order to solve interesting problems and make people’s lives easier. But I also truly find great joy in building people up. Teaching them about things I know in order to level them up. Mentoring them on challenges and offering advice from my own experience. Always focusing on kindness.

I care deeply about recognizing people and promoting their wins so that their success is noted, often during retrospectives or stand ups. I think it’s important to use the great privilege I have to advocate for people and their ideas or to ask questions they may be uncomfortable to ask in order to get answers they need. I think inclusivity, empathy and kindness make teams stronger and more connected. We are leasing our time to a company in exchange for productivity, experience and skills. But we are also people and life is a great gift, so the time we have is precious and since we spend a fair amount of it at work it should be as pleasant as we can make it.

Growing up I really enjoyed Mr. Rogers and as I’ve grown older I’ve really grown to appreciate what a good person and role model he was. He has many quotes I’m fond of but one of my favorites is: 

“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.”

Kindness matters.

I come highly recommended

As I said I really enjoy recognizing people and writing so one of my favorite things, especially when I’m having a hard day, is writing them a recommendation on LinkedIn. Spelling out what I think is special and unique about them, reminding them why they are or were a good colleague, and generally just putting a little joy out in the world. It’s something another set of role models for me – the Green brothers Hank and John – taught me. Don’t be afraid to show love, especially platonic love, to those you care about. This is one of the ways I do and am comfortable with.

Along the way I have also collected my share of recommendations. As of this writing I have 16 from former colleagues that share many similarities in what they point out about me. Passionate, skilled, dedicated, inclusive, caring. I think more than my own words those of people that have had to spend a lot of time with me matter, as humbling as they sometimes are.

I have very reasonable needs

I don’t need a fancy title or a huge salary. Fair benefits, market value pay for what’s required of me, decent work / life balance, trust, and the opportunity to help others and to solve interesting problems. I think honestly that’s what most of us want. I also tend to be steadfast. I’m looking for a place to spend my next 5 or 10 years if possible, not to flip it into my next job.

In conclusion

What I’m really asking is for a chance. I get it, hiring is expensive and no one wants to risk a bad one. Interviews and recruiting are imperfect – especially with ATS / AI involved which seems to be deeply imperfect and have a lot of gaps. The market is challenging right now especially for remote positions where there’s often a flood of real and AI generated responses.

So I’ve tried to lay out in basic, human terms what you’d be getting from me. If it sounds good, let’s have a conversation and start there. I’m a bit socially awkward and sometimes that comes across there, so if you’re still having doubts but feel there may be promise – give me a 90 day contract. It wouldn’t be the first, or likely the last, time I’ve had to prove myself.

I know I can provide value for the things I do well. I know I can help people and solve problems. I know I can be a good, kind and valuable colleague. I won’t tick off every box – no one does, again “everything is a tradeoff”. But based on what my past colleagues have told me I think I’ll be worth it.

All I’m asking for is a chance. Thanks.

What I’d tell my younger developer self

I was speaking to a former colleague recently and in talking about my struggle to find opportunities as a coder he asked me if I’d ever thought about becoming a people manager and that he’d always thought I might be good at it. It’s something others have told me as well in recent years but not something I believe suits my strengths or skill sets. But it did get me thinking about if I ever did become a manager, specifically a manager of engineers / programmers / developers, what I’d want to have been told and taught to me at the various stages of my career.

Entry level / junior developer

Don’t be afraid to ask questions because you feel like it might make you look unskilled or like you don’t know something. There’s a lot you’re not expected to know right now and a lot of mistakes you’re unfortunately going to have to experience to learn from rather than being handed that wisdom. And that’s okay. 

Your role is to figure out what problems excite you or that you’re particularly adept at tackling. To learn and explore and share the new technologies, frameworks, ideas, and tools you find with more experienced developers who might have a bit more Life responsibilities that don’t always allow the freedom to do that. Also frankly they might be a little more cynical and jaded and therefore not as open minded as you are. That’s not to say that everything you find is going to be valuable or used. But if you find even one tool or plugin or whatever that saves your colleagues a lot of time and effort not only will you be helping your team but people will notice and that will help your career.

You should also be seeking out mentors. They don’t have to be much more experienced than you. Just someone with similar vibes who you can build rapport with. If you are a white male presenting developer I’d strongly suggest you seek out someone that isn’t the same so that you have exposure to a viewpoint you might otherwise not be granted access to. It will make you a better developer but more importantly a better person. There are also countless examples where homogenous development teams have blind spots. See early iPhone face ID.

Mid level developer

You should be even less afraid to ask questions and many of them should be around gaps you need to fill to get that next level up, which not everyone achieves. You should also be wary of the trap many fall into at this point of overconfidence and its dangerous transition sometimes into being dismissive of others less experienced or non-coders. You don’t know what you don’t know yet and being humble about that will make you a better colleague and help you succeed. Regardless of level there is always someone smarter than you or with a better understanding of certain problems.

You should still be learning and exploring new things, although it’s understandable that it may not be to the amount of earlier in your career. You should be focusing on growing niche skills that excite you and trying to mentor and build up less experienced developers. Growing your code review skills here is both mandatory and immensely beneficial as understanding both what to critique and how to do so based on the individual will be an invaluable skill that also translates to other paths if you decide to branch out of being a developer. It also makes you look more critically at your own code, which will make you a better developer.

You should start the transition from “how do we solve this problem” to “should we be solving this problem” / “what is the real problem we’re trying to solve”. This is often the key unlock for moving from mid level to senior, in my opinion. It’s not easy and you’ll never fully grow out of it, but being able to take a step back and think about things from a higher level is good for your career and personal growth. 

Finally, and this is more subjective and possibly just my opinion, you should make sure you’re starting to have something – hopefully several things – that give you joy and purpose beyond coding. A partner, kids, hobbies, pets, faith, volunteering, community, etc. Career and financial stability are important but they are not the only important thing. Of all the important things career may, arguably, be the least important beyond achieving some financial stability. Also these things help your mental health which makes you a better human and, therefore, a better developer.

Senior Developer

This is where things can really get interesting and frustrating. You’re going to be asked to do a lot more non coding things, mainly meetings. So. Many. Meetings. A good skill here is getting good at saying no and having the courage to do so. To unnecessary meetings or features. But tactfully, not blowing it off outright but thinking about what the real goals may be and suggesting solutions towards those. Could that meeting be once a week instead of three times a week? Could it be something asynchronous like some shared documentation, a slack thread, email, wiki page, whatever?

By now you should have mastered, or be close to mastering, the idea of solving the right problems, not just the ones presented to you. Of identifying the real pain points and fixing those, which sometimes – but don’t always – match up with what you’re asked to build. You should be mentoring and reviewing code more than you’re writing it. Your job is not to write code. Your job is to level up the next generation to their maximum potential. I know, it sucks, you’re at the point in your career where you’re the most adept at quickly solving problems more optimally than you ever have before. But you solving one problem is not as valuable to your team as teaching several others to solve multiple problems better. Be humble, be kind, be patient, and be curious.

Ask your younger colleagues, especially ones near the beginning of their careers what excites them out there. Then dive into it, possibly pairing with them to do so. Pick it apart. Let them show you what they think is cool about it. Show them some of its limitations that they might not have grasped. Don’t destroy their enthusiasm, this is again about teaching – teaching them to think critically about new frameworks, libraries, tools, etc. 

Shower your colleagues with praise, sprinkle them with criticism. In retros, meetings, code reviews, or pairing. If they contribute something cool or find something useful make sure managers know it. Help them in their career. Be the champion you wished you’d had when you were in their shoes. 

Tech Lead

I dabbled at being a tech lead, but I was never really one. So if I’m being honest I’m not entirely sure what it really requires since I could only observe it from the outside. But for the ones I worked with that I liked it was mostly what a Senior Developer would do with the added responsibilities of thinking more broadly around architecture and tooling – with the idea being to make your developer colleagues’ lives more productive but, more importantly, easier. 

Also just sort of acting like a buffer from bad ideas. Sometimes a stakeholder or management will get a “big idea” that you know is going to be a boondoggle. Either from experience seeing something similar tried in the past or just understanding that not all people in charge are there because they’re good leaders. Unfortunately, some are just the loudest in the room or the most adept in corporate politics. You can’t always save the team from these but sometimes you can take on doing a spike to show feasibility – which sometimes leads towards them realizing that it’s not really worth it or not really what they want with a much smaller investment of time and frustration. Sometimes you can draw on past experience where you did something similar, it didn’t work, but you eventually settled on a better solution and using that anecdote to make them pause and, hopefully, rethink.

One thing I will say is if you have someone like that on your team, and I’ve had a few, make sure you let them know how much you appreciate them. Because it’s gotta be exhausting and draining sometimes and knowing that it’s actually helped others makes it easier to suffer. 

I Worry

I worry a lot lately about my career. Will I get another opportunity to be a developer and, more importantly, will it be a good one with fair pay and benefits? Or will I spend however long I have left living off my savings and random underemployed jobs?

I have a lot of challenges in standing out from other people going for the jobs I apply to. I’m at an age where people, especially in tech, often don’t want to give you a chance anymore. I’ve always been a bit specialized so while I have JavaScript skills in various libraries and frameworks I’m not very confident in my skills. I have to always double check my syntax or look up what exactly it is to turn the algorithm I know into something that it will run. That lack of confidence shows in phone screenings and interviews unfortunately. Finally I’m very socially awkward which throws people off until they get to know me better.

So I worry. That even though I know I have valuable skills, I won’t get a good opportunity. I’d like to say it’s impostor syndrome but the longer I go between jobs the more I worry that maybe the data is validating my doubts. 

I try to draw from the evidence of my career for confidence. The dozens of heartfelt, kind, and generous recommendations colleagues have given me over the years on LinkedIn. The fact that I’ve worked for a half dozen companies from startups with less than a dozen people to Fortune 100 giants. That code I’ve written has powered sites from freelance brochure sites getting hundreds of visitors a month to ones getting millions. 

I look at the length and breadth of my career. From working on sites that used tables for layout and had hacks for IE6 to the birth and growth of responsive web design and device agnostic sites to flex and grid and JavaScript frameworks. And everything in between. 

I know my heart and that I’m still passionate about solving interesting problems and helping users get done what they need in as simple and intuitive ways as possible. That I enjoy making sites that are accessible and responsive. That I’m driven to work with other smart, talented, passionate people who I can mentor and learn from. That I believe I’m a good colleague willing to build people up, be kind and empathetic, and always understanding that while we love what we do it’s a job and that life is more than just work.

But still I worry. That I won’t be seen in an ocean full of so many candidates, including a lot of fake AI ones. That my networking and social skills will be lacking to get me that crucial second look. That with everything going against me I’ll have to be perfect at every step and even one mistake will doom me.

I often see how confident some of my peers and colleagues are and wonder if they ever feel the same. If they never ask “why me?” but always think “why not me?” I wish I could be like that. A long time ago in what feels like another life I sold Cutco and my managers there always pushed the concept of “acting as if”. Acting as if you’d sold a million dollars of it, that the sale was a given it was just a question of what they’d decide to get, that the person you were calling with just a name of a friend as a way in would give you their time and not hang up on you. But I never really could then either.

I feel like I’ve spent my whole life grinding but never really breaking through to that, perhaps mythical plane, where you’re successful, respected, and looked up to. I’ve always felt like I had to prove myself every week or every day and that eventually someone would figure out I’m a big fraud and it would all come crashing down. Lately it feels like that’s happened.

I try to have hope. I fully realize how lucky and blessed I’ve been to have had the career I’ve had and have always been very careful to secure myself as best as I could in case it did end unexpectedly. But it’s disappointing to feel like you have so much more to offer and so many goals that seem just within reach, yet you just can’t seem to get traction. It reminds me of a quote from a movie I like, “You try to fight back, but the harder you fight, the deeper you sink. Until you can’t move… you can’t breathe… because you’re in over your head. Like quicksand.” I feel overwhelmed and discouraged and hopeless.

So I worry. And I pray to the universe. And I try to stay ambitious and driven about learning, reading, and staying up to date on what’s going on. Even when it feels utterly pointless. When you spend a half hour making an account in Workday to apply to a single job that is exactly what you’ve been doing for the last decade… and less than five minutes later you get an auto rejection that basically says you’re unqualified. Even when you know that it’s not true, but it’s hard to keep the faith in that belief.

I don’t know what’s next or what I’m going to do, and that possibly worries me the most. I try to focus on what I can control. I try to remind myself that I’m not defined by my job or my career. That I’ve sold knives and cleaned cages and stocked shelves. And while I might want more than that there is always that if I have to. That pride doesn’t get you very far and often causes more problems than it solves.

So I worry and I write and I dream and I hope. Tomorrow the Universe may listen and care. But for today all I can do is live the best I can in this precious gift called life.