Design and development of custom software to solve business problems, improve processes, and introduce new products to market.

I’m driven by values in my work.

Focus on value creation

Software should have positive ROI. I start by defining what the business values and make sure what we build creates that value.

Clear communication

Setting the right expectations with a clearly defined spec and schedule, resulting in more peace of mind with the development process.

Detailed documentation

Good documentation helps users get the most out of software, assists others working on the project in the future, and protects your investment.

My experience spans consulting, engineering, and academia.

Design & engineering

Core competencies in React, Node.js, JavaScript, Ruby on Rails, Python, PostgreSQL, CSS, and UI design.

CTO, Onswipe

Architected platform that handled 40+ million uniques and 100+ million pageviews, serving content for major media companies, based on Node.js.

Columbia University

BA, Computer Science, summa cum laude — Blei Lab, Data Science Institute — Center for Decision Sciences


Wine inventory management system


Design, frontend/backend development, process strategy

Cellar is an inventory management system, custom-built for a commercial wineseller. Cellar manages inventory across multiple locations using a barcode label system, and includes an iPhone app that scans barcodes to view and check out items.

I worked with the client to design the barcode label according to their specifications, and meet their inventory control workflow by including features like Inventory Check.

Designed and developed from scratch, working with the client to design a process for labeling inventory items and a check-in/check-out flow.

  • Ruby on Rails
  • jQuery
  • PostgreSQL
  • Objective-C


Financial data and news platform


Design and development of full product, data ingestion and management, real-time chat

Atom is a source of financial data and news for investors. It provides real-time equity price data, a place to track stocks you’re interested in, and detailed historical financial data. To help investors find promising equities, Atom provides a screener for finding new stocks based on 20 financial indicators. Finally, it allows groups of investors like investing clubs to collaborate with a group chat system.

I designed the product to feel forward-thinking and innovative, differentiating it from current financial data tools, using a periodic table-like ‘stock tile’ format to represent companies, which gives the user a quick way to view the performance of a stock.

  • Designed and developed a responsive, single-page application (SPA) frontend with real-time stock price updates, using React and GraphQL
  • Developed a backend and API with user accounts, and stock tracking, with Node.js, TypeScript, and PostgreSQL
  • Implemented a system to ingest data for tens of thousands of ticker symbols and hundreds of thousands of financial reports into a normalized format, and allowing users to search for companies by specifying criteria for 20 financial indicators
  • Designed and developed a real-time group chat system with stock ticker auto-completion based on Apollo GraphQL
  • Instrumented the app for analytics using Segment and Mixpanel
  • React
  • GraphQL
  • Node.js
  • TypeScript
  • PostgreSQL
  • Redis
  • WebSockets
  • Segment


Academic research discovery platform


Backend development, machine learning, server architecture, some frontend

ArXivLab is an interface to arXiv, an academic e-print service with over one million papers. ArXivLab includes research discovery features like personalized recommendations and machine learning-based article similarity models. It is developed at the Blei Lab at Columbia University, where I was a research assistant.

  • Developed and deployed two machine learning models (word embeddings, topic modeling) for article similarity over the entire 1.3 million article database, with the data pipeline built in Python, frontend in React, and API in Node.js
  • Contributed to Custom Views, a feature for researchers to segment the arXiv database to tailor their literature search, using React and Node.js
  • Managed and optimized the migration of 1.2 billion data points into MySQL
  • Developed and optimized an article popularity system using MySQL and Node.js
  • Redesigned the server architecture using Docker
  • Python
  • React
  • Node.js
  • MySQL
  • Docker


Referral recruiting software


Design and development of full product and marketing pages, data ingestion and management, payment integration

Kindred is a recruiting tech product that helps companies hire from their existing employee networks. It allows employees to opt in to allow recruiters to search for candidates that existing employees are already connected to, automating a process that’s happening manually within companies today, or not at all.

  • Designed and developed a single-page application (SPA) frontend, along with responsive marketing and pricing pages, using React and GraphQL
  • Developed a backend and API with user accounts, permissions, employee inviting, and user management using Node.js, TypeScript, and GraphQL
  • Optimized PostgreSQL database queries for finding matching candidates for a position
  • Implemented a data processing queue to process user-given data
  • Implemented payment integration to allow customers to subscribe to the application using Stripe
  • React
  • GraphQL
  • Node.js
  • TypeScript
  • PostgreSQL
  • Redis
  • Stripe
©2018 Mark Bao. All rights reserved. Mark Bao Consulting is a division of The Bao Group LLC.