Amir H
- Research Program Mentor
Industry expert at UCSD
Expertise
Software Engineering, Full Stack Development, Backend Engineering, Frontend Engineering, Web App Development, DevOps, AWS, Scripting
Bio
Hi! My name is Amir Hajimirsadeghi. I am a UCSD graduate with a B.S. degree in Computer Science. Right after I got my degree I worked at Amazon as a Software Engineer for 3 years. While at Amazon, I got to work on some super cool top-secret projects and some bigger ones you may be familiar with like Ring and Alexa Auto. Over the last year, I quit my job and started working with my brother on a dental supply marketplace. As I take on this new journey in my life I decided to spend my free time mentoring students in hopes that I can provide some guidance in this vast and often complex path. Cheers, Amir HProject ideas
Algorithms & Data Structures
Have you ever wondered what it takes to get hired for a Software Engineering Job? A big part of becoming a professional software engineer is learning to work through small, medium, and large programming problems. There are many great platforms like leetcode and hackerrank that allow everybody to learn and practice programming problems. Depending on your experience level, we will work together through easy, medium, or hard problems and learn how to solve all sorts of problems. Doing these practices will not only help develop your problem solving skills, but it will familiarize you with programming languages, algorithms, data structures that you will see every day as a programmer. We will take our time going through these problems to make sure we understand the fundamental ideas behind the solutions. We will explore different data structures and when they are the most effective. Different algorithms and their complexity and why it’s an important indicator of a good solution or not.
Recreating Iphone’s Voice Memo App
Have you ever been curious about what it takes to build an App for mobile phones? In this project, we will work together to recreate Iphone’s Voice Memo App to learn the tools and skillsets needed to build a modern-day mobile application. I will break down the steps required to build an app into digestible pieces that we can cover in a single session. Although we will spend the first session going over the timeline of work required to finish this idea, here’s a rough idea of what you can expect: 1. Setting up your work environment a. Code Editor b. Required Software Components (Dependencies) 2. Getting Familiar with Front End Technologies a. HTML, CSS, JS, FlexBox 3. Getting Familiar with React Native a. Hooks, Props, Components, JSX 4. Learning State Management a. Context, Redux, Hooks 5. Creating Actionable Tasks a. We will breakdown the work required and create tasks we can cross off for the remainder of the app 6. Developing Functionality a. Creating/Deleting/Updating Audio b. Playing/Pausing/Resuming Audio 7. Styling The App a. Using CSS/flexbox to make the app look identical to Voice Memo
Create A Todo List Website
Have you ever wondered what it takes to be a full stack software engineer? It really isn’t much more different than any other type of software engineer, it just requires some learning of a couple new tools and ideas. In this project we will begin by defining all the operations a user would need to be able to fully manage a todo list (i.e. create new item, update item, delete item, mark item as deleted, etc). We will then work together to create what is called an API (or often called a backend) for the application. During the course of this project we will go over how to do this, why its even necessary, and what are some best practices for developing an API. Following the implementation of the API, we will start the development of the front end of the application (or often called the user interface). We will use html, css, js, and react to do this. During this part of the project we will develop and style what the user sees when they visit your todo list website. Lastly, we will work on connecting connect your frontend and your backend applications to create one cohesive website that users can open and use from any device anywhere! Some topics that will naturally come up during the development of this project are: fundamental website security (authentication/authorization), Git, AWS (cloud providers), CI/CD.