Who am I?
Hi, I am Josh Maxwell, also known online as CCTechWiz. My pronouns are he/him, I’m 6 feet tall with a bit of a dad bod and short brown hair that is usually spiked up when I’m not wearing a ball cap.
I am working as a Senior Software Engineer and Tech Lead at Qualtrics on the Developer Experience and Tooling team. My current languages of choice are Go, Typescript, and Bash. I also have quite a bit of experience with C++, Python, C, and x86 Assembly.
My personal mission is to improve developer experiences and productivity across all of Qualtrics and ultimately for software engineers everywhere.
Prior to Qualtrics, I worked as a Software Security Engineer at Sandia National Laboratories. There I was focused on building applications and system integrations to support cyber resiliency R&D, experimentation, and execution.
I have a Master’s degree in Information Security (MSIS) from Carnegie Mellon University, with an emphasis in system-level code security, reverse engineering, and exploitation. I also have a Bachelor’s degree in Computer Science from Southern Utah University. However, beyond my degrees, I have always had a deep craving for knowledge, to which I attribute the lion’s share of my most valuable experiences.
I’m also more than just my profession. I am married to a strong, amazing woman and we have two beautiful daughters. My other interests and hobbies include; personal knowlege managment/productivity, running and playing various tabletop RPGs, managing a small homelab, dabbling in indie game development, reading, and mountain biking.
Why did I Start this Blog?
As I mentioned, my mission is to improve developer experiences and productivity. I believe that to improve something you must first understand the fundamentals involved. I intend for this blog to be a medium for me to share my insights as I learn these fundamentals and explore how they can be used to improve developer experiences and productivity.
I also firmly believe that the best way to really learn something new is to do two things;
One: Put what you’re learning into practice
This usually takes the form of undertaking real-world projects using the language, framework, tool, process, or whatever you are trying to learn. This is an important first step in learning something new because it gives you practical hands-on experience working with the new thing.
However, depending on your approach, this can leave many holes in your understanding due to the fact that most technologies try to abstract things to make them easier. This leads us to the next thing we need to do to solidify our learning.
Two: Teaching others what you are learning
Teaching can take many forms, in my current case, it is this blog and my Mastodon account. In the past I have used teaching in a handful of different ways to enforce my learning; teaching a kids Python coding camp, getting certified and teaching Getting Things Done courses, joining discussions on social media, and even trying to teach my little brother programming.
Teaching helps you realize there are gaps in your practical knowledge. When you try to describe something to someone who has never heard it before or when they ask questions that your particular experience didn’t surface this shows where there are gaps in your understanding. Teaching gives you the opportunity to fill in those gaps and solidify your learning.
Where am I Going from Here?
This blog will primarily be focused on three things;
- My personal experiences as I explore what creates good developer expeiences and improves productivity
- Tools and skills that are applicable to DevX
- Documenting other projects as I build and learn in public
Beyond these 3 core components, I will also be using this blog for;
- Taking public notes about things future me may want to look up later
- Publishing or cross-posting content from my work or other freelance jobs (as permitted of course)
- Improving my technical blog writing (please be patient with me as I learn)
Where else can you find Me?
Mastodon is my primary social network account and where you can find my more raw thoughts in real-time, as well as blog notifications.
Gumroad is where I plan to make available more static/refined downloadable content, some free and some paid.
LinkedIn is where you can follow my professional journey and accomplishments, although I pretty much only used LinkedIn as an over-engineered CV.
GitHub is where you can find my code project and things I’m playing with. All code there comes with an as-is guarantee and I try to license it as permissive as I can.
See You Soon!
Thanks for sticking with me this far.
If anything in this post has struck you as interesting feel free to follow me on Mastodon for notifications when I post new blogs, or follow the RSS feed.
Until next time, be kind to yourself and others, and always keep learning.