JOHN LEWIS
Let Me Introduce Myself
I build software with the end user, the business, and long-term maintainability in mind. I do not code for complexity's sake; I solve problems through code. My work spans front-end and back-end development, cloud infrastructure, APIs, and the decisions that turn technical systems into useful products.
I'm a software engineer who took a nontraditional route through psychology, philosophy, and 10 years of large-scale retail management before earning a cum laude B.S. in Computer Science. That background gave me more than technical knowledge. It taught me how to understand people, simplify tangled systems, make decisions under pressure, communicate across roles, resolve conflict, and lead change.
Biography
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.
The Engineer I Became
As I moved from learning software development into practicing it professionally, I became convinced that good design and clear systems are engineering concerns, not finishing touches. The most capable software in the world will not create value if people cannot understand or use it.
My focus became the practical relationship between product decisions, technical systems, and the people responsible for operating them. I care about interfaces that communicate clearly, systems that are easy to maintain, and engineering choices that hold up beyond the first release.
That perspective shapes how I evaluate technical and design decisions. I look for unnecessary complexity, unclear ownership, and friction that can be removed for users and teams alike.
From Intern To Senior Engineer
During my computer science studies, I focused on machine learning, artificial intelligence, and front-end development. That foundation helped me move from internship into professional software engineering and then through the responsibilities of increasingly senior roles.
In five years, I moved from intern to Senior Software Engineer. I built breadth across front-end development, back-end services, cloud infrastructure, and delivery while keeping product outcomes and operational reality in view. Senior engineering, to me, is the ability to make sound technical decisions, explain tradeoffs clearly, and help a team solve the right problem rather than simply produce more code.
I currently work as a Senior Software Engineer for ClickBank, building full-stack solutions for its e-commerce and affiliate marketing platform. My work ranges from managing cloud infrastructure to designing and implementing full-stack solutions with React, JavaScript, HTML, and CSS. I am now looking for a team where I can contribute at that level while continuing to grow the people, systems, and products around me.
Want to Know More?
CHOOSE A CHAPTER
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, I returned to school to finish what I had started. A degree in philosophy would have brought me back to the questions I loved, but computer science let me combine logic, science, and problem-solving with a career that could keep challenging 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.
I used to think that meant practicing algorithms like doing reps, but honestly? I hate algorithms and LeetCode style challenges. The real parallel is the discipline of making a plan, committing to it, evaluating the results, and adjusting the next decision. Lifting consistently and progressing over time produces results; so does making thoughtful design and architecture decisions, revisiting their consequences, and carrying what I learn into the next iteration. That is the practice I bring to engineering every day.
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.
EXPERIENCE
Current Scope
I work on greenfield platform development and the systems that support scheduled financial workflows, movement of money, and dispute handling. The work sits at the intersection of product requirements, application behavior, integrations, infrastructure, and operational reliability.
My scope includes turning broad product needs into technical direction, helping define system boundaries, building and evolving full-stack capabilities, and keeping the surrounding delivery and operational concerns in view. The specific products and implementation details are company confidential; the engineering problems are familiar ones: correctness, reliability, maintainability, clear ownership, and steady delivery under real constraints.
I work best at the boundaries between teams and layers of a system. I can move from a user-facing requirement to an API or service design, from application behavior to cloud infrastructure, and from an immediate delivery decision to the maintenance burden it may create later.
Technical Range
My work spans full-stack product development, cloud infrastructure, APIs, integrations, and the operational concerns that keep software dependable after it ships. I have worked across systems that support financial workflows, scheduled processing, movement of money, and dispute handling without exposing internal product details or implementation specifics.
That range lets me move between customer-facing behavior, application code, service boundaries, infrastructure, and delivery practices. I am most useful when a problem crosses those boundaries and someone needs to understand the whole system rather than optimize one layer in isolation.
Technical Responsibilities
I contribute to architecture and system design, translate ambiguous requirements into workable plans, and make tradeoffs between delivery speed, simplicity, reliability, and long-term maintenance. I work across the stack when needed, from user-facing applications and APIs to cloud resources and deployment concerns.
I try to leave systems easier to understand and operate than I found them. That means reducing unnecessary complexity, clarifying ownership, documenting decisions, and choosing solutions that a team can support after the original author has moved on.
Technical Leadership
My leadership is grounded in making technical decisions understandable. I help teams clarify the problem, identify the important constraints, compare options, and commit to a direction without pretending every decision has a perfect answer.
I contribute through design conversations, code review, mentoring, cross-functional communication, and the steady work of resolving ambiguity. I want engineers to have enough context to make good decisions independently, while keeping the team aligned on the outcomes that matter.
Next Chapter
I am looking for a role where I can take meaningful ownership of systems and help shape the way a team builds and operates software. I am drawn to technically serious environments that value clear thinking, pragmatic architecture, useful communication, and continuous improvement over complexity for its own sake.
TOOLKIT
Technical Leadership
- Technical leadership and end-to-end ownership
- Architecture and system design
- Technical strategy and roadmap contribution
- Design reviews and architecture decision records
- Tradeoff analysis and engineering judgment
- Technical debt reduction and incremental modernization
- Mentoring, coaching, and raising engineering quality
- Cross-functional collaboration with product, design, and operations
- Clear technical communication for both engineering and non-engineering audiences
Application Engineering
- Full-stack software development
- Front-end architecture and user-facing application design
- Back-end services, APIs, and integrations
- Object-oriented design and maintainable codebases
- Domain modeling and simplifying complex business logic
- Performance, reliability, and maintainability improvements
- Testing strategy, code review, and engineering standards
- Pragmatic delivery under real-world constraints
Cloud And Operations
- Cloud infrastructure and platform resources
- Deployment pipelines and release practices
- Docker and Kubernetes
- Infrastructure as code with Terraform
- Operational ownership and production support
- Incident investigation and root-cause analysis
- Observability, reliability, and sustainable operations
- Balancing delivery speed with long-term system health
Languages And Frameworks
- Java, JavaScript, Python, SQL, HTML, and CSS
- React, Spring/WebFlux/Reactor, Node.js, and API development
- GraphQL and REST-style integrations
- AWS, Azure, and Google Cloud resources
Data And Intelligence
- Data analysis and data processing
- Machine learning and AI foundations
- Pandas, NumPy, Matplotlib, and seaborn
- PyTorch and TensorFlow
- Translating complex data into useful product decisions
Working Style
- Simplifying systems instead of rewarding unnecessary complexity
- Making decisions, measuring results, and revisiting assumptions
- Connecting technical implementation to customer and business value
- Leading through ambiguity and incomplete information
- Building alignment across teams and resolving conflict constructively
- Learning quickly when the problem requires unfamiliar technology
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..."