Amel Perez Cavallo

Inevitable

A series of events.

Scroll

Act II · Lawrence, Massachusetts

I never had to leave to begin.

First grade to a college degree, without leaving home.

Amel Perez Cavallo in a cap and gown at graduation
Me, in Lawrence.

I grew up in Lawrence. Every grade, from the first one, was here. So was the start of my degree: I began it right at home, at Northern Essex Community College.

Everything that follows happened because this city is where I learned to want things.

Act III · Service

Drawn to service.

I was still in college when I decided to join the Army.

I was drawn to service. I enlisted while I was still a student, and that choice became a thread through everything after it. Years later it ends with an honorable discharge, and with a question: how would I keep serving?

Act IV · Many rooms

Every room taught something.

Sales. Then the work nobody hands you.

Sales

Listening for what a person really needs, and saying what I can do about it.

Day trading

Self-taught. Reading numbers fast, being wrong quickly, and writing down every decision.

Property management

Self-led. Real people, real buildings, and a phone that rings when something breaks.

Self-led, self-taught, one field after another. Each one left a skill I still use every day.

Act V · The arena

Second in North America.

A stretch as a competitive gamer, at the top level of the world.

For a while I competed in Pokémon UNITE at the highest level. My edge was never fast fingers. It was strategy, stats and data: I used them to help teams compete on the world stage, and to reach as high as second place in North America.

That instinct never left. Later I built twisty, a helper for my gaming group's chat. Someone posts the screenshot at the end of a match; the bot reads the scoreboard, works out who won, scores everyone, and turns the season into cards, records and standings. It also remembers what people tell it, and forgets when asked.

A player posts theend-of-match screenshotin the chat, nothing typed The bot reads thescoreboardwith a vision model Every icon is matchedto a reference setso names are never typed Win or loss comes fromthe banner wordnever a colour or a side A person confirmsbefore it countssubmit, then confirm Scores updaterating, standings,records per stat Cards, medals andaccolades drawnposted back to the chat Memoryit remembers what people tell it;anyone can view it or erase it wrong read? correct it every card and record feeds the bot's memory of the season
From a screenshot to a scored result, drawn as built. Nobody types a score. The bot reads the picture, a person confirms it, and the cards and standings follow.
Season standings with the podium, drawn by the bot for made-up players. Demonstration only.
A player card. Role, rating, most-played and a stats web, richer art as a player plays more. Made-up player.
The hall of records. Best of the season and best of all time, per stat. Made-up players.
The season, in numbers. Most and least played, best and worst win rates, the top players, the role split. Made-up season.
How a card earns its art, from the bot's own guide: a plain card first, a hero scene after ten games, a full habitat after twenty-five.
Role emblems and stat symbols, from the guide the bot draws for new players.
Rank frames and reading the card. The same guide, page three.

Act VI · The tower

Short of two years.

A degree in finance. A career in banking and compliance. Then the decision to walk away.

After my degree in finance I began a career in banking and compliance. It was a good career. Just short of two years in, I decided to walk away from it and start consulting on my own.

Act VII · The world

To change the world, see it first.

The Army gave me my first taste of travel. Leaving banking gave me the reason to go.

When I walked away from my career I made myself one promise: if I was going to change the world, I had to see it first. So I went. Miami first, then Japan, then Spain. Cities where the streets and the language were new to me. I came home with a bigger map, and I started building.

Act VIII · The craft

Every skill I could reach.

I started by learning as many skills as I could and making each one part of my craft.

My consulting work began with a simple rule: learn the skill, then make it part of the work. The tools I run it with today came out of that habit.

Riley answers the phone for local businesses, writes down what the caller says as they say it, and remembers them the next time they call. A client vault holds the paperwork for each engagement, behind its own sign-in. open-engine is my task list, and it will not let me call anything done until it is live and proven to work.

Riley
answers, listens, remembers
The vault
one place for the paperwork
The rule
done means live and proven

Act IX · The vacancy

A vacancy in how I serve.

My honorable discharge from the Army left a gap. The City of Lawrence is where I filled it.

My search for knowledge, and the gap my discharge left in how I serve, led me to work for the City of Lawrence. I got to build many tools there. Some are already live and serving the public.

Built for the City of Lawrence (city-owned) · leap.cityoflawrence.com

LEAP outreach

LEAP helps a family in Lawrence find out about free energy upgrades and get connected to the programs that pay for them. The website families sign up on was already there. What I built is everything behind it, in English and Spanish: a to-do list of homes to reach, a map you can draw a walking route on, campaigns for each way of reaching people, a full record of every home, and the handoff that sends each ready family to the program that helps them, once and only once.

Families who signed upread only, never changed City property recordsaddress, heating, size Already sentevery family sent before Check each homeis it ready,or is something missing? Readyname, phone, permission Waitingthe missing piece is named,so one call fixes it Batchsaved as sent Their formfilled exactly Sent to the energy programby email or shared folder,and written down either way The home's recordfill the gap, it moves up readywaiting reads once, and only once Rules: a family sent before is never sent again · a family that said no is never sent · every batch is written down in "Already sent"
The handoff, as built. Three lists feed one check. Ready homes go into a batch, onto the program's own form, and get sent. Homes missing something wait until one call fixes it. Nobody is sent twice.
Languages
English and Spanish
Every choice written down
38 decision notes
Letters
printed with a code for each home
The map. Draw a box or a circle around a group of homes and it becomes a walking route. Running on made-up data: every person and address is invented.
List and map together. Each row shows where a home is in the process and when to follow up. Made-up data.
One home's record. Contact details, where things stand, and every call or visit in one history. Made-up family.
The handoff. Who is going in this batch, who is waiting and why, and nobody is ever sent twice. Made-up data.
Campaigns, one for each way of reaching people, with results per event. Made-up data.
The same screen in Spanish. One switch changes every page. Made-up data.
On a phone, for the walk itself. Made-up data.
The end card of a one-minute video I made for the program, in English and Spanish. Public.

Built for the City of Lawrence (city-owned) · ciapi.vercel.app

CIAPI

A city owns thousands of things: roads, sidewalks, bridges, buildings, pipes. CIAPI puts every one of them on one list and one map, scores how good or bad its condition is, and helps the city decide what to fix first and how to pay for it. It follows the City Engineer's own planning rules and went live on 2 July 2026.

It holds 3,148 real city assets from state map data, shows flood zones and the neighborhoods that need the most help, and gives every inspection a second look before it counts.

Real city assets on the map
3,148
Went live
2 July 2026
Automatic checks
all 422 passed
CIAPI's front page. The map and reports show public city data but only city staff can sign in.

Act X · The work

Done means it's live.

I wrote my first line of code in March 2026. This is what has gone live since.

0projects live
0months
0sales team using it daily
0days to build two products
0city assets on a map

Every number on this page is mine. None of them belongs to a customer, and no customer's information appears anywhere here.

Live · used every day · built for a Massachusetts solar and heating company

Solar 360

A sales team that goes door to door needs one place for everything: the map they knock from, a profile and a card for every rep, an org chart, a leaderboard with ranks and badges, reports, pay, and paperwork that can be signed online. Solar 360 is that place. Each company sees it under its own name, as "their brand 360".

The team uses it every day. About 40 features, built between June and August 2026.

Built
June to August 2026
Features
about 40
Used
every day, by a real team

Badges · earned, never given

Knock the doors, set the real appointments, keep the streak, and the badge comes to you the next time you sign in. Forty-eight of them, bronze to mythic. Earned once, kept forever.

The map, from the state down to the door. Zoomed all the way out, every town the company works is marked and tappable. Closer in, when there are too many doors to draw one by one, every hexagon counts its doors and shades by how many have been knocked, and the purple outline marks the hexagon holding the hottest leads. At street level, one pin per home, coloured by what happened at the door. Demo company, made-up data.
People. A card for every rep: role, whether they are on shift, and their own numbers. This is the demo company, "Demo Co 360": every person and number on it is made up.
One rep's profile. Access, status, tenure, a direct message, and their history underneath. Made-up person.
The org chart. Who reports to whom, as cards you can move. Made-up team.
The ladder. Four rungs, what each one takes, and where every rep stands. Made-up numbers.
In your hands, and on your shelf. Open a badge and turn it over like a coin; it shows what it took, what it pays and how many people hold it. Every rep keeps a shelf. Demo company, made-up data.
Badges. The whole catalog, what each one takes, and how rare it really is, measured from who holds it. Earned once, kept forever. Made-up data.
The schedule. Every appointment and consult on one calendar. Made-up names.
On a phone, where a rep actually uses it. Made-up data.

Open the live sign-in page

Demonstration builds · made-up data · built in three days, 26 to 28 August 2026

Attest + Steward

Two products for city offices, built from the paperwork a city actually runs on. Both run on made-up data behind a banner that says so, so click anything. They share one idea: one signature turns a record into a real PDF with a note of who signed it and when.

Attest is for time and pay: clock in, clock out, and the timecard writes itself. Ask for time off, see how much you have earned, look at your pay stubs, send in an expense, and let a manager check the whole team at once. It never does the math on pay; the city's own accounting system stays in charge of that.

Steward is for grants: a calendar of every report and deadline a grant requires, a ledger of what was promised, spent and paid back, and a clear number for the money the city has spent and is still waiting to get back.

Built in
three days
Attest, signed records. Every signed packet, with who signed it and when. Made-up data.
Attest, time clock. Clock in, clock out, and the timecard writes itself. Made-up data.
Attest, the manager's view. Who has turned in their hours, who has not, and a missed clock-in flagged. Made-up data.
Steward, the finance officer's home. Totals, the money the city is still waiting to get back, and where the books disagree with the accounting system. Made-up data.
Steward, the calendar, built from each grant's own deadlines. Made-up data.
Steward, the ledger. What the accounting system says, what Steward knows, and the difference. Made-up data.

Live · open to anyone

CivicScribe

Public meetings can run three hours. CivicScribe records the meeting, writes down every word with who said it, sums it up in plain language, and puts it online for anyone to read or search. It was built for people who cannot sit through the meeting, or cannot hear it. A real public meeting has already gone through the whole process, start to finish.

Real meetings published
1, start to finish
CivicScribe home. Public page.
A published meeting: a three-hour state energy meeting, with its summary and audio. Public record.
Search every meeting, with each result labelled by who said it and when. Public record.

Act XI · Today

Every road led here.

Six months after my first line of code, I build software for a living. All of it, top to bottom.

A full-stack developer builds the whole thing: the screen you touch, the engine that does the work behind it, the place where the records are kept safe, and the road that carries each change from my desk to your hands. I build every part of that, and I keep it running once it is live.

Lawrence · who I build for The Army · show up and finish Sales · listen before you talk Trading · numbers do not care how you feel Property · small problems grow if you wait The arena · read the data, change the plan Banking · what a record is worth The world · people want the same things The City · build for who needs it most TODAY Programmer. Full-stack developer.
Nothing on the left was wasted. Each one is a piece of how I build now.

Lawrence taught me who I build for. The Army taught me to show up and finish. Sales taught me to listen before I talk. Trading taught me that the numbers do not care how I feel. Property taught me that a small problem left alone becomes a big one. The arena taught me to read the data and change the plan when it is wrong. Banking taught me what a record is worth, and why the rules exist. The world taught me that people everywhere want the same simple things. The City taught me to build for the people who need it most.

By the numbers · counted from the live systems on August 30, 2026 · nothing typed from memory

What is running right now.

Every number below came out of the systems themselves the day this page was made. Made-up demo data was left out of every count.

Solar 360 · built for a Massachusetts solar and heating company

0data points loaded
0records in the platform
0homes on the map
0building permits read
0of 351 Massachusetts cities and towns
0in contracts tracked
0of it installed
0doors knocked and logged
0appointments set
0reps on the roster
0people using it in the last 30 days

twisty · the Discord bot for a Pokémon UNITE community

0people in the server it serves
0match screenshots read
0games scored
0players linked
0people who talk to the bot
0days live, without a break

CIAPI · built for the City of Lawrence (city-owned)

0real city assets on the map
0parcels joined to them
0priority neighborhoods mapped
0kinds of assets, from state map data

LEAP outreach · built for the City of Lawrence (city-owned)

0addresses mapped
0of them homes
0parcels matched
0property codes minted
0outreach campaigns run

CivicScribe · public meetings, made searchable

0words made searchable
0searchable moments
0speakers told apart

Coda

Done means live and proven. Never just written.

None of this was a plan. It was a series of events, and each one made the next one harder to avoid. I did not pick this road. It picked me, one step at a time, and I am glad it did.

A click-through demo with made-up data is available on request.

Amel Perez Cavallo · Lawrence, Massachusetts amelperez98@outlook.com