Nicolas Lara Nicolas Lara

exploring GCP - projects

A GCP project is an organizing entity for your Google cloud resources. A project is made up of settings, permissions, and other metadata that describe your application. Resource in the same project are able to work together seamlessly by communicating through internal networks. The concept of projects, was hard to wrap my head around but I personally find equivalent to having multiple accounts in AWS.

Read More
Nicolas Lara Nicolas Lara

kubernetes visualizer - why I chose GCP

First off, the reason I am using a cloud provider for this project is because I want to dive deeper into the services cloud provider offer. Deploying my app on a a cloud provider will further instill the concepts I am going to try and demonstrate in my kubernetes visualizer app. The main reason why I am using GCP is because its cheap and it is very likely I will be working with GCP in my job in the future.

Read More
Nicolas Lara Nicolas Lara

infrastructure as code

I am beginning my journey in developing my cloud knowledge and this week I have decided to take on a project which will leverage terraform to manage my cloud provider services. Infrastructure as code is exactly what its name is. It is your cloud infrastructure components declared and managed by code. This concept was wild for me to comprehend because you can write code to set up machines with a specified resources and you cloud provider will set it up. This is one of the things that has blown my mind in the beginning of my career.

Read More
Nicolas Lara Nicolas Lara

what is terminal multiplexer

During work this week, I had to run a long running command inside a ssh session. Because the connection was going to get cut off before the command finished, I used tmux (a terminal multiplexer) to create a session that will live even when I cut the ssh connection. With a terminal multiplex allows you to multiplex several sessions in a single terminal. Its key feature is that users can attach and detach from such sessions.

Read More
Nicolas Lara Nicolas Lara

new tech - anbernic RG35XX

I recently I picked up Anbernic RG35XX, which is a hand held game console. It is running on a ARM CPU and a Power VR GPU. It comes with two OS: the Stock OS and the Garlic OS. It is compatible with with 20 emulators and it comes with some pre loaded with 6800+ retro games. It comes with 256Mb of RAM and 64 GBs of Memory.

Read More
Nicolas Lara Nicolas Lara

software - arc browser first impressions

Tomorrow will be 1 week since I started trying out the Arc browser. Since the very beginning the experience has been great. One thing I noted to be odd is the need to sign up for an account to use the browser. Which is weird from a company that makes the claim not to sell your data. I assume this will be later used for features coming in the future like a boost market place. My favorite feature is the spaces feature. I thought I was not going to use it as much but it came very handy for a new project I took on this week. I bookmarked more tabs then I would without a dedicated space. The other great feature is the way you can open a new tab with cmd t, which has sped up my performance. The last thing I want to mention is the Arc Max features. At first I thought it was going to be a premium service to use the AI feature, but it was all free. I will be posting a spec overview sometime next week and a final review the week after.

Read More
Nicolas Lara Nicolas Lara

security - encryption

The past couple of weeks at work, encryption has been brought up a multiple. It is no surprise because securing data is important. There are two types of encryptions -- encryption at rest and encryption in transit. Encryption at rest data that is stored in a location and is not actively in motion is called data at rest. En general data at rest is much more noticing to hackers because it is subject to be very sensitive information. Encryption in transit is when you encrypt the data when the data is in motion. Data is less vulnerable through transit because it is likely less sensitive information.

Read More
Nicolas Lara Nicolas Lara

exploring kubernetes : node componets

These are components that run on every node. They are responsible for maintaining running and provide the kubernetes runtime environment. The three components are kube-proxy, kubelet, and the container runtime

kube-proxy

is a network proxy that runs on each node. It maintains network rules on nodes, such as allwoing communication to your pods from outside of your cluster.

kubelet

It is an agent that makes sure that containers are running in a pod. It takes in a set of PodSpecs and ensured that the containers are healthy and meet the health conditions

container runtime

It runs the containers effectively. It is responsible for managing the execution and lifecycle of containers.

Read More
Nicolas Lara Nicolas Lara

exploring aws : storage solutions

elastic file storage (EFS)

EFS is a scalable file storage that can be mounted on multiple EC2 instances. It is fast and accessible but is not offer complex queries. The benefits of EFS is that it has and adaptive throughput, it is elastic(you can add files and not worry about provisioning or disturbing your application), and is very accessible.

elastic block storage (EBS)

EBS is a block storage service which means all data stored in EBS is stored equally in side blocks. It is important to note that this is a a per EC2 instance service. It has low latency, easy data back up (via poin-in-time volumes), highly available and is encrypted. It is recommended to use EBS when you need a high-performance storage for a single instance

s3 object storage

Like EFS, S3 is scalable and access to multiple EC2 instances. Additionally S3 can be accessed by other cloud services and its object storage system is ideal for handling large volumes of static data and complex queries. Object storage is contained on the same flat plane and has comprehensive metadata. It is great for running analytics, data archiving, is highly available and could be mounted to an application. It is great for storing long term data.

Read More
Nicolas Lara Nicolas Lara

exploring kubernetes - the control plane

overview

In kubernetes the control plane is what manages the worker nodes and pods that run in our cluster. The control plane is responsible for global decision as well as detecting and responding to cluster events. The control plane components can be ran on any machine in the cluster, but setup scripts typically start all components on the same machine. It is important that we do not run user conatiner on the same machine that is running the control plane components. There are 5 components that make up the control plane: kube-apiserver, etcd, kube-scheduler, kube-controller-manager, cloud-controller-manager

kube-apiserver

The kube-apiserver is the kubernetes contol plane component that exposes the kubernetes api server. One thing to note is that is sales horizontally, which means it scales by deploying more instances

etcd

Key-Value store that is used as kubernetes badcking store for cluster data.

kube-scheduler

the kube-scheduler components watches new created pods and scheduled them to a node

kube-controller-manager

the kube-controller-manager is the control plane that runs the controller process.

cloud-controller-manager

The cloud-controller-manager is the control plane componenet tha tembeds cloud-specific control logic. This component allows you rcluster to link the cloud proider's api.

Read More
Nicolas Lara Nicolas Lara

eks workshop series -  ground zero

Recently for work we have been doing a lot of infrastructure work. This has sparked my interest in cloud infrastructure and networking. I am fairly new to the devops space and have not had formal cloud training. I found this workshop during a pairing session and it looks like the perfect opportunity to develop my skills.

link to workshop: https://www.eksworkshop.com/

Read More
Nicolas Lara Nicolas Lara

new tech- shargeek STORM2 slim 130W

Today I just received my shargeek storm2 slim 130W. This was a gift from my parents after a recent zoom horror story I went through. I woke up to find there was a power outage in my area and it was going to be hours until they fix it. I logged on with my hotspot but my laptop was under 10 percent charge. With a 100W port this will definitely allow me to charge my laptop temporarily.

spec:

  • 100W type c port

  • 30W type a port

  • ISP display that visualizes battery life, temperature, output distributions

  • 20000mAh capicity

Amazon link: https://www.amazon.com/gp/product/B09X9DT3JS

Read More
Nicolas Lara Nicolas Lara

trying out the Arc web browser

Recently I have been having issues with Google chrome and I think I want to take this opportunity to experiment with using a new browser. I am going to be using the Arc browser for the next 2 weeks. Through out the 2 weeks, I will be documenting my experience through out the 2 weeks and close it off with a review. During the final review I will see if I will continue to use Arc, go back to chrome, or try a new web browser entirely.

Read More
Nicolas Lara Nicolas Lara

what are transit gateways?

A Transit Gateway is a network transit hub that acts as a virtual router for traffic flowing between Virtual Private Networks and on-premisses networks. Network traffic sent to a transit gateway attachment, based on their Ip Address. Transit gateway attachment is the source and destination packets. this can be :

- VPC

- VPN connections

- Transit Gateway Connect attachments

- transit gateway peering connections

Read More
Nicolas Lara Nicolas Lara

logs, traces, and metrics

why is it important to know what these are

Logs, traces and metrics are know as the three pillars of observability so it is important to be aware of what observability tools we can leverage for software systems.

logs

Logs are records that are related to events. This includes general information, errors, warnings, etc.

metrics

Metrics are a numerical record which allows us to monitor performance, pinpoint performance and detect anomalies. We can use this information to get information about the health of our system. An example of metrics is records about about CPU and Memory utilization

traces

Traces are used to track end-to-end behavior of a request that moves through your software system. We us traces to provide insight onto how a request behaves at specific points in our app

Read More
Nicolas Lara Nicolas Lara

What is a microprocessor architecture?

Overview

A microprocessor architecture refers to the design of a Central Processing Unit(CPU). I will be talking about Complex Instruction Set Computer (CISC) and Reduced Instruction Set Computer (RISC), two popular microprocessor architectures that are widely used in the industry.

Complex Instruction Set Computer (CISC)

CISC uses complex and powerful computer commands. It is known for its memory efficiency and have been in use for a longer time that RISC processors. This type of processes are used in the popular intel x86 cpu.

Reduced Instruction Set Computer (RISC)

RISC uses small and simpler commands. It is known for its energy efficiency, which is why it is prominent in mobile devices and laptops. The processor executes one action per second. This type of processes are used in the popular Mac silicon cpu chips.

Read More
Nicolas Lara Nicolas Lara

What is a Compiling Language

Background

Currently, machines lack the ability to comprehend human languages. They can only comprehend machine language, which is represented by 0s and 1s. Consequently, when you write Javascript code, the machine cannot understand it. This necessitates the translation of each programming language into machine code. The disparity between compiling and interpreting languages is how we convert our source code into machine code.

How compiling languages work

The initial step involves writing our source code in a compiled language. Next, we use a compiler to generate a new file containing our source code converted into machine code. Finally, we can run our program by utilizing the compiled machine code.de

Benefits of using compiling languages

- It is worth noting that compiling languages boasts fast execution times, owing to the use of a compiler that translates source code into machine code. As a result, the program can execute at a high speed since the computer can directly execute the generated machine code without the need for further interpretation or translation.

- When utilizing a compiling language, it is possible to distribute your program without revealing your source code. However, this is only feasible when the same platform is being used.

Drawbacks when using compiling languages

- The compiled file is platform dependent. Meaning if you compile your code using a Mac, you may not be able to execute your compiled file in Windows

- One disadvantage of using a compiling language is that the resulting compiled file is platform-dependent. This implies that if you compile your code using a Mac, you may encounter challenges when attempting to execute the compiled file on a Windows system.

Examples of compiling languages

  • C

  • Go

  • C++

  • Objective-C

Read More
Nicolas Lara Nicolas Lara

Introduction

Hey, My name is Nicolas, I am a Software Engineer at GUSTO and Tech Fellow Manager at CodePath. I am a Mexican American who was born and raised in Monterey County. My family is originally from Sinaloa, Mexico. My family's roots in Monterey County can be traced back to the 1960’s when my grandparents would work summers in the Salinas Valley fields. In those days minimum wage for agricultural workers was ONLY $1.30.

During High School, I also worked in the agriculture industry picking broccoli and cauliflower, cleaning grape vines, and strawberry fields. Upon graduation I began working as a Baker at MP Donuts in Greenfield, CA. After two years of working, I began to think about my passions and decided to continue going to school to pursue a degree in Computer Science.

Once I knew where I wanted my career to head towards, I joined a Computer Science program at Cal State University of Monterey Bay where I could receive my bachelors in 3 years. While attending school at CSUMB I began teaching Web Development to underrepresented students. This helped me realize that one of my passions is giving back to my community.

During the summer of my junior year at college I interned at Gusto. I had the opportunity of having my internship extended due to my excellent work on the project I was working on. I later received a return offer for a full time position and I am currently working on Gusto’s Developer Experience Team. Looking back at my family’s roots I am proud of where I am today and wouldn’t be here without the path they paved for me.

I am also currently working with a nonprofit, CodePath, to help students from underrepresented colleges get into the tech industry. My role at CodePath provides guidance to professors and students leading CodePath’s Android Mobile Development course.

My goal is to share my experience and knowledge to help uplift the next generation of Latinos in the Tech Industry. I will be posting new blogs bi-weekly.

Read More