Practicality & Logic

Rochester, New York


Hello, my name is Jose Salazar and welcome to my personal website.


Current Interests

A graduate with a BSc in Computer Science from the Rochester Institute of Technology whose personal projects and professional interests focus on the rendering of natural phenomenon, including Smoke simulation and Terrain Generation as of today. Previous work experience in industry at both UTC Aerospace and JPMorgan in both Embedded Software and Front-end Web Development , as well as within the Rochester Institute of Technology's Computer Science department as a mentoring figure for students. Currently working on satellite imaging systems within Harris Corporation's Space Intelligence division.


Education

BSc Computer Science - Rochester Institute of Technology, Rochester NY

Graduated May 2016

A degree focusing in the scientific and practical approach to computation and its applications, as well as supporting usage in industry as a specialist in the theory of computation and the design of computational systems.

Course

Primary Language

Independent Study: Smoke Details »

C++, OpenGL

Course Level: 500

At the end of this course, students are able to:
  • Explain and implement real-time physics based models of smoke.
  • Explain and implement traditional solutions in two-dimensional applications.
  • Explain and implement advance solutions in three-dimensional applications.
Global Illuminations Details »

Java, OpenGL, Javascript, WebGL

Course Level: 700 | Graduate

At the end of this course, students are able to:
  • Explain and implement a ray-tracing application from the ground up.
  • Explain and implement another advance topic in computer graphics through independent research.
  • Explain recent academic papers and publications related to advance topics in computer graphics.
Introduction to Computer Graphics Details »

Java, OpenGL

Course Level: 500

At the end of this course, students are able to:
  • Explain evolution of computer graphics, both hardware and software.
  • Explain and implement 2D graphics and algorithms.
  • Explain the concepts and implement the stages of a 3D computer graphics pipeline.
Operating Systems Details »

MIPS Assembly

Course Level: 300

At the end of this course, students are able to:
  • Explain the history and components of operating systems.
  • Explain and implement a scheudling manager.
  • Explain and implement an operating system in a simulated environment.
Programming with Inexpensive Robots Details »

C, Python, Java

Course Level: 500 | Study Abroad (Croatia)

At the end of this course, students are able to:
  • Explain hardware design choices of modern mobile robots.
  • Explain and implement traditional mobile robot algorithms.
  • Explain and implement mapping and navigation on a simple mobile robot.
Introduction to Intelligent Systems Details »

Python, Prolog

Course Level: 300 | Study Abroad (Croatia)

At the end of this course, students are able to:
  • Explain the attributes of various search techniques and the situations to which they are well-suited.
  • Explain and apply various techniques for logic programming and machine learning.
  • Explain and apply standard AI algorithms.
Concepts of Parallel and Distributed Systems Details »

Java

Course Level: 200

At the end of this course, students are able to:
  • Explain the concepts of processes, threads, and scheduling.
  • Explain the concepts of computer networking, the layered network architecture, network security, and network communication with connections and datagrams.
  • Explain the concepts of distributed system architectures, concepts of parallel computer architectures, and middleware.
Data Communication and Networks I Details »

C#

Course Level: 300

At the end of this course, students are able to:
  • Explain the layered protocol model used in designing networks.
  • Design and build network protocol software at the application layer.
  • Explain the purpose and basic operational principles of the transport, network, data link, and physical layers.
Introduction to Software Engineering Details »

Python

Course Level: 200 | Role: Team Coordinator

At the end of this course, students assigned the role of "Team Coordinator" are able to:
  • Demonstrate an understanding of common motivation and issue resolution techniques.
  • Demonstrate an understanding of task allocation, progress tracking methods, and effective resource management.
  • Demonstrate an understanding of customer-to-developer relations, and requirements composition.
Programming Language Concepts Details »

Common LISP, Haskell, Prolog

Course Level: 300

At the end of this course, students are able to:
  • Describe formal syntax and high-level semantics of a programming language.
  • Identify appropriate programming languages to use to address the specific needs of a stated problem.
  • Explain and apply basic constructs and concepts used in a variety of programming languages.
Introduction to Computer Science Theory Details »
Course Level: 400

At the end of this course, students are able to:
  • Demonstrate an understanding of basic concepts in formal language theory, grammars, automata theory, computability theory, and complexity theory.
  • Relate practical problems to languages, automata, computability, and complexity
  • Demonstrate an understanding of and be able to apply mathematical and formal techniques for solving problems in computer science
Professional Communications Details »
Course Level: 300

At the end of this course, students are able to:
  • Communicate with team members, conduct effective team meetings, provide useful feedback to team members, and develop and deliver a team presentation.
  • Recognize and use common formats and required elements of typical computer science documents
  • Document and describe the results of computer science research.
Computer Organization Details »

MIPS Assembly

Course Level: 300

At the end of this course, students are able to:
  • Describe and design simple logic circuits using basic combinational and sequential techniques.
  • Explain the principles underlying computer system design and development.
  • Outline the architectural features of a modern computer system.
Computer Science 4 Details »

C++

Course Level: 300

At the end of this course, students are able to:
  • Apply common design techniques such as problem decomposition, abstraction, and reuse.
  • Implement software that explicitly allocates and deallocates memory.
  • Name sources of failure in software systems and apply testing and debugging strategies to remove them.
Object Oriented Programming Details »

Java

Course Level: 200

At the end of this course, students are able to:
  • Explain the notion of types and synthesize his/her own types as needed to realize software specifications.
  • Evaluate the quality of programs according to object oriented principles.
  • Develop a software program of about 1000 lines from a design or specification.
Data Structures for Problem Solving Details »

Python

Course Level: 200

At the end of this course, students are able to:
  • Describe and apply problem solving skills appropriate to solve a variety of medium to large-sized computing problems.
  • Describe and apply a variety of data structures, algorithms and programming techniques to implement solutions to a variety of computing problems.
  • Describe the constructs of a selected high-level programming language.
Problem-Based Introduction to Computer Science Details »

Python

Course Level: 200

At the end of this course, students are able to:
  • Describe and apply problem solving skills appropriate to solve a variety of simple computing problems.
  • Describe and apply algorithms and programming techniques to implement solutions to a variety of simple computing problems.
  • Describe the basic constructs of a high-level programming language.


Experience

Harris Corporation - Space Intelligence Systems

Software Engineer

September 2016 - Present

Languages: C++, C, Javascript, MATLAB

  • Develop rendering and object detection algorithms for satellite image modeling software utilizing C++, and MATLAB.
  • Author web-based risk reduction studies for satellite image processing software initiatives in JavaScript, utilizing ReactJS, Node.js, and C++.

Harris Corporation - Communication Systems

Software Engineer

May 2016 - September 2016

Languages: C++, C, Batch, Bash, Make

  • Designed and developed embedded system architecture and code utilizing C and CORBA (C++)
  • Updated and refined build and installation generation scripts in Bash, Batch, and Make on Unix and Windows
  • Performed continuous integration and smoke testing for classified software and equipment
  • Evaluated solutions for bugs and critical release systems within several classified projects
  • Collected and interpreted critical metric parameters for validation and optimization efforts

Rochester Inst. of Tech. Computer Science Department

Student Lab Instructor

August, 2014 - May 2016

Languages: Python, Java, C

  • Led weekly problem solving lab sessions for Computer Science I and II courses in Python and Java
  • Assisted students in understanding programming concepts and problem solving skills
  • Graded weekly lab assignments in Python, Java, and C

JPMorgan Chase & Co.

Summer Technology Analyst

June, 2015 - August 2015

Languages: Java, PLSQL, Javascript

  • Built comprehensive stored procedures for PLSQL back-end database used in a debugging and data optimization suite for an internal company application transferring and interpreting Bloomberg data
  • Modified front-end GUI interfaces using Javascript and Ext JS 4.0 Framework for web based application
  • Authored system architecture documentation and project requirements for domestic and international clientele

United Technology Aerospace Systems - Power, Control & Sensing

Software Engineering Co-op

Janurary, 2014 - August, 2014

Languages: C#, SQL, PLSQL, XML

  • Redesigned proprietary software using C# with SQL and PLSQL back-end databases to incorporate multi-threaded solutions as opposed to previously single-threaded implementations
  • Upgraded platform level software relevant to CNC machine use on Windows-based Terminals
  • Implemented and designed standard web application for plant wide workflow management using proprietary tools, C#, SQL, and XML
  • Standardized and established local plant site software documentation, including requirement documentation, design documentation, and coding conventions
  • Mentored Software Engineering cooperative education students
  • Maintained in-house information technology, i.e. terminals, servers and production machinery

Projects

Title

Tools

Repository

Output

Natural Phenomenon: Smoke

C++, OpenGL

Authored comprehensive graduate level paper and implemented a two-dimensional and three-dimensional smoke simulation utilizing a particle system based on Opacity Mapping written in C++ and OpenGL.
Natural Phenomenon: Terrain

Javascript, WebGL

Analyzed and wrote a Javascript and WebGL based procedural terrain generator utilizing Simplex, Perlin, and Layered Noise to create realistic terrain height maps and render them with varying shaders.
Ray Tracing Whitted

Java, OpenGL

Implemented a Ray Tracer solution incrementally to create a modular solution that achieves an accurate copy of J Turner Whitted's famous image.
Seminar in Robotics

C, Python, Arduino

Experimented with a toy robot limited by 2.5kb of RAM and 32kb of Flash Memory and achieved Simultaneous Localization and Mapping (SLAM) by using data from a 45 degree Ultrasound sensor attached to a 180 degree servo, and Ground-facing Light sensor. This was done by utilzing previously mentioned sensors for obstacle avoidance and detection and sending sensor data across a Bluetooth module to a Python Script running on a seperate terminal that constructed a probablity based map of the robot's surroundings.
Seminar in Machine Learning

Python, OpenStreetMap

Utilized OpenStreetMap node data for the City of Dubrovnik, Croatia and constructed pathes (routes) corresponding to streets and trails around the city in order to implement two route-finding algorithms which were displayed on a PythonGUI using TkInter. The algorithm included Tobler's and A* with a independently designed heuristic.


Skills

Languages - General Purpose

C#, C++ , Python, C, Java, Javascript, BATCH, BASH, MAKE, Assembly

Languages - Database

SQL, PLSQL, SQLite, MySQL

Languages - Markup

LaTeX, HTML, XML, CSS

IDEs and Development Tools

Visual Studios, Eclipse, SVN, GIT, Subversion, JIRA, Visio, MagicDraw, Atlassian

APIs and Frameworks

OpenGL, WebGL, ReactJS, node.js, ExtJS, CORBA, Django

Contact

Please send all emails regarding personal and professional inquiries to jose.c.salazar.xiv@gmail.com