Introduction

Hey, I’m Jorge!

Welcome to my first post! I figured it would only be fitting if it was an introductory post. I talk about how I got into tech, as well as my education journey and what I think it all leads to for me. Enjoy!

Background

Early Years (2000s - 2010s)

I have always been around technology, specifically computers. My first memories with a computer were on my dad’s Dell laptop running Windows Vista when I was maybe 7 or 8 years old. At first, I played games on it, but if I ever wanted to do anything else, I would end up triggering the Administrator warning and need my dad’s password. I remember thinking, “I can’t wait to get my computer so I can do anything I want to.”

Growing Passion (2010s - 2012)

From there, my interest in technology grew, accompanied by consoles like PlayStations and Nintendo portables. Slowly but steadily, my passion grew for computers and consumer electronics. If I ever ran into issues while using them, I quickly made myself acquainted with Google search and user forums to find solutions. Soon enough, I became the family’s IT guy, and to this day, I get requests from friends and family regarding new purchases or help with their devices. Even though I might have not been the most knowledgeable when it came to them, I felt like I was capable of doing research.

Middle School (2012 - 2015)

Once I entered middle school, I became part of the STEM programs. I would have one class every year where we worked on a plethora of hands-on projects. I felt at home, being able to collaborate with group members about decisions and task management. Through my years in middle school, I started to realize that a potential path for my future could be engineering.

This was also the start of the tinkerer in me. Getting access to tablets like the Kindle Fire and iPods/iPads introduced me to the hacking and modding communities. I proceeded to perform jailbreaks (🍍) and roots of my devices, knowing very well that it would void my warranty, but the risk was worth it. I had bragging rights around school, since I was able to add as many Diamonds as I wanted in Minecraft Pocket Edition. A vital class I took here was one where we learned to use Scratch, a block-based visual programming language. It was my introduction to the world of programming.

7th Grade Engineering class; working with Vex Robotics

High School (2015 - 2019)

Entering high school in 2016, my enthusiasm remained, and apart from doing engineering classes and learning about engineering processes, I began to dabble in making custom solutions for my peculiar gaming needs. My first tool was a sniping bot for the FIFA 16 web app. It was a way to buy certain items at a rare, lower cost, and I set myself to create a way to automate the process. I used AutoIt and learned how to simulate key presses and mouse clicks with coordinates. I remember the thrill of waking up for school and checking my laptop that I kept running overnight to see that I had successfully sniped a card!

The one class that I took in this part of my School was AP Computer Science. Here I was introduced to Python, which tends to be the starting language for new programmers, me included. I believe it was a solid foundation, since I was now able to create anything I felt like I needed, without relying on a scripting language like AutoIt.

When time came to decide my next step in education, I knew I wanted to work with/on computers. 2018 & 2019 were the years I was introduced to the world of custom build PCs. Up to this point I had only used laptops, so seeing this for the first time really opened my eyes. It was at this point that I knew that for College, I wanted to build my own PC, to have a solid piece of tech for any needs, and needs I had, which I will explain. I decided to apply to some colleges for Computer Engineering. It just made more sense to me over Computer Science, which at that time just seemed like the better option.

Rather blurry image of my PC parts, August 2019

Present and Future

University Projects and Interests (2019 - Present)

Now, as a senior at Cal Poly Pomona, I have had the opportunity to work on a variety of projects that have shaped my skills and interests. Although a large part of my College Life was hindered due to the COVID-19 pandemic, I was still able to work on both personal projects, things that I set out to do to make my life easier. That was also the time when I began taking the programming classes of my major’s curriculum. Working with C and C++, among other things. This is where I would say I solidified my knowledge of the inner workings of code and computer programs. Here is where I had my first experience with a compiled language, prior to this I only really worked on Python for simple scripts.

When we eventually returned to in-person lectures, I was at the point in my curriculum where I was going to start taking Lab classes. One of these labs was Digital Circuit Design Using Verilog, where we learned about describing hardware using code. We did a variety of assignments working with the Nexys A7 50T development board. We learned how to represent both combinational and sequential circuits to complete the labs/projects. Below is my Final Lab presentation, a time based matching game using the board’s built in peripherals.

Verilog Class Final Project; Fall 2022

My overall feeling of the class and the subject matter was that it was interesting, and I felt like I was understanding it to a well enough degree, but I was not thinking of it as a potential career pathway.

At the same time, I was also taking another Lab class, this one was called Introduction to Microcontrollers. In this class, I was able to apply my C programming skills to work since we used the PIC18F microcontroller. Every week I had to program the chip to adhere to different purposes. Alongside my lab partner who was in charge of building the schematics, we were quite efficient in completing these tasks.

Compared to the Verilog class, I felt more comfortable, and felt more satisfaction out of seeing the final goal achieved. Maybe it could also be attributed to the faster feedback loop out of working with a Microcontroller compared to the longer process of Synthesizing and Generating of a digital circuit.

After taking these two classes, some things became more clear; deciding a career path for after school would primarily revolve around these two Areas:

Hardware Description / Simulation

  • This path involves designing and testing digital circuits using Verilog or other hardware description languages. You work at a very low level, managing elements like bit registers and data flow between different components or modules. The FPGA boards we used demonstrated the power of quickly iterating on circuit designs, providing a much faster feedback loop compared to waiting for manufacturing times.

In the end, you create a piece of hardware with a specific purpose, such as network accessories like switches or other proprietary devices designed for niche scenarios. These devices often perform better than off-the-shelf solutions.

Embedded Systems / Systems Level Programming

  • This path involves implementing pre-existing circuits, such as microcontrollers or PLCs, for specific tasks. You work on a level that is still relatively low, but you are not necessarily dealing with the logic within the hardware you are using. For example, when working with the PIC18F, we needed to understand the function of each register to create a complete system. More complex microcontrollers might abstract this complexity with a library or API that simplifies interaction with the device’s I/O.

Here, the implementations you develop can be tested and refined by observing their impact on the end goal.

Although I believe its possible to pivot from one to the other, I personally feel more interested in the Embedded/Systems level side for a career path.

Current Interests

As of writing this, I am well into my Senior Design Project: an IoT Device Control System. The goal is to create an end to end system for controlling some IoT Device.

My partner Dylan and I are implementing ESP32 microcontrollers using the C programming Language. I hope to also implement other technologies and features that I personally find interesting; I want to have a mobile app that can be used to control these devices from anywhere, built using React Native. I want to use the Go programming language, namely for its concurrency abilities, and combining it with the WebSocket protocol for “real-time” communication, to allow for seamless control.

Please follow the GitHub repo: https://github.com/PJalv/SDP-IoT-Device-Control for an overview of it all.


If you are reading this, thank you for reading through my first blog post. I have always wanted a way to just write about anything I find interesting or others could find useful, so stick around for that and much more!