Going Rogue: 2014 - 2020
As my time in Utah was coming to an end and I began to grapple with the stresses and strains that were coming to a head in my life, I started noticing the growth of a conviction that I had to be bolder and more direct in the way the I navigated my experiences. I had to start learning to tell the difference between my true needs and what I had been led to believe were the things I should care about. This began to express itself in my decision to go remote and cut my hours. I then brought this attitude into my first job as an independent contractor.
I started working at a medical devices manufacturer on a small team working on web-based internal tools. I was one of two programmers there. The other programmer was the guy I had seen in high school toting a C++ reference manual – I helped to hire him into a role with my first employer. The second team member was Loren, my very close musician friend from my second role. He worked as a designer and project manager.
We faced big challenges early on. My background up to this point was working with larger teams in environments where there was a lot of collective decision-making and peer review including code reviews. I had attained software leadership experience and worked on both tiny and also quite large code bases.
I had and have high standards for both crafting software and collaborating and I quickly noticed that my programming colleague had a background primarily as a sole contributor on projects. He was used to doing things one way and I was used to doing things another way. When I would propose changes that he disagreed with, I noticed that he would ignore me or try to change the subject and eventually overrule me without telling me.
This was not sustainable for me. That's gentle corporate speak for: "I was totally pissed off" ;] At the time, it didn't occur to me to call a meeting, try to establish a connection, and start a dialogue to try to find a way forward. Instead, I told Loren, our project manager, that I was going to quit. He suggested that we instead engage the company’s HR department for assistance and I am so glad that I accepted! They basically gave us a framework for discussing how we wanted to work as a group and what we all collectively valued.
I am grateful that we agreed to have this conversation. During our discussion, our programmer colleague shared with us that because he felt that since he had seniority in the role, we had to agree with his decisions. Both Loren and I said that this doesn’t work for us and my colleague was able to shift his expectations of how our team would collaborate from that point forward. This was a pivotal conversation. It led to my longest tenure in any role so far – seven years minus a few months where I did contract work for the supervisor at my second role.
Over the years I worked first 15 hours, then 20 hours a week when I finally noticed that I was losing income every year ;] I gradually introduced unit testing, integration testing, use of auto-formatting, and code reviews into our projects. I had a chance to work with modern front-end JavaScript frameworks and got experience with the Node.js ecosystem. I learned quite a bit about Python under the tutelage of my colleague.
After a year or two, the three of us were reduced to two when Loren developed brain cancer and passed away. We grieved together and then moved forward as two-person team. We had to learn how to work together despite having very different styles and backgrounds. We had to learn how to deal with the challenges of resolving disagreements when there is no third person to cast a tie-breaking vote or lend some perspective.
This period of my life saw my income drop sharply, but the trade-off was being able to practice and perform tons of music, dedicate time to serving my community by helping out with the meditation and Buddhist communities in my area, complete a yoga teacher training course, and begin to find my own queer identity. I would also participate in a communication workshop intensive that profoundly transformed my ability to hear and be heard.
How can you summarize six years of engineering and living in a single blog post? Especially six years as rich as these? Some random engineering musings and lessons learned the hard way:
- If your project is lacking test automation, don't implement all of your tests as end-to-end tests using browser automation if you don't want your colleagues to hate test automation forever ;]
- Getting into single-page applications made me miss the pre-Javascript internet. I am not sure that faster page loads are worth the far longer development cycles imposed by wrestling with front-end frameworks and fighting the constant churn of the Node.js ecosystem.
- Give me a well-supported and well-adopted web framework over a 100% homegrown application any day. A homegrown setup can feel easier to build and maintain in the beginning, but if you want to grow your team, you don't want to be stuck having to create and enforce its architectural conventions in perpetuity. Lean on an opinionated framework with public conventions so that you can be freed to continue to innovate and work on greenfield projects.
- In terms of project management software, the sweet spot is closer to "everything seems a bit messy and scattered" than "everything is laced tightly into a perfectly orchestrated flow". You will struggle to get some folks to use your very casually thrown-together project management tool. They will never touch your elaborately configured tool that is perfectly customized for your team's workflow.
- Programmers get bored if they have to use the same tools for too long. You have to let them innovate sometimes even if realistically, they aren't gaining much in terms of productivity. Be careful about excess churn, however. You really don't need three different UI widget frameworks in your front-end.
- Write a spec. Take the time to get buy-in from your colleagues. Be willing to compromise. Even if it's just a one-page document that is only referenced a few times over the first 2-3 weeks of a project's lifespan. Without it, you are risking baking in some really bad architectural choices and data models that will cost you big time over the project's lifespan.
And here are some life experiences that were only possible because of my relaxed attitude toward income and work during this time period.
- I learned to play upright bass and became a gigging jazz musician! Learning to play jazz has given me the opportunity to learn from some of the most dedicated and talented musicians in my community.
- Recorded so much music! Old time, Irish, and Americana, Eastern European, Dreamy, Raw, Nature-Folk, Jazz, SousAccordion, Desert Ambient, and Folk Punk. As much as I tell people that I hate recording, I was surprised at the length of my list once I started compiling it. And this is just the highlights!
- Made 60 Euros busking under a bridge in Burgos, Spain. Next time I do this I am going to need a better strategy for carrying around all of those coins ;]
- Played countless music festivals. Some of my favorite weekends are three-day weekends touring with friends and stopping by to play a music festival or two in the Southeast. I miss those morning pit stops for coffee and breakfast at the small local diners.
- Went skinny dipping by the light of fireflies in a river in North Carolina after a show in a tiny, cozy, radical book store. Touring with queer punks in their early 20s once I had entered my 30s was a trip, but it was totally worth it. After years of buttoned-up life in the engineering world I really needed this sense of freedom and abandon.
- Hauled an entire drum kit, piece by piece, to play by the river in New Orleans. Our hosts treated us to dinner, too – a cooler full of raw oysters, also hauled by hand to the end of a lonely spit of land protruding out into the Mississippi.
- Marched in Mardi Gras supporting a Brazilian percussion and dance troupe. We marched for maybe 3-4 hours in the cool February evening. My job was to keep people from ducking between the supply truck and the troupe. The festival goers were so pumped that everyone wanted to high-five me. My hands got so sore that I had to put on my gloves even though I was sweating from hours of marching and dancing.
- Took drum lessons and learned to play drum kit. The first musical phrase I ever picked up was the beat to this song by Hungarian Roma band Kalyi Jag. Even though I grew up playing cello and migrated to bass, at heart I am a drummer. Was so rewarding to finally invest the time to learn to play drums.
- Ran sound every night at a Balkan music camp from about 11am to 3-4am 7 nights in a row. Hope to be able to do this again some day.
- Played in a ragtime group in New Orleans that would hold four hour rehearsals. I didn't get to the point of memorizing the tunes, but it was super rewarding to be able to dive deep into traditional string music in a really tight ensemble of super-skilled musicians.
- Learned arranging by arranging piano ragtime pieces for a mandolin quartet. I learned the hard way what it means to write good voice-leading for inner parts.
- Learned how to play Arabic music to accompany belly dancers. Never thought that I would get into microtonal and maqam music! I got some exposure to Turkish makam via Balkan Camp, as well.
- Learned to play improvised, unaccompanied cello to accompany yoga classes. For years I would play improvised cello music every Wednesday evening during yoga classes at Flow Space. The experience taught me the importance of dynamics and space. Initially, I used a lot of looping, amplification, and layering. When I finally got sick of hauling these electronics and instead started relying on my raw playing ability and willingness to fearlessly embrace mistakes and silence, the size of our class attendance increased!
The last year and a half in this role would see a huge transition for me both in my role but also in my personal and creative life. You might remember a certain respiratory illness that turned life upside down in the beginning of 2020 ;]
Part 6 of My Software Journey
Part 5: Big Moves and Burnout: 2011 - 2014
Part 7: The End of the World: 2020-2021
Comments ()