Doctoral Student at Brigham Young University's Internet Security Research Lab
Orem, Utah (801)-810-4433 clark.michael.c@gmail.comAssistant professor position in a CS/Security/IT related department with expectations of excellence in both teaching and research.
Aid system designers use minimally obtrusive remote authentication methods. Ultimately, enable systems designers to choose authentication strategies via a table lookup instead of familiarity and convenience.
My research focuses on making randomly-generated passwords easier to remember. Courses include Statistical Methods for Research (STAT 511 and 512), Cognitive Psychology (PSYCH 375), a basic Introduction to Teaching course, undergraduate design courses (CS 356 and CS 456), HCI methods (IT&C 555), and readings courses in Security, Usability, and Usable Security.
The Hong Kong University of Science and Technology
Topics covered included IT strategy and management, Project, Workflow, and Innovation Management, Computer and Internet Security, Logistics and Supply Chain management, and Business Strategy.
Elective senior courses in Networking, AI, Machine Learning, Databases, and Digital Signal Processing. Focused on becoming an embedded systems programmer and understanding the foundational underpinnings of modern computer systems and protocols.
Adapted the class for a half-semester and taught it. Starting with nearly 100, we had 56 students at the end. The students rated me at a mean of 3.9 (3.5–4.3) out of 5 (the department average is 4.2–4.7). Students received an average GPA of 3.06.
Work with and mentor other students in the lab while designing and conducting experiments under the guidance of Dr Kent Seamons.
Wrote a program which assisted Dr Paul Forster by transforming 5 CDs of assorted files of mixed fixed width database entries into a searchable SQL database.
Assisted Dr Theodore Clark by taking over and making changes in Skylords.com to investigate the effects of change on a closed market. Added a marketplace, defensive and production buildings, and adjusted various constants under Dr Clark's direction.
Wrote firmware to communicate (over BLE advertising packets) between the motor controller microprocessor (nRF52) and the phone app for IoT smart home blinds. Conducted a security review and fixed design issues in the secure communications protocol, implemented those fixes in the embedded code, and assisted the Android and iOS developers to make the minimal needed changes on their side. Designed a new secure offline pairing system from scratch to meet requirements.
Hired to rewrite PHP accounting and timesheet application in NodeJS without source or spec save some designs. Project changed after a year or so to use deepstream + RethinkDB, then about 8 months later to LoopBack, then was somewhat canceled/shelved. Worked next on a glue app to bind disparate services to replace the PHP code (using express), and also on a UWP (C#/XAML) kiosk display app. When the Kiosk project died, moved to server software for network communications between an app and embedded systems. Continued to maintain the glue app alongside embedded development and after.
Find clients, implement code per requirements, tracking time used and minimizing client costs. Practice new languages, frameworks, and tools.
I worked mostly on the complicated syncing logic behind the Intuiplan system. I worked well with Yii, new to me at the time, and was able to make improvements to the site architecture. Additionally, I taught myself how and implemented many unit tests across the legacy codebase.
I worked on the main Lead Management Platform product in a team of 5 developers for approximately 4 months, then filled a need supporting responseaudit.com for several months, beta testing our internal design framework. I significantly reduced the data entry workload of auditing a company using a bookmarklet, with a significant chunk of domain knowledge to fill in form fields. The bookmarklet was successful enough that the completely automatic web crawler and form filler was shelved, and I was moved over to work with another programmer to pick up our internal management site rewrite. Over 6 months or so we juggled with the code into a fairly readable state, while porting the bulk of the remaining features from the old site over. In the end I was placed in the new R&D department, to help iron out and alpha test the design of another new internal framework.
Maintain zagg.com, access various external APIs (memorably Best Buy's), introduce and maintain new APIs. Wrote and carefully tested a sed script to clean up inconsistent whitespace formatting across our software. Cut one significant file down from 4000 lines to just over 2000 lines of mixed HTML and PHP by careful analysis and understanding, and encapsulating some behavior into a pair of classes.
Architect and implement custom database driven websites for clients. Complete/rescue projects abandoned by outsource programmers. Architect and build new framework for in house social networking product with extensive plugin support, working with a team. Build several new analytics products to sell to customers.
I hate seeing websites go offline - thus I obtained permission to take over Skylords once the university was no longer interested in it. Keep site online, fixing any bugs which develop due to deprecated code. Manage backups, redundancy, hosting costs, etc. Keep in contact with community, implement new features, and improve code structure. In maintenance mode as my focus is elsewhere at present.
Develop and support the SkyLords.com website. Convert a collection of similar flat file databases across 5 CDs into a single relational database.