Skip to content
1HAX1HAX

Your software works. Changing it shouldn’t be terrifying.

1HAX helps teams modernize the web applications they already depend on: refactoring, interface redesign, tests and safer releases, led hands-on by a senior engineer with 30+ years of production experience.

1hax review ./your-app

  1. scan214k lines · Angular 8 · last major upgrade 2019
  2. NOWcheckout flow has no automated test — every release is a manual gamble
  3. NOW3 packages past end-of-life, one blocks the framework upgrade
  4. LATERbilling module: 4,100-line service, one owner
  5. LATERbuilds take 23 min; half is duplicated work
  6. LEAVEreporting screens: old but stable, low change rate — leave alone
  7. plansprint 1: tests around checkout → upgrade path → first safe release
Illustrative example
  • 30+ yrs writing production code
  • Since 2017 on a national telecom's customer web
  • Toronto · remote across Canada

Sound familiar?

  1. code comment

    // don't touch this. it works. nobody knows why.

    Changes take weeks because nobody trusts the code.

  2. team chat

    “Only Dave understood the billing sync. Dave left in March.”

    Too much of the system lives in one person’s head.

  3. git log

    git commit -m "hotfix: revert hotfix"

    Releases are stressful, so they happen rarely and in big batches.

The software still earns its keep. It has just become expensive to change.

Start with a Software Modernization Review.

A fixed-scope look at one application: its code, its critical user journeys and how it gets released. You get a clear, prioritised plan: what to fix now, what can wait, and what to leave alone.

Scope
One application, up to two critical workflows, and the release path.
Timing
Typically 1–2 weeks once access is in place.
Price
Fixed, agreed before we start.
Yours to keep
Use it with your own team or anyone else.
Discuss a review

1HAX · Modernization Review

Modernization Review — Sample

Sample — illustrative, not client data

1. System map

Browser UIAngular 8 appcheckoutbillingreporting

2. Triage

FindingWhy it mattersCall
Checkout flow has no automated testEvery release is a manual gambleNOW
3 packages past end-of-lifeOne blocks the framework upgradeNOW
Billing module: 4,100-line serviceChanges depend on one personLATER
Builds take 23 minHalf of it is duplicated workLATER
Reporting screensOld but stable, low change rateLEAVE

3. Sprint 1 proposal

  • Automated tests around checkout, run on every pull request
  • Replace the end-of-life package that blocks the framework upgrade
  • First release through the new checks, with a written rollback plan

Acceptance: checkout tests pass on every pull request, and the release ships with a rollback that has been tried once.

What it isn’t

  • Not a free audit
  • Not a full security audit
  • Not a sales pitch for a rewrite

Then we do the work, in small steps.

  1. 01

    Implement

    Agreed sprints with acceptance checks, reviewable pull requests and a rollback plan for every release.

  2. 02

    Automate

    Where the review finds repetitive manual work between systems, we build and monitor the automation.

  3. 03

    Hand over

    Code, documentation and a walkthrough, so your team owns the result — not us.

Writing code got cheap. Knowing which code to write did not.

AI tools now produce code quickly, and we use them. The value is in what surrounds the code: knowing what the system does, what the business needs from it, and being able to explain a decision to the people who approve it.

Each of these skills is easy to hire on its own. Together, in one person accountable for the result, they shorten the path from “we should modernize” to a decision your team can execute.

  1. 01

    Code

    Thirty years of writing and reviewing production code. We can read what a tool produces and know when it is wrong.

    Without it: generated code that nobody on your side can review.

  2. 02

    System

    Years inside large production codebases, where a change in one component shows up as an incident in another.

    Without it: a fix that quietly breaks a different workflow.

  3. 03

    Business

    Founder and CTO experience. We understand what the software is for, who depends on it and what a delay costs.

    Without it: the technically right refactoring at the wrong time.

  4. 04

    Explanation

    Every review ends with a written plan and a walkthrough your management can act on. If we cannot explain a change, we do not make it.

    Without it: a report that never turns into a decision.

Three decades inside production code.

  1. 1993

    First production code

  2. 2003

    Moves to Toronto

  3. 2010

    Founder & CTO, SharingForce

  4. 2017

    Senior consultant, customer web of a major Canadian telecom

  5. 2025

    Launches own AI products: Custom Fairy Tales, Highlight Reel

Featured experience

Contentful system extensions

  • Code refactoring
  • Front-end UI redesign

Andrew’s consulting experience · Canadian telecom

An existing tool. A substantial modernization.

For a large Canadian telecom, Andrew completed a refactoring of legacy Contentful system extensions and a redesign of their front-end interface.

The engagement brought code modernization and UI work together: the same combination 1HAX offers to teams maintaining established web applications.

Professional experience of Andrew Leschinsky. Client materials are not reproduced.

Andrew Leschinsky

Andrew Leschinsky, Principal

Andrew has been writing software professionally since 1993 and has lived in Toronto since 2003. He has been a startup founder and CTO, and since 2017 a senior consultant on the customer-facing web of one of Canada’s largest telecoms. Most of that time was spent inside large production codebases that had become hard to change, which is where the practice comes from.

He leads every engagement personally and still writes code every day. When a project needs additional capacity, 1HAX can bring in contract specialists through his network of development firms. Team composition and availability are agreed for each engagement, under his technical direction.

“I have never been handed a codebase that was beyond saving. I have been handed plenty that were badly frightened of being touched. The difference between the two is a good test suite and a few months of patience, and I find that work genuinely satisfying.”

Based in Toronto. Working with companies in the GTA and remotely across Canada.

A clear decision at every stage.

  1. Step 1Free

    Describe the problem

    A 30-minute introductory call to understand the system, the team and the change you need. No code access is needed for this conversation.

  2. Step 2Fixed price

    Agree the scope

    Set the review boundary, access requirements, deliverables, timeline and price. Confidentiality and tool permissions are agreed here.

  3. Step 3

    Review the findings

    Walk through the evidence and the options. Decide whether to implement, investigate further or leave working components as they are.

  4. Step 4

    Implement & hand over

    For follow-on work, agree milestones, acceptance checks and release responsibilities. Your team receives the code and documentation.

Before we start.

What does it cost?

The Software Modernization Review has a fixed scope and price, agreed before work begins. Implementation is quoted separately once we understand the system. On the introductory call, we discuss the size of the problem and the likely commercial approach.

What do you need to get started?

For the first call, just a description of the system and the problem. For a review, we agree appropriate access to the code, documentation and a working environment, plus time with someone who knows the business workflows. Missing documentation can be part of the review.

Will you recommend a rewrite?

We assess what can be improved within the existing system first. A partial replacement or rewrite may be appropriate when the constraints justify it. The review explains the options, tradeoffs and migration risks so you can make that decision.

What technologies are a good fit?

Our strongest experience is in web applications: Angular, JavaScript and TypeScript, Node.js, PHP, SQL and the delivery infrastructure around them. We confirm the fit for your stack before agreeing an engagement and can bring in specialists when the scope calls for them.

How do you use AI with our code?

We agree permitted tools and data access with you before work begins. AI can assist with code analysis, tests and implementation, subject to those permissions. Engineering decisions, code review and acceptance checks remain part of the delivery process.

Who does the work?

Andrew Leschinsky leads the technical work and is your direct contact. Additional contract specialists can join for an agreed scope. We work remotely, with in-person meetings available in Toronto and the GTA by arrangement.

Tell us about your system.

A few sentences about the application and what makes it hard to change is enough. We reply by email to arrange a free 30-minute introductory call, confirm the fit and agree a useful next step.

A few sentences about the system and the problem are enough. Include the technology and timing if you know them.

Next step: a reply by email.

We use these details to respond to your inquiry. Privacy policy

Or reach us directly

Share with your team

A short overview of the practice, the review and our experience.

Capabilities overview (PDF)