# Mark Craig > Principal Software Engineer at Mist (acquired by Juniper Networks) Location: San Jose, California, United States Profile: https://flows.cv/markcraig A typical day involves writing code in 3-4 languages, fixing hard problems across multiple products, architecting new cloud-based product ideas, researching new technology areas, and mentoring others around me. I enjoy being a full-stack developer focusing on scalable, high-performance cloud architectures with a focus on rapid development cycles. TECHNICAL SKILLS: • Cloud server development (Go, Node.js, Java) • NoSQL databases (Cassandra, MongoDB, Couchbase, ElasticSearch) • Golang server-side development for API's and micro-services • Golang CLI tools for 3rd-party API's and load testing • Node.js for tools and web-services • Java cloud server-side development • Android SDK / NDK mobile development • Apple iOS mobile development • Twitter Storm real-time data processing • Java server-side development • Ruby / JRuby scripting and DSL's • Embedded Linux development • Device drivers and real-time OS's LANGUAGES USED: • Go (API's, micro-services, CLI tools) • Javascript (Node.js, web) • Python (tools, data processing) • Java (Server, Android) • Objective-C (iOS) • Ruby / JRuby • C • Shell scripting PERSONAL TECHNICAL INTERESTS: • Highly scalable cloud infrastructure • Schema-less Databases (Cassandra, Couchbase, MongoDB) • Containerized infrastructure • Dev-Ops automation • Real-time analytics (Twitter Storm, Spark) • Home security and automation • Digital Signage • Live Streaming Video ## Work Experience ### Principal Software Engineer @ Juniper Networks Jan 2019 – Present | Cupertino, CA Mist Systems acquired by Juniper Networks ★ Integrated Juniper EX and SRX switches into the Mist cloud * Integrated Juniper EX and SRX switches into the Mist cloud * Developed Golang cloud-based streaming connector for Juniper devices * Developed Zero-Touch-Provisioning for all Juniper devices (for the Mist cloud) * Developed Golang Netconf client which supports model (de)serialization to/from Go structs * Developing Golang JTI client using Juniper gRPC models * Publish telemetry using custom Kafka protobuf messages ★ OpenConfig Collaboration with Google * Being used by Google in production for all Mist APs * Closely collaborated with Google to solely develop and manage all OpenConfig API features for Mist WiFi. * This is the first cloud-based OpenConfig implementation for WiFi. * Currently adding cloud-based gNMI streaming telemetry for WiFi * https://www.mist.com/news/press-releases/mist-delivers-first-cloud-based-openconfig-implementation-wireless-networking/ ★ Mist gRPC Streaming Telemetry * Architected to use shared infrastructure with OpenConfig streaming telemetry * Designed gRPC API to stream Mist AP stats (including WiFi clients, BLE devices, WiFi neighbors, etc) * Developing open-source Mist gRPC libraries for easy customer integration (Go, Java, Python) ★ Mist REST API * Developed many Mist REST API's along the way * Python / Django ★ Mist Stream Processing * Developed and maintain several Mist streaming topologies which support many core features * Java, Storm, Python ### Software Engineer @ Mist Systems Jan 2016 – Present | Cupertino, CA https://www.mist.com/ ★ API Team Developer for the Mist API team focused on API features and data modeling using Python, Go, Postgres, Elasticsearch, Redis, and Kafka running on Amazon AWS. ★ OpenConfig Collaboration with Google Closely collaborated with Google to solely develop and manage all OpenConfig API features for Mist WiFi using Go and Python. This is the first cloud-based OpenConfig implementation for WiFi. * https://www.mist.com/news/press-releases/mist-delivers-first-cloud-based-openconfig-implementation-wireless-networking/ ### Cloud Architect / Principal Software Engineer @ Emanate Wireless Jan 2015 – Jan 2016 | San Jose, CA Cloud architect responsible for designing and implementing a cost-effective, highly-scalable, automated cloud infrastructure to support healthcare IoT devices and analytics. http://www.emanatewireless.com/ ★ Cloud Architecture Took a monolithic architecture and designed / implemented a horizontally scalable cloud architecture to support 100,000's of IoT devices with a low cost curve (low compute, memory, and storage resources). ★ Server-side Development Designed and developed various micro-services (authentication, IoT device API calls, 3rd-party API's, time-series data API's) using Go and Node.js. ★ Analytics Designed and developed the 'Emanate-TSDB' (time-series database) as a time-series storage and analytics micro-service running on top of the Cassandra database. The 'Emanate-TSDB' service achieves very compact time-series storage while allowing for very expressive, high-performance aggregation queries. ★ Mobile Development Responsible for adding new features to our iOS app which discovers and provisions the healthcare IoT devices. An iOS SDK was created that could potentially be used by 3rd-parties in the future. ★ DevOps Acted as the sole DevOps engineer that was responsible for designing and developing our cloud infrastructure automation. Wrote Ansible scripts to deploy new cloud instances and upgrade any component with minimal or no down-time. ★ 3rd-Party API's Designed and developed 3rd-party API's and CLI tools with an emphasis on simplicity, security, and reliability. All 3rd-party API's are implemented in Go for reliability (type-safety), performance (concurrency, parallelism), and low resource usage. ★ Manufacturing Test Designed and created an iPad manufacturing app from scratch to perform the assembly manufacturing test of all IoT devices using BLE communication and cloud-based reporting / logging. Support was added for testing multiple IoT devices in parallel to minimize the manufacturing floor testing costs. ### Cisco Database Counsel @ Cisco Jan 2014 – Jan 2015 | San Francisco Bay Area Responsible for evaluating and licensing NoSQL databases across all of Cisco. Requires a deep understanding of database storage, fault tolerance, and overall performance and limitations. ### Technical Leader II @ Cisco Jan 2012 – Jan 2015 | San Jose, CA Achieved the highest 'X' review rating (allowed by only 5% of Cisco employees) for 5 years under 4 different managers. Designed and developed the iOS and Android mobile SDK frameworks for the Cisco StadiumVision Mobile solution. The iOS and Android SDK's provide low-latency live video streaming and data streaming in a scalable, reliable manner to any iOS or Android device. The Cisco StadiumVision Mobile solution has recently been deployed to major iconic venues around the world. Designed and developed an extensible, schema-less mobile stats collection framework (iOS / Android) and a schema-less backend analytics service. The iOS and Android SDK frameworks perform in-memory, incremental, streaming compression of the statistics data to provide even CPU loading on the mobile device; allowing the set of stats to be easily extended. Created a mobile device simulator that simulates up to 10,000 mobile devices on a single Linux machine. The simulator was written using JRuby as a highly concurrency development and QA tool for generating mobile statistics data. ### Technical Leader @ Cisco Jan 2006 – Jan 2012 | San Jose, CA Acted as the founding engineer of the current Cisco "StadiumVision" product which is now deployed at most new stadiums in North America, and increasingly around the world. The major deployments include New Yankee Stadium, Dallas Cowboys Stadium, New Meadowlands Stadium, Miami Dolphins Sun Life Stadium, Wembley Stadium (UK), Millennium Stadium (UK), Eden Park (NZ), and others. Designed and developed a highly scalable communication mechanism which is used to coordinate the rendering of 1000's+ HDTV's that are deployed throughout today's modern stadiums. Created the first version of the StadiumVision Director backend server that coordinates the 1000's of media players and associated HDTV's throughout the venue. Server-side Java, Tomcat, and Hibernate were used to create a highly-scalable solution. Designed and developed an embedded Linux daemon process for the existing Cisco Digital Media Players which translates multicast control-plane and data-plane traffic into Adobe Flash asynchronous messages. The process also provides an HTTP interface for monitoring and maintenance. Designed and developed a Flash-based rendering application that runs on the Cisco Digital Media Player devices and renders everything that is displayed on each HDTV installed throughout each stadium. The Flash application is responsible for window management, rendering of playlists of advertisements, proof-of-play accounting and reporting, HDTV command and control via RS-232, child Flash swf management, and IR remote interactivity. ### Senior Software Engineer @ ADC Jan 2003 – Jan 2006 | Raleigh, NC Created a network infrastructure and development tools to facilitate collaboration between the main Raleigh development site and ODM sites in Beijing, China and Taipei, Taiwan. The developed toolset utilized ClearCase MultiSite as the code repository and SCM file repository, and created a set of desktop GUI tools in Java and Perl/TK. Worked as a liaison between ODM sites and performed training on existing products and methodologies. ### Senior Software Engineer @ Redback Networks Jan 2000 – Jan 2003 | San Jose, CA / Raleigh, NC Acted as one of five engineers that created a new R&D site for Redback in the Research Triangle Park area. Worked on designing and developing the next-generation "Streamliner" product that became the #1 subscriber management product in the world, beating the Cisco subscriber management solution in all categories. Developed the entire SoC firmware for the first SiByte SB1250 dual-core MIPS64 CPU's (later became the Broadcom BCM12500). Wrote all of the CPU peripheral drivers to provide new performance records for Redback's AOS operating system. Worked on core AOS application level product features, WindRiver real-time OS drivers, and embedded board bring-up. Worked extensively at Redback headquarters in San Jose, CA as a liaison between the San Jose and Raleigh development groups. ### Software Engineer iV @ Cisco Systems Jan 1998 – Jan 2000 | Research Triangle Park, NC Worked on developing the first Cisco VoIP gateways and modular access routers. Developed Cisco IOS firmware, drivers, and application layer tasks for VoIP and access router products. Developed and maintained small CPLD's in Verilog for the programmable logic contained within the various Cisco line-card products. ### Senior Software Engineer @ PairGain Technologies Jan 1996 – Jan 1998 | Tustin, CA / Raleigh, NC Joined PairGain as one of the first 200 employees and worked on designing and developing the first HDSL-based products on the market. Developed embedded software for the PG-Plus, PG-Flex, and HiGain products utilizing the MQX real-time OS. Worked at the Tustin, CA headquarters to redesign and implement the next generation PG-Flex product. ### Software Engineer @ RSA Communications Jan 1994 – Jan 1996 | Raleigh, NC Developed customized modem and fax firmware for NEC Nippon, Motorola, and AT&T. Performed board bring-up of various customer's embedded boards. ## Education ### BS in Computer Engineering North Carolina State University ## Contact & Social - LinkedIn: https://linkedin.com/in/mark-craig-1235a38 - Portfolio: http://www.cisco.com/web/strategy/sports/StadiumVision.html --- Source: https://flows.cv/markcraig JSON Resume: https://flows.cv/markcraig/resume.json Last updated: 2026-04-10