Ira Ray Jenkins


Education
  • Doctor of Philosophy in Computer ScienceJune 2020
    • Dartmouth College, Hanover, New Hampshire
    • Thesis: Defense in Depth of Resource-Constrained Devices
    • Advisor: Dr. Sean Smith
  • Master of Science in Computer ScienceAugust 2012
    • The Florida State University, Tallahassee, Florida
    • Thesis: Android Benchmarking for Architectural Research
    • Advisor: Dr. Gary Tyson
  • Bachelor of Science in Computer ScienceMay 2010
    • The Florida State University, Tallahassee, Florida
    • Summa Cum Laude
    • Minor: Mathematics
Professional Experience
  • Senior Software Engineer June 2023 – present
    • Talkiatry
    • Full-stack senior software engineer developing patient and provider facing frontends, backend platform services, and internal tooling to optimize the delivery of high-quality, efficient mental health care.
  • R&D Software Engineer June 2020 – June 2023
    • Creare
    • Full-stack software engineer working on multi-phase research and development projects in audiometrics, neurocognitive assessment, mobile health, geospatial analytics, image processing, and laser metrology.
      • Architected a clinician dashboard for pediatric post-TBI management using Angular. Owned project from identifying functional requirements with client stakeholders, mocking wireframes with graphic designers, to leading technical development and deployment. Responsible for backend user management with MongoDB and AWS Cognito, HIPAA-compliant data retention with AWS S3, and primary support contact through pilot and study trials. Successfully delivered a production web app in use since 2021 in clinical studies at 9 hospitals, clinics, and practices.
      • Spearheaded the design and development of a generic, containerized REST server using Docker, Nginx, MongoDB, Python, and Eve. Automated deployment of servers for local and remote targets using Ansible. This architecture increased developer velocity by allowing application-specific plugins to be written independently of server infrastructure. Successfully replaced five bare-metal, application-specific servers and reduced AWS costs, as well as developer, deployment, and maintenance overhead.
      • Conceptualized and implemented CI/CD pipelines using Gitlab and Docker for web and mobile applications deployed to AWS (EC2 and S3) and Google Play. These pipelines validate code quality, perform functional and regression tests, and deploy independent applications for development, testing, and production stages. Effectively reduced manual test, build, and deploy process times by 75\%.
      • Developed firmware in C and C++ for novel, purpose-built hardware devices based on Arduino, ARM Cortex-M0\texttt{+}, and Cortex-M4 SoCs. Implemented modular I2C and SPI libraries for flash memory chips, various sensors (pressure, temperature, and magnetic field), LEDs, ADCs, and audio codecs. Constructed and documented unique BLE services and characteristics for remote management and notifications. Wrote a custom Bluetooth communications protocol for sharing data and UI specifications with mobile applications. Developed and debugged firmware for a tactical, noise-canceling headset that uses ultrasound for local-area, multi-party communications.
      • Built a real-time, fault-tolerant RS-232 Serial to USB converter using a Raspberry Pi. Experimentally demonstrated a 10Hz request-response rate with continuous operation over 96 hours.
  • Research Intern May 2016 – December 2016
    • IBM's T.J. Watson Research Lab
    • Supervisor: Dimitrios Pendarakis
    • Group: Secure Systems Research Group
    • Responsibilities: Designed and implemented a distributed remote attestation network for the IoT utilizing trusted platform modules and IBM's Hyperledger, a permissioned blockchain implementation.
  • Research Intern May 2015 – December 2015
    • IBM's T.J. Watson Research Lab
    • Supervisor: Elaine R. Palmer
    • Group: Secure Systems Research Group
    • Responsibilities: Worked on hardware enabled security for IBM's Power and Z Systems, along with open source boot kernels and UEFI design concepts.
  • IBM Software Engineer Co-Op May 2008 – August 2008
    • Supervisor: Amit Dandekar
    • Teams: OpenAdmin Tool (OAT) and Informix Dynamic Server (IDS)
    • Responsibilities: Designed and implemented industry-specific sample databases with accompanying data sets and queries for IDS marketing and demonstration purposes. Developed and published an installation demonstration video for OAT. Designed and implemented the build system for OAT using Apache Ant and PHP. Began OAT validation framework using Rational Functional Tester.
Research Experience
  • Research Assistant March 2013 – June 2020
    • Dartmouth College, Department of Computer Science
    • Supervisors: Dr. Sean W. Smith and Dr. Sergey Bratus
    • Responsibilities: Worked on pervasive user-mode debugging on ARM with ERESI. Current maintainer of Isotope, an open-source fingerprinting toolkit for IEEE 802.15.4 and ZigBee radio devices. Explored passwordless authentication schemes and applications. Currently researching remote attestation as a way to secure semi-private networks within the Internet of Things.
  • Research Assistant August 2011 – August 2012
    • The Florida State University, Department of Computer Science
    • Supervisors: Dr. Gary Tyson
    • Responsibilities: Explored Android Linux emulation and simulation techniques. Created an open-source framework for constructing new benchmarks, useful for architectural research, for the Android operating system. Identified techniques useful to automated testing within the Android environment in QEMU.
  • Research Assistant August 2008 – August 2009
    • The Florida State University, Department of Computer Science
    • Supervisor: Dr. Ashok Srinivasan
    • Responsibilities: Parallelized and ported C and Fortran routines to NVIDIA's CUDA platform. Routines were sequential solvers for ODEs using Picard iterations and the classical Runge-Kutta method. Attended SC08 as a student volunteer.
Teaching Experience
  • Teaching Assistant Spring 2013, 2014
    • Dartmouth College, Department of Computer Science
    • Supervisor: Dr. Charles C. Palmer
    • Course: COSC 50: Software Design & Implementation
    • Responsibilities: Assisted in course (50–75 students) on designing and building large, reliable, maintainable, and understandable software systems: including Unix orientation and development tools, Bash scripting, C programming, software design, and software testing. Helped develop assignments. Created grading rubrics, sample solutions, and automated testing/grading software. Managed undergraduate graders. Held 3 office hours weekly.
  • Teaching Assistant Winter 2013
    • Dartmouth College, Department of Computer Science
    • Supervisor: Dr. Charles C. Palmer
    • Course: COSC 61: Databases
    • Responsibilities: Assisted in course (45 students) on database design and management: including schemes for the representation, manipulation, and storage of complex information structures; algorithms for data retrieval and processing; basic web-app programming with MySQL backends in C, Java, and Python. Developed teaching materials, sample solutions, and automated testing/grading software. Held 3 office hours weekly.
  • Teaching Assistant Fall 2012
    • Dartmouth College, Department of Computer Science
    • Supervisor: Dr. Sean W. Smith
    • Course: COSC 58: Operating Systems
    • Responsibilities: Assisted in course (30 students) on operating system design and implementation: including resource management, data storage, scheduling, concurrent processing and synchronization. Developed sample solutions, graded assignments, and administered exams. Held 3 office hours weekly.
  • Course Instructor Summer 2011
    • The Florida State University, Department of Computer Science
    • Supervisor: Professor Ann Ford Tyson
    • Course: COP3014 - Programming I (majors)
    • Responsibilities: Taught 6 sections, totalling 120 sophomore and junior STEM majors. Created new course content, including syllabus, schedule, lecture materials, mid-term and final exams, and 6 programming assignments with grading rubrics. Lectured twice a week for 1.5 hours and held 3 – 5 office hours weekly. Supervised 3 Graduate Teaching Assistants.
  • Recitation Instructor Spring 2008, 2011
    Fall 2009, 2010
    • The Florida State University, Department of Computer Science
    • Supervisor: Professor Ann Ford Tyson
    • Course(s):
      • COP3014 - Programming I (majors)
      • CGS3406 - Object-Oriented Programming in C++ (non-majors)
      • CGS2930 - Object-Oriented Programming in Python (non-majors)
    • Responsibilities: Taught multiple sections of roughly 20 – 30 sophomores and juniors. Created supplemental lecture materials and programming assignment grading rubrics. Graded roughly 25 – 50 bi-weekly programming assignments. Administered exams. Held 3 – 5 office hours weekly.
Awards
  • The Florida State University
    • Outstanding Teaching Assistant, 2010
    • President's List, 2006 – 2008, 2010
    • Dean's List, 2009
    • Freshman University Scholarship, 2006 – 2010
  • National Science and Mathematics Access to Retain Talent Grant, 2009 – 2010
  • Harris Corporation Undergraduate Computer Science Scholarship, 2009 – 2010
  • Florida Bright Futures Top Academic Scholarship, 2006 – 2010
Society Memberships
  • National Society of Collegiate Scholars
  • Golden Key International Honour Society
  • Upsilon Pi Epsilon
  • Phi Beta Kappa
Publications
  • Ira Ray Jenkins. Defense in Depth of Resource-Constrained Devices. Ph.D Dissertation, Dartmouth College Ph.D Dissertations, 2020.
  • Ira Ray Jenkins and Sean W. Smith. Distributed IoT Attestation via Blockchain. In Proceedings of the 20th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing (CCGRID20).
  • Ira Ray Jenkins, Prashant Anantharaman, Rebecca Shapiro, J. Peter Brady, Sergey Bratus and Sean W. Smith. Ghostbusting: Mitigating Spectre with Intraprocess Memory Isolation. To appear in the 7th Annual Symposium and Bootcamp on Hot Topics in the Science of Security (HotSoS '20).
  • Prashant Anantharaman, J. Peter Brady, Ira Ray Jenkins, Vijay H. Kothari, Michael C. Millian, Kartik Palani, Kirti V. Rathore, Jason Reeves, Rebecca Shapiro, Syed H. Tanveer, Sergey Bratus, Sean W. Smith. Intent as a Secure Design Primitive in Charles A. Kamhoua, Laurent L. Njilla, Alexander Kott, Sachin S. Shetty (Ed.), Modeling and Design of Secure Internet of Things. John Wiley & Sons, Inc. 2020. (In Press.)
  • Prashant Anantharaman, Vijay Kothari, J. Peter Brady, Ira Ray Jenkins, Sameed Ali, Michael C. Millian, Ross Koppel, Jim Blythe, Sergey Bratus, and Sean W. Smith. Mismorphism: The Heart of the Weird Machine. In Proceedings of the Twenty-seventh International Workshop on Security Protocols (SPW '19).
  • Vijay Kothari, Prashant Anantharaman, Ira Ray Jenkins, Michael C. Millian, J. Peter Brady, Sameed Ali, Sergey Bratus, Jim Blythe, Ross Koppel, and Sean W. Smith. Human-Computability Boundaries. In Proceedings of the Twenty-seventh International Workshop on Security Protocols (SPW '19).
  • Ira Ray Jenkins, Sergey Bratus, Sean Smith, and Maxwell Koo. Reinventing the Privilege Drop: How Principled Preservation of Programmer Intent Would Prevent Security Bugs. In Proceedings of the 5th Annual Symposium and Bootcamp on Hot Topics in the Science of Security (HotSoS '18).
  • Ira Ray Jenkins, Rebecca Shapiro, Sergey Bratus, Travis Goodspeed, Ryan Speers, and David Dowd. Short Paper: Speaking the Local Dialect: Exploiting Differences Between IEEE 802.15.4 Receivers with Commodity Radios for Fingerprinting, Targeted Attacks, and Wids Evasion. In Proceedings of the 2014 ACM Conference on Security and Privacy in Wireless & Mobile Networks (WiSec '14).
  • Ira Ray Jenkins. Android Benchmarking for Architectural Research. Master's thesis, Florida State University, 2012.