Colors

Themes

my_photo

Hello! My name is

I'm a Software Engineer with experience in Web Systems, Operating Systems, Machine Learning, and Data Engineering.

Download CV

Projects

S&P 500 ELT Pipeline

Personal Project

A website that hosts the dashboard for an ELT data pipeline that is automated using AWS services. The dashboard displays the top growers and losers of the S&P 500 stocks for previous day, month, and year and is automatically updated every day

view Github repository

Image Classifier

Personal Project

A website built with React that uses a pre-trained Tensorflow JS Model called MobileNet to classify images that a user uploads. This website displays its three most likely predictions along with their accompanying probabilities for each image

view Github repository

Network File Server

Operating Systems

A basic file system server written in C++ that recieves network messages from clients to create, read, write, and delete files and directories. Server implements persistent data structures to store data, checks permissions from client requests before executing them, and uses mutlithreaded programming by running client requests in separate threads while using reader-writer locks to ensure correctness while maximizing concurrency

Search Engine

Web Systems

A simple search engine built with server-side dynamic pages. ~3000 wikipedia texts were used in a 5 stage MapReduce pipeline to create a large inverted index containing statistics for each word. 3 local servers host partitions of the MapReduce output and contain REST api which the search server uses to dynamically render top 10 relevant results for user's query.

This Website!

This website was built entirely in vanilla JavaScript and HTML + CSS.

view Github repository

Experience

Research Assistant


University of Michigan

Jan-Sept 2023


Worked under the supervision of Professor Al-Thaddeus Avestruz in the development of a software application and a general, adaptable framework to perform the techno-economical analysis of battery energy storage systems for various energy applications, taking into account the degradation of these batteries with a data-driven approach.

Coursework

Programming and Intro Data Structures Data Structures and Algorithms Introduction to Computer Organization Foundations of Computer Science Introduction to Computer Security Introduction to Machine Learning Introduction to Artificial Intelligence Web Systems Introduction to Operating Systems Introduction to Probability Theory Introduction to Theoretical Statistics

EECS 280: Programming and Intro Data Structures.

Introductory course to C++. EECS 280 covers pointers, dynamic memory, structs and classes, inheritance, data structures such as linked lists and binary search trees, and basic recursion.

EECS 281: Data Structures and Algorithms.

Introduction to data structures and algorithms. EECS 281 covers algorithms such as binary search, sorting, binary heaps, shortest path algorithms, DFS and BFS, the traveling salesperson problem, and dynamic programming.

EECS 370: Introduction to Computer Organization.

Study of computer architecture. EECS 370 covers assembly language, processor datapaths, caching, and virtual memory.

EECS 376: Foundations of Computer Science.

Theoretical computer science. EECS 376 covers computability, recognizability, Turing Machines, complexity (P vs NP), and cryptography.

EECS 388: Introduction to Computer Security.

Introduces the principles and practices of computer security as applied to software, host systems, and networks. EECS 388 covers standard cryptographic functions, website security, network security, buffer overflow attacks, and computer forensics.

EECS 445: Introduction to Machine Learning.

Theory and implementation of state-of-the-art machine learning algorithms for large-scale real-world applications. Topics include supervised learning (regression, classification, kernel methods, neural networks, and regularization) and unsupervised learning (clustering, density estimation, and dimensionality reduction).

EECS 492: Introduction to Artificial Intelligence.

Introduction to the core concepts of AI, organized around building computational agents. Emphasizes the application of AI techniques. Topics include search, logic, knowledge representation, reasoning, planning, decision making under uncertainty, and machine learning.

EECS 485: Web Systems.

Concepts surrounding web systems, applications, and internet scale distributed systems. Topics covered include client/server protocols, security, information retrieval and search engines, scalable data processing, and fault tolerant systems

EECS 482: Introduction to Operating Systems.

Operating system design and implementation: multi-tasking; concurrency and synchronization; inter-process communication; deadlock; scheduling; resource allocation; memory and storage management; input-output; file systems; protection and security.

STATS 425: Introduction to Probability Theory.

Introduction to the mathematical theory of probability including applications of probability to a variety of fields including genetics, economics, geology, business, and engineering.

STATS 426: Introduction to Theoretical Statistics.

An introduction to theoretical statistics for students with a background in probability. Probability models for experimental and observational data, normal sampling theory, likelihood-based and Bayesian approaches to point estimation, confidence intervals, tests of hypotheses, and an introduction to regression and the analysis of variance.

Contact Me

Email: theeduardomora@gmail.com