I am Ian Casini, a software developer and data analyst passionate about solving complex problems and building meaningful projects. My experience spans game development, automation scripts, AI chatbots, ray tracing, and data analysis. I enjoy turning data into insights, creating interactive applications, and learning new technologies to stay at the forefront of innovation.
This website is a project I built myself to showcase my software development experience, highlight my portfolio, and demonstrate my ability to design, implement, and present interactive web content.
Designed and implemented a Frogger-style arcade game using Visual Basic (.NET) with an emphasis on structured, event-driven programming. The application uses object-oriented design to model game entities such as the player, vehicles, lanes, and goal zones, enabling clear separation of concerns and extensibility. Implemented collision detection algorithms using bounding-box logic to evaluate interactions between the player and moving obstacles in real time. Game state is managed through a centralized control loop driven by timer events, handling player input, movement updates, score tracking, and win/lose conditions. Developed responsive keyboard input handling and synchronized animation updates to ensure consistent gameplay behavior. The project required extensive debugging and control-flow analysis to resolve race conditions, movement timing issues, and state transitions. This project demonstrates proficiency in Visual Basic syntax, .NET event handling, timers, conditional logic, and modular code organization, as well as the ability to design and implement an interactive application from specification to completion.
Designed and implemented a production-used registration automation system for my university’s Keystone Project process using Google Apps Script. The system integrates Google Forms, Google Sheets, and Gmail to streamline project registration and communication between students and supervising professors. The automation captures form submissions and programmatically validates and records responses into structured Google Sheets, ensuring data consistency and reducing manual administrative work. Custom trigger functions handle real-time processing of submissions, including conditional logic to route information based on project type, department, and supervising faculty. I developed dynamic email automation workflows that generate and send customized notifications to both students and professors, confirming registration details and facilitating approval communication. Email content is assembled using template logic and data mapping from form responses, minimizing errors and improving turnaround time. The project required careful handling of event triggers, permissions, error handling, and data integrity, as well as testing in a live academic environment. This system demonstrates experience building scalable workflow automations, integrating multiple Google Workspace services, and delivering software that supports real users in a production setting.
Recreated the classic ELIZA conversational program in C, implementing a rule-based dialogue system driven by keyword detection and pattern–response mappings. The program simulates natural language interaction using deterministic logic, illustrating how early NLP systems generated conversational behavior without machine learning. The implementation required extensive low-level string parsing, pointer manipulation, and manual memory management to process user input, prioritize matching rules, and sustain conversational flow across multiple exchanges. This project demonstrates a strong understanding of foundational AI concepts, C programming, and the mechanics behind symbolic language systems.
Developed a ray tracing renderer in Java, leveraging Java’s visual components to display a 3D scene in a GUI. The program casts rays from a virtual camera into the scene to calculate ray–object intersections (spheres, planes) and determine visible surfaces, producing a pixel-based rendering of the environment. Implemented basic lighting and shading, including ambient and diffuse components, using surface normals and light vectors to simulate realistic illumination. Shadow effects were achieved by casting secondary rays to detect light occlusion, demonstrating careful control of geometric computations and floating-point precision. This project highlights skills in object-oriented design, computational geometry, linear algebra, and GUI integration, as well as the ability to translate mathematical models into interactive, visually rendered software using Java’s built-in visual components.
Developed a data science pipeline to extract insights from user reviews using Python, leveraging NumPy and pandas for data manipulation and preprocessing. The project involved cleaning and structuring text data, including handling missing values, tokenization, stop-word removal, and stemming/lemmatization to prepare reviews for analysis. Applied sentiment analysis to classify reviews as positive, negative, or neutral, and used NLP modeling techniques—such as TF-IDF vectorization and word frequency analysis—to identify key topics and trends in user feedback. Results were summarized and visualized to reveal patterns and actionable insights for decision-making. This project demonstrates proficiency in data cleaning, text preprocessing, sentiment analysis, NLP modeling, and the use of NumPy and pandas for efficient data handling, as well as the ability to turn unstructured text into meaningful, interpretable information.
I am actively working on several new projects that will be added to the portfolio soon, including a Socket Chat application for real-time communication, a War Card Game, and a Zelda Recreation that leverages dynamic user input and advanced UI features. Stay tuned for updates as these projects are completed and showcased here.