https://alejandroarmas.pages.dev/
Recent content on Hugo -- gohugo.ioenTue, 08 Oct 2024 00:00:00 +0000Â Mastering Backtracking for LeetCode Success
https://alejandroarmas.pages.dev/post/backtracking/
Tue, 08 Oct 2024 00:00:00 +0000https://alejandroarmas.pages.dev/post/backtracking/Goal of Today’s Post When you’re done reading my blogpost, my goal is for you to:
To leave with a generic scaffolding to set up Backtracking Problems Have a framework to reason about most Backtracking Problems Worked through 5 Backtracking Examples (Just give me the examples!) Introduction At the time of this writing, I currently find myself at 450+ leetcode problems solved. I tricked myself into liking the grind! It’s bad.What are Transformers - Understanding the Architecture End-to-End
https://alejandroarmas.pages.dev/post/transformer/
Mon, 08 Jan 2024 00:00:00 +0000https://alejandroarmas.pages.dev/post/transformer/Alejandro Armas and Sachin Loechler have been hard at work on a project that involves developing streaming workloads.
The project has the goal to process realtime data and support real-time traffic prediction! In order to make sense of the enormous quanity of unstructured video data, we employed Foundational models that perform video tracking, bounding box, depth estimation and segmentation to extract information from video data. Many of these foundational models relied on an artificial Neural Network Architecture called a Transformer.Authenticating Data for Experimentation Environment
https://alejandroarmas.pages.dev/post/iam_management/
Mon, 30 Oct 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/iam_management/Introduction In this post, I will explain how I streamlined team decision-making by building a cloud experimentation solution, secured by AWS IAM roles/policies, then optimized dataset network transmissions by 35x
In this post, we will explore how to leverage Terraform, a popular Infrastructure as Code (IaC) tool, to automate the setup and management of AWS IAM. We will walk through creating IAM roles, policies, and users, and demonstrating how to attach policies to these entities.Driving a Data Product - Uncovering Insights and Laying out Assumptions with Exploratory Data Analysis
https://alejandroarmas.pages.dev/post/driving_data_product/
Mon, 30 Oct 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/driving_data_product/Alejandro Armas and Sachin Loechler have been hard at work on a project that involves developing streaming workloads.
The project has the goal to process realtime data and support real-time traffic prediction! However, before I was able to begin with that. I had to demonstrate the viability of this initative. It was critical to communicate and achieve consensus on my understanding of the data with the team. In addition to learning about the data, I testing hypothesis I had and laying out the assumptions I had.Enabling a Reproducible Data Experimentation Environment
https://alejandroarmas.pages.dev/post/reproducible_experiment_environments/
Mon, 30 Oct 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/reproducible_experiment_environments/Introduction In this post, I will explain how I streamlined team decision-making by building a cloud experimentation solution, secured by AWS IAM roles/policies, then optimized dataset network transmissions by 35x
I prioritized building this tool, because a streamlined process was critical for Sachin and I to achieve consensus on datasets and features for a ML model. Exploratory Data Analysis is a process driven very different from software engineering. It involves lots of trial and error, so reproducibility was top of mind.Getting Started with PyFlink: My Local Development Experience
https://alejandroarmas.pages.dev/post/pyflink_debugging/
Mon, 30 Oct 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/pyflink_debugging/Background A hobby project I am working on, involves developing streaming workloads. We want to process realtime data and support traffic prediction! Often at the start of tool adoption and especially when working in a multi-tool ecosystem, I was finding myself at a familiar roadblock:
As the engineer responsible for creating the streaming workloads, I was having a hard time weighing the tradeoffs in what language to use for our data pipeline’s tooling.Winning 3rd place at MLOPS LLM Hackathon: Question & Answer for MLOps System
https://alejandroarmas.pages.dev/post/sf-llm-stack-hackathon/
Wed, 07 Jun 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/sf-llm-stack-hackathon/This post describes the experience of team RedisCovering LLMs, as we developed a Question & Answer system specialized on MLOps community slack discussions, armed with GPT-3.5 for precise answers and verifiable references to slack threads, guarding against misinformation.
1. Introduction Last weekend, I had the opportunity to participate in a 12-hour hackathon organized by the San Francisco Bay Area MLOps Community. It was my third hackathon experience, and the first one I attended through the MLOps Community.Unveiling Dimensionality Reduction - A Beginner's Guide to Principal Component Analysis
https://alejandroarmas.pages.dev/post/2023-05-18-pca/
Thu, 18 May 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/2023-05-18-pca/Introduction Imagine for a second you were transplanted into Olvera Street in LA. It’s a Tuesday, but today is a little different. Theres a spark in the air. You’re not quite sure what to make of it, but you know that today, something great is going to happen. You walk around aimlessly for awhile, until your mind begins to get distracted by this huge sense of hunger. “Dang – if only I could have some tacos”, you think to yourself.What is the Difference Between Covariance and Correlation?
https://alejandroarmas.pages.dev/post/correlation/
Fri, 05 May 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/correlation/Working with data will almost always begin with a data exploration phase. We listen to its heartbeat and ask lots of questions. As we begin this phase, one might ask themselves ‘what are the tools we can leverage?’. What do we do to define a linear measure of a relationship between two random variables? In other words, how do we measure the amount of ‘increasing X increases Y’-ness, or ‘- decreasing Y’-ness and vice versa in a joint probability distribution?Unlocking the Power of Joint Distributions - How to Analyze Multiple Random Variables
https://alejandroarmas.pages.dev/post/joint_distributions/
Wed, 26 Apr 2023 00:00:00 +0000https://alejandroarmas.pages.dev/post/joint_distributions/The concept of joint distribution is useful when studying the outcomes and effects of multiple random variables in statistics. Joint distribution allows generalizing probability theory to the multivariate case. Let me paint a story for you.
Joint Distributions Today, the weather is nice. Its a fresh summer morning. You’re out at a restaurant having breakfast with your in-laws and you want to impress. You’re such a nice person, you think to yourself.Breaking Down Virtual Memory: The Role of Paging in Modern Operating Systems
https://alejandroarmas.pages.dev/post/virtual_memory/
Fri, 21 May 2021 00:00:00 +0000https://alejandroarmas.pages.dev/post/virtual_memory/Introduction Have you ever wondered why 32-bit and 64-bit get thrown around and not know what it meant? So too did I. Well the simple answer is that these refer to the amount of memory addressable to a program or more accurately, the computer architectures bit width i.r.t registers and address busses.
Now let’s see how much this amounts to: \(2^{32} = 4,294,967,296\) Bytes or more succincly 4GiB. In modern days we are able to address \(2^{64} = 18,446,744,073,709,551,616\) Bytes or 16.Creating a Deep Learning Framework from Scratch in C++
https://alejandroarmas.pages.dev/post/dl_library/
Wed, 05 May 2021 00:00:00 +0000https://alejandroarmas.pages.dev/post/dl_library/Prerequisites You might be interested in my related articles on Matrix Multiplication and Concurrency before reading further!
Introduction My goal for this project was to train a simple 2-layer Multi-layer perceptron by creating a Deep Learning Framework.
Typically representing models with a Dynamic Acyclic Graph (DAG) provides a better user debugging experience, so data and calculations had to flow at runtime.
So, I gave myself the following restrictions:
Learn and incorporate as many design patterns and C++20 features as I could Use little to no dependencies in my code This is what a sample training loop might look like with my library:Mastering Concurrency: A Comprehensive C++ Guide to Processes and Threads
https://alejandroarmas.pages.dev/post/concurrency/
Thu, 29 Apr 2021 00:00:00 +0000https://alejandroarmas.pages.dev/post/concurrency/1. Introduction First lets begin by defining a piece of system software called the Operating System (OS), which is responsible for orchastrating the sophisticated resource management of a given machine’s hardware as well as providing an abstracted interface for software to be built above.
At the time of me writing this article, I have a web browser open, my spotify playlist on, as well as my VS code editor and a terminal open.Quick Primer on Metric Spaces
https://alejandroarmas.pages.dev/post/metric_space/
Thu, 18 Jun 2020 00:00:00 +0000https://alejandroarmas.pages.dev/post/metric_space/Vector Space A vector space is set of mathemetical objects that can be multiplied and added together to produce objects of the same kind. This notion of vector spaces proves to be a very useful framework for extending methods and structures to very different types of problems. A few special types of vector spaces you may be already be familiar with:
Function Spaces We can add functions together and scale them as well.Primer on Matrix Multiplication
https://alejandroarmas.pages.dev/post/matrix_multiplication/
Wed, 27 May 2020 00:00:00 +0000https://alejandroarmas.pages.dev/post/matrix_multiplication/Introduction Remember the good ol days when 6 x 5 easily made sense as adding 6 together with itself 5 times and whala you ended up with 30. Now you’re in college and things are hard đŸ˜ Hopefully running through an example can give you a bit of a glimpse as to how and why we do matrix multiplication.
How to Compute Matrix Multiplication Consider two Matricies A and B. We denote the dimensions by row and columns, in that order.Combinations
https://alejandroarmas.pages.dev/post/combinations/
Sun, 03 May 2020 00:00:00 +0000https://alejandroarmas.pages.dev/post/combinations/Since the concept of “n choose k” seems to appear a lot in my life I decided I would make a quick post explaining the intuition behind it. Let’s start with a simple example.
Say we had a set of three greek characters representing the names of three friends, \( F = \{ \alpha, \beta, \gamma \}\) and we are interested in knowing how many uniquely paired matches could be played between two competitors of the friends in table tennis.Mathematics Meets Signal Processing: Exploring the Convolution Integral
https://alejandroarmas.pages.dev/post/convolution/
Wed, 22 Apr 2020 00:00:00 +0000https://alejandroarmas.pages.dev/post/convolution/Introduction Since signals are sets of data or information and systems process said data, we are interested in the analysis of systems. When we deal with a special type of system that contains the properties of linearity and time-invariance, we are able to construct methods of analysis that are extremely useful for Linear Time-invariant (LTI) systems. Fourier analysis, which will be a seperate blog post, and the convolution integral are examples of exploiting system properties to decompose inputs into basic signals which are easy to work with analytically.Random Variables and Distributions
https://alejandroarmas.pages.dev/post/distributions/
Tue, 21 Apr 2020 00:00:00 +0000https://alejandroarmas.pages.dev/post/distributions/I hope this article serves as a basic introduction to the terminology of probability theory!
Random Variables Considering that an experiment is a procedure that produces well defined outcomes, like taking a course and finishing with a certain grade letter, we see that a random variable is a function which maps random outcomes from experiments to numerical values \(X : \Omega \to R \) . The set of all possible numerical values attainable is called the support of the random variable.