The 
Digital 
Resume 
Of 
David Scholer 

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.

Seattle

Seattle, WA

Comprehensive Programming Experience 

Languages

Typescript/Javascript/ES6
Python
Bash
Java
HTML
CSS
C
SQL
Kotlin
Swift
Objective-C
Ruby

Database Technologies

Postgresql
MySQL
SQLite
Psycopg
SQLAlchemy
DjangoORM
MongoDB
Prisma

Deployment and CI/CD

Git
Flask
Ansible
Terraform
Jenkins
Github Actions
Nginx
Gunicorn

CDNs

AWS
Heroku
Google Cloud
On-prem

Micro-controllers

ATMEGA128
ESP32

Testing Frameworks

Jest
React Testing Library
Storybook
Playwright
Selenium
Puppeteer
Pytest
Mocha
Cypress

Fundamental Concepts

Linux
Design Patterns
Data Structures
Common Algorithms
Networking
System Architecture

Selected Projects 

Relevant Work Experience

Education 
Seattle Central College
University of Washington
North Seattle College

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. 

Contact 

Get In Touch!

Send me any questions you may have.

A quick look at my code standards and practices

README.md
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
constants.ts
1 2export const DEBUG = process.env.NODE_ENV !== "production"; 3export const BASE_API_URL = "https://someapi.com/api/v1/"; 4
types.ts
1 2export type ResourceTypes = "someApiResource1" | "someApiResource2" | "someApiResource3"; 3export type ApiType = { 4 url: string; 5 resource: ResourceTypes; 6 searchParams: Record<string, string>; 7}; 8
utils.ts
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
ApiPage.tsx
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.

world map

Running automation tests before branch merges helps protect against regression issues in production.

aceternity logo
esc
F1
F2
F3
F4
F5
F6
F7
F8
F8
F10
F11
F12
~`
!1
@2
#3
$4
%5
^6
&7
*8
(9
)0
_
+ =
delete
tab
Q
W
E
R
T
Y
U
I
O
P
{[
}]
|\
caps lock
A
S
D
F
G
H
J
K
L
:;
"'
return
shift
Z
X
C
V
B
N
M
<,
>.
?/
shift
fn
control
option
command
command
option

Need more than Api apps?
No problem!

    For Whom The Bell Tolls

    For Whom The Bell Tolls

    Metallica

    Stairway To Heaven

    Stairway To Heaven

    Led Zeppelin

    Summertime Sadness

    Summertime Sadness

    Lana Del Rey

    Mitran Di Chhatri

    Mitran Di Chhatri

    Babbu Maan

    Toh Phir Aao

    Toh Phir Aao

    Mustafa Zahid

Experience creating custom logos and vector images helps me think like a designer allowing me to work with designers more effectively.

thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
Need a copy? 
Thanks for visiting!