Full-stack, senior front-end software engineer and embedded systems developer.
A scalpel on the front end, proficient on the back end, with a decade of experience writing software. I enjoy learning new tools, libraries, languages, and technolgies to allow me to test and deploy my ideas faster, while minimizing the potential for bugs so I can spend more time on growing my skillset. I'm a hardware guy at heart so when I'm not writing software, I'm growing my knowledge of computer networking, electronics engineering, and getting up to speed with AI/LLMs.
In short, I am a believer in a growth mindset, open communication, and a hard days work.
Languages
Typescript/Javascript/ES6PythonBashJavaHTMLCSSCSQLKotlin SwiftObjective-CRuby
Database Technologies
PostgresqlMySQLSQLitePsycopgSQLAlchemyDjangoORMMongoDBPrisma
Deployment and CI/CD
GitFlaskAnsibleTerraformJenkinsGithub ActionsNginxGunicorn
CDNs
AWSHerokuGoogle CloudOn-prem
Micro-controllers
ATMEGA128ESP32
Testing Frameworks
JestReact Testing LibraryStorybookPlaywrightSeleniumPuppeteerPytestMochaCypress
Fundamental Concepts
LinuxDesign PatternsData StructuresCommon AlgorithmsNetworkingSystem Architecture
Relevant Work Experience



Seattle Central College
Associate Of Science - Dean's List
2008-2017
While in school, I maintained a respectable gpa while working 40+ hours a week to pay tuition, rent, and other bills. I had to take many breaks to save up money to keep my head above water. Many of my professors at Seattle Central had taught or were teaching at UW as well so I spent close to 5 cumulative years (in terms of credits) there concurrently working on my bachelor's degree at a cheaper tuition rate and smaller class sizes.
Get In Touch!
Send me any questions you may have.
A quick look at my code standards and practices
1
2# A few notes on code and file structure
3 ** I'm a strong believer in type safety and intelisense. **
4 ** I believe all functions (with exceptions) should have high cohesion. **
5 ** Folder structure theory. I believe a folder structure should: **
6 - Be clearly organized.
7 - Be well communicated and documented.
8 - Be modular where appropriate.
9 - Refrain from high coupling.
10 - Have share permissions for each folder.
11 - Be enforced with a linter for larger projects.
12
1
2export const DEBUG = process.env.NODE_ENV !== "production";
3export const BASE_API_URL = "https://someapi.com/api/v1/";
4
1
2export type ResourceTypes = "someApiResource1" | "someApiResource2" | "someApiResource3";
3export type ApiType = {
4 url: string;
5 resource: ResourceTypes;
6 searchParams: Record<string, string>;
7};
8
1
2/**
3 * * Utility function to get the URL string from an object
4 * @param obj - The object containing the URL and search parameters
5 * @returns The URL string with search parameters
6 */
7export const getUrlStringFromObject = (obj: ApiType) => {
8//...
9}
10
11/**
12 * * Utility to fetch data from a search URL
13 * @param searchUrl - The URL string to fetch data from
14 * @returns The data fetched from the URL
15 */
16export const getDataFromSearchUrl = async (searchUrl: string) => {
17 // Return a generic error if the fetch fails
18 try {
19 const response = await fetch(searchUrl, {
20 method: "GET",
21 headers: {
22 "Content-Type": "application/json",
23 Accept: "application/json",
24 Authorization: Bearer${process.env.PUBLIC_API_KEY},
25 },
26 body: JSON.stringify(searchUrl),
27 });
28
29 // Parse the response
30 const data = await response.json();
31 if (!response.ok) {
32 if (DEBUG) console.debug("getListFromSearch data", data);
33 throw new Error(data.error || "Failed to fetch data");
34 }
35 return data.objectIDs;
36 } catch (error) {
37 if (DEBUG) console.error("Error fetching data:", error);
38 throw new Error("Failed to fetch data");
39 }
40};
41
42//...
43
1
2const ListItem = ({ item }: { item: ApiType }) => {
3//...
4};
5
6const ApiPage = () => {
7//...
8}
9
Dev Ops
My experience with CDNs such as AWS Cloudfront and Cloudflare can help get your software up and running globally with low latency and high availability.
Running automation tests before branch merges helps protect against regression issues in production.

Need more than Api apps?
No problem!

For Whom The Bell Tolls
Metallica

Stairway To Heaven
Led Zeppelin

Summertime Sadness
Lana Del Rey

Mitran Di Chhatri
Babbu Maan

Toh Phir Aao
Mustafa Zahid