Picture of Isaac Beale

Isaac Beale

My name is Isaac Beale and I hold an an M.S. in software engineering with a focus in cybersecurity from Arizona State University along with a B.S. in industrial engineering with a minor in computer science from Oregon State University. My path to becoming a software engineer was unconventional, starting in a different discipline, and finding a passion for programming late into my undergraduate studies. Now, I am a full time fullstack software engineer working at Intel primarily working with React and Django primarily. For now, what “fullstack“ means to me, is that I am still early in my career and I am currently trying to maintain a working knowledge of many different topics under the web-development umbrella while looking for my niche so that I can become more specialized. The goal is to eventually move away from the broad label of “fullstack“ as my skills progress. With my current work experience, I would describe my work style to be self-starting and independent, but not afraid to lean on my team or have my team lean on me when there is knowledge to be shared.


This next section is a bit more introspective about my current career path. I'll probably move these next sections to a blog section on this site once I build it, so employers feel free to skip this unless you're interested: Something about I find intersting about my career path is that I never anticipated a career in web development. I find that I've enjoyed most programming challenges that I've been faced with in my courses, like building a shell, GUIs in Java swing, or writing scripts to automate an attack in an attack and defense CTF. At the end of the day I find that I just enjoy trying to create a good system to solve difficult problems. Ones that can be extended as the scope of the problem inevitably grows. However, my classwork was more geared towards concepts and applying them in (typically) contrived examples. So when I would try to practice programming extracurricularly, the best and most accessible type of system to build were websites. I thought websites were great at-home practice for many different programming challenges, and so most of my “real world“ experience prior to my entry into the job-world as an intern, were web development related. This is in contrast to building things like build automation tools, or trying to create a python data processing library. I found these to be difficult to build correctly without having real world requirements. Creating my own requirements typically resulted in pretty flat and uninteresting results. So as I applied to jobs with the knowledge that I had, I suppose this first level of specialization in software engineering found me, rather than seeking it out myself.


Experience

Oregon State University

B.S Industrial Engineering, minor in Computer Science

Graduation: June 2020

  • Data Structures (C)
  • Assembly Language (MASM, Intel x86)
  • Intro to Computer Science I and II(C++)
  • Backend Software Engineering (C)
  • Information Systems Engineering (MS Access, Database Design)
  • Industrial Systems Optimization (LINGO Solver, Linear Optimization)
  • Analysis of Algorithms, Operating Systems (C)
  • Programming Language Fundamentals (Prolog, Haskell)

Arizona State University

M.S Software Engineering

Graduation: May 2022

  • Software Design (Java, Design Patterns)
  • Advanced Data Structures and Algorithms (Python)
  • Foundations of Software Engineering(C#, Unity, Agile)
  • Information Assurance and Security
  • Languages and Programming Paradigms (Prolog)
  • Software Agility (Java, Agile)
  • Web-Based Applications (Javascript)
  • Software Security
  • Applied Cryptography
  • Extracurricular attack and defense CTFs

Intel Corporation

Full Stack Software Engineer

Intern: August 2020 to May 2022, Full Time: May 2022 to Present

Responsibilites

Designed and implemented a web application for employees at Intel to make requests to the integration team. This system was built to replace the email standard that was currently in place. Started as a prototype for Intel in Aloha, OR and now will support 8 different intel locations including 4 outside of the US

This page was compromised of dropdowns text input components, along with a rich text editor. Dropdowns would be populated by what was input in the previous dropdowns to support different types of requests with different requirements. Furthermore, any additional information relating to the request required diffirent input methodologies. This required text fields and dropdowns to be customizable by management of the integration team.

Implemented with React Table which provided a dynamic, sortable, paginated table. Depending on the user who was logged in the table would display different requests and approval abilities. If the user was not part of the integration team, the table would display the status of all requests in the system so that requestors could watch their request through the pipeline. If the user was part of the integration team, they could assign other members of the team to a request, approve or deny the requests, and change the request's status. All users had the option to view the request in detail inside of a modal window as well.

To create a dynamic frontend. Primarily chosen over other frontend frameworks for learning purposes, as this was the one I was interested in. Used axios to connect with the backend, React Quill for the rich text editor, React Bootstrap for global state management, React Reduxfor api query management, React query for styling, and React Table to create a reactive table

Made use of the built in User model, along Microsoft ADFS middleware along with Django's built in authentication flow to handle users on the site. I also made use of Django Rest Framework to quickly build a REST api

Intel's implementation of CloudFoundry supports many buildpacks for different languages. In this case, I would build the react frontend, and move it into the Django app to be served.

Intel also provided a Database as a Service product. There was not any reason to chose Postgres over the other open source databases in this application, only that I wanted to move away from MS SQL Server, and I did not think a NoSQL database fit this application.

Skills

Python
TypeScript
React
Django
AWS
Flask
Database Design
Java
C#

Projects

Hoop Finder

HoopFinder is an interactive crowd sourced database of basketball hoops around the world. The project was built for basketball players to share and discover lesser known basketball hoops, with the hope to encourage more players to get out and play. To use this app, a user logs into the application using Google's OAuth service. From there the user can browse the world for basketball hoops near them with the search bar or the "center on your location" feature at the bottom. The user may also add hoops by enabling "add hoop mode." Once this mode is enabled, clicking anywhere on the map promps the user to describe the hoop they created and save it. Thanks to Google Firebase Realtime Database, new hoops and deleted hoops are immediately broadcasted to all users online allowing for real-time information. In the future, I would like to add features that would allow users to schedule games of pickup with real time park information.

React, Typescript, Firebase, React-Bootstrap, Google OAuth, Google Maps API, Google Maps Geolocation

Graph Algorithm Visualizer

This application adds a visual element to graph algorithms. Currently it only supports Dijkstra's Algorithm. A user may add and remove blockades represented by black squares. When the user presses the solve button, the app begins to animate. Purple squares will begin to spread across the grid representing squares visited by the algorithm. Once the algorithm has visited the destination square, the shortest path is displayed using gray squares.

React, Typescript

Keypers Sneaker Bot Rental Site

Keypers was a website for users to rent sneaker bots in order to secure limited pairs of shoes. The bots that we provided primarily used key based authentication to to pair users with bots. In order to transfer a bot to another computer, a user would go to a bot's website, sign in, and reset their key, then reactivate it on another computer. Giving a rental customer the credentials to log into the site would also allow them to steal the key. So Keypers enabled rental customers to reset the key to a bot, without providing them with the credentials associated with the bot. This was accomplished through an API which would generate temporary API Keys, to allow allow the user to make a request to the server which would create a selenium headless instance, log into the bot's site with cookies stored in the database, and click the reset button on their behalf.

Flask, SQLite, Sass, Bulma, Amazon EC2, Amazon Route 53

OSU Capstone

This project set out to empirically test the effect of hose diameter, hose length, valve, fitting, and cylinder size on the dwell time of a hydraulic cylinder for the company TEKFAB in Albany, OR. This project was the result of all that I had learned in my undergraduate degree. Luckily I was assigned a capstone where I was able to combine my education from my industrial engineering major with my computer science minor. In order to complete this, my partner and I created a randomized factorial experiment to test the effects of each of the variables along with any second and third order interaction effects. We tested six different variables using a 2^(6-1) factorial design. After creating the experiment, my partner Caylan created a steel mount for an optical laser sensor to attach to a hydraulic cylinder, where the beam would be blocked when the cylinder was fully extended. The sensor was connected to an oscilloscope, which allowed for very accurate and granular readings. After we collected data, the factorial analysis was completed in python and plots were output using matplotlib.

Python, matplotlib