Elvin – Python, React, Typescript, experts in Lemon.io

Elvin

From United States (UTC-7)flag

Full-stack Web Developer|Senior

Elvin – Python, React, Typescript

Elvin is a Senior Full-Stack Engineer with experience since 2007 across fintech, e-commerce, and B2B SaaS analytics. His core stack is TypeScript/Node.js and React, backed by solid Python/Django, PostgreSQL, and AWS experience, with particular strength in payment integrations (Stripe, Adyen). He's shipped open-source infrastructure that stands on its own merits — a zero-dependency JSON-RPC 2.0 library and an Adyen payment provider for Medusa v2 that was vetted and featured by the Medusa core team. He communicates clearly, reasons carefully about architectural tradeoffs, and brings founder-level product thinking from currently co-founding a fintech startup on the technical side.

19 years of commercial experience in
Beauty
Business intelligence
Data analytics
E-commerce
Fintech
Marketplace
Open source
Dev tools
Enterprise software
SaaS
Web development
Software development
Main technologies
Python
4 years
React
5 years
Typescript
5 years
JavaScript
3.5 years
Node.js
4 years
Additional skills
Cloudflare
Tailwind CSS
Zustand
Storybook
React Hook Form
Next.js
Docker
DynamoDB
Jest
Django
AWS
GCP
Django REST
Direct hire
Possible
Ready to get matched with vetted developers fast?
Let’s get started today!

Experience Highlights

Senior Software Engineer
Mar 2026 - Apr 20261 month
Project Overview

An open-source (MIT) JSON-RPC 2.0 client and server for TypeScript with zero runtime dependencies. This library is a compact, auditable protocol core that handles full spec compliance and typed error semantics end-to-end while leaving transport, middleware, and method resolution in the consumer's hands. It targets Node 18+, Deno, Bun, and edge runtimes, ships with 100% enforced test coverage, and anchors the RPC layer of a fintech platform currently in development.

Responsibilities:
  • Designed and shipped a spec-complete JSON-RPC 2.0 client and server in TypeScript with zero runtime dependencies, compatible with Node 18+, Deno, Bun, and edge runtimes.
  • Architected both halves as factory functions over single-function contracts: the server consumes a Resolver and returns a pure async Handler, the client consumes a Transport and returns a unified Dispatcher; the Handler is itself assignable to Transport, so a complete client–server wiring composes in-process, with zero I/O, in a single expression.
  • Defined method dispatch as a single caller-supplied Resolver function, turning namespacing, lazy module loading, authorization gates, and middleware into plain function composition.
  • Engineered errors that stay typed across the network boundary: branded JSON-RPC error codes at the type level, range-checked them at runtime, and rehydrated wire responses into error class instances so instanceof discrimination works on both sides of the wire.
  • Threaded opaque, request-scoped context from the transport boundary into every method invocation — authentication principals, tracing spans, database transactions — without module globals.
  • Wrote 185 tests pinning the spec's drift-prone corners (notification-reply suppression, mixed-batch response shapes, request/response id correlation, empty-batch handling) and enforced 100% branch, function, line, and statement coverage — over the examples as well as the source — in the npm publish gate.
  • Authored 12 self-contained integration examples (HTTP, WebSocket, middleware, namespace routing, shared end-to-end types), each type-checked and exercised by its own runtime test.
Project Tech stack:
Typescript
Node.js
RPC
npm
Git
GitHub
Unit testing
Integration Testing
API Testing
Contract Testing
Functional Testing
Regression testing
Senior Software Engineer
Sep 2025 - Feb 20265 months
Project Overview

An open-source Adyen payment provider for the Medusa v2 commerce platform. Vetted by the Medusa core team, it was featured in the official "New Integrations" blog post and listed in the Medusa Integrations Directory alongside the first-party Stripe and PayPal integrations.

Responsibilities:
  • Designed and built a production-grade Adyen payment integration for Medusa v2.
  • Built the webhook reconciliation engine as a Medusa workflow, bridging the structural incompatibility between Medusa's synchronous payment workflows and Adyen's asynchronous, webhook-driven model.
  • Implemented Adyen's Advanced flow end-to-end — server-side payment session creation, authorization, capture, cancellation, and refund — with configurable retry handling for transient API failures, frontend-agnostic across Adyen Web Components, Drop-in, and custom integrations.
  • Added authenticated, schema-validated store API routes for shopper stored-payment-method retrieval and payment-session updates, plus tokenization support via configurable shopper-interaction and recurring-processing models.
  • Wrote 71 unit and integration tests running the provider and webhook workflows against a real Medusa test server, with the Adyen API mocked via nock and an optional live-endpoint mode against Adyen's test environment.
  • Built a full reference implementation pair — a Medusa store and a Next.js storefront with Adyen Drop-in wired into checkout — used for manual end-to-end testing and as an integration guide for adopters.
  • Earned the Medusa core team's approval in their monthly vetting cycle; the plugin was featured in the official "New Integrations Mar'26" blog post as one of eight community integrations that month and listed in the Medusa Integrations Directory alongside Stripe and PayPal.
Project Tech stack:
Typescript
Node.js
REST API
Webhooks
Jest
Next.js
npm
Git
GitHub
React
Integration Testing
API Testing
Contract Testing
Functional Testing
Unit testing
Senior Software Engineer
Feb 2024 - Dec 202410 months
Project Overview

The data formatting layer of an advanced data analytics platform's frontend: a TypeScript library that turns raw warehouse values — numbers, currencies, percentages, booleans, timestamps, durations — into display-ready strings for every data surface of the product. A single factory maps 28 named formats to composable, null-safe formatter functions, with locale-aware numbers built on the Intl API and timezone-correct dates on date-fns. It renders the values shown in the platform's customer journey views, metric plots, tables, and reports.

Responsibilities:
  • Designed and built the data formatting library for analytics frontend: a factory mapping 28 named formats — numbers, currencies, percentages, ordinals, booleans, strings, dates, and durations — to composable, null-safe formatter functions.
  • Implemented locale-aware numeric formatting on the Intl API: currency with configurable ISO codes, compact notation with significant-digit control, percentages, plural-rules-driven ordinals, and ticker variants that prefix metric deltas with direction arrows.
  • Built timezone-correct date handling on date-fns and date-fns-tz that detects UTC-encoded warehouse timestamps and adjusts them to the viewer's timezone and locale, while formatting already-localized dates as given.
  • Composed relative-time and duration displays — calendar-component durations derived from raw seconds through months, "distance to now" phrasing, and combined "date • distance" formats for feeds and tables.
  • Guarded every formatter with shared option defaults and null handling, so call sites render missing data as a typographic placeholder instead of branching on nulls.
  • Wrote 60 Jest unit tests pinning exact output strings for the numeric and temporal formatters; 21 modules across customer journey views, metric plots, tables, date inputs, and reports render their data through the library.
Project Tech stack:
Typescript
Lodash.js
Jest
Git
Unit testing
Senior Software Engineer
Feb 2024 - Dec 202410 months
Project Overview

The foundational component layer of an advanced data analytics platform's frontend: 44 reusable UI primitive families — from buttons and form controls to dialogs, tables, and app layout — that define the product's visual styling rules and keep its UX consistent. Each primitive is self-contained, builds accessible behavior on Headless UI, and composes Tailwind class recipes behind a deliberately constrained prop surface. The library ships with 52 Storybook story files and a documented architecture guide, and 85 modules across the product build on it.

Responsibilities:
  • Developed the UI primitives library of Narrator's frontend: 44 self-contained component families — buttons, forms, dialogs, dropdowns, tables, navigation, and layout — that define the product's visual styling rules; 85 modules across the product build on them.
  • Architected the layer for consistency by design: primitives depend only on themselves and third-party libraries and expose a deliberately constrained visual-prop surface, so styling decisions live in the components rather than at call sites.
  • Built accessible interaction on Headless UI with Tailwind class recipes composed via clsx — per-variant style and size matrices (solid/outline/plain × rectangle/pill/circle/icon) — including touch-target expansion and screen-reader labels for icon-only controls.
  • Standardized compound-component families — Dialog with Actions/Body/Description/Title, Text with Code/Strong/TextLink, shared Options powering Combobox, Dropdown, and Listbox — so features compose consistent parts instead of restyling raw elements.
  • Documented the architecture in a maintained README and a _TemplateComponent scaffold that prescribes each primitive's file structure: public index, one component per file, co-located stories.
  • Integrated Storybook 8 with 52 story files serving as integration examples, UI/UX documentation, and the library's visual-testing surface.
Project Tech stack:
Typescript
React
Tailwind CSS
Storybook
Next.js
Git
GitHub
Senior Software Engineer
Feb 2024 - Dec 202410 months
Project Overview

The typed data architecture of an advanced data analytics platform's frontend and the AI chat experience built on it. A generic HTTP client wraps the platform's backend API — type-parameterized request functions with token-refreshing auth, US/EU datacenter routing, structured API errors, and a server-sent-events streaming mode — and typed domain stores build on it: TypeScript interfaces mirroring backend payloads, a generic CRUD repository, and Zustand state with immutable updates. The AI chat rides this full stack, streaming assistant replies chunk-by-chunk into the conversation with typed renderers for every message kind.

Responsibilities:
  • Refactored the frontend's API layer over the Mavis backend into five generic request functions (get/post/put/patch/delete) that type both payload and response, inject cached, expiry-checked auth tokens, route each call to US or EU datacenters, normalize responses to camelCase at a single boundary, and raise structured API errors.
  • Engineered type-safe domain stores for nine domains — chats, datasets, journeys, reports, tables, activities, companies, notifications, users — with per-domain TypeScript interfaces that mirror backend payloads, enforcing API contracts at compile time; 167 modules across the product consume them.
  • Led the development of the AI chat components: dedicated renderers for every message kind — text, assistant replies with suggestions, datasets, customer journeys, errors — plus prompt form, suggestions, search, and feedback voting wired to TanStack Query.
  • Streamed assistant replies into the conversation progressively: each SSE chunk is parsed and upserted into the chat store as it arrives, and favorite/feedback actions update state optimistically ahead of the network round-trip.
Project Tech stack:
Typescript
React
Tailwind CSS
React Hooks
React Hook Form
React Query
Zustand
Next.js
Jest
Git
GitHub
Storybook
REST API
Software Engineer / Senior Software Engineer
May 2021 - Jul 20232 years 2 months
Project Overview

A critical compliance fix on an online marketplace for beauty and wellness professionals: vendors could not accept Stripe's updated Terms of Service through the platform, and past Stripe's acceptance deadline payouts would have stopped for nearly all vendors on the platform. The project brought the platform into compliance with the updated TOS, keeping vendor payouts uninterrupted.

Responsibilities:
  • Led the project to resolve a critical payment issue threatening payouts for nearly all platform vendors: the platform could not surface Stripe's updated Terms of Service for vendor acceptance, with a hard payout-suspension deadline approaching.
  • Worked directly with Stripe support and internal stakeholders to pin down Stripe's updated requirements and align them with the platform's payment flows.
  • Traced the root cause through the existing payment codebase, then refactored the integration and adjusted the affected flows so vendors could accept the TOS on the platform.
  • Verified the fix with a rigorous testing pass, bringing the platform into compliance and averting the payout disruption.
Project Tech stack:
Python
Django
Django REST
MySQL
Stripe API
REST API
pytest
Integration Testing
Manual Testing
Software Engineer / Senior Software Engineer
May 2021 - Jul 20232 years 2 months
Project Overview

Modernization of the message-delivery data pipeline on an online marketplace for beauty and wellness professionals. Booking notifications were moving from hard-coded SMS templates on the deprecated Twilio API to a new flow of Segment events feeding Braze — but the new flow carried significant technical debt. The project defined a comprehensive new data schema with the Data Team and refactored the Segment event ETL functions around it, so the Marketing Team could change multichannel communication templates in Braze without engineering involvement.

Responsibilities:
  • Uncovered significant technical debt in the platform's new message-delivery flow — Segment events feeding Braze — while wiring booking SMS notifications to it, and expanded the project's scope to fix the debt at its source rather than build on it.
  • Partnered with the Data Team to define a new, clean, and comprehensive schema for the event data the platform sends to Segment.
  • Refactored all data extraction and transformation functions behind the Segment event tasks to maintain the new schema, laying the groundwork for retiring the deprecated Twilio-based delivery flow.
  • Enabled the Marketing Team to create and modify multichannel communication templates in Braze autonomously — independent of engineering — while giving the Data Team richer, cleaner event data for analysis.
Project Tech stack:
Python
ETL
Twilio API
Django
MySQL
pytest
Integration Testing
Manual Testing
Software Engineer / Senior Software Engineer
May 2021 - Jul 20232 years 2 months
Project Overview

New backend payment endpoints on an online marketplace for beauty and wellness professionals that let the platform charge vendor fees directly to a credit card — expanding revenue collection beyond booking transactions. The endpoints simplified how vendors settle platform fees and opened an additional revenue path for the business.

Responsibilities:
  • Led the development and deployment of new backend endpoints for charging vendor fees directly to credit cards, expanding the platform's revenue collection beyond booking transactions.
  • Designed and coded the endpoints and integrated secure payment processing for the direct charges.
  • Simplified fee collection for vendors with a flexible, straightforward way to settle platform fees, improving the vendor payment experience.
Project Tech stack:
Python
Django
Django REST
MySQL
Stripe API
REST API
pytest
Integration Testing
Manual Testing

Languages

English
Advanced

Hire Elvin or someone with similar qualifications in days
All developers are ready for interview and are are just waiting for your requestdream dev illustration
Copyright © 2026 lemon.io. All rights reserved.