Hello! My name is Rafael Salcedo, a senior Computer Science major from Cal Poly.
This website is a quick portfolio that lays out my favorite projects. I have more passion projects that are honorable
mentions. I would be more than glad to talk about said projects upon inquiry.
I have enjoyed my time at Cal Poly and I would describe it as demanding "adaptability".
Maintaining a high GPA as a full-time student with extra-curriculars was a great learning opportunity.
I've spent a lot of time on embedded programming, becoming fluent with operating systems and creating autonomous processes.
C, Python, and Java are my strongest languages as I've continually used them on projects. CSS, Typescript, and HTML are next in line.
As I've worked on these projects and in school, I have considered myself a quick learner I have reviewed large codebases and utilized custom libraries under deaadlines. I am no stranger to learning new tools like services, game engines, and frameworks.
Cal Poly CubeSat Laboratory, AKA PolySat, is research lab that has built 16 satellites since 2003
With the 16th undergoing its final revisions and tests, I was responsible for parts of its software.
SAL-E will be launched February 2025 on Transporter-16, to get to this point I had to work with the rest of the multidisciplinary team with strict deadlines.
I handled this work enviroment quite well as I significantly contributed to meetings and workload
Specifically, I was solely responsible for interfacing with one of the two payload devices on this satellite.
I had to take part in developing the firmware on the device to ensure we could communicate with this device via UART
I created an autonomous process to communicate with the payload device with a self-made SLIP packet structure. Restarts, ground station cmds, and downlinking data are managed by other core processes via sockets with my process.
Most of my work was written in C and XDR,
to be compiled using buildroot and then flashed onto a systemboard
My favorite part about working with this environment was the tangibility of being able to interact with
all of the executables and drivers on the satelite and running/loading them manually to test their behaviours.
The Cal Poly Robotics Club has several multi-disciplinary projects including an autonomous vessel.
The hull of the vessel is entirely made of carbon fiber. GPS, radio, gyro, and LattePanda board sealed within.
The unique aspect of working on the vessel compared to the satellite was the lack of a codebase.
Rather than requiring me to read through decades worth of codebases and custom libraries, I was the one creating them.
Communication was the first thing we had to sort out, as the vessel needed to take commands and send its status
This would be achieved over a LoRa radio with a custom data transfer protocol.
Working on the vessel gave me a lot of experience with python, since it was the language used to set up the radio and gps.
Any data collected from said instruments including readings from a temperature sensor would be sent
to the National Centers for Enviromental Engineering.
To go more in depth on how I setup the radio and gps, I learned ROS2 to create an
entire network of listening/subscribing processes.
This created a level of abstraction allow for the boat to use the radio/gps devices,
while allowing for a nearby computer to update its control panel based on recieved radio packets.
The control panel was built up to be a local webpage running on a computer within distance of the radio.
I got to design the control panel, the one shown to the left was the prototype. To build the control panel, we used a combination of Django/Node.js and I learned Tailwind and Typescript.