I'm a cum laude graduate of Portland State University with a B.S. in
Computer Science. As a recovering philosophy major, I took a very
non-traditional route to a degree with stops at two different colleges
and three different majors over the course of 15 years. I have 10 years
of large scale retail management and operations experience that have honed
my communication, mediation, and conflict resolution skills. My current focus
is finding a path into software development by blending my CS skills
with my work experience to improve any team or company that I join.
Professionally, my interests are AI, Machine Learning, Web Development,
and the ethics surrounding barriers to technology accessibility, especially
those of race, income, and disability. I am proficient in
low-level and high-level languages, allowing me to code efficient solutions
to bottlenecks and utilize object-oriented programming to organize large projects.
I like puzzles and the power of statistics to simplify large problems, so
I enjoy the elegance of good datascience and AI algorithms.
When I'm not coding, I love to lift weights and follow strength sports. I can
tell you more than you would ever want or need to know about World's Strongest Man,
powerlifting, and bodybuilding. There is a lot of carryover from the skills that make
a good lifter to the skills that make a good programmer.
My other interests include reading dusty old books by dead philosophers,
spending time with my wife and twin girls, everything involving bicycles, eating great food,
and catching any sleep I can from the sleep deprivation of having twins.
SELECT A TAB BELOW
With almost four years' worth of credits already, I assumed I'd be out with a degree in no time. I WAS VERY WRONG.
I began my college career with a deep interest in what makes individuals tick.
I pursued a degree in psychology for two years and learned the basic
terminology and frameworks to better understand how people develop their
basic beliefs, but the science was too soft for the answers I was seeking.
This coincided with a renewed popularity in the works of
Richard Dawkins
and
E.O. Wilson
as breakthroughs in neuroscience changed our understanding of the
"hardware" that human "software" runs on. I added a major in biology hoping to
learn about the brain as a means of understanding the beings they control.
During an unplanned, low-GPA-related "sabbatical,"
...
I began working in a bookstore. There I found
existentialism
, predicate logic, and ethical philosophy in the quietest, dustiest corners of the store. The way I
thought about and understood everything was fundamentally altered forever.
Predicate logic was the mathematics of language, existentialism
explored "being," and ethics explored the implications of our actions as beings.
Epistemology
scrutinized knowledge,
metaphysics
questioned reality, and philosophy
of religion offered an honest assessment of religious belief. I WAS IN LOVE! I returned
to school as a philosophy major with a passion. Unfortunately, after my first
year of upper division coursework, my university dropped philosophy as a major.
I was left adrift, unsure where to go next. Around this time I read Joseph Campbell's
"The Hero with a Thousand Faces"
and decided it was time to take some version
"The Hero's Journey"
myself.
I worked hard, saved money, and moved to Portland, Oregon. I excelled in my retail
management career, met my hot ass wife, and started looking back to school to move
into the next phase of my life. I could finish my degree in philosophy, but my
career potential was limited to being the most highly educated retail manager alive
and earning a fairly low salary. While doing the practice questions in my logic
textbook as a fun pastime (Nerd Alert!), the seed of an idea began to grow;
I realized computer science would
give me an opportunity to leverage a background in logic, science, and problem-solving
toward a degree with earning potential that wouldn't eventually bore me intellectually.
With almost four years' worth of credits already, I assumed I'd be out with a degree in no
time. I WAS VERY WRONG. It took more than three years of full course loads, summer classes,
and retaking credits to finally earn my degree. I could not have done it without the support
of my wife. As a student in my thirties, I managed to make it through
the "survival of the fittest" approach to teaching lower division CS, the all-nighters to
debug programs, and the calculus/physics that I hadn't touched in more than 10 years.
Despite my long road, I have finally found something I excel at and enjoy. I maintained a place on
the Dean's List and President's List for high honors throughout my time at Portland State.
Finally, after 15 years, I had 280-ish credits, a 3.7 GPA, insight into how people work, arcane
knowledge about
"Being and Time"
, the tools to code anything, and a magic piece of paper that opens the doors to my future.
Maybe, with work, I could be one strong-ass string bean.
I was always an active kid. Growing up in Boise, Idaho, (ACTUAL Boise) we
rode bikes everywhere, hiked the foothills when we were bored, and skiied in the
winter. Home video game consoles were gaining popularity, but those were for rainy
weekends and required renting the games and console. I worked on
my grandmother's ranch over many weekends and summers and learned the true meaning
of hard work. General fitness was just built into my way of life. However, I was
always a string bean no matter how many hay bales I lifted or miles I mountainbiked.
I idolized Schwarzenegger and Stalone, loved Hulk Hogan, and would watch in wonder at
the reruns of World's Strongest Man. I fully accepted that I would not look like them,
but I was stronger than I appeared
...
from ranch work ("farm strong" is real) and
an active lifestyle. Maybe, with work, I could be one strong-ass string bean.
I got my hands on
"Bodybuilding: The Weider Approach"
by Joe Weider. I learned about rep ranges, set ranges, and how to structure workouts
for progression. I would go to the YMCA with my mom to put my new knowledge into
practice. Luckily, the workouts made for mass monsters fueled by anabolics were
just about perfect for a pubescent teen: moderate weight, high reps, no recovery time.
I would go through phases of varying dedication through my teens and twenties, often
motivated by vanity more than anything. Then, I traded the P90-X and bodybuilding
routines for powerlifting. I was obsessed with the tangible progress that powerlifting
offered. Intellectually, there had to be a perfect plan in place
to incrementally increase weight and make projections for hitting the biggest lifts.
Physically, it allowed me to put every bit of myself into something and get measurable
results. Sometimes you give everything you've got to achieve a goal and for one reason
or another things just don't go your way, with powerlifting the work you
put in directly correlates to the things you achieve. The gym became my church.
When nothing else made sense in life, I could always go there and get out what I put in.
In 2017, I had a devastating knee injury leaving me partially paralyzed that required
multiple surgeries and LOTS of physical therapy. Instead of ending my lifting
career, it deepened my love for strength sports. All the tools and mental tricks I
used to improve my weightlifting translated into recovery. I set my goals and worked
toward them incrementally with a focus on doing the best I was capable of safely, without
over-reaching. I went from a 500lb deadlift to carefully lifting an empty bar. I focused
on my form as I re-learned how to walk. I pushed through pain to get my body where I knew
it could go. I can tell you that today I'm stronger than I ever was before and you'd
never guess I have any kind of disability thanks to the mindset developed lifting weights.
Just as they helped me through hardship, the principles for improving in the gym are
helpful in coding. What is practicing algroithms but learning the correct form so you
don't waste energy or break your shit? Are reps and sets not an iterative approach?
Isn't there a waterfall model inherent in deciding a fitness goal, designing a routine,
going to the gym, hitting your goals, then maintining your new fitness level? The
carryover has helped me practice every day, put in my reps, and improve my coding and knowledge to be
the best developer/engineer I can be.
We are better off when we know that we don't know than when we are ignorant to our ignorance.
I can't begin to describe how thankful I am for my dead-end road to being a philosopher.
Three years of examining everything in excruciating detail and questioning everything we
"know" about the world altered me forever. It was extremely tedious, and many times
it felt like my brain had been turned inside out, but once you've pulled back the curtain on
science, knowledge, religion, ethics, being, and time, you see that nothing is a concrete as
we take it to be.
If you've taken a physics course, you may have learned that the only reason we don't
pass right through the ground is not due to earth being "solid" but from the electrostatic force.
In truth, you have never actually physically touched any of the solid objects you interact with.
If you've learned this, you either don't care because it doesn't change anything about your life,
or you start to question other parts of our perception of reality. Philosophy bombards you with
these instances and even if you try to toss them away as semantic games, a pile of reasons that
our reality and objective reality don't quite match grows
...
, festers, and becomes impossible to ignore. However, we are better off when we know that we
don't know than when we are ignorant to our ignorance. In the words of Socrates in
Plato's Republic
:
Although I do not suppose that either of us knows anything really beautiful and good,
I am better off than he is – for he knows nothing, and thinks that he knows. I neither know nor think that I know.
Luckily, philosophy also provides a way to navigate this abyss with logic. You begin to rebuild
what you "know", what you believe, and what you want from the world starting from a priori
to a posteriori, from deductive to inductive, all while understanding your own limitations
in understanding. Statements and sentiments can be examined in a mathematical way with
formal logic to uncover meaning (Sound familiar CS kids? Ever built an interpreter?), achieve sound
reasoning at the very least, and determine "truth" at the very best. .
There is also a beautiful, almost poetic side of philosophy. My favorite book of all time is
Thus Spoke Zarathustra
for precisely this reason. Existential and ethical philosophers pondering the questions that all of us ponder
and creating thought experiments or stories for us to dissociate and examine our own thoughts is as stirring to me
as the best literature ever written. Imagine the same gut-punch or insight that
an extremely apt metaphor provides extended and examined over an entire essay or whole book and you begin to see
the emotional impact good philosophy provides. Some will reach for scripture to reach enlightenment in the face of
life challenges, I reach for the existential philosophy. It may not feel uplifting to be told there is no purpose,
fate, or meaning at first pass, but it is certainly empowering and grounding to believe that existence preceeds essence
and we have the power to make ourselves into something greater, create meaning, and determine our own values.
Without the barriers of fate, we can become anything we choose to be.
This was a chatbot prototype built for Multnomah County in Portland, Oregon. They were experiencing frustrations with the interface provided by ServiceNow and wanted a simple way for employees to submit and check on work orders without becoming experts in the ServiceNow dashboard. The chatbot allowed users to interact with natural language to request services or report outages. Since chatbots can be frustrating, conversation details for current and previous conversations were saved in a user profile to remember common fields for forms and the problem the user is experiencing. This was also intended to reduce the work done by the departments addressing the work orders by checking current tickets before submitting and allowing comments to be added as others exerience similar issues rather than creating duplicate requests.
This project accesses the USGS Earthquake Catalog to get real-time seismic activity around the world. The central goal
for this project was to create a user-friendly and attractive dashboard to analyze and display information from a large
and dynamic dataset. The USGS API is queried every second for alerts and every minute for new seismic activity. Using
Leaflet.js and Chart.js, the location, time, depth, magnitude, and alert information related to each earthquake are displayed
for the user. Any alerts or hazards trigger a notification at the top of the screen as well as a color code in the live earthquake feed.
Mapped earthquakes are given both a color code, a relative marker size, and a ARIA enabled callout so that any visual
disabilities or impairment should not interfere with accessibilty. Activity can be filtered by set timeframes and the user's
location if they allow it to offer options to filter the data that is relevant to the user without filling our form fields.
This project should offer a one-stop-shop for users looking for quick insights, but also offers more in-depth information if
the user needs more details or chooses to explore more.
This was my first foray into front-end design and still bears some of the scars of being hacked at
by a beginner. Fortunately, my skills have developed and this site is being redeployed using React in 2021 so it can get
a full overhaul and remain available to the people who have enjoyed it as a web app while offering a mobile app for a
fully native mobile experience.
This is my fixed-gear bike:
This project is a platform for sharing what I do with everyone without being
constrained by the format of LinkedIn.
The goal was something like a marketing splash page that would give people a feel for who I am and
what my work looks like. It should immerse the visitor while remaining as simple as possible.
Anyone should be able to visit this site, not just engineers, developers, and recruiters.
A large part of this was exercising HTML/CSS and limiting the JavaScript needed. It should
be easy to use, easy to understand, fully accessible to everyone, and impactful in its design.
Before pursuing computer science, I spent 10 years in retail management. I ran large scale retail stores making upwards
of $7M annually, managing up to 100 employees, with duties including operations, logistics, people management, and customer service.
On the other
end of the spectrum, I've run small businesses such as gyms, franchises locations, and mall stores. Between the two I
have learned how to crank up productivity and roll out new projects while maintaining the personal connection that inspires
a team to work for you and clients to trust you. I take pride in seeing my name on Google and Yelp reviews everywhere I've
worked knowing that I was able to protect businesses from operational loss while growing
the customer base through genuine customer focused service.
This experience has given me the communication, mediation, and conflict resolution skills that can benefit any
team or company that I work with. Even when I don't find myself in a leadership position, I am an advocate for
hearing every voice in the room, making sure everyones true position is understood, and no miscommunication can
exist to hurt the team or the project.
As I started to learn front-end, I also learned that most developers do it begrudgingly and it shows.
I mentioned in the previous section that I found this not only unfortunate for the "typical user" in a
user story, but especially unfortunate for those who fall outside the scope of the typical user.
I became obsessed with how design and accessibility make a project usable.
The coolest software on the planet won't gain any traction if it's painful to operate and users shudder at the mention of it.
My interest naturally expanded to accessibility for those with differences and disabilities. A passion for good design turned into a mission for equal access.
Many of us take for granted how UI/UX favors those of us who don't have to use screen readers, operate our mouses or keyboards
differently due to limb differences, or follow complex user experiences with developmental or induced neurodivergence.
Having experienced how civil engineering can make small things more difficult with a physical disability, I would love to offer
design solutions that fit everyone by really considering how others will interact with it so that technology is useable and
available to everyone.
As I become a better full-stack developer, I hope to carry this goal with me to any frameworks or tools
so that the back-end is built to facilitate an accessible front-end, and those tools themselves are accessible to the people using
them. This can clear the barriers to more diverse builders and designers of technology that will in turn lead to an expanded circle
of people considered in their designs. I'm still learning, but I'm on a mission to
improve because more accessible technology benefits everyone.
During my university studies pursuing a degree in computer science, I was heavily focused on machine learning, artificial intelligence,
and front-end development. I've become familiar with data analysis and data processing techniques using Pandas, NumPy, seaborn, Matplotlib, Excel, etc.
in order to prepare data and using Scikit, PyTorch, and TesorFlow to build and train models on that data.
I have focused most of my effort after graduation on front-end accessibility and working down the stack from
the user experience to the back-end in order to become a full-stack developer without losing sight of the people who will
use the applications and software that is being built. It will always be my goal to make the technology that I build
work for everyone and to never consider user differences as minorities or outliers. Design for the "average user" is
useful to "average users", accessible technology is accessible to everyone.
I currently work as a Software Engineer for ClickBank building full-stack solutions for their e-commerce and affiliate marketing
platform. My daily responsibilities range from managing cloud infrastructure resources to designing and implementing front-end
solutions in JSP, React, Angular, and JS/HTML/CSS.