Color Mode
DESIGN and WORK ETHIC built on PASSION for
CODING LIFTING PHILOSOPHY

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

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..."