Projects

Selected work across iOS, Android, React Native, and Web3 - mobile apps, browser extensions, and open-source contributions, from a production on-chain wallet to smart-home control and mobile banking.

Mobile applications

Native iOS and Android plus cross-platform React Native - production apps across web3, banking, and commerce.

  • Universal Profiles app icon

    Universal Profiles

    Featured

    LUKSO's official mobile wallet - the phone app for creating and controlling a blockchain identity: hold and send tokens and collectibles, sign in to web3 apps, and manage which apps and devices can act on the user's behalf. This is really two builds of the same product. At the start built as a native iOS app in Swift and SwiftUI. As the wallet needed to expand its feature set we had decided to switch to React Native that would open doors to web3js and similar mature packages. The team moved to React Native for a single cross-platform codebase, where I was one of the main contributors over almost four years of project's existence.

    View details
    React NativeiOSSwiftSwiftUITypeScriptWeb3
    Onboarding - an introduction to creating a Universal ProfileEntry point - create a new Universal Profile or import and restore an existing oneSponsored profile deployment in progress - initiating the profile, adding control systems, transferring controlsProfile home - the dApp grid, profile card, followers and LYX balance on LUKSO TestnetProfiles screen - switch profiles, add one, or create and restore a backup fileController permissions - per-capability toggles for profile data, encrypt, decrypt and signUpdating profile data on-chainTransaction confirmation - a profile update relayed gaslessly, with gas usage and slide-to-confirmAdvanced transaction view - gas price, fee, nonce, hash and the decoded setDataBatch calldataCompleted transaction - decoded profile update rendered as a human-readable intentBuying LYX with a card through an on-ramp inside the in-app dApp browserRestore from backup - selecting which profiles in the backup file to bring backRestore from backup - a profile that cannot be restored because the backup holds no key controlling itRestore from backup - a profile whose device key has no on-chain permissions yet, restorable with a warningRestore in progress - per-profile status as each profile is recoveredRestore complete confirmation

    All rights belong to their respective owners.

  • LUKSO Digital Wardrobe app icon

    LUKSO Digital Wardrobe

    Featured

    Native Android app (Kotlin) for the LUKSO ecosystem combining augmented reality, a social feed, and crypto commerce. Users try on blockchain-owned digital fashion live through the camera - powered by an embedded Unity + MediaPipe AR engine - then buy, post, and sell it on a marketplace built around on-chain identities.

    View details
    AndroidKotlinWeb3ARUnity
    Social feed - a full-screen fashion look (head-to-toe yellow) with likes and shareThe same look made shoppable - a tagged garment (Blush Jogger Trousers) with its priceA Universal Profile page with item and follower counts and a post reelThe profile's post reel - a grid of fashion looks with view and like countsA liked post viewed full-screen, with engagement and the creator's profileThe owner's wardrobe - a grid of owned items with prices and availabilityLiked items - a grid of saved marketplace garments with pricesMarketplace browse - collections, search, and an AR 'Try' button on a productA product page for Multicolour Chunky Sneakers with a Buy Now button and owners listThe product page scrolled to its owners and related itemsA profile's on-chain address shown as a shareable QR codeThe profile's followers list with follow and unfollow controls

    All rights belong to their respective owners.

  • Featured

    Smart-home control app for iDomus - arm security, control lights and climate, run automation scenes, watch live camera feeds, manage user roles, and receive push alarms for events like intrusion, fire, or gas and water leaks. Native iOS and Android, talking to the house controller over gRPC, with VoIP calling built on CallKit (iOS beta feature). My responsibility was to build Android native applications and continue expansion and support of iOS applications for almost 3 years. Early on we split the product into four codebases (a phone and a tablet build per platform); later I consolidated them into one codebase per platform.

    iOSAndroidIoTgRPCCallKitSwiftObjective-CKotlinJavaIFTTT
    C&Mon! by iDomus splash screen with the puzzle-piece logo and the tagline Control & Monitoring intelligent houseSmart home dashboard showing all zones armed with the status of entrance and garage doors, blinds, barrier, lighting, and water and gas leak sensorsSecurity monitoring screen listing motion, glass break, gas leak, and fire sensor states grouped by roomLighting control screen with ceiling, floor, LED, and wall lamps grouped by room and individual on/off togglesLED lighting control with an RGB/white color wheel and R G B Y W preset buttonsLED white-light control with a warm-to-cold color temperature wheel and brightness sliderLED effects screen with Off, Meteor Shower, Gradual Change, and Flash modesDMX channel control with a full color wheel for setting a fixture's colorCombined color and color-temperature control for a group of puck lightsTablet build: a device configuration dialog with a camera preview over the control listTablet build: an AC remote control dialog shown over the smart-home control dashboard

    Some information sourced from apkpure.com, Google Play (phone), Google Play (tablet), App Store (phone), App Store (tablet). All rights belong to their respective owners.

  • MAIBank app icon

    MAIBank

    The official retail mobile banking app for Moldova Agroindbank (MAIB), Moldova's largest bank - native iOS and Android clients, a Java backend, and a shared Protobuf API contract. Customers log in with a PIN or biometry and manage cards, send P2P and card-to-card transfers, pay utility bills, withdraw cash from an ATM without a card, and review their history. I was the main iOS contributor and also built on the shared Protobuf contract and the Java backend - fintech work where correctness and security come first. The app reached 500,000+ installs.

    View details
    iOSAndroidFintechSwiftJavaProtobuf

    All rights belong to their respective owners.

  • Venyoo app icon

    Venyoo

    Mobile companion apps for Venyoo, a website live-chat and lead-capture service - they turn the leads a business's website generates into a phone inbox. Get new leads by push notification, reply to visitors in real time, see what a visitor is typing before they send it, filter and view detailed client info, and save reusable replies for common questions. I built both the iOS and Android clients from the ground up, solo, as native apps.

    View details
    iOSAndroidCRMLive chatSwiftJava
    Venyoo login screen with email and password fields and a red Login buttonNavigation menu with the signed-in user profile and sections for chats and settingsChats list showing active client conversationsAn open chat conversation with a client showing the message threadComposing a reply in a chat with the on-screen keyboard openComposing a message with the template picker for canned responsesMessage composer with quick-reply suggestions above the keyboardQuick replies settings listing saved canned responsesSettings screen with account and chat optionsChat settings with quick answers enabled

    Some information sourced from apkpure.com. All rights belong to their respective owners.

  • Missito app icon

    Missito

    An end-to-end-encrypted mobile messenger - a Signal/WhatsApp-style secure chat app for iOS and Android with phone-number sign-up, one-to-one encrypted conversations, and text, voice-note, photo, video, location, and contact-card messaging over a hybrid MQTT + REST transport. I was a core engineer on both apps, owning the chat UI and client-side messaging layer - the chat screens, per-message-type cells, voice recording and playback, media attachments with upload/download progress, typing indicators, and delivery/read receipts. The app was built in 2017–2018 but never publicly released.

    View details
    iOSAndroidSwiftJavaMessagingE2E Encryption

    All rights belong to their respective owners.

  • Warehouse. Tablet app icon

    Warehouse. Tablet

    An offline-capable Android tablet app for B2B field sales reps at a wholesale/distribution business: pick a client, browse a live warehouse catalog with real-time stock, build an order with package/unit quantity conversion and per-client contract pricing, review the client's account ledger, and submit it to a self-hosted back-office server. I designed and built it solo in Java over about two months, cache-first on a per-user Realm database with incremental delta sync and a durable offline order draft that survives restarts. Built in 2018 and only ever shared internally - never publicly released.

    View details
    AndroidJavaB2BRealmOffline-first

    All rights belong to their respective owners.

  • Networking app for the jewellery trade - a B2B marketplace, online meeting point, and geolocation directory connecting sellers, buyers, jewelers, and retailers of precious stones. Native iOS and Android. I took over a half-built Android codebase here - my first Android project - and it's where I learned firsthand what disciplined architecture is worth.

    AndroidJavaB2BMarketplace
    Bridgem login screen shown on an iPhone with email/password and social sign-inEvents feed listing jewellery industry fairs and award ceremonies with locations and datesMarketplace feed of watch, diamond, and gemstone listings with specifications and pricesSide navigation drawer with profile, settings, and marketplace management optionsDiamond product detail with image carousel, price, requests, and 4C specificationsMember profile showing a contact request, message action, and Bridgem activity

    Some information sourced from apkpure.com, apkcombo.com. All rights belong to their respective owners.

Browser extensions

Production wallet extensions for Chrome and Firefox.

  • Universal Profiles - Browser Extension app icon

    Universal Profiles - Browser Extension

    Featured

    Browser wallet extension for LUKSO Universal Profiles - ERC725-based smart-contract accounts whose access is governed by on-chain key manager permissions rather than a single private key. Decodes each transaction into a human-readable intent and then renders the result inside a sandboxed iframe. Shipped on the Chrome Web Store, on a large TypeScript/Vue codebase. Contributing Sept 2023 → August 2026 - mainly the background controllers and the DDD business-logic layer (encrypted backup/restore, cross-chain profile deployment, relay-service quota), later extracted into shared npm packages reused across the extension and LUKSO's mobile app.

    View details
    Browser ExtensionTypeScriptVue 3Web3Manifest V2 + V3
    Onboarding welcome, a profile with its controllers, and a dApp permission request showing relayer quota usageWallet popup - Connections tab listing the dApps a profile is linked toControllers tab - the extension and other keys that hold partial control of the profilePer-controller permission editor showing granular on-chain permissions in plain languageActivity feed of profile data changes and value transfersTransaction confirmation decoding a smart-contract execution into a human-readable value transferAdvanced transaction view - network, relayer, gas limit and base feeDecoded transaction revealing the underlying execute() calldataEdit profile screen - changing avatar and cover image with IPFS uploadEncrypted backup export - warning shown before downloading the password-protected JSON fileRestore backup - uploading an encrypted profile backup fileOnboarding - create a new Universal Profile or recover an existing one

    All rights belong to their respective owners.

Open source & contributions

Libraries I've published and upstream projects I've contributed to.

  • Open-source Swift package that brings the Coordinator navigation pattern to SwiftUI on iOS 14+ - a way to keep navigation logic out of the screens themselves. I designed and published it in 2021.

    Deprecated - This package predates Apple's own navigation API: SwiftUI 4 (iOS 16, 2022) added NavigationStack, NavigationPath, and navigationDestination(for:), which implement basically the same feature.This package predates Apple's own navigation API: SwiftUI 4 (iOS 16, 2022) added NavigationStack, NavigationPath, and navigationDestination(for:), which implement basically the same feature.SwiftSwiftUIOpen source

    All rights belong to their respective owners.

  • web3swift

    An open-source Swift library for Ethereum and EVM chains - account and key management, ABI encoding and decoding, transaction signing, and JSON-RPC. I contributed to it while building a Swift wallet on top of it: sending fixes and features upstream, and maintaining a fork pinned to a universal-profile branch so the app could track the latest changes ahead of tagged releases. Maintained by the web3swift-team community.

    SwiftEthereumWeb3Open source

    All rights belong to their respective owners.