.
my picture

Brian Qian

  • San Jose, CA
  • I'm a computer science student at San Jose State University, currently looking for software engineering and research & development positions starting in early June 2024. I'm passionate about building software that improves people's lives. Thank you for taking the time to look at my portfolio!

    See mostly recently updated resume here

    Education

    B.S. Computer Science

    San Jose State University

    Graduating in May 2024

    GPA: 4.0

    Relevant Coursework:

    • Algorithm Design and Analysis
    • Object-Oriented Design
    • Programming Paradigms
    • Computer Architecture
    • Operating Systems
    • Database Management Systems
    • Information Security
    • Parallel Processing
    • Processing Big Data
    • Machine Learning
    • NoSQL Database Systems
    • Software Engineering

    Click to see unofficial transcript

    Skills

    • Languages: C, Ruby, JavaScript, TypeScript, Java, Python, SQL, VHDL, LISP (Scheme)
    • Full-stack: HTML | CSS, Svelte, Tailwind, React, REST, MongoDB, Node.js
    • Libraries/Frameworks: Pandas, Matplotlib, NumPy, TensorFlow, Keras, scikit-learn
    • Tools and Others: Git, Bash, Linux, Docker, GNU Make, VSCode, Vim

    Experience

    Computer Science Lab Instructor

    San Jose State University

    August 2023 - December 2023

    CS 46A - Introduction to Programming

    • Facilitated hands-on software design activities for varying levels of incoming programming and engineering students
      • Weekly lab sessions of hands-on practice for practical applications of Java concepts and software design
    • Assisted students in learning the fundamentals of Java programming, such as syntax, data structures, control structures, GUI, and object-oriented concepts
    • Encouraged thinking about software design principles of modularization, abstraction, unit testing with JUnit
    • Guided students resolve and debug errors through troubleshooting and researching
    • Graded lab assignments and provided constructive feedback to students
    • Collaborated with the lecture instructor and other lab instructors to design and update the lab curriculum and materials

    Projects

    Dynamic iframe Browser

    • Resizable, draggable mini-browser on any compatible site modeled after Picture-in-Picture mode
    • Designed a dynamic iframe with redirectable source within a custom-made browser interface
    • Designed and built with JavaScript

    Parallel Processing and Machine Learning

    • Conducted a research project on the overlap of parallel processing and machine learning, focusing on the challenges and opportunities from across both domains
    • Investigated how parallel processing techniques, such as data parallelism, model parallelism, pipeline model parallelism, and (de)centralized systems, can enhance the performance and scalability of machine learning algorithms for training and tuning
    • Explore potential for machine learning methods on parallel processing problems, such as preemtively detecting and avoiding race conditions and deadlocks
      • Non-deterministic bugs are difficult to predict, but they can exhibit common patterns and may find certain features to arise more frequently

    EcoIndex

    • Multi-user software to create, review, and group notes and vocabulary flashcards
    • Managed project as a full-stack developer
      • Designed SQLite database schema
      • Extended JavaFX containers and created cloning and navigation services
        • Built personal alerts, prompts, warnings, animations
      • Utilized MVC and orchestrated program flow

    Game Library Database & User Progress Tracker

    • Developed a web application for managing gaming library and tracking user progress
    • Used Svelte, Vite, Tailwind, and Skeleton for a fast, responsive, and user-friendly frontend and UI
    • Designed database schema to PostgreSQL through applying database design principles such as business rules analysis, normalization, denormalization, and partitioning based on access frequency and data volume.
    • Implemented backend logic and RESTful APIs for communicating with the frontend and the database with SvelteKit
    • Containerized database with Docker for portability and create a monolithic client/server architecture

    Traffic-Navigating Robot

    • Led a 4-person team to build and program a robot that could navigate traffic and respond to traffic-like stimuli (e.g. lane-following, stops, lights, yielding)
    • Accounted for safety mechanisms and emergency situations
      • Proposed and implemented height detection to prevent robots from shattering to pieces upon falling
    • Designed and implemented behavior in Python

    Featherweight JavaScript

    • Interpreter for (subset of) JavaScript implemented in Java
    • Built backend of compiler with core language constructs of scoping and closure functions
    • Utilized ANTLR for tokenizing and parsing

    Personal Language and Translator

    • Designed a language and encryption system for disguising communication
    • Made a translator to easily encode and decode messages for this language through JavaScript
    • Expanded upon to experiment with formal languages, regular expressions, and compiler grammar

    More

    • Turing Machine Simulates DFA - Created a Turing Machine transducer to simulate the input, operations, and output of a Deterministic Finite Automata (DFA) with JFLAP. The simulator asks for the original input and an encoding of the DFA model to simulate through. The encoding format is not restricted, but it should be consistent and distinct.
    • Arithmetic Logic Unit - Designed and implemented an Arithmetic Logic Unit (ALU) in MIPS assembly with bitwise and logical operations. Supports addition, subtraction, multiplication, and division on 32-bit operands. Employs techniques of bit manipulation such as bit masking and bit slicing.
    • Information Security REPL - Designed interactive input for encryption, decryption, authentication implemented in Java. Set up responsive commands modeled after terminal commands
      • Simple Substitution - Command line interface for decrypting ciphertext using the character substitution method. Suggests smart guesses by taking into account letter counts and frequencies.
      • A5/1 Encryption - Implemented the A5/1 stream cipher algorithm, used for encryption in GSM cellular networks. Generated keystream through a key fill for three linear feedback shift registers (LFSRs) for pseudo-random keystream bits.
      • "Breaking" RSA (Extended Euclidean Algorithm) - If able to find selected primes of public key factor, then can find private key for decryption. Implemented Extended Euclidean Algorithm to calculate that mathematically smallest private key.
      • Hamming Distance on Iris Codes - Implemented enrollment and recognition of hexadecimal-encoded iris codes. Set up an error tolerance threshold for authentication based on hamming distance.
    • Karuta Map Simulator - Minigame involving restocking inventory as traversing across a map. Created an application to simulate routes that best approximate (or sometimes optimally find) the best balance of score and long-term inventory.

    More projects can be found on my GitHub