Hi! I'm Josh.

I'm a senior ECE and CS major at CMU. Computers are my passion - I've built them, sold them, and coded on them.

Skills

Python
C/C++
Web
SML
Go
SystemVerilog
SQL
MATLAB
Other

Experience with x86-64 and AVR Assembly, Git, SVN, and LaTeX, as well as Adobe Photoshop and InDesign. Built multiple desktop computers. Python experience includes backend development with Flask. Web experience includes HTML, CSS, and JavaScript.

Python
C/C++
Web
SML
Go
SystemVerilog
SQL
MATLAB
Other

Experience with x86-64 and AVR Assembly, Git, SVN, and LaTeX, as well as Adobe Photoshop and InDesign. Built multiple desktop computers. Python experience includes backend development with Flask. Web experience includes HTML, CSS, and JavaScript.

Education

Carnegie Mellon University

Major: Electrical and Computer Engineering (Software Track)

Double Major: Computer Science

Current Relevant Coursework
  • Intro to Embedded Real-Time Systems

    This is an embedded systems programming course - it covers the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as concurrency, real-time principles, and memory management.

  • Formal Languages, Automata, and Computability

    This class is an introduction to the fundamental ideas and models underlying computing. Topics include finite automata, regular sets, pushdown automata, context-free grammars, Turing machines, undecidability, and complexity theory.

  • Formal Lang., Automata, and Comp.

    This class is an introduction to the fundamental ideas and models underlying computing. Topics include finite automata, regular sets, pushdown automata, context-free grammars, Turing machines, undecidability, and complexity theory.

Recent Relevant Coursework
  • Parallel Computer Architecture and Programming

    This course covers the fundamental principles and engineering tradeoffs involved in designing modern parallel computers, as well as the programming techniques to effectively utilize these machines. Topics include naming shared data, synchronizing threads, and the latency and bandwidth associated with communication.

  • Parallel Comp. Arch. and Prog.

    This course covers the fundamental principles and engineering tradeoffs involved in designing modern parallel computers, as well as the programming techniques to effectively utilize these machines. Topics include naming shared data, synchronizing threads, and the latency and bandwidth associated with communication.

  • Algorithm Design and Analysis

    This course is about the design and analysis of algorithms. Specific algorithms for a variety of problems, as well as general design and analysis techniques are studied.

  • Parallel and Sequential Data Structures and Algorithms

    This course is about about how to design, analyze, and program algorithms and data structures. The course emphasizes parallel algorithms and analysis, and how sequential algorithms can be considered a special case.

  • Parallel and Seq. Data Struc. and Alg.

    This course is about about how to design, analyze, and program algorithms and data structures. The course emphasizes parallel algorithms and analysis, and how sequential algorithms can be considered a special case.

  • Structure and Design of Digital Systems

    This course introduces basic issues in design and verification of modern digital systems.

Current Relevant Coursework
  • Intro to Embedded Real-Time Systems

    This is an embedded systems programming course - it covers the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as concurrency, real-time principles, and memory management.

  • Formal Lang., Automata, and Comp.

    This class is an introduction to the fundamental ideas and models underlying computing. Topics include finite automata, regular sets, pushdown automata, context-free grammars, Turing machines, undecidability, and complexity theory.

Recent Relevant Coursework
  • Parallel Comp. Arch. and Prog.

    This course covers the fundamental principles and engineering tradeoffs involved in designing modern parallel computers, as well as the programming techniques to effectively utilize these machines. Topics include naming shared data, synchronizing threads, and the latency and bandwidth associated with communication.

  • Algorithm Design and Analysis

    This course is about the design and analysis of algorithms. Specific algorithms for a variety of problems, as well as general design and analysis techniques are studied.

  • Parallel and Seq. Data Struc. and Alg.

    This course is about about how to design, analyze, and program algorithms and data structures. The course emphasizes parallel algorithms and analysis, and how sequential algorithms can be considered a special case.

  • Digital Systems

    This course introduces basic issues in design and verification of modern digital systems.

Experience

Teaching Assistant, Great Theoretical Ideas in Computer Science

This is a theoretical computer science course, that integrates mathematical material with computer science applications. Topics include complexity theory, graph theory, automata theory, and cryptography.

Aug 2016

Teaching Assistant, Great Theoretical Ideas in Computer Science

This is a theoretical computer science course, that integrates mathematical material with computer science applications. Topics include complexity theory, graph theory, automata theory, and cryptography.

Aug 2016

Forward Deployed Software Engineer Intern at Palantir

I worked on an algorithm for an interactive application used to optimize advertisement packages for television. As a forward deployed engineer, I also interacted with users in order to develop requested features, receive feedback, and provide support.

Aug 2017

May 2017

Forward Deployed Software Engineer Intern at Palantir

I worked on an algorithm for an interactive application used to optimize advertisement packages for television. As a forward deployed engineer, I also interacted with users in order to develop requested features, receive feedback, and provide support.

Aug 2017

May 2017

Software Engineer Intern, Compute Infrastructure at Salesforce

I worked on a service, written in Go, that automates the process of triaging and remediating device and host failures. I also added functionality to an existing library to allow for host OS imaging and firmware upgrades. Being my first experience in industry, I also learned good coding practices, including proper code documentation and code reviews.

Aug 2016

May 2016

Software Engineer Intern, Compute Infrastructure at Salesforce

I worked on a service, written in Go, that automates the process of triaging and remediating device and host failures. I also added functionality to an existing library to allow for host OS imaging and firmware upgrades. Being my first experience in industry, I also learned good coding practices, including proper code documentation and code reviews.

Aug 2016

May 2016

Teaching Assistant, Fundamentals of Programming and Computer Science

15-112 teaches introductory programming in Python, covering a wide range of material, from efficiency analysis to object-oriented programming to recursion. I did everything from leading recitations and review sessions, to holding office hours, to grading homeworks and exams. The experience I've gained through this position, and the interactions I've had with students, other TAs, and professors alike, have been invaluable.

May 2016

Jan 2015

Teaching Assistant, Fundamentals of Programming and Computer Science

15-112 teaches introductory programming in Python, covering a wide range of material, from efficiency analysis to object-oriented programming to recursion. I did everything from leading recitations and review sessions, to holding office hours, to grading homeworks and exams. The experience I've gained through this position, and the interactions I've had with students, other TAs, and professors alike, have been invaluable.

May 2016

Jan 2015

Research Assistant, Human-Computer Interaction Institute, Social Computing Lab

Last summer, as part of the Social Cybersecurity project, I created an online quiz, which you can find out more about below. Being my first major web (and research) project, I gained a lot of web development and research experience.

Aug 2015

May 2015

Research Assistant, Human-Computer Interaction Institute, Social Computing Lab

Last summer, as part of the Social Cybersecurity project, I created an online quiz, which you can find out more about below. Being my first major web (and research) project, I gained a lot of web development and research experience.

Aug 2015

May 2015

Teaching Assistant, Principles of Imperative Computation

15-122 teaches imperative programming in C, covering topics from proving function correctness to basic algorithms and data structures. Just like with 112, I did everything from leading labs and recitations to grading. I also got the opportunity to manage the entire course on Autolab, and created exam questions in LaTeX.

Aug 2015

May 2015

Teaching Assistant, Principles of Imperative Computation

15-122 teaches imperative programming in C, covering topics from proving function correctness to basic algorithms and data structures. Just like with 112, I did everything from leading labs and recitations to grading. I also got the opportunity to manage the entire course on Autolab, and created exam questions in LaTeX.

Aug 2015

May 2015

Microsoft Consultant at Best Buy

A few months after starting my job at Best Buy, I was asked to represent Microsoft as a Microsoft Consultant in the new mini-store. I received special training in Microsoft products, and provided customers with Windows- and Microsoft-specific advice and information. I sold primarily Windows-based computers and tablets (yay Surface!). As a team with the two other Microsoft Consultants in my store, we ranked among the top 20 in the entire company (with over 600 stores that had MS mini-stores) based on sales performance.

Aug 2014

Aug 2013

Microsoft Consultant at Best Buy

A few months after starting my job at Best Buy, I was asked to represent Microsoft as a Microsoft Consultant in the new mini-store. I received special training in Microsoft products, and provided customers with Windows- and Microsoft-specific advice and information. I sold primarily Windows-based computers and tablets (yay Surface!). As a team with the two other Microsoft Consultants in my store, we ranked among the top 20 in the entire company (with over 600 stores that had MS mini-stores) based on sales performance.

Aug 2014

Aug 2013

Computers and Tablets Sales Associate at Best Buy

In this position, I advised on and sold all types of tablets, desktops, and laptops, as well as accessories and networking products, to hundreds of customers. Being my first retail job, I got to learn how things work "behind the scenes". I also gained a lot of experience in customer interaction, and ended up meeting a lot of really awesome people!

Aug 2013

Jun 2013

Computers and Tablets Sales Associate at Best Buy

In this position, I advised on and sold all types of tablets, desktops, and laptops, as well as accessories and networking products, to hundreds of customers. Being my first retail job, I got to learn how things work "behind the scenes". I also gained a lot of experience in customer interaction, and ended up meeting a lot of really awesome people!

Aug 2013

Jun 2013

Projects

Flo

May 2017

This was my final project for 15-418, Parallel Computer Architecture and Programming, Spring 2017. It's a small library for easily creating network flow graphs, and performing parallel max-flow computations on multi-core CPUs and NVIDIA GPUs, written in C++ using OpenMP and CUDA. You can find more information about it here.

TLDRit!

February 2016

This was a hackathon project I made with a few friends! It's a webapp that uses a second-order Markov chain to randomly generate a one sentence summary of restaurants, books, and CMU courses, based on reviews and descriptions! Since the text is randomly generated, it can be pretty nonsensical and hilarious sometimes! Some technologies used include Flask and the Google Maps API. Check out the project at TLDRit.xyz!

CyberQuiz

Summer 2015

This is the website that I made for my research at CMU's Human-Computer Interaction Institute. It's an online quiz that tests your cybersecurity knowledge, and provides interactive material and feedback along the way. To make this, I used Flask, MySQL, the Materialize CSS framework, and jQuery.

CyberQuiz

Summer 2015

This is the website that I made for my research at CMU's Human-Computer Interaction Institute. It's an online quiz that tests your cybersecurity knowledge, and provides interactive material and feedback along the way. To make this, I used Flask, MySQL, the Materialize CSS framework, and jQuery.

Perfect Produce Picker

December 2014

This was my term project for 15-112 when I took it in Fall 2014. It is a simple database, made in Python, that is controlled through hand gestures and camera input. It uses Tesseract OCR, the Leap Motion, and OpenCV.

Perfect Produce Picker

December 2014

This was my term project for 15-112 when I took it in Fall 2014. It is a simple database, made in Python, that is controlled through hand gestures and camera input. It uses Tesseract OCR, the Leap Motion, and OpenCV.

Resume

Click me!

Thanks for looking through my website - feel free to reach out to me!

Thanks for taking the time to look through my website! Feel free to reach out to me - my contact details can be found below.