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.
Senior Engineering
During my computer science studies, I focused on machine learning, artificial intelligence, and front-end development. That foundation led me into professional software engineering and the responsibilities of senior technical work.
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 full-stack greenfield platform development in the creator clipping and affiliate marketing space. I create and maintain the systems that support sales, attribution, settlement, multi-processor payment integrations, refunds, and dispute resolution. The work sits at the intersection of three distinct user groups: brands/vendors, clippers/affiliates, and the end consumers. For this ecosystem to function, these financial and operational systems must serve every party. That requires product design built for sustainability, not just short-term value extraction.
My role includes turning broad product needs into technical designs and breaking those into specific, time bound, actionable, and realistic phases of implementation to meet deadlines and budgets. While I love living with my head in the clouds pondering the future of our prodcut, I come down to earth and do the dirty buisiness of standing up and building out new services.
On a daily basis I move from user-facing requirements back into the API or service to support it, from application behavior to cloud infrastructure to adjust permissions and resources, and from an immediate delivery decision to the maintenance burdens of our existing tech stack.
Technical Range
My experience spans the full product lifecycle and full engineering stack.
I work with product to define expectations, scope, limitations, and future enhancements to shape timelines, rollout strategies, and technical trade-offs. I aim to ship high-impact work without burning down the codebase or blowing the budget to get MVP or a new feature out the door.
I collaborate with design to understand and improve the user experience and bring that knowledge of "Who is using this?", "How are they using this?", and "What will they want next?" all the way into the deepest reaches of the back end. Serving the users is the goal, the engineering is a technical constraint to navigate in achieving that goal.
Once I have complete mental model of a product to weather any changes and injections, I turn the product requirements and design intent into system architecture, API contracts, and data models. I plan and sequence the build into shippable increments a team can execute. Feature requests, injections, and technical tradeoffs are expected and welcomed during this time. The plan, like the code, should be durable and extensible.
I am most useful when a problem crosses boundaries and someone needs to understand the whole system. A system or service in isolation can be designed or debugged quickly, but a requirement or bug that isn't discovered in design, implementation, testing, or deployment is usually the result of something difficult to define that has crossed boundaries and nobody clearly owned.
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. Those goals have pushed me to despise jargon. While those shorthands are useful when an engineer speaks to another engineer in ticket or technical requirements, it bleeds out into other communication and excludes stakeholders in conversations about progress, updates, and blockers. "Explain it to me like I am 5" is a constant theme in my head. I believe that if you can't explain it to a child, you don't demonstrate a firm grasp of the issue.
I contribute through design conversations, code review, mentoring, cross-functional communication, and the most difficult work of nurturing the ability to resolve ambiguity. I want engineers to have enough context to make good decisions independently, while keeping the team aligned on the outcomes that matter. You can captain a ship by asking each person to do the job that they're asked, but I firmly believe sharing the direction gets us there faster, creates buy-in, and unifies the team around a positive goal.
Next Chapter
I am looking for a role where I can teach and learn. I want to be the best and learn from the best while making every person around me better. I want to take meaningful ownership of systems and help shape the way a team builds software. I am drawn to technically complex and novel problems to be solved with pragmatic architecture, clear communication across teams and responsibilities, and continuous improvement.
I want to simplify difficult problems.
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..."