Mark Cho

Software Engineer

San Francisco, California, United States12 yrs 4 mos experience
Most Likely To SwitchHighly Stable

Key Highlights

  • Expert in building data processing platforms.
  • Proven track record in full stack development.
  • Strong experience in optimizing data workflows.
Stackforce AI infers this person is a Data Engineer with strong Full Stack Development capabilities in the SaaS industry.

Contact

Skills

Core Skills

Software EngineeringData EngineeringStream ProcessingFull Stack Development

Other Skills

SparkHDFSHive MetastorePrestoKafkaAWS S3SQLPythonJavaScriptHTMLCSSDjangoFlaskSQLAlchemyScala

Experience

12 yrs 4 mos
Total Experience
3 yrs 1 mo
Average Tenure
7 yrs 10 mos
Current Experience

Netflix

Staff Software Engineer

Jul 2018Present · 7 yrs 10 mos

  • Working on Stream Processing Platform team
Stream ProcessingSoftware Engineering

Pinterest

Senior Software Engineer

Jun 2014May 2018 · 3 yrs 11 mos · San Francisco, California, United States

  • Data Platform Engineer - Stream Processing Platform (April 2017 - Current)
  • Built a new data warehouse platform for stream processing on top of HDFS to power real-time data use cases (Spark, Hive Metastore, Presto)
  • Developed a Spark Streaming job to persist data from Kafka into the data warehouse (HDFS, Hive Metastore) in real-time
  • Implemented a disaster recovery pipeline for backing up critical data in HDFS to AWS S3 using Spark and HDFS snapshots
  • Optimized and tuned various parts of the data warehouse (Spark, HDFS, Hive Metastore, Presto) to improve performance and efficiency of the platform
  • Data Platform Engineer - Ads Data Engineering (October 2016 - April 2017)
  • Implemented various Spark SQL workflows for the next generation Pinterest Ads data pipeline to compute ad metrics, spend, and conversions
  • Tech Lead, Full Stack Engineer - Advertiser Products Team (June 2014 - October 2016)
  • As one of the first few engineers on the advertiser products team, I worked with Python (Django, Flask, SQLAlchemy), HTML (Jinja2, React.js), JavaScript (Backbone.js, React.js), and CSS to build and ship various projects such as Pinterest Analytics, Pinterest Ads Manager, Ads API, and Bulk Editor from scratch.
  • As a full stack engineer, I worked on every layer of the stack to build Pinterest Analytics, Pinterest Ads Manager, Ads API, and Bulk Editor.
  • These include:
  • Developing front-end components using HTML (Jinja2, React.js), JavaScript (Backbone.js, React.js), and CSS.
  • Writing application code in Python (Django, Flask, SQLAlchemy).
  • Maintaining and debugging databases such as MySQL and HBase.
  • As the tech lead of the advertiser products team, I worked on various projects which improved developer velocity, reduced technical debt, and improved the quality of the code and the products that my team shipped. On top of the engineering work, my responsibilities included setting the technical direction for the team and mentoring engineers on the team.
SparkHDFSHive MetastorePrestoKafkaAWS S3+7

Twitter

Software Engineer, Intern

Aug 2013Dec 2013 · 4 mos · San Francisco, California, United States

  • Worked on the Twitter Cards Analytics team, implementing a portion of Twitter Cards Analytics platform.
  • Worked with Scala, JavaScript (Flight.js), html, and LESS to implement various features such as Top Metrics (URL, Tweets, Accounts) tables.
  • https://blog.twitter.com/2014/introducing-analytics-for-twitter-cards
PythonDjangoFlaskSQLAlchemyHTMLJavaScript+2

Google

Software Engineer, Intern

Jan 2013Apr 2013 · 3 mos · Mountain View, California, United States

  • Worked on the Google AdWords Reports team, implementing Auction Insights v2.
  • Implemented new views in AdWords custom query engine to fetch and organize the data in the back-end
  • Modified the Ads API to support the new views, which makes the queries to the query engine on behalf of the front-end
  • Implemented the UI for the new feature in Java, using Google Web Toolkit
  • Optimized the UI using split points to asynchronously download the components for the new feature instead of on page load
ScalaJavaScriptHTMLLESS

Linkedin

Software Engineer, Intern

May 2012Aug 2012 · 3 mos · Mountain View, California, United States

  • Worked on LinkedIn Groups team for the first half of my internship. The project I worked on was the Group Skills feature, which exposes the unique skills of groups based on its members.
  • Wrote and optimized Hadoop jobs in Pig Latin to compute and organize the relevant data
  • Pushed the computed data into Voldemort (distributed key-value storage) for real-time access
  • Wrote the back-end code in Java, which fetches the unique skills of a group from Voldemort storage and serves it to the front-end using REST.li (LinkedIn's RESTful service invocation framework)
  • Wrote unit tests for back-end code using TestNG and EasyMock
  • Worked on a team responsible for creating a new product (to be announced in the future) for the second half of my internship. While I was on this team, I worked on a variety of features, from back-end service code to user-facing web pages.
  • Wrote the back-end code in Java and Scala to communicate requests made from the front-end to ESPRESSO (LinkedIn's distributed database system)
  • Wrote the front-end code in Java and Scala to implement the business logic using Unicorn (LinkedIn's front-end framework) and to make necessary service calls to the back-end over REST.li
  • Created AJAX end points that can be called from the web page for data mapping and mutating
  • Developed features on the web page which called the AJAX end points using JavaScript (jQuery, YUI)
  • Worked on user-facing web pages using html, dust.js (templating framework), SASS
JavaGoogle Web Toolkit

Blackberry

Firmware Developer, Intern

Sep 2011Dec 2011 · 3 mos · Waterloo, Ontario, Canada

  • Worked on the QNX Phone Service team and QNX SMS Team, developing critical components for the next-generation BlackBerry phone operating system (BBX/BB10).
  • Independently developed the middleware (service layer) for Cell Broadcast Service in C
  • Quickly learned Python in order to implement critical features such as Missed Call Notifications for BBX/BB10 phones
  • Implemented the SMS Replacement feature, as defined by the 3GPP specifications, using Python
  • Optimized the Call Logs engine by implementing Call Logs notification in Python
  • Tools/Framework used: SQLite, SQLAlchemy, and Bottle server (REST) for Python projects
HadoopJavaREST.li

Aria solutions

2 roles

Software Developer, Intern

Jan 2011Apr 2011 · 3 mos · Calgary, Alberta, Canada

  • Developed a JavaScript plugin to the web-based CRM software using jQuery
  • Developed a script runner extension for the Windows-based CRM software using .NET framework in C#
  • Planned and implemented an asynchronous load test application for the QA team to test the reverse proxy software
  • Fixed bugs and refactored the reverse proxy software to comply with the new requirements
  • Extended the functional test framework developed during the first work term to support the new reverse proxy software using Kayak, an asynchronous HTTP server in C#
CPythonSQLite

Software Developer, Intern

May 2010Aug 2010 · 3 mos · Calgary, Alberta, Canada

  • Developed an automated functional test framework in C# for Aria Solution's web-based CRM software
  • Developed test cases for the test framework using Selenium/Webdriver framework
  • Used NAnt build scripts and Hudson to execute the automated tests with the nightly build
JavaScriptC#

Education

University of Waterloo

Bachelors — Software Engineering

Stackforce found 100+ more professionals with Software Engineering & Data Engineering

Explore similar profiles based on matching skills and experience