My Zoom Background: A selfie from a beautiful day with my daughter
Work is a changing process. I have new tasks, colleagues, relationships, and challenges every day. I often try new techniques, solve problems, or adopt new technologies. My first solution is usually a little ugly, especially if I have to learn something new or try a technique outside my comfort zone. I embrace changing my work.
I work with real people; some are great, and others are not. It's my job to adapt. I've never been able to think quickly on my feet. I need to sit on a solution and apply some thought to do my best. As I adapt to change, I use personal core values to decide how to address that change.
Most companies have core values. Sometimes, they make sense to me; sometimes, they don't. My core values don't need to reflect my current company's values. Sometimes, I might find and use another company's values I like better. At the end of the day, I will use my own.
A while back, I had the goal of working for AWS, and I adopted those values in hopes that during the interview, I could shine and get the job. I had several interviews and was always rejected, and I don't regret it. I've looked at where AWS has gone in the past few years, and they're no longer innovators. A company needs more than a good set of core values to succeed.
Every company combines the virtues and sins of its founders and the decisions made in the past. I was fortunate to work for 16 years at an engineer-founded company. I was one of the core developers and managers who built that company. At that company, I learned many lessons about managing data at scale. I also learned that a specific language like Java on a database like Oracle can be a trap. Stability can also be an illusion.
Now, I find myself needing to refresh my work values. I can't know the outcome of everything I do, but I can at least hope to apply a consistent process to my behavior and decisions.
Here are the few I've borrowed from AWS that apply to writing and maintaining a codebase.
Bias for Action. Embrace less-than-perfect solutions that can be changed easily
Earn Trust. I only make promises I can keep; I communicate with empathy as often as possible. I'm not perfect at this and can sometimes come off as dismissive. When it comes to my promises, I try to under-promise and over-deliver.
Invent, then Simplify. I always make time to go back and simplify my code, even against pushback. When it's my code, I decide the how, and the how will always be the simplest I can do.
Here are a few of my own that I use to work on a team.
Don't get Caught up in False Urgency. I've had colleagues who made their careers out of inventing urgent problems and working overtime to solve them. I keep perspective. Recognize when this is happening and prevent or at least not join it.
Don't Know Mind. I must remind myself that I don't know the whole story or goal. I must be content with incomplete knowledge and believe I will understand as time unfolds.
Regarding standards of integrity, I use this quote from Robert Mueller, who gave my nephew's graduation speech.
If you have integrity, nothing else matters. If you don't have integrity, nothing else matters.
At this crossroads, where I am making consequential decisions that will affect my future, I can only look to these principles as my guide. Knowing who I am and what I believe is something I can achieve, and as long as I am doing my best, I can be satisfied with the knowledge that I've given everything my best.
Comments