Music Industry MVP (React, Redux, Node.js, cPanel hosting)
Used React (w/ hooks) to create Songwriter and Publisher / Producer dashboards - each with distinct functions to effectively submit, listen, curate, filter and audition user-submitted Tracks. React useState, useReducer calls and Redux store used with robust forms to handle deep validation and data sanitation, and manage dozens of data-tags per Track. Bootstrap Layout extended with CSS Modules for responsive and intuitive UI. Optimizations: used React.lazy and Suspense to implement route-based code splitting; with React.PureComponent and eliminating render-blocking resources for nearly a 45% time reduction to First Contentful Paint and Time to Interactive. Managed: Defined projectās tech stack and MVP scope in discussions with non-technical founders - managed all feature deadlines, update meetings and showcases against given timeline. Transformed conversational ideas and base SVG mockups into fully realized, functional MVP.
New Media Agency (Wordpress, Wix, Canva, JS)
Handled a wide scope of tasks; product and inventory management for multiple e-commerce stores using Shopify, WooCommerce and other third-party WordPress plugin solutions, custom code for Wix and WordPress websites for client-specific layouts and analytics management, and media integration with Vimeo and Dropbox. Wrote custom JS scripts for - automating Wix product listings, web-scraping and parsing thousands of organizations contact details, automated media imports and Google Sheets data management sourced from a large (15k+) contacts database.
eat with aruna (Next.js, Sanity.io, Magic.link, GROQ, SCSS)
Built with Next.js, uses static site generation for all pages (except authentication) with minimal data fetching, and viewport preloading for a fast and responsive site. Asynchronous recipe and ingredient data fetched through GROQ queries, with further data manipulation done client side leading to nearly non-existent loading times and a near-perfect Lighthouse score . Sanity.io used as headless CMS, with a customized Sanity Studio application used as a simplified data entry point, schema validation to ensure data consistency and a responsive asset pipeline to only load necessary images and respective sizing. Basic and custom React hooks used across the application - components and pages have multiple useState & useEffect calls to manage and pass data in tandem with passed props, and custom hooks written for authentication and email validations. useRef, useCallback, and useReducer hooks used for optimizations as necessary. CSS Modules used with JSX to layout and style the application: CSS Grid and Flexbox used varyingly to match mockups created in Figma, and BEM naming convention and SCSS nesting used to organize styles. Highly stylized, clean and consistent design, with an intuitive and responsive layout.
Coda (React, Rails, PostgreSQL, Redux, AWS S3)
Created custom functional components - including session forms, song index, song tiles and individual song show pages, each managed with ES6+ JS event handlers, Redux store cycle and React state, props and JSX format rendering. Encrypted user authentication and user-created song tokens are stored on PostgreSQL , with full audio files and track images stored on private AWS S3 buckets (with Rails Active Storage). Songs launch an interactive audio player - a stylized, custom HTML Audio element on click, whose unique Redux slice of state allows for uninterrupted playback across the single-page application. Layout and styling with HTML (JSX) and CSS; consistent site-wide dark-mode color palette , pseudo-classes (:hover, :visited, :active), and Flexbox positioning for a responsive, memorable user experience.
Bored Gamer (MongoDB, Express.js, React, Node.js, Axios, Mongoose)
Used BoardGameGeekās XML API, converted to JSON, to populate our MongoDB cluster. Nested Mongo documents used to attach relevant categories and mechanics as ātagsā (managed with Mongoose models & schema); through a checkbox HTML form, users can sort and filter for board games in real-time with results rendered in a lazily-loaded infinite scroll list. User authentication with Passport.js and JSON Web Tokens, passed through custom Express.js routes - logged in users can review and store games in their own collections. Used in conjunction with Mongoose ODM, promise-based Axios calls and testing with Postman to ensure quick fetching and handling of asynchronous, persistent data across the application.