I am a computer scientist and a programming languages expert and software developer. Though I recently returned to the software industry, I spent nearly a decade (2017-2025) primarily focusing on project-based curriculum development and teaching of computer science and software development at the secondary school and career prep levels, as well as on online educational platforms.
I'm also a full-stack web & mobile app developer, and the founder and creator of Termeric---an online buy-and-sell marketplace for K-12 school subject curriculums. I have also dabbled in the instruction of ESL english, yoga, and meditation.
Before discovering my passion at the crossroads of coding and teaching, I spent seven years during and after my Ph.D. studies at UCLA as a programming languages researcher, focusing on the application of artificial intelligence in programming and software development.
I received my Ph.D. in the area of programming languages design, in 2013 at UCLA Computer Science Department advised by Todd Millstein. At UCLA, Viewpoints Research Institute, and SAP Labs, I spent seven years as a programming language researcher in the area of language design and the application of artificial intelligence algorithms and tools in software development. I have enjoyed teaching computer science and programming at Garden Grove High School and other schools in the USA and Thailand, as well as full-stack software development at LearningFuze coding bootcamp school. I worked with the BSD Education team, developing computer science and technology education project-based learning curriculum and content through guided web development projects for secondary school. I also have created online courses in programming, mobile app development for Android and iOS, and high school computer science education for Udemy.com. I have a Career & Technical Education (CTE) teaching credential in California, USA.
Throughout my focus on education for the better part of the past decade, I have also continued my work as a full-stack software developer on the side, creating software for the organizations I have been a part of, as well for my own ventures and freelance work.
An open-source full-stack TypeScript ReactJS website, featuring a variation of the game of chess, which I made up when I was a kid
Uses OpenAI's Gymnasium Self-Supervised Reinforcement Learning AI & NumPy Python libraries in a Google Colab (Jupyter) notebook to define the VEX VR Wall Maze simulation environment for the robot, train AI agents to solve the maze, and create Matlab charts to compare the performance of AI agents
Robotic Disc Shooter Mechanism Physics Simulation
Uses PyBullet Real-Time Physics Engine & NumPy Python libraries in a Google Colab (Jupyter) notebook to create a video simulation of a disc shooter robot mechanism
In the field of programming languages, my work was to contribute towards the design of programming frameworks that allow programs to be specified in as elegant, declarative, and in domain-specific forms as possible, yet be practical enough to have impact in the software community. My main interest is finding practical applications of artificial intelligence algorithms and tools---such as decision procedures, executable specifications, declarative programming, and constraint solvers---in programming and software development. However, my Ph.D. research has focused on utilizing these in software engineering in general: development, testing, debugging, reliability, and education. Aside from their application in the design of languages, I am interested in applying these tools in performing static and dynamic program analyses: verification, synthesis, and program repair.
My research work mantra: Let's use constraint solvers not for program-analysis but for program-ming
Sketchpad14 Constraints as a Design
Pattern
Generalization of Sutherland's 1961 Sketchpad tool towards programming using constraints and
reactivity
Call by Meaning
A meanings lingua franca and theorem prover, grounded to the real-world knowledge, enables
automatable semantic understanding among programs, bringing about automated discovery and data
adaption
CamlBack Automated Feedback for Introductory
Functional Programming
Errors
Automatically generating instant, custom feedback for student solutions on functional
programming
problems (e.g. in OCaml)
Cooperating Languages
Language interoperability enabled by a distributed and declarative framework
Declarative
Mocking
Mocking functionality and data using executable specifications and constraint solving for
development and testing
Plan B Falling Back on Executable
Specifications
Automatic recovery from method failures by direct execution of specifications via a constraint
solver
PBnJ: Implementation of Plan B in Java
PHPRepair Automated Repair of HTML Generation
Errors
in PHP Applications Using String Constraint
Solving
An
automatic, dynamic, test-based approach to fix HTML generation bugs in PHP programs
Sketch# Specification-Based Program
Sketching
Implementation of the Sketching program synthesis method on top of Spec# specification language
JOHN An educational programming language integrating Automated Planning
Constraints as a Design Pattern: from Sketchpad61 to
Sketchpad14
Hesam Samimi, Alessandro Warth, Mahdi Eslamimehr, Alan
Borning
ACM
International Symposium on New ideas, New Paradigms, and Reflections on Programming & Software
2015
(Onward!'15) [pdf]
Timing Analysis of Event-Driven Programs with Directed
Testing
Mahdi
Eslamimehr, Hesam Samimi
15th International Workshop on Worst-Case Execution Time Analysis
(WCET'15) [pdf]
Call by Meaning
Hesam Samimi, Chris Deaton,
Yoshiki
Ohshima, Alessandro Warth, Todd Millstein
ACM International Symposium on New ideas, New
Paradigms, and Reflections on Programming & Software 2014 (Onward!'14) [pdf]
Declarative Mocking
Hesam Samimi, Rebecca Hicks, Ari
Fogel, Todd Millstein
International Symposium on Software Testing and Analysis 2013
(ISSTA'13)
[pdf]
Automated Repair of HTML Generation Errors in PHP Applications
Using String Constraint Solving
Hesam Samimi, Max Schaefer, Shay Artzi, Todd
Millstein, Frank Tip, Laurie Hendren
International Conference on Software Engineering 2012
(ICSE'12) [pdf]
Specification-Based Sketching with Sketch#
Hesam
Samimi, Kaushik Rajan
International Workshop on Formal Techniques for Java-like Programs 2011
(FTfJP'11) [pdf]
Falling Back on Executable Specifications
Hesam Samimi,
Ei
Darli Aung, Todd Millstein
European Conference on Object-Oriented Programming 2010 (ECOOP'10)
[pdf]
From Validation to Automated Repair & Beyond with Constraint
Solving
Hesam Samimi
UCLA Ph.D. Thesis, June 2013 [pdf]