Adam Alakeli

Lead Software Engineer · Ennkar, Inc.

I build regulated financial products end-to-end: a reverse-mortgage app live on iOS and Android, the web platform around it, and the Postgres pricing and eligibility engines they both run on.

Selected work

All work ↗

02

Ennkar Connect

A reverse-mortgage calculator and application app for homeowners, published under Ennkar, Inc.

ExpoReact NativeTypeScriptNativeWindZustand
Role
Lead engineer
Period
Apr 2026 – Present
Status
Live · v1.0.3
Read the case study →
Ennkar Connect reverse-mortgage calculator screen on iOS

03

ennkar.com Platform

Ennkar's public marketing and lead-generation platform, plus internal staff CRM surfaces.

Next.jsReactTypeScriptTailwind CSSPayload CMS
Role
Lead engineer
Period
May 2026 – Present
Status
Live
Read the case study →
ennkar.com homepage hero, showing the reverse-mortgage estimate call to action

04

KÖA

A marketing and events site for an LA events and nightlife brand, with a custom CMS content model.

Next.jsReactTypeScriptSanity CMS
Read the case study →

What I build

01

Financial and rules engines

Loan pricing, eligibility scoring, and jurisdiction rules built as deterministic, testable systems — not client-side spreadsheets in disguise.

  • Unified loan derivation engine shared by the client form, CSV import, and nightly pipelines
  • HECM eligibility scoring and dual-product HECM + jumbo pricing
  • 5,330 seeded HUD PLF factor rows with formula versioning
  • Jurisdiction fee rules across 50 states
  • A custom ESLint plugin that blocks a class of money bug at review time

02

Full-stack product systems

Next.js and Postgres, structured so the database — not an app-server API tier — is the source of truth.

  • Next.js 16 / React 19 on Supabase Postgres
  • Row-Level Security enforced on every public table
  • RPC and Edge Function architecture in place of a general API tier
  • 429 SQL migrations shipped without a rollback incident

03

Mobile applications

Expo and React Native apps taken through store review and release engineering, not just prototypes.

  • Expo / React Native app shipped to the App Store and Google Play
  • EAS Build, Submit, and Update release pipelines
  • Store compliance review passed under the Finance category

04

Data pipelines at scale

Batch systems that ingest messy third-party data and process it reliably at dial-list scale.

  • CSV ingestion with fuzzy field mapping and accuracy scoring
  • Batch eligibility runs benchmarked at 10,000 properties in 17m17s across 130 parallel windows
  • Window claim caps, continuation dedup, and same-run idempotency
  • Retention pruning that cut eligibility-report storage from ~21GB to ~3.5GB

05

Technical SEO and performance

SEO treated as an engineered system with CI gates, not a checklist run once before launch.

  • ~150 location pages across 16 states with 146/150 unique metadata
  • Schema, sitemap, and redirect systems generated from content
  • A CI-integrated SEO program with a persistence gate and circuit breaker

Engineering spotlight

The Ennkar Platform: one mobile app and one web app, both calling a single server-authoritative pricing engine over Postgres.

Ennkar Platform architectureEnnkar Connect (Expo mobile) and ennkar.com (Next.js web) both call one server-authoritative pricing Edge Function over Supabase Postgres with Row-Level Security. Content lives in a separate Payload-on-Neon database with no PII. Scheduled Postgres jobs sweep FRED for interest rates; Twilio Verify and Resend handle SMS and email at the edges.rate sweepSMS OTPemailEnnkar ConnectExpo · React Nativeennkar.comNext.js 16Pricing Edge FunctionDeno · server-authoritativeSupabase PostgresRLS on every public tablePayload CMSContent on Neon — no PIIpg_cron pipelinesRate sweeps, remindersFREDInterest ratesTwilio VerifySMS OTPResendEmail

Pricing is server-side, always

One Edge Function computes every loan number. Neither the mobile app nor the web client ever derives a final price — they render what the server returns, so the two clients can never disagree with each other or with the CRM.

Content and PII live in different databases

Borrower data stays in Supabase behind Row-Level Security. Marketing content lives in Payload on a separate Neon database with no PII at all — a breach or a leaked CMS credential in one system cannot expose the other.

There is no app-server API tier

Both clients call Postgres RPCs and Edge Functions directly. Fewer moving parts than a hand-rolled REST layer, and authorization is enforced once, in the database, rather than re-implemented per endpoint.

Experience

Full resume ↗
  1. Lead Software Engineer · Ennkar, Inc.

    Apr 2026 – Present

    Own the Ennkar Platform monorepo: the Expo mobile app, the Next.js web platform, and the shared Postgres engines that price and qualify loans for both.

    Shipped Ennkar Connect — a reverse-mortgage calculator and application app — to the App Store and Google Play under the Finance category.

    Promoted from below
  2. Software Engineer, Contract — Pulse CRM · Ennkar, Inc.

    Mar 2025 – Apr 2026

    Sole primary engineer on Pulse CRM, an internal CRM for reverse-mortgage loan officers, from early build-out through production scale.

    Wrote 1,429 of the repository's 1,642 commits across 429 SQL migrations and 143 RLS-protected tables.

    Contract → Lead
  3. Full Stack Developer · KÖA

    Apr 2024 – May 2025

    Sole engineer on the public marketing site for an LA events and nightlife brand — the only production project in this history with public source.

    Built a custom Sanity CMS content model for events, artists, and venues, with Mux video galleries.

  4. Undergraduate Research Assistant · Chapman University

    Jul 2022 – Jul 2023

    Wireless sensor-actuator network research in C/C++, analyzing UDP traffic with Wireshark.

B.S., Computer Engineering · Chapman University

2020 – May 2024

Hiring

I'm open to lead and senior engineering roles, particularly on financial systems or products that span mobile and web.

Building something

If you need software built and want to talk about whether I'm the right person for it, tell me what you're trying to do.