Thirteen rows, one per entry in the chronology data — the nine career and chapter spans plus all four degrees — fixed at mid-viewport left. An amber fill tracks scroll position through the whole chronology; a cyan pulse gives the rail life at rest. Degrees and concurrent chapters are indented off the spine in green rather than inserted into the career sequence.
Every milestone carries a named anchor id. The active row is the last anchor above 50% of the viewport whose id exists in the chronology data — no index arithmetic, so inserting a degree cannot misalign the rail. The opening is its own explicit state. Upward scroll reverses by the same rule instead of undoing a triggered animation.
Employment, founder, education, and product/venture are separate lanes on a 2017–2027 axis. Bars are positioned from dated facts, so overlap is drawn, not implied. The 2021 master's is a point marker because only its completion date is known.
The rail is replaced, not shrunk: a sticky current-era bar with a 2px progress line, and a 48px-row expandable chronology sheet that jumps to any span.
01 · 1290×1270 · frame 1:1, focal 50% / 42%. Near-square source kept near-square; no 4:5 narrowing. Entry: centre aperture.
06 · 5712×4284 · displayed contained, zero crop. The person-to-building scale is the content, so nothing is cut. Entry: curtain wipe.
04 · 4284×5712 · frame 3:4, focal 50% / 62%. Raised arms and legs both inside frame; bottom not cut. Entry: reveals upward from the ground.
02 · 3213×5712 · native ratio kept, focal 50% / 30%. Head and body whole. Entry: image slides inside a fixed aperture.
05 · 4032×3024 · band recomposed in V2.1.1. Stated accurately: the 4:3 source is cropped vertically on wide desktop apertures — a 420px band across the desktop column shows roughly 55–65% of the frame height at 1440 and 1280, so the vertical crop is real. What keeps the subject safe is the constrained focal range (object-position Y 10% → 6% only) together with the top-origin reveal, which hold Teja's full head inside the visible band at reveal entry, reveal midpoint, settled state and reverse-scroll midpoint, at 1280 and 1440, and at 390×844 where the 260px band is very nearly uncropped. V2's 44% → 53% drift cut the head and was rejected.
07 · promoted in V2.1 · min(560px, 45vw) desktop, full content width mobile, object-fit contain so the whole 4:3 group survives, curtain reveal, caption below · truthful collaboration caption, never dominant.
08 wide · desktop only · 4:3 aperture opening from a centre horizon band.
09 vertical · mobile only · 3:4 aperture, same beat. Never adjacent to 08 in the journey.
03 relaxed portrait is held out: the coda already has a human lead and a second portrait would turn it into a gallery.
Depth 1 and 2 are always visible. Depth 3 opens from a 44px button and is reachable by keyboard on every device. No fact lives only in a hover state.
Five and a half years where everything built had to be explainable later.
≈ 6 seconds. Recruiter-speed read.
Most of that work was on AWS, much of it on the data mart team. The organization ran machine learning. I was not building models. I was helping build the data foundation beneath them.
Always on screen, under the scan line.
In April 2017 I joined Hexaware Technologies and was placed on the Fannie Mae account, where I spent five and a half years as a software technology consultant. Hexaware was my employer; Fannie Mae was the environment I worked in… plus the ETL and 2021 master's paragraphs in full.
Opens in place. Verbatim canonical copy, nothing paraphrased upward.
Each is a compression of supplied copy. None adds a metric, a client name, a deployment claim, or a date that is not in the source.
Reads well at leisure, tells a recruiter nothing in 60 seconds, and cannot show that two tracks ran at once.
The canonical copy is the authority, not the layout. Printing it in one reading path breaks the 120-word viewport gate.
Equal cards flatten chronology into a menu. Nothing accumulates, nothing overlaps, nothing converges.
Nine photographs as a mosaic turns evidence into decoration. The coda keeps three, each doing a job.
6px labels and 20px targets. Replaced with a sticky era bar and a 48px-row chronology sheet.
A fashionable narrow band across the portrait removes the person. Every frame in the journey keeps its subject whole.
One easing applied to everything says nothing about the content. Each image entry here is chosen for its narrative role.