cv
Dennis O’Brien
Work Experience
Senior Staff Data Scientist
Samsung NEXT
November 2018 – May 2020
- Led efforts in data science, machine learning, and data engineering to help acquire and grow technology startups.
- Recruited, managed, and mentored a team of data engineers, data analysts, data scientists, and machine learning engineers to work on a variety of product verticals including distributed computing, machine learning tooling, food tech, computer vision, and activity recognition.
- Built machine learning prototypes for an action recognition product on mobile devices. (Python, PyTorch, Android, Java).
- Engineered a system to download and catalog 1M+ videos used for training and fine tuning action recognition machine learning models. (Python, AWS, Docker)
- Designed and implemented data analytics pipelines from data ingestion to dashboards, reports, and alerts. (Airflow, Python, BigQuery, Google Data Studio)
- Delivered many ad hoc analysis projects across numerous product verticals. (Exploratory data analysis, data visualization, communicating results)
Director of Data Science
GSN Games
March 2015 – November 2018
- Oversee all data science projects at GSN Games. Serve as project lead for team endeavors, collaborating with multiple studios internationally.
- Facilitated a smooth transition of data pipelines, services, and reports after the acquisition of Idle Games by GSN Games. Integrated all systems without any disruptions.
- Developed multiple machine learning models to predict churn probability for veteran players for multiple game studios. Worked with game product managers to design in-game interventions to re-engage at-risk players. Launched initially as A/B tests, then rolled out in production for daily scoring of players. This increased veteran player retention and increased revenue. (Python, scikit-learn, xgboost, pandas, Vertica SQL, Jupyter, R)
- Analyzed the existing LTV model and ran historical back-testing to measure the model error. Shared these results with all stakeholders and recommended changes in methodology to improve this legacy model while working on an improved model. (Vertica SQL, Python, pandas, statsmodels)
- Developed a machine learning model to predict player lifetime value using historical data. Provided LTV predictions more rapidly than the legacy model with higher accuracy (both bias and variance were improved). Deployed model into production for daily scoring of recent installs. Helped stakeholders incorporate these predictions into their financial forecasts. (Python, scikit-learn, pandas, Vertica SQL, Jupyter)
- Identified a need for a modern workflow management system for the data teams, researched alternatives, and presented recommendations to the teams. Designed and implemented the rollout of Airflow in AWS running on multiple EC2 instances. Trained the team on Airflow and assisted with the migration of complex legacy ETL tasks to Airflow. (Airflow, AWS, EC2, CloudFormation, ansible)
- Performed numerous ad hoc investigations to answer pressing business questions.
Data Scientist
Idle Games
Mar 2013 – Mar 2015
- Created predictive models to better analyze player monetization, retention, engagement, and acquisition.
- Responsible for all aspects of the ETL data workflow from live services and third party data providers to the Vertica data warehouse.
- Created data visualizations to reveal insights into our player behavior and game health, consequently empowering teammates to ask their own questions of the data.
- Designed, implemented, and maintained a system of automated reports related to key performance indicators, multivariate testing, lifetime value, and predictive analytics.
- Performed numerous ad hoc investigations to answer pressing business questions and support teammates. Technology stack includes Python, scikit-learn, Pandas, statsmodels, matplotlib, SQL (Vertica and MySQL), Tableau, D3, MongoDB, Jenkins CI.
Senior Software Engineer
Idle Games
Jan 2012 – Mar 2013
- Led a team of engineers to create a front-end client for a real-time massively multiplayer social poker game. (AS3)
- Designed and implemented the content management system to allow artists and product managers to release new in-game content with no assistance required from engineers. (Django, Python, JSFL, Flex SDK)
- Contributed to the full stack of features from client to server. (Python, Django, C++, Protobuffs, JavaScript, AS3)
Principal Software Engineer
Electronic Arts
Mar 2010 – Jan 2012
- Led a team of six to eight software engineers to create innovative, scalable, and secure social games on the Facebook Platform. (AS3, Java, Facebook API)
- Designed and implemented reusable systems and components in the context of social games. (AS3, Java, Facebook API, Google Protocol Buffers)
- Hired, trained, and mentored a top-notch team of software engineers; ramped up the studio from one engineer to multiple teams.
- Created a flexible asset pipeline that artists and content managers use to add and modify game content without programmer involvement. (Google Docs, Python, XML)
- Created tools to detect problems with assets and data files at build time. (Flex SDK, FlexUnit, Python, JSFL, ant)
- Created diagnostic tools to detect problems with the live games and gather information useful for debugging. (bash, Python, Google Analytics)
Senior Software Engineer
LeapFrog Enterprises
Jun 2003 – Mar 2010
- Developed numerous games for the Leapster, Leapster2, Leapster Explorer, Didj, ClickStart, and web platforms. (C++, C, ActionScript, AS2, AS3)
- Designed and developed software libraries for third party game developers creating games for LeapFrog handheld video game platforms. (C++, AS2)
- Led a team of developers to create a high performance 2D graphics engine on top of OpenGL ES. (C++, OpenGL ES 1.1)
- Ported the Adobe Flash Lite 3 player to an ARM Linux embedded platform. (C++, SCons, GNU Compiler Tools, Linux Internals)
- Developed ActionScript extensions in C++ to provide additional functionality including JSON serialization/deserialization.
- Created numerous tools to improve the art production pipeline and aid in game design. (Python, wxPython, SCons, Buildbot, JSFL)
- Researched, ported and documented tools to help game developers better understand and optimize performance issues and memory usage. (oprofile, mpatrol, valgrind, LTTng)
- Provided technical support to third party game developers on several LeapFrog game platforms.
Lead Software Engineer
Purple Monkey Studios
2001 – 2003
- Designed and implemented large-scale, data-driven web applications.
- Developed rapid prototypes of applications and games.
- Identified production bottlenecks, then designed and developed tools to streamline production.
- Defined functional specifications for client proposals and technical specifications for internal development.
- Collaborated with artists and clients to make compelling web experiences.
Game Programmer
Jellyvision
Mar 2000 – Aug 2001
- Developed multi-player and single-player games and online experiences. (Flash 4, Flash 5, Java, JavaScript, XML, Python)
- Designed and developed back-end systems to support multi-player games and persistent user experiences. (Java, Perl, Python, XML, JavaScript)
- Designed and developed tools to streamline production. (C++, Flash SDK, Python, Perl)
- Worked closely with artists and designers to expand the possibilities and reduce work.
Research Assistant
Instructional Technology Lab, University of Illinois at Chicago
May 1998 – Feb 2000
- Provided technical consultation to University faculty and staff on design and implementation of multimedia content for use in the curriculum.
- Created online guides, tutorials, seminar materials, and help pages related to instructional technology.
- Researched new software applications for web and multimedia development.
Research Assistant
SCAILAB, University of Illinois at Chicago
Aug 1997 – Dec 1998
- Maintained a network of Windows workstations, Macs, and Novell servers in a student computer lab.
- Administered UNIX webservers and fileservers.
- Researched new software for lab security, administration and pedagogy.
Research Assistant
Laboratory for Atmospheric Chemistry, University of Chicago Department of Geophysics
Sep 1993 – Sep 1994
- Developed programs to interface laboratory experiments with network computers.
- Assisted Professor Jon Abbatt in many aspects of research including designing experiments, building equipment and analyzing results.
Research Assistant
Laboratory for Atmospheric Probing, University of Chicago Department of Geophysics
May 1993 – Sep 1993
- Developed computer simulations to model rain drop distributions and mixing.
Research Assistant
Laboratory for Astrophysics and Space Research, University of Chicago Department of Astrophysics
May 1992 – Sep 1992
- Developed programs to analyze sequences of digital images of the Sun.
Science Intern
National Science Foundation
Jun 1990 – Sep 1990
- Selected and edited scientific research articles for release to the press.
Education
University of Chicago
Bachelor of Arts, Physics
University of Illinois at Chicago
Graduate studies, Computer Science
Continuing Education
University of San Francisco
- Deep Learning I
- Deep Learning II
- Design and Analysis of Experiments
Coursera
- Artificial Intelligence Planning (Gerhardt Wickler, University of Edinburgh)
- Algorithms (Robert Sedgewick, Princeton University)
- Cluster Analysis (Jiawei Han, University of Illinois Urbana-Champaign)
- Coding the Matrix (Philip Klein, Brown University)
- Computing for Data Analysis (Roger Peng, Johns Hopkins University)
- Computational Methods for Data Analysis (Nathan Kutz, University of Washington)
- Convolutional Neural Networks (Andrew Ng, Stanford University)
- Data Science at Scale (Bill Howe, University of Washington)
- Data Scientist’s Toolbox (Jeff Leek, Johns Hopkins University)
- Data Visualization (John Hart, University of Illinois Urbana-Champaign)
- Game Theory (Matthew Jackson, Stanford University)
- Improving Deep Neural Networks: Hyperparameter Tuning, Regularization, and Optimization (Andrew Ng, Stanford University)
- Machine Learning (Andrew Ng, Stanford University)
- Mining Massive Datasets (Jure Leskovec, Stanford University)
- Neural Networks and Deep Learning (Andrew Ng, Stanford University)
- Neural Networks for Machine Learning (Geoffrey Hinton, University of Toronto)
- Introduction to Natural Language Processing (Dragomir Radev, University of Michigan)
- Pattern Discovery in Data Mining (Jiawei Han, University of Illinois Urbana-Champaign)
- Regression Models (Brian Caffo, Johns Hopkins University)
- R Programming (Roger Peng, Johns Hopkins University)
- Social Network Analysis (Lada Adamic, University of Michigan)
- Structuring Machine Learning Projects (Andrew Ng, Stanford University)
- Text Mining and Analytics (ChengXiang Zhai, University of Illinois Urbana-Champaign)
- Text Retrieval and Search Engines (ChengXiang Zhai, University of Illinois Urbana-Champaign)