The Software Engineering Portfolio for Nathan Karasch


Here you'll find a sampling of projects I've worked on. Click on hyperlinked project titles to display more details, screenshots, etc. about a given project.

Tech Startup
Application Developer

Team Building Application

The application maintained for this startup client contained special algorithms for calculating relationship status between teams and/or department workers. Zirous didn’t build the original system but has since assumed all development/support responsibilities. I acted as tech lead on the project.

  • Reverse-engineered the system with little to no available documentation, creating all manners of documentation to support the continued success of the project. This included documentation for system architecture and design, infrastructure, quality assurance (QA), database model, user roles and permissions, developer setup, API endpoint usage, continuous integration / continuous deployment (CI/CD) processes, development processes (disaster recovery processes, deployment strategy, etc.), and more.
  • Worked with the client to define requirements and architecture for new enhancements.
  • Made prioritized recommendations to the client pertaining to maintenance and long-term support of the application.
  • Lead the development team supporting the application, which included defining tasks and acceptance criteria, tracking work progress, and assisting in the navigation of roadblocks that arise.
  • Managed and updated various infrastructure components, including the CI/CD workflow and the Kubernetes deployment.
  • Performed other application development activities, including code design, development, testing, and deployment.
Government Agency
Application Developer

Continuing Legal Education Application

The client elected to rewrite their existing Java Struts application in Oracle Application Express (APEX). This application tracks continuing legal education requirements for attorneys as well as tracking information for certified shorthand reporters used by the courts system. I assisted by implementing the payment processing components of the new application.

  • Worked with staff from various agencies to define architecture and requirements for payment processing.
  • Developed the APEX and PL/SQL logic to encrypt and submit payment requests, redirecting users to a third-party service for payment completion.
  • Implemented a web service to receive confirmation callbacks from the payment service, decrypting the information in the request payload and updating relevant database records.
Government Agency
Application Developer

Case Management Applications

I assisted in creating the client’s new case management applications. These applications were written using Oracle Application Express (APEX). The system design allowed various related applications to be implemented as subsystems within a common framework. I implemented many of the common components for the overall system, including user registration and approval processes, notifications, account management, user administration, authentication (login), and authorization (role-based permissions).

  • Created various screens and processes within APEX.
  • Created multiple Oracle PL/SQL packages to support code reusability.
  • Designed and implemented custom APEX components to support the global framework that encapsulates the various subsystems.
Biofuel Company
Application Developer

Lab Application

This company’s lab processes biofuel samples submitted by their facilities across the US, and for years they had used Excel spreadsheets to track samples through the process from beginning to end. In an effort to streamline this process, the company hired Zirous to create a web application to facilitate submission, processing, administration, and analysis of lab requests. I performed most of the architecture, design, and front-end development for this project.

  • Designed, documented, developed, tested, deployed, and maintained/supported the application.
  • Performed requirements gathering, translating requirements and design decisions into an actionable plan by creating user stories and subtasks in Atlassian Jira.
  • Implemented the Angular frontend and the Java Spring backend web service (REST API).
  • Configured the required Apache and Tomcat servers on an SELinux environment.
  • Coordinated meetings, sent weekly project updates, gathered and integrated client feedback, and performed demos for project milestones.
Government Agency
Application Developer

Electronic Document Filing Application

Zirous developed an application years ago to facilitate the client being able to receive, distribute, and publish documents from their customers. I maintained this system as tech lead and provided support for enhancements, ad-hoc requests, and troubleshooting. Several major initiatives completed on the project include migrating the system to the cloud, implementing Single Sign On (SSO), and integrating a third-party system to support data sync.

  • Developed SQL queries to generate custom reports.
  • Provided timely responses and solutions to ad-hoc requests, communicating effectively to gather requirements and deliver on-target solutions.
  • Implemented new functionality in the Java code, deploying releases to the WebLogic server.
  • Implemented monitoring processes to allow faster response to downtime anomalies.
  • Coordinated and implemented integration with a third-party system to support the client's billing process.
  • Upgraded libraries and dependencies as needed.
Food Production and Distribution Company
Application Developer

Machine Learning POC

The client used Oracle E-Business Suite to manage its various manufacturing processes. It struggled with intermittent “hanging process” issues within the system, which led to wasted time and resources. The notification system that raised alerts for hanging processes was inefficient, missing many cases and having a high rate of false alarms. This proof-of-concept project demonstrated the ability of statistical analysis and machine learning to more accurately identify hanging processes and reduce the rate of false alarms.

  • Configured the database connection, allowing data to be pulled from an Oracle database into a Python notebook.
  • Created an effective machine learning model to predict whether or not a concurrent program would hang. This involved data discovery, data cleaning, feature engineering, model selection, hyperparameter tuning, model training, and evaluation. The final model caught more than 4x as many hanging processes as the existing system, while decreasing false alerts by 70%.
Workers' Compensation Insurance Company
Application Developer

H2O Driverless AI POC

This client was exploring various machine learning frameworks to expand their data analytics capabilities. As part of this effort, they hired Zirous to test-drive and report on the capabilities of the enterprise-level AI platform, H2O Driverless AI.

  • Provisioned, configured, integrated, and secured all Google Cloud Platform (GCP) resources used in the project, to include Compute instances, marketplace deployments, Identity and Access Management (IAM), networking and firewall rules, Cloud Storage, BigQuery, and Datalab.
  • Created an end-to-end machine learning pipeline, which was able to import the data, perform extract-transform-load (ETL) to clean and shape the data, train a machine learning model, evaluate the training results, save and version model artifacts, and deploy the model to a load-balanced CPU cluster in the cloud as an HTTP endpoint.
  • Co-authored the final 62-page report documenting data analysis, product insights, platform usage instructions, model operationalization processes, and cloud configuration details.
Senior Design Project
SE Student

Hammer IO

  • Created a DevOps framework offering an opinionated approach to developing and managing microservice applications in Node.js
  • Integrated various web services and APIs into the development processes and into the deployed software
  • Designed, implemented, tested, and deployed multiple products supporting the same overarching objective
  • Thoroughly documented the project plans and architecture in preparation for project handoff
  • Final Report
  • Poster Display (infographic)
Iowa State University
Research Assistant

L2 Speech Ratings

Two clients required unique, scalable solutions for aggregating and managing their research data. One solution moved the client’s existing spreadsheet data management process into a relational database with a web interface. The other solution, L2 Speech Ratings, played audio samples for the research participants, collected survey responses, stored the survey data alongside correlated demographic information, and provided an administrative interface to upload audio or download survey results.

  • Leveraged ISU’s Drupal website infrastructure to provide an interface for data management
  • Designed the database schema for both projects, creating custom rules to join tabular data along common keys to reduce duplication and increase data cohesiveness
  • Architected and implemented a custom web application to serve as an audio-rating platform
  • Adapted to client requests to migrate the solution to Amazon Mechanical Turk (AMT) midway through the project
  • Maintained open lines of communication with the clients to solicit feedback throughout the design and development process to ensure the solution was meeting the clients’ goals
  • L2 Speech Ratings was a web application for collecting audio file ratings.
  • Facilitated the research of Dr. Charles Nagle in the field of second-language learning.
  • Featured the ability to upload files, create rating surveys, collect ratings from users, and download the results as a CSV file.
  • Used Google OAuth2 for user login; featured admin user types and rater user types.
  • Later adapted the project requirements to use Amazon Mechanical Turk (AMT)
Class Project
SE Student


  • An online dashboard application to sync a user's accounts, IoT devices, and other tech.
  • Designed and implemented for our semester-long Software Architecture (SE 339) project.
  • Used Angular2 SB Admin framework for the frontend.
  • The backend consisted of a Java Spring microservices architecture.
  • The project was used the following semester by the professor as a case study and as a lab for SE 339 students.
Class Project
SE Student

Codable Media Mashup

  • CoMM is a language and CLI interpreter I devised to slice and join online video clips.
  • Uses ANTLR to generate the parser and lexer.
  • The interpreter transpiles the CoMM language into a shell script, and then executes the shell script.
  • As my first attempt at writing a language (the attempt being made before taking Principles of Programming), the functionality is very limited.
Class Project
SE Student

Mines of MIDIa

  • Teaches the user to play drums through MIDI file play-alongs and sheet music.
  • Allows the user to upload, search for, play, and rate MIDI files.
  • Features a visual drumset that highlights which specific drums are being played during playback.
  • Generates sheet music from the MIDI file being played.
Class Project
SE Student


  • An extensible command line interface for the browser.
  • Combines the benefits of a web UI with the look and feel of a command line interface, meaning that power users get the quick, command-entry interaction they love while still being able to output whatever HTML content you would normally see in a web application.
  • Comes with a set of standard library processes, but allows the user to easily create custom processes specific to their own needs.
Class Project
SE Student


  • Gives NextBus predictions through the command line interface.
  • Operates by curling from the NextBus API, parsing relevant information from the XML, and displaying that information to the user.
  • Features the ability to save route/stop combinations for easy reference.
Class Project
SE Student

Beatnik Encryption

  • Uses the esoteric language Beatnik to encrypt/decrypt a base64-encoded string.
  • The string, once encrypted, looks like an avant-garde poem.
  • Beatnik, a stack-based language, uses the Scrabble score of words as the program's operations and values.