Julian Gonzalez

Experience & Education

From building championship robots to redesigning core CS courses—here's my journey in education and technology.

About

Computer science educator passionate about making complex technical concepts accessible to all students. My path from mechanical engineering and FRC robotics to computer science gives me a unique perspective on systems-level thinking and hands-on learning. I believe in creating engaging learning environments where students from any background can thrive—a philosophy directly informed by my master's thesis on heterogeneous architecture and optimal resource scheduling.

Education

Spring 2024

VQE for Predictive Protein Folding

Cross-listed project with Quantum Computing. Built a React-based interactive tutorial application using MUI for UI components, guiding users through variational quantum eigensolver (VQE) implementation for predictive protein folding on IBM Osaka quantum hardware via Qiskit. Featured vis-network force-directed graphs illustrating biological computing concepts including Levinthal's paradox, codon matching, and the combinatorial optimization landscape of protein conformation search. Demonstrated how molecular Hamiltonians map to quantum circuit ansatz construction for optimal VQE search space while mitigating Barren Plateaus. Embedded Jupyter notebooks provided executable Python examples progressing from combinatorial problems (Vertex Cover) to full VQE protein folding pipelines using NumPy and SciPy for classical pre/post-processing.

ReactTypeScriptMUIvis-networkPythonQiskitIBM QuantumNumPySciPyMatplotlibJupyter

VQE for Predictive Protein Folding

Cross-listed project with Computational Biology. Researched variational quantum eigensolvers for predictive protein folding, mapping molecular Hamiltonians to parameterized quantum circuits executed on IBM Osaka hardware via Qiskit. Built a React and MUI interactive tutorial application with vis-network force-directed graphs visualizing protein conformation search spaces, ansatz construction, and Barren Plateau mitigation strategies. Embedded Jupyter notebooks with progressive code examples from combinatorial optimization (Vertex Cover) to full VQE protein folding pipelines, leveraging NumPy and SciPy for classical simulation components.

ReactTypeScriptMUIvis-networkPythonQiskitIBM QuantumNumPySciPyMatplotlibJupyter

Combinator Birds Interpreter

Mapped the lambda calculus definitions of 40+ combinators from Raymond Smullyan's "To Mock a Mockingbird" to JavaScript anonymous functions, including their S/K combinator normal forms. Implemented each bird (Bluebird, Cardinal, Starling, Kestrel, Mockingbird, etc.) as composable higher-order functions with an Ohm.js-based parser for combinator expression evaluation. Tested with Mocha and measured coverage with c8.

JavaScriptOhm.jsMochac8
CMSI 696: Master's Thesis II
CR3 cr

Continuing research and development of a thesis project for a second semester.

PythonCIntel Assembly
Fall 2023

Alternative MySQL Engine Design Analysis

Comparative analysis of MySQL storage engine architectures and their impact on query execution performance. Benchmarked InnoDB, Federated, Memory, CSV, and other engines using MySQL Workbench, examining trade-offs in B-tree indexing, row-level vs. table-level locking, buffer pool utilization, and query execution plan optimization. Demonstrated how engine selection affects throughput for read-heavy, write-heavy, and mixed workloads with representative SQL query patterns.

MySQLSQLInnoDBMySQL Workbench

Rust User-Level System Calls for Linux

Extended the Linux kernel system call table with a custom Rust-implemented command, compiled against kernel headers using GCC and Make for kernel module integration. Tested in a QEMU-emulated Ubuntu environment to validate system call registration, user-space invocation via syscall wrappers, and safe FFI boundaries between Rust and the C-based kernel ABI. Managed Rust toolchain and dependencies through Cargo.

RustCargoLinuxCGCCMakeQEMU
CMSI 695: Master's Thesis I
CR3 cr

Research and development of a thesis project in compliance with the Frank R. Seaver College of Science and Engineering Master's Thesis Requirements.

PythonCIntel Assembly
Summer 2023 Session II

Complexity Analysis of Real-Time Bidding Algorithms

Formal resource and algorithmic complexity analysis of real-time bidding (RTB) and micro-bidding systems within programmatic advertising infrastructure. Examined demand-side platform (DSP) and supply-side platform (SSP) architectures, second-price auction mechanisms, and the sub-millisecond latency constraints governing bid computation. Analyzed amortized complexity of bid landscape optimization strategies and constructed formal proofs mapping profitability metrics (click-through rate, return on ad spend) to computational variables for constrained optimization under auction-theoretic frameworks.

Summer 2023 Session I

Secure Shopping Cart Application

Investigated Java-specific design decisions affecting application security in a consumer-facing shopping cart, targeting OWASP Top 10 vulnerabilities. Applied parameterized queries to prevent SQL injection, input sanitization and output encoding to mitigate cross-site scripting (XSS), defensive copying to preserve object invariants, and strict type validation with null-safety patterns. Validated security properties through JUnit 5 test suites covering boundary conditions, malformed input, and adversarial payloads.

JavaJUnit 5
Secure Language Stacks

Implemented expandable stack data structures in C, C++, and Java to compare language-specific secure memory management patterns. Demonstrated manual heap allocation with malloc/realloc/free and bounds checking in C, RAII via unique_ptr with move semantics and custom exception handling in C++, and Objects.requireNonNull validation with type-safe generics in Java.

CC++Java
Secure Bank Site

Collaborative project demonstrating cross-site scripting (XSS) attack vectors and session token hijacking in a banking web application. Implemented CSRF token validation and session expiration policies to prevent unauthorized authenticated actions from unattended browser sessions.

JavaScript
AES-256-CBC Encrypt/Decrypt Console

CLI tool implementing AES-256-CBC symmetric encryption and decryption using Node.js's crypto module. Demonstrated proper key derivation, initialization vector (IV) generation, PKCS7 padding schemes, and ciphertext encoding for secure message handling.

JavaScriptNode.js

Spring 2023

Plumb Language Compiler & Research Paper

Authored a 13-page research paper examining the intersection of programming language pragmatics and programmer intuition for parallel programming. Investigated how language-level abstractions can better expose shared-resource contention, race conditions, and deadlock potential in threaded programming models. Implemented a companion compiler for the Plumb programming language in pure Java (no external libraries), featuring a handcrafted regex-based tokenization pipeline, recursive-descent parser derived from a formal context-free grammar specification, and abstract syntax tree construction. Validated correctness through JUnit 5 test suites.

JavaJUnit 5

UNICEF Resource Mapping in Brazil

Built a geospatial clustering pipeline using scikit-learn's K-means implementation to map UNICEF support resources across impoverished regions of Brazil, addressing gaps in official Brazilian government county data for legally unincorporated high-poverty areas. Performed exploratory data analysis and feature engineering with pandas and NumPy, applied SciPy for distance metrics, and evaluated cluster quality via silhouette scoring. Visualized geographic distributions using Matplotlib, Seaborn, and Tableau on the Python side, with ggplot2 and tidyverse for complementary R-based analysis.

PythonRscikit-learnpandasNumPyMatplotlibSeabornSciPyggplot2tidyverseTableau
Web Scraping Data Collection

Built a web scraping pipeline using Python requests and BeautifulSoup for HTML parsing with http.client for API access. Extracted, cleaned, and structured data into tabular format using pandas, exporting results to CSV for downstream analysis.

PythonrequestsBeautifulSouppandas
CMSI 585: Programming Language SemanticsNow teaching
A3 cr

Mechanisms for the definition of syntax and semantics of programming languages, covering binding, scope, type systems, control flow, subroutines and coroutines, asynchronous and parallel execution, modularity, and metaprogramming. Denotational, operational, and axiomatic semantics.

Fall 2022

Plumb Language Compiler & Research Paper

Authored a 13-page research paper examining the intersection of programming language pragmatics and programmer intuition for parallel programming. Investigated how language-level abstractions can better expose shared-resource contention, race conditions, and deadlock potential in threaded programming models. Implemented a companion compiler for the Plumb programming language in pure Java (no external libraries), featuring a handcrafted regex-based tokenization pipeline, recursive-descent parser derived from a formal context-free grammar specification, and abstract syntax tree construction. Validated correctness through JUnit 5 test suites.

JavaJUnit 5
MATH 251: Applied Linear Algebra
A-4 cr

An introduction to matrix methods with an emphasis on modern computational techniques. Topics include Gaussian elimination, LU factorization, vector spaces and subspaces, orthogonality, determinant, eigenvalues and eigenvectors, diagonalization, least square optimization, and singular value decomposition.

R
MATH 357: Complex Variables
B3 cr

Complex arithmetic, functions of complex variables, analytic functions, integration in the complex plane, Taylor and Laurent expansions and residues; conformal mappings, evaluation of real integrals by residues; integral transforms.

Spring 2022

Custom 3D Graphics with Three.js

Constructed custom 3D meshes by directly manipulating vertex buffer objects and triangle indices using Three.js, computing UV coordinates and texture mappings from scratch to achieve precise surface detail control. Rendered within a React application harness.

JavaScriptThree.jsReact
2D Rasterization Engine

Implemented rasterization algorithms from scratch using the HTML5 Canvas API, including scanline fill for gradient rendering on arbitrary 2D polygons and convolution kernel-based image filters operating on raw ImageData pixel arrays.

JavaScriptReactHTML5 Canvas
Custom 3D Modeling Library

Built a web-based 3D modeling library implementing the full model-view-projection pipeline with a handwritten matrix engine supporting homogeneous coordinate transformations, a lighting engine implementing the Phong reflection model, and custom GLSL vertex and fragment shaders for the WebGL graphics pipeline. Rendered within a React application using raw WebGL API calls.

JavaScriptGLSLWebGLReact

Plumb Language Compiler

Designed and built a compiler for Plumb, a low-level imperative, modular systems language with custom syntax for threaded pipeline orchestration. Implemented as a syntax-directed transpilation pipeline to JavaScript using Ohm.js PEG grammars for parsing, with semantic actions driving code generation. Plumb's thread safety semantics were mapped to JavaScript's event loop concurrency model, using asynchronous primitives for concurrent execution in lieu of true OS-level parallelism. Tested with Mocha and measured code coverage with c8.

JavaScriptOhm.jsNode.jsMochac8

Multi-Armed Bandit Reinforcement Learning

Implemented reinforcement learning agents for uniform multi-armed bandit problems, comparing epsilon-greedy, UCB1, and softmax action selection strategies. Evaluated regret minimization and reward distribution estimation across varying arm configurations. Parallelized Monte Carlo simulations using joblib and visualized convergence behavior with Plotly interactive charts.

PythonNumPyPlotlyjoblib
Q-Learning Agents for Pac-Man

Implemented Exact Q-learning, Approximate Q-learning, and Deep Q-learning agents within the Berkeley AI Pac-Man framework. Deep Q-network trained using PyTorch with experience replay buffers and temporal difference learning to approximate state-action value functions. Built Bayesian network inference using pomegranate for causal reasoning, and particle filter-based belief state estimation to track ghost positions from noisy sensor observations. Visualized training metrics with Matplotlib and managed replay datasets with pandas.

PythonNumPyPyTorchpandasMatplotlibPillowpomegranateBerkeley AI Pac-Man
Pac-Man Capture the Flag

Trained a multi-agent team using Approximate Q-learning with custom feature extraction to compete in an adversarial 2v2 Pac-Man capture-the-flag tournament within the Berkeley AI framework. Designed offensive and defensive heuristics for dual-role agents simultaneously pursuing opponent capture and point maximization while avoiding being captured. Competed against other students' trained agents.

PythonBerkeley AI Pac-Man

ARM Assembly Algorithms

Developed handcrafted ARM assembly programs in ARMSim# to implement high-level algorithms at the instruction level, including greedy change-making with optimal register allocation and multi-word arithmetic using carry propagation for scaling integer operations beyond single-register capacity.

ARM AssemblyARMSim#
Fall 2021

Knowledge Base Inference Engine

Built an automated inference engine using propositional resolution over a conformal knowledge base to guide an agent through a minesweeper-like game. Constructed well-formed classical logic formulas encoding game state, then applied model checking and resolution refutation to determine knowledge base satisfiability, validating whether agent actions would yield optimal or suboptimal outcomes.

Python
Particle Filter for Pac-Man

Implemented a sequential Monte Carlo particle filter within the Berkeley AI Pac-Man framework to perform belief state estimation of ghost positions under noisy sensor observations. Applied importance weighting and resampling to maintain accurate posterior distributions over possible ghost locations, enabling informed decision-making despite imperfect information.

Python
Naive Bayes Spam Classifier

Built a multinomial Naive Bayes classifier for email spam detection using scikit-learn, trained on text message corpora to identify colloquial language patterns and profanity. Applied bag-of-words representation with TF-IDF vectorization via sklearn.feature_extraction, Laplace smoothing for posterior probability estimation, and evaluated precision/recall via confusion matrices. Performed exploratory data analysis with pandas and visualized feature distributions using Seaborn.

Pythonscikit-learnpandasNumPySeaborn
Linear Perceptrons for Spam Classification

Implemented linear perceptron classifiers using scikit-learn's linear models for the same spam classification task, establishing binary decision boundaries via stochastic gradient descent. Compared convergence behavior and classification accuracy against the Naive Bayes baseline, with feature scaling via sklearn.preprocessing to improve training stability.

Pythonscikit-learnNumPypandas

Los Angeles Network Architecture Map

Mapped the physical network topology of Los Angeles by conducting on-site hop count analysis using traceroute, nmap, and ipconfig at multiple locations. Performed reverse DNS resolution and autonomous system (AS) identification to trace routing paths from LMU's campus network through regional ISP infrastructure to the broader LA internet backbone. Documented topology with Lucidchart diagrams and supplemented with a Scapy-based Python packet sniffer for traffic inspection.

ScapyLucidcharttraceroutenmap
Server/Client Load Testing

Built a TCP server and client from scratch using Node.js's net module, manually constructing and parsing protocol buffers with UTF-8 encoding and raw buffer manipulation. Load-tested the server using Python's Locust framework, simulating thousands of concurrent connections with varying request complexities to benchmark throughput, measure response latency distributions, and identify bottlenecks for bandwidth optimization.

JavaScriptNode.js net modulePythonLocust
Network Packet Analysis and Visualization

Built a PCAP analysis pipeline using Scapy for packet dissection and dnspython for reverse DNS resolution of destination IP addresses extracted from captured traffic. Used TLS master keys to decrypt encrypted session data and examine packet internals for security-relevant content, including URI extraction for image resource tracking. Created a React and MUI visualization dashboard deployed via GitHub Pages to present filtered network data interactively.

PythonScapydnspythonWiresharkReactMUI

Multi-Language Problem Set

Implemented the same 10 algorithm and data structure problems across Python, JavaScript, C++, Java, and Swift, highlighting each language's idioms, type systems, and concurrency models. Problems included a Turing machine simulator, recursive say function, greedy change-making, and generator-based power sequences. Tested with Mocha for JavaScript and JUnit for Java.

PythonJavaScriptC++JavaSwiftMochaJUnit
MATH 234: Calculus III
C4 cr

Partial derivatives, multiple integrals, three-dimensional space, vectors in two- and three-dimensional space, line integrals, Green's theorem.

Spring 2021

Digital Circuit Design

Designed and simulated combinational logic circuits in Multisim, including multiplexers, ripple-carry adders, and array multipliers. Verified functional correctness via truth table simulation and propagation delay analysis. Culminated in physical implementation on breadboards using discrete logic ICs, LEDs, and jumper wires to validate circuit behavior against simulation results.

Multisim
CMSI 282: Algorithms
C+3 cr

The study of algorithm paradigms, including divide-and-conquer, greedy methods, dynamic programming, backtracking, and randomization, with emphasis on combinatorial search. String processing, advanced sorting, constraint satisfaction, hill climbing, optimization, graph algorithms, and computational geometry.

Java
CMSI 284: Computer Systems Organization
C3 cr

Exploration of computing system operation with a focus on programming at levels with minimal translation between the code and what the computer can access and manipulate directly. Bit representations, the C programming language, assembly language, calling conventions, and system calls.

x86-64 Assembly
MATH 245: Ordinary Differential Equations
B-3 cr

Systems of linear algebraic equations, Gaussian elimination, matrices, and matrix algebra. Linear dynamical systems and equilibrium. Analytical solutions of linear differential equations, including Laplace transform and linear time-domain analysis. Eigenvalues, eigenvectors and the matrix exponential.

MATH 366: Discrete MethodsNow teaching
B-3 cr

An introduction to graph theory; trees; coloring; Eulerian circuits. Combinatorics; permutations and combinations; recurrence relations; algorithmic approaches to combinatorics problems.

Python
Fall 2020
CMSI 281: Data Structures
B-3 cr

Specification and design of data types, information structures, and their associated algorithms. Collection classes for sets, lists, stacks, queues, hierarchies, heaps, and dictionaries. Implementation via arrays, linked lists, hash tables, and tree structures. Introduction to asymptotic computational complexity.

Java
MATH 248: Introduction to Methods of ProofNow teaching
B3 cr

Number theory, sets, functions, equivalence relations, cardinality, methods of proof, induction, contradiction, contraposition.

Spring 2020

Web Game with Procedural Level Generation

Built a web-based game using Create React App featuring procedural level generation for replayability. Managed global game state through a Redux store with actions and reducers for player state, level progression, and scoring. Styled with CSS Modules for component-scoped styling.

JavaScriptReactReduxCreate React AppCSS Modules
CMSI 186: Programming Lab
A3 cr

Lab companion to introductory computer programming, emphasizing hands-on practice with software development tools, debugging, testing, and collaborative coding workflows.

Java
MATH 132: Calculus II
B4 cr

Techniques of integration, numerical methods of integration with error analysis, applications of the integral, improper integral, infinite series, an introduction to parametric equations and polar coordinates.

Fall 2019
CMSI 185: Computer Programming
A3 cr

Foundational course on computer programming, stressing software development best practices. Topics include values and types, functions, objects, iteration, recursion, event-driven programming, and graphics and animation. Basic data structures and selected algorithmic paradigms are introduced.

Python
MATH 131: Calculus I
A-4 cr

Limits, continuity, derivatives of algebraic and transcendental functions, applications of the derivative, antiderivatives, introduction to the definite integral, Fundamental Theorem of Calculus.

Cartographer Exploration Game

Built a 2D exploration game in Java using the LibGDX game engine simulating the experience of being an exploring cartographer. Used LibGDX's Box2D physics, Ashley ECS framework, and LWJGL desktop backend for rendering.

JavaLibGDXBox2DGradle
BIOE 1000:Introduction to Bioethics
Fall 2019A
FFYS 1000:FYS: War & Peace in German Lit & Film
Fall 2019A-
ORNT 1000:Intro to LMU for Freshmen
Fall 2019CR
PHIL 1800:Philosophical Inquiry
Spring 2020A-
RHET 1000:RA: Speaking & Writing for Social Justice
Spring 2020A
CHEM 110:General Chemistry I
Fall 2020B
PHIL 3115:Ethics for Engineering/Science
Fall 2022B+
ASPA 2100:Asian Civilizations
Spring 2023A-
PHIL 3712:Augustine
Spring 2023A-

Professional Experience

  • Increased student engagement across 3 core CS courses (Discrete Mathematics, Operating Systems, Programming Language Foundations) serving 80+ students per semester by developing interactive course websites with custom lecture notes and hands-on examples
  • Redesigned Discrete Mathematics curriculum from scratch, creating 6 new problem sets composed of both theoretical and programming exercises with interactive demonstrations that bridge theoretical concepts with practical CS applications
  • Modernized Operating Systems course by introducing Rust-based lab assignments and parallel computing concepts, preparing students for contemporary systems programming careers
  • Mentored 3 independent study students on advanced research projects, with one project receiving university research funding and being deployed as an official tool for detecting AI-generated code in student assignments
  • Guided student research spanning graphics programming (GLSL shaders), full-stack systems development (multi-threaded Rust servers), and kernel-level security (anti-cheat systems)
  • Developed a distinctive pedagogical framework combining formal-practical bidirectional learning, isomorphic learning through everyday experience analogies, and custom interactive lecture components across all courses
  • Generated unprecedented cross-course enrollment demand, leading to Operating Systems class size expansion from 20 to 32 seats and the first-ever Fall semester offering of the course in department history
Course Development & Curriculum Design

Completely redesigned course curriculum to emphasize practical applications of discrete math in computer science. Developed new problem sets, interactive examples, and assessment strategies focused on building intuition alongside formal understanding.

Key Achievements:

  • Built comprehensive course website with 25+ interactive lecture notes, increasing student resource accessibility and engagement outside of class
  • Designed balanced assessments combining theoretical proofs with practical applications, improving student ability to connect abstract concepts to real-world problems
  • Integrated CS applications (logic gates, graph algorithms, cryptography) throughout curriculum, helping students see direct relevance to their other coursework

Rebuilt course from the ground up to reflect modern operating systems concepts and parallel computing paradigms. Focused on how design decisions affect real-world use of devices by incorporating how common software use is altered by small changes to hardware or software features.

Key Achievements:

  • Developed 6+ new lab assignments using Rust, introducing students to memory-safe systems programming practices used in industry
  • Incorporated parallel programming and concurrency concepts throughout the course, preparing students for multi-core and distributed computing environments
  • Created materials connecting low-level architecture (CPU scheduling, memory management) to high-level OS abstractions students interact with daily

Redesigning the curriculum to retell the material with a far more interactive approach, structuring the entire course around building from nothing using only tools formally proven from the ground up. Transforming homework from purely written formal work into application projects that teach students to mechanize formal theory into language-agnostic programming assignments, demonstrating how foundational theory underlies all modern systems.

Key Achievements:

  • Reorganized course structure to build concepts incrementally from first principles, using only formally verified tools and constructions
  • Replaced written-only formal assignments with hands-on application projects bridging theory and practice
  • Designed curriculum to expose how programming language foundations underlie all software systems
Teaching Philosophy & Pedagogical Innovation

Enforces a bidirectional system of learning across all courses, exploring tools alongside their formal theoretical foundations and demonstrating how formal systems manifest in practical tooling. Students build a fully formed intuition for how formal theory enhances their programming abilities in practice, rather than treating theory and application as separate domains.

Key Achievements:

  • Every practical tool introduced is grounded in its formal specification or theoretical origin
  • Every formal concept is demonstrated through its real-world implementation in production systems
  • Students develop the ability to move fluidly between theoretical reasoning and applied problem-solving

Employs a teaching methodology rooted in the belief that if computer science genuinely models the world, then every topic should have a grounded analogue in everyday human experience. Each new concept is paired with a familiar scenario — social interactions, commuting, cooking, management — giving students an intuitive head start by showing them they have already encountered the underlying pattern; they are now learning to formalize and apply it in code.

Key Achievements:

  • Every major topic is introduced alongside a concrete, relatable human experience analogy
  • Students report faster conceptual uptake by recognizing patterns they already navigate daily
  • Reduces intimidation factor of abstract topics by anchoring them in lived experience

All lectures include custom-built, interactive website components that allow students to directly manipulate and explore the topic under discussion. These components provide a hands-on, exploratory feel for abstract concepts, enabling students to build physical intuition for computational ideas through direct experimentation rather than passive observation.

Key Achievements:

  • Custom interactive widgets embedded in course websites for each major topic
  • Students can modify parameters, observe outcomes, and develop intuition through exploration
  • Bridges the gap between static lecture content and active, experiential learning
Departmental Service & Curriculum Impact

Participated in departmental curriculum review committee, providing targeted analysis of how programming language pragmatics directly affect student learning outcomes. Recommendations were adopted across 5 courses spanning all four year levels.

Key Achievements:

  • Data Structures: Python to Java — stronger type discipline for ADT implementation
  • Algorithms: Python to Java — consistent with Data Structures, better for complexity analysis tooling
  • Operating Systems: C to Rust — memory safety guarantees while retaining systems-level control
  • Discrete Mathematics for CS: no programming to Python — bridging formal proofs with computational verification
  • Languages & Automata: expanded Rust inclusion — leveraging ownership/borrowing as a teaching vehicle for type theory concepts

Recommendations adopted department-wide, reshaping the programming language experience for students from freshman through senior year

Student Impact & Enrollment

Discrete Mathematics (CMSI 2820), as the first CS-dedicated alternative to the Math department's equivalent offerings, became a preferred entry point for freshmen and sophomores. Students who took Discrete Math subsequently enrolled in Operating Systems (CMSI 3510) at unprecedented rates, with many requesting prerequisite overrides to take the OS prerequisite concurrently.

Key Achievements:

  • Operating Systems class size manually expanded from 20 to 32 seats to meet demand
  • Enrollment demand led to OS being offered in Fall for the first time in department history (previously Spring-only)
  • Students created custom degree paths to take courses ahead of the standard curriculum sequence
  • Advising faculty processed an unusually high number of prerequisite overrides to accommodate demand

Organized and led extracurricular lecture series to prepare LMU's ICPC teams for regional competition. Identified a critical gap between the department's industry-focused curriculum and competition requirements: students were strong software engineers but lacked the specialized skills needed for timed algorithmic contests without access to standard tooling — memorizing key mathematical properties, super-optimized compact prime filtering, minimized-memory format designs for dynamic programming, and performing under pressure.

Key Achievements:

  • Designed and delivered targeted extracurricular lectures covering competition-specific algorithmic techniques not emphasized in the standard curriculum
  • Provided students with tooling strategies and experience-based preparation drawn from prior ICPC competitions
  • Coaching resulted in the highest-performing result across all teams in the department's history

Students taught and mentored have secured positions at major technology companies, competitive graduate programs, and entrepreneurial ventures, reflecting the department's and the instructor's emphasis on producing well-rounded, industry-ready and research-capable computer scientists.

Key Achievements:

  • 4 students placed at Google across SWE and ML roles
  • 8 students placed in industry roles at companies including Amazon, Paramount, PayPal, C3.ai, Marvell, Vast, 2K Games, and Skechers
  • 1 student founded an AI startup
  • 3 students admitted to graduate programs at UIUC, USC, and UC Santa Barbara, with 1 publishing a first-author IEEE paper

Across 8 course sections (7 Discrete Mathematics, 2 Operating Systems) serving 182 students over 3 semesters, received consistently strong evaluation scores with a clear upward trajectory. Fall 2025 CMSI 2820 Section 02 achieved a perfect 5.00/5.00 overall effectiveness — above department average on every metric. The primary area for early growth — grading turnaround time across 3 simultaneous sections — directly motivated investment in automated grading tooling (Gradeflows/PostCommit), and subsequent semesters show measurable improvement in feedback scores, demonstrating a commitment to converting student feedback into systemic improvement.

Key Achievements:

  • Fall 2025 CMSI 2820-02: perfect 5.00/5.00 overall effectiveness (dept avg 4.53), 100% Very Good ratings, above department average on all 8 metrics
  • Spring 2025 CMSI 2820: 4.70/5.00 overall effectiveness (dept avg 4.43), above department average on all 8 metrics
  • 6 of 8 sections scored above department average for overall instructional effectiveness
  • 5 of 7 Discrete Mathematics sections scored above department average, with 2 sections achieving perfect or near-perfect overall scores
  • Consistent praise themes across 3 semesters: enthusiasm/passion, recorded lectures, interactive course websites, innovative standards-based grading, activity days, approachability
  • Clear improvement trajectory from Fall 2024 to Fall 2025, with grading feedback scores rising from below-department to above-department average by the third semester

Student Feedback:

A truly magnificent professor. Clear about his expectations from day one. Knows how to start slow and build up effectively. As a new professor, he handled teaching a difficult course impressively well.
The passion you show for it makes it so much more fun for all of us... you are such a talented teacher that it is crazy it is only your first year doing it officially.
Phenomenal teacher. I loved the simple explanations, and the set up of the overall course being standards based. Loved this class and professor — I wish he taught data structures.
Professor Gonzalez's ability to articulate complex concepts clearly demonstrated both his intelligence and knowledge of the field. He answered every question with ease and frequently expanded upon initial inquiries to present more challenging scenarios.
I think Julian understands closely what it was like in our shoes as a student so he's very sympathetic and always wants us to succeed.
Every one of the professor's lectures were entertaining, which led to a deeper understanding of the complex course content. The activities throughout the semester were extremely fun.
The professor is a great lecturer and down-to-earth.
Research & Mentorship

Guided student through computer graphics fundamentals and GLSL shader programming, culminating in custom hand-built shaders for the video game Minecraft.

Student gained practical experience in GPU programming and real-time rendering techniques.

Mentored development of a full-stack, multi-threaded HTTP REST server written in Rust that uses containerization to run student code in a sandboxed environment to provide faculty with additional support in grading student assignments with analytics. Went on to receive additional faculty support and university research funding and is now deployed as an official tool used by faculty across the Computer Science department.

Project received additional faculty support and university research funding and is now deployed as an official tool used by faculty across the Computer Science department.

Advising student research on kernel-level anti-cheat systems for video games with dedicated servers, exploring low-level security and driver development.

  • Supported 100+ students across upper-division theory courses (CMSI 3801/3802) over 3 years, providing tutoring in programming language theory and formal automata
  • Guided students through mastery of 5 programming languages (Python, JavaScript, Java, C++, Swift) by conducting weekly tutoring sessions and code reviews
  • Mentored students in designing and implementing complete interpreters and compilers from scratch, reinforcing theoretical concepts through hands-on project work
  • Extended tutoring support to freshman and sophomore courses, helping students build foundational programming skills and computational thinking
Per-Course Contributions

Provided weekly tutoring sessions and code reviews as students worked through 5 programming languages (Python, JavaScript, Java, C++, Swift), helping them understand each language's unique paradigms and strengths.

Key Achievements:

  • Conducted weekly tutoring sessions covering language-specific idioms and best practices across 5 languages
  • Reviewed student code for multi-language problem sets, providing feedback on idiomatic usage and design patterns
  • Helped students navigate the transition between imperative, object-oriented, and functional paradigms

Mentored students through the design and implementation of complete interpreters and compilers from scratch, reinforcing formal automata theory through hands-on project work.

Key Achievements:

  • Guided students through building lexers, parsers, and code generators for custom programming languages
  • Reinforced theoretical concepts (context-free grammars, finite automata, regular expressions) through practical compiler construction
  • Provided detailed feedback on compiler design decisions and implementation correctness

Extended tutoring support to freshman and sophomore courses, helping students build foundational programming skills and computational thinking.

Key Achievements:

  • Assisted students in introductory programming courses with core concepts like data structures, algorithms, and debugging
  • Helped bridge the gap between introductory coursework and the rigor of upper-division theory courses

Achievements & Competitions

ICPC Competitor - Record-Setting Performance

International Collegiate Programming Competition

2022 - 2024

Competed 3 times at ICPC regionals hosted at Riverside Community College. Led team of 3 to achieve the highest point total in LMU history through self-taught competitive programming skills, as the university curriculum does not specifically prepare students for algorithmic competitions.

Teaching & Research Interests

Operating Systems & Low-Level Systems ProgrammingParallel & Concurrent ComputingDiscrete Mathematics & Formal LogicAutomata & Computational TheoryProgramming Language TheoryCS Education & Pedagogy

Additional Experience

CSSIx Pre-College Summer Program Participant

Google & Loyola Marymount University

Summer 2019

Completed Google's Computer Science Summer Institute extension program hosted at LMU, building web applications using Python, Google App Engine, and Jinja2 templating. Created an ASL learning platform and a recipe web app. Included visits to Google's Venice Beach offices and mentorship from Google engineers.

FRC Robotics - Manufacturing Lead

Team 4201 Vitruvian Bots, Da Vinci Science High School

2018 - 2019

Led manufacturing division of 8 team members to World Championship victory by managing CNC machining operations, coordinating $3K+ budget, and ensuring precision fabrication of competition robot components.

Technical Skills

Programming Languages

PythonJavaScript/TypeScriptJava/KotlinC/C++SwiftRustHTML/CSS

Systems & Tools

Linux/UnixGitReact/Next.jsNode.jsBash

Teaching & Development

LaTeXMarkdown/MDXWeb DevelopmentCourse Management SystemsAutoCAD/MasterCAM (from FRC)

Let's Connect

Whether you're a current student, prospective student, or fellow educator interested in course design and CS pedagogy, I'd love to hear from you.