Hello There

My name is Mitch, and I am an engineer who has had the pleasure to work in both hardware and software. I have always been fascinated by the intersection of technology and how it can directly impact the world around us.

I will be using this blog as a platform to share my thoughts, experiences, as well as some of the projects I am working on. I may also, occasionally, slip in some non-tech related posts, as I know that life is not all about technology. :slightly_smiling_face:

Background

I have been working in the tech industry for over 7 years now, and I have had the opportunity to work on some really cool projects. I have worked on everything from hardware prototypes to CI/CD and Cloud Security SaaS and On-Prem solutions. I’ll go over a brief history of some of the projects I’ve worked on here. I do plan to go into more detail on some of these projects in future posts, but I don’t “have enough paper” here to go into all of them. But I will be using this platform to tell the story. :smile:

Disclaimer: I won’t be mentioning any specific companies or products I’ve worked with in the past. Instead, I’ll provide a general overview of the projects and the technologies I used.

Early Days (Hardware)

I started out working at a company which specialized in developing enterprise-grade hardware solutions, specifically servers and storage solutions. I was part of the team which provided support for the hardware engineering teams. This was a very unique experience for me as it allowed me to view hardware from a different perspective. It’s a lot more than just a machine that runs software. You have these very powerful machines that are capable of processing data at rates that seem unimaginable. Even some of the legacy equipment, at the time, was MUCH more powerful than what I had at home.

When I initially began working at this company, I was placed in a role where we managed the tracking, distribution, and the decommissioning of the hardware throughout all of the data centers onsite. This was an awesome launching point as it allowed me to see: 1, how many different types of components there are and 2, how expensive some of these components can be!

From here, I transitioned into a role where I was responsible for what we call “Rack and Stack.” This is where we would take the hardware that was delivered to us, and we would install it into the racks in the data center. This was my first step into actually working with the hardware directly. I was able to cable up the hardware, install drives and cards, and even learn how to script some of the process to enable us to track connections and power cycle the hardware remotely.

After awhile of doing this, I was given an opportunity to advance into a role where I was directly responsible for ensuring the hardware was functioning properly. This was a very exciting time for me as I was able to work with the hardware engineers to troubleshoot issues and even help with testing out new firmware versions, new cards; all kinds of things. In this role, I had quite a few things that I did. Mostly, we were responsible for larger installations that may have required more advanced experience versus those in my previous role. This also came with other responsibilities, such as, ensuring the OS was installed and configured properly, ensuring the hardware was properly configured, configuring the network (VLANS, IP addresses, etc.), and also ensured that any storage devices which the servers were utilizing were properly configured and working as expected, whether it be locally attached storage or SAN storage. There were many cases where we were configuring whole SAN environments! (This is a topic I will cover in a future post.) During this time, I was also able to mentor some junior engineers and help them learn the ropes of the hardware side of things. This was a very rewarding experience for me as I was able to help others learn and grow in their careers. Another function of this role was we ran validation tests on our installations, or “qualifications.” This is important to ensure that the hardware is functioning as expected and that it is ready to be handed off to the customer. You also don’t want to create more work for yourself! :slightly_smiling_face: Here, I spent A LOT of time working in the CLI and found that you can do things much faster in the CLI than you can in a GUI. This was also a point where my passion for Linux began to grow and I had the opportunity to learn a lot about the OS and how it works as well as many other Unix-based/-like OSes such as AIX, BSD, Solaris, and, of course Darwin.

Another added benefit of the role I was in, is that I was able to enhance my scripting skills and learn how to automate some of the tasks that we were doing. We also had some time to spin up our very own sandbox environments where we could do our own testing and learn new things. This was a very exciting time for me as I was able to learn a lot of new things and grow my skills. During this time, I started to learn more about virtualization and containerization. At this time, I also purchased my first server for my home lab. (Again, another topic I will cover in a future post.) It was at this point where my interest in software development began to grow.

Transition to Software (CI/CD - Part I)

After working in the hardware space for a few years, I decided I wanted to learn more about software development. I was very fortunate to get a role at a company that was a very prosperous CI/CD company with hands in a very well known open-source project. My eyes were opened to a whole new world that I didn’t even know existed. Software that…builds..software..? It was such a foreign concept to me at the time, but now I know more about CI/CD than I ever thought I would need to. :smile: I definitely have a passion for CI/CD now thanks to this role.

Getting back on track, I worked on the team which provided support for the developers, administrators, and all in between that used this produce. It was a bit of a unique position for me as I had only really known of the “Technical support” positions. It was very much so enjoyable as I was able to get my hands on reproduction cases for customers and provide education to customers that helped them build their software better. This was when I realized; I had a passion for helping others, but also, for making the software process as efficiently as possible. I also worked, in tandem, with our own engineering teams to resolve bugs and introduce new features for customers. This really highlighted to me how software doesn’t just “happen” but there is a lot of moving parts to get from developer to customer. But that doesn’t necessarily mean it cannot be done efficiently.

Not too long after, I was picking up on things quickly and was blessed with a promotion to being a senior member on the team. This was a very exciting time as I was able to take on more responsibilities and become even further involved in the process. At this point, I was mentoring junior members, involved in steering committees, and even helping with writing some of our certification material. It was very rewarding seeing your actions actually having an impact on others. I was also able to take this opportunity to leverage my experience and resources to further help our customers with their concerns.

Startup Life (CI/CD - Part II)

Sometime later, I was presented with an opportunity to work at a, very much so, smaller CI/CD company. For context, the hardware company I had worked at had roughly 15,000 employees, the first CI/CD company I worked at had 700-1000 employees. This company had 90-200 employees. Knowing this was a bit unnerving, but more than anything fueled me with excitement as I was going to have a chance to make an impact but also watch this company grow.

Spoiler Alert: This company was acquired by another, very awesome, company and is still growing to this day! :smile:

At this company, I worked in a similar capacity as my previous company. But we were a MUCH smaller, and tight knit team. I think I may be biased, but this team was the “Dream Team” in my books! There wasn’t any problem thrown at us that we couldn’t fix. We were a very well-oiled machine. I was able to work with some of the most talented engineers that I have ever met. We were spread across the globe, but from support to DevOps, to engineering, to design, to product; we made, what seemed impossible, possible. It was such a thrill to work with these people and I am very grateful for the opportunity to have worked with them. To be fair, I think that there were a lot of very talented engineers at all of the companies I have worked at and I don’t want to discount any of them. But this team was definitely one of the top teams in my book. In this role, I was able to work a lot more closely with people from my peers up to the C-level executives. This was an awesome experience as I had a chance to see how decisions were made and how they impacted the company.

As far as the role itself, it was pretty great. This was my first SaaS company I worked at, so this was a new concept for me. However, I was one of the few support engineers that had a lot of on-prem experience so I was able to bring this to the table. If you’ve never had the opportunity to work in SaaS and On-prem, they are two very different beasts. (Another topic I plan to discuss) But I found that SaaS was actually pretty enjoyable to work with. It was nice having the option to directly impersonate users (With permission of course) so that you could see their problems without having to wait for a bundle to begin working on their issues. As far as reproducing issues, it wasn’t as streamlined as my previous company, but for someone like me who likes to understand things, it was a great experience as it forced me to dig into the code and understand how certain components worked. This was really the first time I used code to help me understand the problem. I was also able to hop on a call directly with the engineering team which was the owner of a certain component to help resolve issues. This was a great experience as I got to know them personally as well as understand how that particular team functioned. Overall, it was a great experience and I am very grateful for the opportunity to have worked there.

Cloud Security

After working in CI/CD for awhile, I wanted to get in to a new space which was a bit unfamiliar to me, cloud security. I had known about vulnerability scanning as it is common practice to have this included in your CI pipeline. However, this was pretty much all I had known. Cloud security is a very complex topic and is constantly growing as bad actors will always be around. The company I had worked for was another company that had attached itself to a few well known open-source projects. This company was a larger startup than the last two that I had worked at (combined). The engineering team here was more structured and defined. The products were much more technical in nature than the previous two companies as these products operated at a kernel level. In the nature of things, they also used much lower level languages than I had previously worked with. This was a bit of a learning curve for me, but one thing I was able to pick up from knowing a few languages is that once you know one, you can pick up others pretty quickly. Unfortunately, I was affected by a layoff at this company, but I was able to take away a lot of knowledge from this experience. I was able to learn more about how important security is in the cloud and how it is constantly changing. I was also able to learn more about how the kernel works and how you can interact with it, and how you can easily break things if you’re not careful. :smile: Though it can be easy to see layoffs as a negative; To me, this was an opportunity to spend time with my family, work on my own projects (like this blog), and take some time to reflect on what I want to do next.

Now

So here we are! I am now working on my own projects and spending time with my family. The road ahead is open and I am excited to see where it takes me. I am excited to share my experiences with you and I hope that you will find them as interesting as I do!

This Blog

As I had mentioned at the beginning of this post, I will be using this blog as a platform to share my thoughts, experiences, and some of the projects I am working on. My goal is to post at least once a week, but I may post more frequently depending on what I have going on. I plan to cover a wide range of topics that I feel are important to me and that I think you will find interesting. Some categories I plan to cover are:

  • Software Development
  • Hardware
  • Best Practices
  • Opinions and Thoughts
  • Cool Projects
  • (Possibly) Interviews with other engineers
  • New things which I have learned
  • Updates on my projects

I also appreciate feedback, so if you have any suggestions on what you would like to see, please let me know! I am always open to new ideas and I want to make this blog as enjoyable as possible for the readers.

Conclusion

I am very excited to start this journey with you and I hope that you will find my posts interesting and informative. I am looking forward to sharing my experiences with you and I hope that you will find them as interesting as I do. I am excited to see where this journey takes us and I hope that you will join me on this adventure!

If you’d like to reach out to me, please feel free to do so! You can reach me on LinkedIn or email me at: [email protected]. I am always open to new connections and I would love to hear from you!

Updated:

Buy me a coffee

Buy Me A Coffee Ko-fi

Leave a comment