Hello! My name is Julia Duffy.
I am a software engineer, currently working towards a master's degree in computer science with an emphasis in computer engineering at the University of Utah. My primary interests are in computer systems and full stack software engineering. In my free time, I enjoy rock climbing and traveling!
Email: jtduffy7@gmail.com | LinkedIn: juliatduffy | GitHub: juliatduffy
My Resume
Experience
Software Engineering Intern
Salt Lake City, UT
I build web-based privacy software using React, JavaScript, and TypeScript, including a password manager browser extension being released to a subscriber base of around 37,000 users. I am also helping build a Retrieval-Augmented Generation (RAG) support agent that organizes and interprets customer feedback data, using Hugging Face, Chroma, and Ollama.
Contract Software Engineer — AirWise
Salt Lake City, UT
Built a school air-quality monitoring app as part of a $6.4M EPA grant, using Flutter, FastAPI, and the Google Cloud ecosystem. The app pulls live data from Tellus sensors installed in schools to display pollutant visualizations, and it automatically sends "action plans" to teachers when pollutant levels reach an unhealthy range. My main focus was the backend architecture and database design, though I also contributed to the front end. The app is projected to deploy across urban and rural Utah schools and the Northern Arapaho Tribe in Wyoming in 2027.
Software Engineering Intern
May 2025 – Aug 2025Salt Lake City, UT
Did a software engineering internship at my favorite climbing hold company, Pusher. I spent most of my time improving their shipping workflow by fixing rate calculations, simplifying how clothing orders are packaged, and opening up international shipping using a RESTful API. I also did general upkeep of the WordPress site and fixed a few bugs that I found. The changes I made reduced shipping losses by an estimated $7,400 per year and opened the store up to new markets.
Computer Science Teaching Assistant
Jan 2025 – PresentSalt Lake City, UT
Lead labs, perform one-on-one code reviews with students, and hold help hours. I teach students about good software practices, C#, .NET Core, networking, and databases, which has helped me grow my own leadership and communication skills.
Projects
University of Utah Climbing Team Website
In Summer 2024, I made a website for the Climbing Team at the University of Utah. The website is now used by over 400 club members for team sign ups and information. I am no longer involved with the climbing team board so I wrote extensive documentation and handed off the website to a new owner who has since kept the information on the site up to date.
Fruit Image Recognition App
This is an Android app I made that recognizes fruits. I started by training an on-device machine learning model using TensorFlow Lite. To get enough images to train the model I wrote a Python script with a custom web crawler to retrieve and format images from bing. This project was a fun introduction to neural networks and Android's CameraX library.
Drawing App with Cloud Sharing
Android drawing app with persistent storage using Room and a custom Ktor server for sharing drawings. Includes undo/redo, bitmap rendering, and Jetpack Compose UI.
Mancala App with AI Opponent
Developed an Android Mancala app with three AI levels: random, greedy, and minimax with alpha-beta pruning. Includes animations, settings, and full game logic.
React + Django US State Album
Made and deployed a simple wesbite to learn more about the react and django web development frameworks. I plan to add more to this in the future but for now it is just a simple webpage that shows all of the states that I have traveled to, images from each state, and facts about each state that are being fetched from a Postgres database using django models and rest framework.
LMS Database
As a multi-week project in my advanced databases course, I designed and built a SQL database for a Learning Management System (inspired by Canvas). We connected this database to a C# Blazor front end.
Raspberry Pi Weather Station
Built a real-time weather dashboard using a Raspberry Pi and Sense HAT. Logged data and displayed historical charts via a Flask web interface.
Custom Programming Language Interpreter
Built a full interpreter in Racket for a custom object-oriented language (“Moe”). Implemented parsing, evaluation, closures, continuations, garbage collection, and memory allocation.
2D Golf Game — Box2D Physics
Team project: built a 2D projectile golf game in C++ with real physics using Box2D. Implemented collision detection, trajectory simulation, and multiple levels.
MMap Based Malloc
As part of the curriculum of CS4400 at the Uniersity of Utah I designed and implemented custom malloc/free/init system using an explicit free list, block coalescing, alignment, splitting, smart chunk mapping, and the unmapping of unused pages.
See more of my work on GitHub.
Extracurriculars
Hackathon Enthusiast (2024-2025)
This year, I have become more interested in competitive programming. Some recent events I have competed in include the "Redo Hackathon" (1st place, Best Game Award), the "Generative AI Hackathon" (3rd Place, Best AI-Integrated Hospital Software), and ICPC Regionals (19th place 😏). Though I have not had much practice with competitive programming and I am nowhere near the best in most competitions I have signed up for, I do feel like even just participating in these events has been a great way to step outside of my comfort zone and meet cool people!
Utah Climbing Team Vice President (2020-2024)
From 2024-2025 I helped run one of the largest student groups on campus, with over 350 members. I was one of the event managers and I was in charge of all club communication (email, social media, newsletter, website). I maintained a newsletter with 450 subscribers, and managed an instagram page with more that 2,000 followers. I also organized many large events, such as a nationwide training camp with USA Climbing, and several community-focused events with over 100 attendees.
USA Climbing National Team Member (2020-2024)
Competed internationally- 2x World Championship competitor, 7x USA National team member, and 2x Vice National Champion. During this time, I worked as a freelance climbing coach and brand ambassador. Climbing is still one of my biggest passions, but nowadays I prefer to climb outdoors. Climbing competitively taught me about what it takes to achieve mastery in something, and it is still one of my biggest passions outside of software engineering.
Education:
M.S. in Computer Science (emphasis in Computer Engineering)
University of Utah | Expected Graduation: December 2027 | GPA: 4.0
-
Operating Systems CS6460A
Software: C, x86, QEMU, GRUB, GDB
Description: A graduate study of operating system internals built around the xv6-64 kernel, covering the boot process, virtual memory and page tables, processes and system calls, scheduling, and concurrency. -
Graduate Algorithms* CS6150-
Description: Advanced study of algorithm design and analysis, including greedy algorithms, dynamic programming, network flow, linear programming, NP-completeness, and approximation algorithms.
-
Computer Architecture* CS6810-
Description: In-depth study of modern processor design, including pipelining, instruction-level parallelism, caches and the memory hierarchy, and multiprocessor architectures.
-
High Performance Computing* CS6230-
Description: Techniques for writing fast, scalable software on modern parallel hardware, including shared-memory and distributed parallelism, vectorization, and performance profiling.
* In progress
B.S. in Computer Science
University of Utah | Graduated: May 2026 | GPA: 3.73
-
Software Practice CS3500A
Software: C#, Microsoft MAUI, XAML, Visual Studio Code, Github, SQL
Description: Practical exposure to the process of creating large software systems, including requirements specifications, design, implementation, testing, and maintenance. Emphasis on software process, software tools, software engineering techniques, and team development practice. Much of the work will be in groups and will involve modifying preexisting software systems.Skills: SOLID code principles, Git, Logging, Web Servers and Networking, SQL databases, JSON serialization .
-
Data Structures and Algorithms CS2420A
Software: JavaScript, Eclipse
Description: This course provides an introduction to the problem of engineering computational efficiency into programs. Students will learn about classical algorithms (including sorting, searching, and graph traversal), data structures (including stacks, queues, linked lists, trees, hash tables, and graphs), and analysis of program space and time requirements. Students will complete extensive programming exercises that require the application of elementary techniques from software engineering. -
Computer Organization CS3810B+
Software: Mars Simulator, MIPS Assembly
Description: An in-depth study of computer architecture and design, including topics such as RISC and CISC instruction set architectures, CPU organizations, pipelining, memory systems, input/output, and parallel machines. Emphasis is placed on performance measures and compilation issues. -
Discrete Structures CS2100A
Description: Introduction to propositional logic, predicate logic, formal logical arguments, finite sets, functions, relations, inductive proofs, recurrence relations, graphs, probability, and their applications to Computer Science.
-
Object-Oriented Programming CS1410A
Software: Javascript, Eclipse, Python, Pycharm
Description: This course explores foundational programming skills while introducing the paradigm of object-oriented programming. -
Algorithms CS4150A
Study of algorithms, data structures, and complexity analysis beyond the introductory treatment from CS 2420. Balanced trees, heaps, hash tables, string matching, graph algorithms, external sorting and searching. Dynamic programming, exhaustive search. Space and time complexity, derivation and solution of recurrence relations, complexity hierarchies, reducibility, NP completeness. Laboratory practice.
-
Software Practice II CS3505A
An in-depth study of traditional software development (using UML) from inception through implementation. The entire class is team-based, and will include a project that uses an agile process. All assignments for this course are coded in C++ and the final two assignments for this course use QTCreator to create an interactive UI.
-
Programming Languages Concepts CS3520A-
Ideas behind the design and implementation of programming languages. Syntactic description; grammars and abstract syntax; interpreters and compilers; scope and lifetime of variables; order of evaluation; continuation representation; type systems.
-
Found. of Data Analysis CS3190B+
This class will be an introduction to computational data analysis, focusing on the mathematical foundations. The goal will be to carefully develop and explore several core topics that form the backbone of modern data analysis topics, including Machine Learning, Data Mining, Artificial Intelligence, and Visualization. This will include some background in probability and linear algebra, and then various topics including Bayes' rule and connection to inference, gradient descent, linear regression and its polynomial and high dimensional extensions, principal component analysis and dimensionality reduction, as well as classification and clustering. We will also focus on modern models like PAC (probably approximately correct) and cross-validation for algorithm evaluation.
-
Mobile Application Programming CS4530A
Software: Android Studio, Java, Kotlin, SQLite
Description: An introduction to the theory and practice of application development for mobile phones and tablets, including a focus on general program organizational techniques. Topics include native language foundations, automatic UI layout techniques, custom views and controls, data persistence, data driven user interfaces, application lifecycle, application architectural models like Model-View-Adapter, internet service interaction, RESTful web services, and 2D OpenGL rendering. Students will complete several programming projects during the course to explore these topics. A final project of the student's own design will make up a large part of the class. -
Database Systems CS5530A
Software: MySql, Putty
Description: This course is designed to cover the fundamental database concepts and query languages that are used in current relational database engines. A large portion of the course will consist of a multi-phase project throughout the semester, in which students will implement a learning management system (LMS) like Canvas. -
Data Wrangling DS2500A-
Software: Google Colab, Python
Description: The course will introduce students to basic techniques in collecting, scrapping, transforming, and normalizing data, as a first step in a data science pipeline. Students will learn by working with a variety of standard data processing tools, and experimenting on numerous example tasks. -
Computer Security CS4400A
Description: This course teaches the security mindset and introduces the principles and practices of computer security as applied to software, systems, and networks. It covers the foundations of building, using, and managing secure systems. Topics include standard cryptographic functions and protocols, and threats and defenses for real-world systems.
-
Senior Capstone CS4000A-
Description: During their last two semesters, senior Computer Science students form teams to develop significant software projects. This class is the first semester in the sequence. Seniors will work on team formation, project identification, project planning (including UI design, software architecture, testing methods, scheduling, etc.), and completion of a system prototype.
-
Computer Systems CS4440A
Description: Introduction to computer systems from a programmer's point of view. Machine level representations of programs, optimizing program performance, memory hierarchy, linking, exceptional control flow, measuring program performance, virtual memory, concurrent programming with threads, network programming.
-
Senior Capstone CS4500A
Description: The second semester of the senior capstone sequence, in which teams carry their project from prototype through implementation, testing, and delivery of a finished software system.
-
Scientific Computing CS3200A-
Description: Numerical methods for solving scientific and engineering problems, including numerical linear algebra, interpolation, numerical integration, and the solution of differential equations, with an emphasis on accuracy and stability.
