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
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.