Andrew Portolese

Andrew Portolese

Staff Software Engineer with 15+ years of experience building and leading teams across fintech, healthcare, and platform engineering. Currently modernizing authentication and authorization systems at Altruist. Previously directed engineering in trading at Envestnet, building multi-threaded stock trading applications with FIX Protocol, and led DevOps and continuous delivery at Reed Elsevier (now RELX) for ClinicalKey.com on AWS.

Temple University BS in Information Science & Technology (Cum Laude), with a post-baccalaureate certificate in AI & Machine Learning from Drexel University. Recognized as a Future Leader by the Society for Information Management Philadelphia Chapter. Volunteer crew leader with Friends of Wissahickon since 2019.

Outside of work, I build things — from Unity game prototypes and Arduino-powered cold frame hinges to electric bikes with custom battery packs. Below is a collection of projects and work I've done over the years.

Projects and Random Experiments

Exploring Mechatronics #

January 2026

GardenBotHardwareElectrical

See my Mechatronics page for on going details.

Automatic Cold Frame Hinge #

April 2020

ArduinoHardware3D Printing

The goal of this project is to create a powered hinge for a cold frame or green house that automatically opens and closes based on temperature. An arduino was used for the control board to read the temperature sensor and instruct the servo motors when to operate.

Parts Used:

  • Arduino Uno or Nano
  • Servo Motor
  • 100 uF capacitor
  • 4.7k Ohm Resister
  • DS18B20 Temperature Sensor
  • I2C OLED Screen
  • 10K Potentiometer

Arduino Wiring Diagram

Arduino Wiring Diagram

First prototype

3D Model of version 2

3D Model of Cold Frame Hinge version 2 3D Model of Cold Frame Hinge alternate view

2D Top Down Action RPG #

August 2019

Game DevAlgorithmsAI

2D level creation with Cellular Automata and Connected Component Labeling

Worlds are generated with multiple zones and levels inside. Each level is created using Cellular Automata techniques to generate the solid parts of the terrain. Levels are currently only rectangular in size, and each level has multiple paths/doors to other levels. These paths are created randomly within a tree like structure.

2D RPG Level

Level Creation Steps:

  1. Run Cellular Automata Logic
  2. Create Border Walls
  3. Find all Open Spaces via Connected Component Labeling
  4. Create Border Doors
  5. Ensure all open spaces are accessible by the player
  6. Ensure all border doors are also accessible.

To ensure that all doors on the levels are accessible to the player, A Star path finding techniques are used after level boundaries are created and cellular automata logic is run. A Star is run between each pair of doors within a level, with weights on solid cells of the grid being very large, causing the path finding to travel through already opened areas created via the cellular automata. If a door is not accessible the path finding will remove solid cells to ensure accessibility.

2D RPG Full Map

Connected Component Labeling was used to ensure that all open/non solid areas of the level are accessible. Each connected open space is checked against its neighbors to ensure it is accessible by the player, path finding is then used to create a path if needed.

Goal-Driven Agent Behavior for Enemy Control

Enemy Behavior was created with a design pattern found in the book Programming Game AI by Example. This allowed each enemy to have emergent behavior based on various goals and conditions of the game world. Goals and actions included keeping rooms cleared of enemies, avoiding attacks, seeking out health, etc.

Spaceship Building and Command RTS Game #

June 2019

Game DevUnityAI

Game concept: Starting with a base mothership that allows the player to create collector ships to collect resources. With these resources, ship attachments can be made including defensive systems, weapons, armor, fuel, batteries, etc. Ships are limited by the power generation, create a challenge to manage building out the ship, traveling to collect resources, firing weapons, and high speed assault maneuvers.

Spaceship Building and Command RTS Game

Techniques Used:

  • Goal-Driven Agent Behavior for enemy movement and ship construction
  • Messaging to support disparate game actor communication with Goal-Driven Agents
  • Object Pooling for projectiles
  • Unity's Physics and collision detection to support movement, collisions, and ship building.

Side Scroller Action Shooter #

March 2019

Game DevUnity
Side Scroller Action Shooter

Techniques Used:

  • Object Pooling for projectiles and short lived objects.
  • Different camera logic for levels to provide a different feel. Locked camera for boss fights and puzzle areas. Moving camera for long exploratory areas. Camera on "rails" that ensures camera moves with player but stays within level bounds to give a more predictable camera location, and prevent excessive dead areas on screen.
  • Custom built character controller to get very precise 2D movement.
  • Parallax Image techniques to show movement on 2D landscape.

Electric Bike Build #

February 2018

ElectricalDIY

Built battery pack with 18650 cells in 14 serial 8 parallel configuration driving a Bafang mid drive kit.

Unity 2D Android Game Prototype #

February 2014

Game DevUnityAndroid
Unity 2D Android Game Prototype

Game Update - Turrets #

July 2012

Game DevJava

Added Working Turrets that shoot. All entities have health, when they run out of health they are removed from the scene. Sounds are activated when the player or the turret shoots as well as on projectile impact.

Game with Turrets

Game Update - Enemy AI and Zombies #

July 2012

Game DevJavaAI

Added Simple Enemy AI and Zombies

Game Update #

July 2012

Game DevJava

Game Test to demonstrate guns and shooting, enemy AI, collision detection, player movement, destructible and solid ground.

Collision Map and Render Image #

June 2012

Game DevJava

Updated the level collision detection code to support two images, one image (bottom) that is actually rendered to make up the level, and the second image (top) that tells the collision block creation code what type of collidable object to make. Anything transparent is non-collidable, anything black is solid and can't be destroyed and anything red is collidable and can be destroyed.

Collision Map and Render Image

Adventures into Game Development #

June 2012

Game DevJava

So I have been playing around with game development for a while. First I had alot of trouble picking a game engine and a language. For a while, I was doing alot of webdesign with PHP and mySQL, which isn't very similar to game development. Now I am currently working as a J2EE developer (JAVA and JSPs). I first started out playing around with Unity Game Engine which is very nice, but I'm the type of person that likes to know how everything works. Unity does a great job at allowing you to focus on the game and its content rather then the engine and architecture of how the game works. I then decided that I would use jMonkey Engine and create a 3d space shooter type game. This was going well, but I felt I was spending more time tweaking physics settings and 3D modeling then actually coding the game.

Recently I decided I would give Slick2d a try.

I am currently working on multiple aspects of this game, but the initial development was on creating levels. Slick2D supports levels created out of tiles that you can easily create with third party tools, but this only allows for very rigid levels. I decided that I wanted something more flexible. I finally decided that I wanted to be able to import a png image with transparent background. Anything opaque would be mapped as solid for the collision system. Below is the initial result.

2D Collision Detection Level Mapping

My Computer Setups #

June 2012

HardwareDIY

42inch LCD TV + 2 21inch LCD monitors

Computer setup with 42 inch TV and 2 monitors

2 21inch LCD monitors + 17inch LCD monitor

Computer setup with 3 monitors

Portfolio - What's On Campus #

June 2012

Web DevPHP

Online Auction Site for College Students. PHP/mySQL as well as AJAX for smooth operation. Created the Complete Design and Idea with 3 Partners. Made with Code Igniter.

What's On Campus

Portfolio - Temple University Web Development Ticket System #

June 2012

Web DevPHP

PHP/mySQL as well as AJAX for smooth operation. Created the Entire Design. Used by Temple University Web Development Team to manage updates and projects for the Fox School of Business and School of Tourism and Hospitality. Made with Code Igniter.

Temple University Web Development Ticket System

Portfolio - Thank You Student - Temple University #

June 2012

Web DevPHP

PHP/mySQL as well as AJAX for smooth operation. Created the Entire Design. Used by Temple University to thank students. Made with Code Igniter.

Thank You Student - Temple University

Portfolio - Horse Fare Products Inc. #

June 2012

Web DevPHP

Uses PHP/mySQL with PHP admin back end to control items and updating.

Horse Fare Products Inc.

Portfolio - Temple University STHM Senior Seminar #

June 2012

Web DevPHP

Standard PHP templates, with up to date CSS and table-less layout.

Temple University STHM Senior Seminar

Portfolio - Springfield Township School District #

June 2012

Web DevPHP

Updating and PHP work. Upcoming Events PHP event list. mySQL server runs backend, with PHP admin pages. PHP and mySQL Student High School Voting System.

Springfield Township School District

Portfolio - Venetian Social Club #

June 2012

Web Dev

Complete Redesign. Website followed strict W3C standards.

Venetian Social Club

Modding Halo for PC #

June 2004

Game DevModding

I modded halo for PC under the name of Ang88, back when it first came out. I worked by myself for a while, was part of ClanX and then joined =EP and participated in the =EP map team. I created alot of maps, but unfortunately many of the sites are down now that have references to the material and maps I made, also, my harddrive died that had most of the files, so I have very little left of the very interesting work that I did.

One of the maps that was never finished but got alot of fame was the Ndugu map for Halo. I did alot of work on this, and had a great time making it, but sadly it was never finished because my team fell apart.

Ndugu

Halo Ndugu Map - Snowman

HaloMaps.org link, Video demonstrating map

River Blast

River Blast Map: HaloMaps.org link