Maya Tomarchio

Software Designer + Developer

Cincinnati, Ohio.

All projects

Programming

  • JavaScript
  • TypeScript
  • Python
  • Java
  • HTML
  • CSS
  • SQL

Frameworks & libraries

  • React
  • React Native
  • Expo
  • Svelte
  • Astro
  • Framer Motion
  • WebGL

Data & tooling

  • Supabase
  • PostgreSQL
  • Vite
  • GitHub Actions
  • Git

Languages

  • English
  • Spanish (B2)
  • Italian (A2)

Experience

  1. Software Development Intern

    Siemens

    Jan 2025 – Present

    Milford, Ohio

    Global technology company; I work on NX, its CAD/CAM software used by engineers worldwide.

    • Resolved 50+ customer-reported and internal issues in Siemens NX CAD, boosting stability and cutting the defect backlog by 10%.
    • Designed and shipped 3 new internal launch methods for NX, reducing Teamcenter integration setup time by 15% for 100+ engineers.
  2. Research Co-Op

    Feng Chia University

    May – Aug 2024

    Taichung, Taiwan

    Research university; summer co-op in computer networking.

    • Configured network devices and protocols in Cisco Packet Tracer.
    • Analysed, troubleshot and fixed protocol connectivity problems.
  3. Software Development Intern

    Wolters Kluwer

    Jan – May 2024

    Madison, Wisconsin

    Global provider of professional information, software and services.

    • Took part in daily stand-ups, sprint planning, reviews and retrospectives to keep sprints on track.
    • Updated NuGet packages and project code to move the team application to a newer .NET framework.
All projects

My Fruit Worth

Pick all of the fruit growing in your garden.

  • JavaScript
  • HTML Canvas
  • 3D graphics
Title screen of My Fruit Worth, a garden fruit-picking gameOpen My Fruit Worth (new tab)

A short game prototype where the player collects fruit from the garden while practicing quick decision-making and visual recognition. Made for Computer Graphics 5160, with every 3D view projected and drawn by hand.

Play the game

Controls & gameplay

  • Movement: move forward or backward in the direction you are facing, and turn with the Left and Right arrow keys.
  • Interaction: when you are close enough to a fruit, press Spacebar to pick it and put it in your basket.
  • Restart: press R to restart at any time.
  • Graphics: switch between three visual styles with the radio buttons.
  • Winning: a victory screen appears once every fruit is collected; press R to play again.

Technical overview

Each object type in the game (house, bush, fruit) is defined as a set of vertices, edges and faces built from those vertices.

Object instances are created with their own position and scale, then projected with the pinhole camera method: dividing x and y by z to project depth.

Graphics pipeline levels

Level 1

  1. Loop through each object instance, skipping any collected fruit.
  2. Apply positioning, scaling and vertex projection to each model.
  3. Depth sorting: sort from largest to smallest z so geometry furthest from the camera is drawn first and the nearest draws on top.
  4. Rendering: draw faces with HTML5 Canvas: beginPath(), step through the face's vertices with moveTo(), then closePath() and fill().

Level 2

  1. Initialize a 320 × 200 grid.
  2. Loop through all object instances, skipping collected fruit.
  3. Scale, position and project every vertex onto the grid, keeping only points in front of the camera.
  4. Draw each edge from (u₁, v₁), stepping pixel by pixel along x and adding the slope on each step to colour the line.

Level 3

  1. Initialize the grid and skip collected fruit.
  2. Position and scale each object instance and store its projected vertices.
  3. For each object, loop through its visible faces, clipping geometry behind the camera.
  4. Triangle rasterization: find the bounding box of each face's three vertices, then test every pixel with barycentric coordinates to fill only the pixels inside the triangle.

Known issues

  • Collision detection: collisions are not fully working. Walking into a house face head-on is blocked, but approaching at an angle after turning lets the player pass through.

Future improvements

  • Day/night cycle: a setting sun as the game timer, gradually darkening the sky.
  • Weather: dynamic weather and clouds.
  • Basket UI: a basket on screen that fills up as fruit is collected.
  • Social: a daily leaderboard.
All projects

myPoleMagazine

Log moves, track progress, browse inspo.

  • JavaScript
  • Web app
Log-in screen of myPoleMagazineOpen myPoleMagazine (new tab)

A web app for pole dancers to log the moves they are learning, track their progress over time and browse inspiration. It remembers each dancer's choice of light or dark mode.

Open the app
All projects

Cube World Aero

A cube landscape built from scratch in WebGL.

  • WebGL
  • JavaScript
  • Shaders
Cube World Aero: a green cube landscape with a city, windmills and floating clouds under a blue skyOpen Cube World Aero (new tab)

A small WebGL scene written without a 3D library: the geometry, matrices and shading all go straight through the raw WebGL API, wrapped in a glossy Frutiger Aero interface. Tap to blow bubbles and drag to look around.

Open the scene

How it is built

One cube is copied across a grid, moved to its cell and stretched in height, with a colour on each corner. Perspective and look-at matrices place the camera, and the fragment shader blends the corner colours and lights every face.

Levels

  1. Heights and per-vertex colour.
  2. Heights and colours sampled from a height map and a colour map.
  3. Clouds, butterflies and bubbles moving along cubic Bézier curves, each with its own model matrix.

Performance

The whole landscape is one buffer drawn in a single call, so it stays smooth up to tens of thousands of cubes. A live readout shows the grid size, build time and frame rate.

All projects

Anuva Cleaning

Website for a Cincinnati commercial cleaning and facility services company.

  • Gig Work
  • Live
Home page of Anuva, a Cincinnati commercial cleaning company, over a photo of the Cincinnati skylineOpen Anuva Cleaning (new tab)

The website for Anuva, a woman- and minority-owned commercial cleaning and facility services company that has served greater Cincinnati since 2014. It speaks to government, construction, healthcare, education and large-venue clients, and turns visits into quote requests.

Visit the live site

What the site does

  • Leads with the offer: a skyline hero with the headline, a one-line pitch and two actions, Request a quote and View our services.
  • Builds trust fast: a strip of credentials (woman and minority-owned, government contract experience, prevailing-wage capable, fully insured, established 2014) and a panel of certifications.
  • Sorts visitors by industry: government, construction, commercial, healthcare, education, and large venues and events, each with its own short pitch.
  • Lists the services: commercial janitorial, construction cleaning, day porter services, floor care, event and venue cleaning, and disinfecting.

Built for public contracts

A dedicated government contracting section explains that wage determinations and certified payroll are reviewed before every project, which matters to the public-sector buyers the company bids for.

Proof of work

A recent-projects section shows real engagements by sector: six months of hospital cleaning at UC Hospital, two years of ongoing service for StandardAero, event and ongoing cleaning for the Cincinnati Open tennis tournament, and day porter services across seven Sharonville schools.

Pages

Home, Services, Industries, Government contracting, About, and a Request a quote form.

MT