Who is Josh Maxwell?
Hi, I am Josh Maxwell, also known online as CCTechWiz.
I am working as a Software Engineer 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; Running and playing various Tabletop RPGs, Dabbling in Indie Game Development, and Mountain Biking.
Why did I Start this Blog?
As I mentioned above, my mission is to improve developer experiences and productivity. One way I believe I can accomplish that is through providing high-quality content through my online platforms, including this blog.
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, or whatever technology you're 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 increase our learning.
Two: Teaching others what you're learning
Teaching can take many forms, in my current case, it's a blog and my Twitter account. In the past I've used teaching in a handful of different ways to enforce my learning; teaching kids coding camps, 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, you get 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 DevX
- Tools and skills that are applicable to DevX (including my learning Go Development, and other adjacent things)
- Documenting other projects as I Build in Public
Beyond these 3 core components, I will also be using this blog for;
- Taking public notes about things I want to look up later
- Publishing or cross-posting content from my freelance jobs (as permitted by the customer of course)
- Learning about writing a blog (please be patient with me as I learn)
Where else can you find Me?
See You Soon!
Thanks for sticking with me this far.
If anything in this post has struck you as interesting subscribe to this blog for new post notifications and to my Revue newsletter for other updates from me.
Also, feel free to follow me on Twitter and Clubhouse to join the conversation live!
Until next time, be kind to yourself and others, and keep on learning.