JOHN LEWIS
Let Me Introduce Myself
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 data science 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.
Want to Know More?
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 college with a deep interest in what makes individuals tick. I pursued psychology for two years and learned frameworks for understanding how people develop their beliefs, but the science was too soft for the answers I was seeking. I added biology, hoping to understand the brain as the hardware that human software runs on.
During an unplanned, low-GPA-related sabbatical, I began working in a bookstore. In its quietest, dustiest corners I found existentialism, predicate logic, and ethical philosophy. The way I understood everything changed. I returned to school as a philosophy major, but my university later dropped philosophy as a major.
I worked hard, saved money, and moved to Portland, Oregon. After building a successful retail management career and starting a family, I realized computer science would let me combine logic, science, and problem-solving with a career that would continue to challenge me intellectually.
I expected my existing credits to make the degree quick. I was very wrong. It took more than three years of full course loads, summer classes, and retaken credits. I made it through calculus, physics, all-nighters, and lower-division CS courses while maintaining places on the Dean's List and President's List. After 15 years, I earned my degree, a 3.7 GPA, and the tools to build the next chapter of my career.
Maybe, with work, I could be one strong-ass string bean.
I was always an active kid. Growing up in Boise, Idaho, we rode bikes everywhere, hiked the foothills, skied in winter, and worked on my grandmother's ranch. General fitness was part of life, but I was always a string bean no matter how many hay bales I lifted or miles I rode.
I idolized Schwarzenegger, Stallone, Hulk Hogan, and the athletes on World's Strongest Man. I found Bodybuilding: The Weider Approach and learned how to structure workouts for progression. Through my teens and twenties I went through phases of dedication, eventually trading bodybuilding routines for powerlifting and its tangible, measurable progress.
In 2017, a devastating knee injury left me partially paralyzed and required multiple surgeries and extensive physical therapy. Instead of ending my lifting career, recovery deepened my love for strength sports. I went from a 500-pound deadlift to carefully lifting an empty bar, rebuilding my form and learning to walk again. Today I am stronger than before, and the mindset developed through lifting continues to shape how I approach coding.
Practicing algorithms is like learning correct form. Reps and sets are an iterative approach, and every improvement comes from focused practice, feedback, and a willingness to adjust. The carryover helps me show up every day, put in my reps, and improve.
We are better off when we know that we don't know than when we are ignorant to our ignorance.
Three years of examining everything in excruciating detail changed me permanently. Once you pull back the curtain on science, knowledge, religion, ethics, being, and time, you realize that very little is as concrete as we assume.
Philosophy repeatedly challenges our perception of reality. Even when an example seems like a semantic game, the accumulation of questions becomes impossible to ignore. We are better off knowing that we do not know than being ignorant of our ignorance.
Philosophy also provides a way to navigate that uncertainty with logic. We rebuild what we know, believe, and want from first principles, moving from a priori to a posteriori, and from deductive to inductive reasoning while understanding our own limitations. Statements can be examined formally to uncover meaning and improve the quality of our conclusions.
There is also a poetic side to philosophy. Existential and ethical writers create thought experiments and stories that let us examine our own lives. I find it empowering to believe that existence precedes essence: without the barriers of fate, we can create meaning and determine our own values.
PROJECTS
Seismic Dashboard
--> See Source Code <--
This project accesses the USGS Earthquake Catalog to display real-time seismic activity around the world. The goal was a user-friendly dashboard for exploring a large, dynamic dataset.
The USGS API provides alerts and new activity, while Leaflet.js and Chart.js display each earthquake's location, time, depth, magnitude, and alert status. Filters support timeframes and, with permission, the user's location. Color, marker size, and ARIA-enabled callouts help make the feed useful to people with different visual needs.
It was my first substantial front-end project and is intentionally a record of an early stage in my development. Its next iteration was planned as a React rebuild with a mobile experience.
Goals
- Build a single-page dashboard
- Access and process a large dataset through APIs
- Explore interactive maps
- Include interactive charts and graphs
- Support limb-different and visually impaired users
- Make every screen size feel native
Stack
HTML/CSS, Bootstrap, AJAX, Leaflet.js, Chart.js, Moment.js, and the USGS API.
This Site!
--> See Source Code <--
This project is a platform for sharing what I do without being constrained by the format of LinkedIn. The goal is a personal introduction that immerses visitors while remaining simple enough for anyone to use.
The site is like a fixed-gear bicycle: stylish, distinctive, purpose-built, and stripped of parts that do not serve the ride. Building it has been an exercise in HTML, CSS, accessibility, and keeping the JavaScript deliberately small.
This site is built with HTML, CSS, JavaScript, Eleventy, Markdown, and Bootstrap. The current focus is keeping the experience accessible, responsive, and easy to update without putting content back into the layout template.
EXPERIENCE
Another Life
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.
At the other end of the spectrum, I ran small businesses such as gyms, franchise locations, and mall stores. Between the two, I learned how to increase 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 protected businesses from operational loss while growing the customer base through genuine customer-focused service.
This experience gave me communication, mediation, and conflict-resolution skills that benefit any team or company I work with. Even when I am not in a leadership position, I advocate for hearing every voice in the room, making sure everyone's position is understood and preventing miscommunication from hurting the team or project.
A Realization
As I started learning front-end development, I also learned that many developers approach it begrudgingly, and it shows. I became fascinated by how design and accessibility make a project usable. The coolest software on the planet will not gain traction if it is painful to operate.
My interest expanded to accessibility for people with differences and disabilities. A passion for good design became a mission for equal access. Many of us take for granted how UI/UX favors people who do not use screen readers, operate a mouse or keyboard differently, or navigate complex experiences with developmental or induced neurodivergence.
Having experienced how civil engineering can make small things more difficult with a physical disability, I want to offer design solutions that fit everyone. As I become a better full-stack developer, I hope to carry this goal into every framework and tool so the back end facilitates an accessible front end. More accessible technology benefits everyone.
A New Career
During my computer science studies, I focused on machine learning, artificial intelligence, and front-end development. I became familiar with data analysis and processing using Pandas, NumPy, seaborn, Matplotlib, and Excel, along with Scikit-learn, PyTorch, and TensorFlow for building and training models.
After graduation, I focused on front-end accessibility and worked down the stack toward full-stack development without losing sight of the people who use the software. I want the technology I build to work for everyone rather than treating user differences as edge cases.
I currently work as a Software Engineer for ClickBank, building full-stack solutions for its e-commerce and affiliate marketing platform. My responsibilities range from managing cloud infrastructure to designing and implementing front-end solutions in JSP, React, Angular, and JavaScript, HTML, and CSS.
SKILLS
General Skills
- Just-in-time learning
- Communication, mediation, and conflict resolution
- Management and leadership
- Object-oriented programming
- Front-end design
- Accessibility
- Simplifying and streamlining complex solutions
- Data analysis
- Basic machine learning and AI
Languages
Currently Working In
Java, JavaScript, Python, CSS, HTML, and SQL/MySQL.
Familiar Or Experienced In
C, C++, and C#.
Tools, Frameworks, And Environments
Currently Working With
React, Node.js, Docker, Kubernetes, Spring/Webflux/Reactor, APIs/GraphQL, AWS, Azure, Google Cloud, Terraform, Mac, and Linux.
Familiar Or Experienced With
Pandas, PyTorch, TensorFlow, terminal/bash, and Windows.
ONE FINAL WORD
Even stumbling forward is progress.
We ARE headed toward being something greater, despite our setbacks,
as long as we continue to seek being something greater.
In the words of Zarathustra...
"[Humanity] is a rope stretched between the animal and the Ubermensch (advanced being)—a rope over an abyss.
A dangerous crossing, a dangerous wayfaring, a dangerous looking-back, a dangerous trembling and halting.
What is great in [humanity] is that it is a bridge and not a goal...
I love [those] who liveth in order to know, and seeketh to know in order that the Ubermensch may hereafter live."