November 12, 2023
I’m in the middle of reading Seven Languages in Seven Weeks. Purchase it here.
“The question isn’t ‘What are we going to do?’ The question is ‘What are we not going to do?’”
— Ferris Bueller
In an ever changing world where companies try to be innovative and progress in their business, the culture will certainly change as evolution happens. If you remain at a company for a significant length of time, you’ve probably seen this happen.
In my experience, these are some lessons I’ve learned:
- Things will change. Process will change. Values will change. Priorities will change. People will change. Work will change. Change is the only constant.
- If you are unable to adapt to change, you will likely not survive.
- Flexibility is king.
As we adapt to new environments, processes, people or values, the quote strikes me as “I will do what needs to be done for the success of my team” but I’ve never asked myself “Is there anything I wouldn’t do for the success of my team?”
Or better yet, will there be anything my team won’t do for the success of the company? Or is there a process my team wouldn’t change because as a group, we feel strongly about it?
Do managers ship code? Do they ramp new features? Do they tell the oncall engineer when to deploy? Sure, in some companies, they do. In some companies, they don’t. In places where this does happen, the managers should be aware of all the things going on and hopefully, they know the risks involved when they make their decisions. However there is the other perspective where they are supposed to be people managers and it can be seen as overstepping boundaries. I don’t think managers being hands on is bad nor do I think it’s bad if they’re hands off and trust in their team to do the work and make the correct decision. I think the perception of either side depends on the understanding of boundaries and knowing what to expect.
It can be the same sort of thing when it comes to engineers. We all have our limits but we strongly consider the things we will do or ideals we will hold. We automatically assume that if we define the things we will do, it implies the things we won’t do. But is that really the case?
I think teams often have unspoken boundaries and I didn’t realize until recently how problematic that is. Because they’re unspoken, they’re often assumed and when the moment comes where those boundaries are crossed because of a lack of understanding, there is conflict. When there is conflict, we talk about the things we will do to fix it. But what about the things we won’t do?
It’s often easier to answer the question “what will we do” because the answer is a much smaller list of possibilities than “what will we not do” but I think considering at least both sides for even a small moment could add a lot of clarity going forward. I think if there were more clarity around the things we won’t do, less conflict will come up and the things that we will do will become easier to navigate around.
November 6, 2023
To do this, I spun up an ExpressJS app and created a simple endpoint that started out with just outputting certain params. I kept it simple in the beginning as I just needed a feedback mechanism for the requests my CSS was making. If I were to use this somewhere, I would need some sort of data store to persist data. But otherwise, it would be quite simple.
The next step was to make the request look legitimate. I made myself a 1 pixel transparent dot to send back so that whatever image property I chose, the browser got this pixel back. Yes, this felt a bit old school to me but I gave myself some grace knowing I wasn’t hiding an image tag to load this dot.
I first tested on my local dev environment and then I used my phone to see how it worked in a mobile environment.
Here are some of my learnings:
- It has limited ability to do click tracking by leveraging the
:activeon most elements. I didn’t want to go with :hover because I wanted the same behavior on mobile and desktop. While
:hoverworks for mobile taps, I don’t want tracking for anytime a mouse hover occurs on desktop.
You can play around with the code I hacked around with by checking out this repo. It went a bit further than what I described here but you can get the general idea if you wanted to build out your own analytics app in Node.
November 4, 2023
I’ve been listening to Leading Without Authority on Audible. Purchase it here.
When the author mentions “team” here, he doesn’t mean organizational structure. Instead, he means who are the people that are relevant and can help you accomplish your goal. These are the people you want to build relationships with, get to know, and build trust with.
I can’t say that any of the ideas in this section were new to me. I learned a few years ago how important relationships were. I’ve also told other people that if you want to improve, you need to find a person who you respect and look up to that can be brutally honest with you with feedback on things you can improve. The most important thing is that you actually do care what they think despite everyone else telling you not to care about what everyone thinks of you. Being receptive to how you are perceived is important to growth.