About

professional photo

Skills & Interests

Twilio
REST API
Technical Support
Teaching
Writing
Empowering Others
App Development
Distributed Computing
Storage Virtualization
New Hire Coaching
Training Content Development
Entrepreneurship
Web Design and Development
Wordpress
Search Engine Optimization
VCP 6.5 DCV | NSS 5.0
HTML, CSS, & Javascript
NodeJS
Scuba Diving
Medicinal and Herbal Gardening


My Story

Growing Up

My story begins in Knoxville, Tennessee where I grew up playing soccer, starting in the local rec leagues and ending with 4 competitive Tennessee state championships and 1 TN High School AAA State Championship. Through that journey, I learned what a healthy and selfless team looks like, and that persistence and dedication are vital to all individual success. My experience playing soccer also taught me how to handle conflict when emotions are high and how not to take things personally, and I’ve come to learn as I’ve gotten older that all these lessons are valuable wherever I go, as almost nothing truly incredible is accomplished alone - it takes a team.

Before receiving my engineering degrees, my natural curiosity led me to several different roles where I’ve gather a wide range of experience. One of the most impactful roles to my development was as a universal technician at Terminix where at 21, I was responsible for maintaining a company vehicle, performing service for all pest and termite contracts in my designated zip code, meeting monthly sales goals, and maintaining customer satisfaction for all my customers. I learned a lot during this time, but the main things were how to educate customers, handle customer satisfaction issues, manage customer emotions, work through pressure, and manage my time while working up to 65 hours a week.

College

When I began my education at NC State, I maintained my work ethic by self financing my education by working through school at Duke Energy and ImageSoft Inc. and managed to maintain a GPA of over 3.75 while doing this. Additionally, during the final year of my degree, I chose to participate in the Engineering Entrepreneurship Program at NC State, during which I developed a startup called Kast Clothing that made custom fit jeans from 3D body scans. After finishing the program, I was accepted into the NC State Entrepreneurship Initiative's Miller Fellowship Program that provided me a stipend for 6 months to continue developing Kast Clothing.

Career

All my experience led me to the cloud-computing software industry working for the leading hyper-converged infrastructure (HCI) company, Nutanix as a Systems Reliability Engineer 1 (SRE1), fixing business critical solutions for customers ranging from PayPal to the Department of Defense. I am proud to say that I was a part of an exceptional support organization that had the highest Net Promotor Score (NPS) and Customer Satisfaction Rating (CSAT) in the industry at the time.

After joining Nutanix, not only did I continue learning technically at a rapid pace, but I also continued developing my customer management skills. After about 1 year and 2 months at Nutanix, I was promoted to SRE2, chosen for a new Support Concierge Program for new potentially large accounts, and selected to coordinate the SRE1 new hire training.

In September 2019, I decided to apply what I learned at Nutanix while taking on a new challenge as a Senior Technical Support Engineer 2 at Twilio. Hired to work on the Live Chat support team, I was trained in all of the core Twilio products allowing me to provide delightful customer experiences by avoiding ticket transfers for customers developing robust multi-product applications. In March 2020, I joined the Voice product support team where I now primarily focus on API usage and call quality / connectivity troubleshooting. In addition to support tickets, I also help customers and colleagues find success by writing tutorials on Twilio's public blog and internal troubleshooting guides.

Personal

In my spare time, I also enjoy helping friends and family by developing and managing websites for their small businesses, testing business ideas and building prototypes of my own, playing and watching soccer, traveling, gardening medicinal and edible plants, and since 2018, scuba diving.

Contact

For more information about my entrepreneurial projects and personal interests, see my Projects, Fun, and Volunteer pages. And for more information about my professional experience and education, check my LinkedIn. To contact me directly, email samuelgeddy@gmail.com.

Projects

Twilio Blog Posts
Sales Tax Lookup
Alpaca API
Plant Match
Soil Mixer
VMware PSOD Reader
Personal Website
Chapela LLC
Misty Morning Cafe
Final Exam Lookup
Larisa Style


Twilio Blog Posts

You can find all of my Twilio blog posts at

https://www.twilio.com/blog/author/seddy

As a member of Twilio's frontline support team, I see firsthand what generates tickets and customers often need help with. In an effort to reduce tickets and help Twilio customers succeed, I started writing tutorial blog posts for Twilio's public blog. All of my blog posts have been written after working with multiple customers requesting help. After writing, my posts have consistently decreased tickets and served as a public resource to provide to customers when they do open a support ticket for the use case.

Below you can find a few highlighted posts published at the time of this writing.

Make and Receive Phone Calls with ony a Phone and Twilio Studio

Using a Twilio number to forward calls to your personal phone is a common and well documented use-case, but many Twilio customers have asked if they can use only their cell phone to place outgoing calls with their Twilio number. This guide shows how to build a Studio Flow that will allow you to use your Twilio number as a full capable proxy, so you can place outgoing calls and receive incoming calls using only your personal phone.

https://www.twilio.com/blog/make-receive-calls-twilio-number-using-studio

Forward Voicemail Recordings to Email w/ Studio, Functions, & SendGrid

While the Voicemail Twimlet has email forwarding built in, many Twilio customers find it limiting and ask if there's a way to forward recordings to email without the Twimlet or a web server. This document shows how to forward voicemail recordings to email using Twilio Studio, Functions, and SendGrid.

https://www.twilio.com/blog/forward-voicemail-recordings-to-email

Build Round Robin Call Forwarding Using Twilio Studio & Functions

One of the most common application workflows – regardless of the context – is round robin routing. You can build round robin routing in a straightforward way with programming logic. However, to run this logic, you need a web server which must be managed – introducing a whole new realm of responsibility. While for larger operations this isn’t a problem, mom and pop shops don’t want to take this on and it often puts this functionality out of reach.

Now with the help of Twilio’s Runtime suite, including Twilio Studio and Functions, you can build your own round robin call forwarding application without worrying about your own web server. In this post, I’ll show you how to set up a serverless round robin call forwarding solution.

https://www.twilio.com/blog/build-round-robin-call-forwarding-studio-functions


Sales Tax Lookup

This project started when I was filing my taxes in 2020. Since I had recently purchased a townhouse, I wondered if if it would make sense to itemize my deductions instead of taking the standard deduction.

Sine I was young, I had always admired the way many of my elders tracked receipts and kept track of their sales taxes all year, but in the new world of digital transactions and a near cashless society, keeping your receipts just doesn't make sense. I also wondered why our sales tax was not automatically calculated for all digital transactions. My guess was that it just wasn't profitable, and there was no incentive for entrepreneurs, but in this project, my curiosity set me out to see if it was possible.

Plaid API

The first thing I needed for my project was a way to access the location information for all of my transactions. To do this, I used the Plaid API. The Plaid API comes with a great Quicksart, which is what I used to get started. The Quickstart made it easy for me to get tokens for each of my accounts, and once I had this, I could programatically access all my transcactions for each account, including the location data for each transaction. This is what I would use to confirm the sales tax rates for that transaction.

I built this app in Javascript, and since I was just building this for myself and not as an app that I could sell, my goal was to get the information I needed as quickly as possible; it didn't matter how quick and dirty it was. My thought was that I could set out by getting a ballpark figure, and if it put my itemized deductions close to the standard deduction amount, I could then fine tune my process and worry about it holding up to an audit.

With this in mind, I did a few things that should wouldn't be done in production like hardcoding a few values and printing my output console instead of taking time building a front-end. Since I was just trying to get a ballpack, I also didn't bother diffentiating city/county taxes, and instead, calculated all my transcactions with North Carolina location with the Durham city tax rate of 7.5%.

The script I wrote below first initializes the Plaid Client with the Client ID of one of my bank accounts, then then iterates through all my transactions checking for those with an NC location. To get the transactions, I use the Transactions resource of the Plaid API, and since this resource has a limitation of 500 transactions per request, I wrote a loop to get them in increments. When I've found a transaction that matches my criteria, I print it to console, calculate the sales tax, and add it to the total, which I also print to the console.

// Initialize the Plaid client
var client = new plaid.Client(
  PLAID_CLIENT_ID,
  PLAID_SECRET,
  PLAID_PUBLIC_KEY,
  plaid.environments[PLAID_ENV],
  {version: '2019-05-29', clientApp: 'Plaid Quickstart'}
);

// Loop through each month since
// api transaction limit is 500

// Define tax year
let year = '2019';

// Define tax vars
let total_sales_tax = 0;
let nc_sales_tax = .075;

// Transactions vars
let total_trans = 0;
let nc_trans = 0;

// Iterate through each month
for (let j=1; j<13; j++) {

  // Set month var
  let month = j;
  // Set month based on j
  if (j<10) {
    month = '0'+j;
  }

  // Set start and end dates for month
  var startDate = year + "-" + month + "-" + "01"
  var lastDayOfMonth = new Date(year, month, 0);
  var endDate = year + "-" + month + "-" + lastDayOfMonth.getDate()

  // var startDate = moment().subtract(30, 'days').format('YYYY-MM-DD');
  // var endDate = moment().format('YYYY-MM-DD');
  client.getTransactions(ACCESS_TOKEN, startDate, endDate, {
    count: 500,
    offset: 0,
  }, function(error, transactionsResponse) {

    if (error != null) {
      console.log(error);
    }

    else {
      let tax_ctr = 0;
      for (let i=0; i 0) {
          if(transactionsResponse.transactions[i].amount > 0) {
            console.log("\nStore Name: " + transactionsResponse.transactions[i].name)
            console.log("Amount: $" + transactionsResponse.transactions[i].amount)
            console.log(transactionsResponse.transactions[i].location)

            // Calculate sales tax cost
            total_sales_tax += transactionsResponse.transactions[i].amount*nc_sales_tax;
            console.log("Total Sales Tax: " + total_sales_tax)
          }
        }
      }
    }
  });
}

The script above told me that even at the highest estimate for all my accounts, I didn't pay enough in sales tax for me to itemize my taxes, but at least I could say that confidently. Additionally, I think it's likely that the standard deduction rate will change in the future, and when that happens, this script might be a little more useful.

Avalara API

The last part of this project was using the Avalara API. While I didn't end up building this into my script, I did play around with it enough to see that it can be used to dynamically retrieve the tax rates for a given transactions location. If you ever wanted to build an app to do this, you could use the Avalara API to get your tax rates instead of hard coding like I did.

// Initialize Client
var client = new Avatax(config).withSecurity(creds);

// Get tax rates of address
client.taxRatesByAddress({
    var path = this.buildUrl({
      url: `/api/v2/taxrates/byaddress`,
      parameters: {
        line1: line1,
        line2: line2,
        line3: line3,
        city: city,
        region: region,
        postalCode: postalCode,
        country: country
      }
    });
    return this.restCall({ url: path, verb: 'get', payload: null });
  });

// Get tax rates of zipcode
client.taxRatesByPostalCode("US", 27713).then((taxRates) => {
  console.log(taxRates)
});


Alpaca API

As a stock trader and developer, I inevitably decided one day in 2019 to see what APIs existed to trade stocks. I figured this would be extremely common since finance and trading is already done programmatically by many, but when I checked Fidelity and some other sources, I was surprised to find that it didn't seem to be as accessible as I thought it would be.

After more digging, I found the Alpaca API, and I immediately had to play with it. Alpaca is an API that allows you to make commission-free trades programmatically. The Alpaca API is especially useful with algorithmic trading, but it can also be used for other purposes. The Alpaca API also comes with a "paper" account, or a sandbox, that can be used for testing. This is especially useful for testing new trading algorithms or strategies.

I built a few tools with the Alpaca Javascript SDK, and you can find them at the link below.

GITHUB: https://github.com/sgeddy/alpaca_api

Below, you can see a few of these tools in action. Similar to my Sales Tax project, these tools were only built with myself in mind, and therefore, are only used through the console (i.e. they don't have a frontend). Additionally, these tools are all connected with my paper account, not my live account with real funds.

Account Management

The first thing I built with Alpaca was a tool to check my account balance. I built this primarily as a way to test the API and get comfortable with it. As you'll see in some of the other tools, I added some functionality to tailor your output by entering either "summary" to get an account summary, or "all" to get all your account information.

Purchase a Watchlist

One feature I had always wanted when trading with Robinhood and Fidelity was the ability to create a watchlist and then purchase it. In other words, I wanted the ability to purchase all the stocks on my watchlist in equal amounts with the click of a button, so this is what I set out to build with Alpaca.

To purchase a watchlist, I wrote a simple json file that included my watchlists, then I wrote a JS function that handled all the rest. For testing, I added functionality for a test mode that would not actually purchase the stocks and did not rely on the market status (i.e. open or closed).

Position Management

The next obvious thing to build was a tool to manage my positions. In other words, I needed a way to see the stocks I currently owned and sell them.

Stock Finder

This tool goes through all the available daily data for each company in the NYSE and separates the companies into companies with a positive trend (for long positions) and companies with a negative trend (for short positions). The positive companies are ordered in order of percentage increase over the past 1000 days (or as long as they've been around) in a positive company json, and the opposite is done in the negative company json.

Positive Trending Companies

Negative Trending Companies


Plant Match

Plant Match is a tool that uses the science of Companion Planting to help determine the compatibility between plants in your garden.

To use Plant Match, add each plant to the list by clicking the Add Plant button, then click Check Compatibility to determine if the plants you've selected are Friends, Enemies, or Netrual to each other. Plants that are Friends provide benefits to each other while plants that are enemies will hurt one or both of the plants. Neutral plants have no significant affect on each other.

You can also find the project here on Github.


PLANTS ENEMIES FRIENDS NEUTRALS




Soil Mixer

soil mix picture

Soil Mixer is a tool to calculate the amount of each ingredient you need in your soil mix.
You can also find the project here on Github.

To use it, input the volume of soil you need (e.g. the volume of your pot or raised bed) and select the units, pick your soil mix, then add a row for all the ingredients in the soil mix you're using. Next, add the number of parts (i.e. ratio) for each ingredient to match the mix you're using. Lastly, click the calculate button when finished to find out exactly you much of each ingredient you need.

Example Mixes

  • 2 parts potting mix
  • 1 part perlite
  • 1 part peat moss
  • 2 parts compost
  • 1 part perlite
  • 1 part vermiculite
  • 4 parts Peat Moss
  • 3 parts peat moss (screened)
  • 2 parts perlite (horticultural grade)
  • 2 parts topsoil (screened and sterilized)
  • 1 part vermiculite
  • 1 part No. 3 coarse sand
  • 1/4 part charcoal (horticultural grade)
  • 1/8 part bonemeal
  • 1/8 part Dolomitic lime
  • 1/8 part 14-14-14 Osmocote
  • 100 parts peat moss
  • 100 parts vermiculite
  • 1 part lime
  • 1 part blood meal
  • 3/4 part bone meal
  • 107 parts compost
  • 107 parts vermiculite
  • 107 parts peat moss
  • 1.5 parts blood meal
  • 1 part clay phosphate
  • 1 part greensand







How much soil do you need?

Parts


VMware PSOD Reader

esxi psod picture

As a Systems Reliability Engineer (SRE) at Nutanix, I often worked with customers troubleshooting hardware failures on ESXi clusters, and this regularly includes the VMware Purple Screen of Death (PSOD). When hardware fails on an ESXi servers and a PSOD is generated at boot, we have to look at the Machine Check Exception (MCE) that's included in the PSOD to determine what hardware has failed.Specifically, the MCi_STATUS register within the MCE can tell us what we need to replace.The MCi_STATUS register is displayed next to the “S:” as shown in the example below.

MC: PCPU18 B:13 S:0xfe20004000011166
M:0x7246040086 A:0x38c989b100 5

Working through the KB took a fair amount of time and added to the risk for error, so when I learned Nutanix nor VMware had an automated tool to translate the error, I decided to build one.

Reference: VMware KB - Decoding Machine Check Exception (MCE) output after a purple screen error (1005184)

You can also find the project here on Github.

How to Debug:

Simply input the last 4 characters of the MCi_STATUS code into the field below and click Debug. To test, use the example status code above.

MCi_STATUS Code:



ERROR MEANING:


Personal Website

This build is referring to the creation of the website you're currently viewing! When I built my first personal website, I didn't have any experience with web development and chose to use Squarespace. After I gained more experience, I decided to build something I could be a little more proud of.

For a framework, I used the Dimension template by HTML5 UP, which is free for personal and commercial use under the CCA 3.0 license. From the Dimenstion README, Dimension is "a fun little one-pager with modal-ized (is that a word?) "pages" and a cool depth effect (click on a menu item to see what I mean). Simple, fully responsive, and kitted out with all the usual pre-styled elements you'd expect. Hope you dig it :)"

At the time this site was created, I had already built all the apps shown here, so I had hoped adding them to this site would be as simple as copying the html forms into this site's index file and linking to their corresponding javascript files in my script element. However, as anyone who's done web development knows, this is rarely what happens, especially when you're dealing with a template.

When I imported the apps, I discovered the checkboxes in each of my tables were not working. Instead of checking the checkbox I clicked, the checkbox in the first row would always be checked intstead. I was using checkboxes to remove rows in a table and to select days in the Final Exam Lookup app, but after spending a few hours trying Stack Overflow solutions and digging through the template files, I decided to cut my losses and rethink how I could accomplish what I needed in a different way.

To delete rows, I used a much cleaner, simple solution using jQuery that identified the row in which the button was clicked and deleted it. This is what the function looks like.

									$("#dataTable").on("click", "#button", function() {
  var table = document.getElementById("dataTable");
  var rowCount = table.rows.length - 1;
  // Check if this is the last row
  if (rowCount == 1) {
	  document.getElementById("alert").innerHTML = "You must have at least one row in your table.";
  }
  else $(this).closest("tr").remove();
});
And for the day selection in the Final Exam Lookup app, I simplified things by using a dropdown with each possible day combination listed. This change actually made my exam lookup more human readable as it previously relied on numbers, and it also prevented the user from selecting day combinations that are not associated with any classes, so all in all, the issue ended up improving the apps.

Once I figured out my solution, I then had to modify my table html to replace the checkbox and label elements with the delete button, as well as some other adjustments. Additionally, since my Add row function relied on cloning the first row, I added logic to prevent the last row from deleted and an alert field to let the user know.

But that's about all it took! The rest of the project was mostly just tedious work copying text I had already written in my previous site to the new one, and some formatting adjustments.


Chapela LLC

In March 2019, I started working with Chapela LLC, a contruction and property improvement company based out of Knoxville, Tennessee, to design and build their first company website. The project consisted of domain purchase, web hosting setup, media collection, brand comprehension, web design, and web development.

You can see the website at chapela-tn.com.


Misty Morning Cafe

In October 2018, I worked with The Misty Morning Cafe out of Townsend, Tennessee, to help support their investment in their new location by expanding their online presence with their first restaurant website. Misty Morning Cafe were moving to a higher quality location closer to the Great Smokey Mountain National Park and wanted to be sure out-of-town, tourist customers would find them online to support their higher costs at the new location.

During my time working with them, I worked to understand their brand, culture, and story; collected and created high-quality media for the website; designed and developed the website, adjusting it based on their feedback; and improved the site SEO by connecting it with existing and newly created online profiles and intentionally tuning the site content language.

My objectives for the site were to give customers the information they’re looking for right away and display the value Misty Morning offers right up front so customers know why to go there over other restaurants. The Misty Morning Cafe is a family owned and operated cafe with a laid-back casual feel and dog friendly seating that offers 100% made from scratch all-American food including house-smoked baked potatoes and house-smoked meats.

Check out the website at mistymorningcafe.com.

UPDATE: Unfortunately, The Misty Morning Cafe burned down and is no longer in business. Therefore, the website has been takend down.


Final Exam Lookup

WHY THIS TOOL WAS MADE:

This tool was made after a friend missed his final exam, because he wrote down the wrong day after a late night of studying. He believes if it was easier to get his final exam times, he wouldn't have made the mistake. This tool was made so you don't have to live through that the nightmare; plus it was a fun challenge and good practice.

You can also find the project here on Github.

HOW TO USE:

  1. Input your class name (optional - your class will be referenced by the row number without one).
  2. Select one of the common exams if you have one.(These are exceptions to the schedule, so be sure to select one if you have one).
  3. Enter the day(s) and start time for your class.
  4. Press Add Class and repeat steps 1-3 for all your classes.
  5. Press Show Me My Final Exam Times, and your results will be shown below.
  6. Be sure to add the results to your your calendar and good luck!


CLASSES COMMON EXAMS DAY(S) START TIME
Class Name










YOUR FINAL EXAM TIMES:


Larisa Style

Over the summer of 2017, I updated the Larisa Style Bridal Boutique's online presence, which included web design, web development, search engine optimization (SEO), Google Analytics, and social media strategy development. I initially formed the relationship by fixing problems with the then-current website, including the site contact form.

Check out the new site at larisastyle.com and their social media pages on Instagram, Facebook, and Twitter.


OLD SITE FIXES

I began my relationship with Larisa Style by fixing errors on the their existing website. This involved learning to navigate the outdated Linux hosting environment, spelling and styling errors, and the contact form. I ended up fixing the contact form by creating a new one from scratch written in PHP. After this experience, the owner and I decided to move forward with a complete update of the boutique's online presence.

DESIGN

I began the update by working with the owner of Larisa Style to find a site design that she liked, on which we would base the development. From there, I worked with the owner using both hand-drawn and Photoshop-based mockups to add more detail to the design. After getting the site design to an acceptable form, the owner and I agreed that web development could begin.

DEVELOPMENT

I began the development by installing the WordPress content management system (CMS) to a subfolder of the site root folder. At that point I simply followed through with the design specifications we agreed upon, added the Google Analytics script, and made changes to improve SEO. The SEO changes included installing the Yoast SEO plugin, changing the site structure, completing meta tags and descriptions, and rewriting the page text. I then worked with the owner to make a few more changes to the site until we both agreed the site was ready to go live, and most importantly, I spent time teaching her how to manage the site on her own. After backing up the old site, creating 301-redirects to preserve the current SEO, and replacing the old site with the new one, I began working with the owner to implement a social media strategy.

SOCIAL MEDIA

The last phase of work I did for Larisa Style was to implement a social media strategy. The key pieces to this phase were developing the social media accounts, linking them to a Buffer account, and teaching the owner how to use Buffer. Buffer allows anyone to automate social media posts and develop a queue of posts that will be delivered over time, which works great for an already busy business owner.


Volunteer Work

Southpoint Townes HOA
FHS Soccer Fundraising
Santa's Littler Hackers
U16 Boys Soccer Coach
Friends of the Smokies
Clean Protect Restore
Farragut Stormwater


Souhtpoint Townes HOA

Vice President

Southpoint Townes homes

Shortly after the Southpoint Townes neighborhood was built in 2018, an election was held in February 2019 to elect board members to the Home Owners' Association (HOA) who would be responsible for neighborhood managemnt moving forward. After speaking about my goals for the neighborhood and for the HOA itself, I was elected as a board member. Roles were then decided between board members, during which I was made Vice President, among 2 other members who would serve as President and Treasurer. After serving a one year term, I was then re-elected for a second term in February 2020, this one being 2 years.

ACCOMPLISHMENTS:

  1. Led initiative to complete neighborhood email contact list.
  2. Led initiative to create and serving as primary writer for neighborhood newsletter which aided in email collection, and supports community communication and information dissemination.
  3. Led initiative of the "Where's Your Money Going" section of the neighborhood newsletter to provide transparency into HOA due usage and HOA financial obligations.
  4. Led application completion and submittal for Durham City Neighborhood Beautification Grant.
  5. Led initiative for use of Nextdoor app to aid in community communication.
  6. Led initiative to form official Southpoint Townes neighborhood on Nextdoor app.
  7. Supporting community moral and reinforcement of HOA purpose.
  8. Supported effort to replace dog park grass with turf, which included evaluating and vetting vendors, ROI calculation, and project communication with the community.
  9. Led initiative to form official Durham City Neighborhood Watch Program and serving as supporting Block Captain.
  10. Supporting verification and approval of outdoor architectural requests.
  11. Supporting discussion and resolution of neighbor disputes and complaints.
  12. Supporting regular landscape contract negotiation and approval.


FHS Soccer Fundraising

Coach Wallie Tumbler

This was project was started in March 2017 to raise money for the Farragut High School Soccer Program and to celebrate the memory of my high school soccer coach, and four time state championship winner, Wallie Culbreth, after he passed away. I made the design with input from Coach Wallie's son, Bradley Culbreth, using Photoshop. Bradley and I then worked with fellow FHS Soccer alum, Knoxville entrepreneur, and founder of Apex Apparel Group, Andrew Doyle, to produce the tumblers.

Orders were handled in person at the FHS Soccer Alumni Game and through the Apex Apparel website. About $3000 in proceeds were donated to the FHS Soccer Program.


Santa's Little Hackers

Team Lead

Santa's Little Hackers

Santa's Little Hackers is a seasonal toy drive to adapt toys. The toy drive makes simple modifications to the electronics of toys then gives them away. These adaptations make the toys accessible to individuals with disabilities so they can play independently. Santa's Little Hackers is an annual event put on by MaxMods. MaxMods is a 501(c)3 not-for-profit corporation chartered to 'make the world accessible for all' by identifying adaptations and modifications to make the world work for individuals living with disabilities.

I discovered Santa's Little Hackers in 2016 during my time at NC State where I volunteerd to serve as a Team Lead during the toy drive modification. During this time, I lead volunteers in an assembly-line process to modify the electric toys, making them compatible with the needs of paraplegic children around the country. The assembly line process consisted of removing wiring, modifing the toy (soldering an AUX input into the toys' circuits), testing the toy, and moving each toy to the next step in the assembly line.

More information about Santa's Little Hackers can be found at https://www.santaslittlehackers.com/


U16 Boys Soccer Coach

Under 16 recreational boys soccer team coach - planned and prepared drills for practices, led group and one on one training, scheduled games, and coordinated with parents and players.


FHS Friends of the Smokies

Founder & President

At the beginning of my senior year at Farragut High School (FHS) in 2009, I founded the FHS branch of the Friends of the Smokies and served as President. During this time, I recruited members and coordinated club meetings, raised money / retrieved club dues for the Friends of the Smokies parent organization, and organized volunteers / coordinated transportation for club fundraising events and trail maintenance.


Clean Protect Restore Invasive Species Removal

Removal Team Volunteer

In 2009 in conjunction with my time volunteering with the Town of Farragut Stormwater Department, I vounteered to serve with the Clean Protect Restore (CPR) Invasive Species Removal Team to aid in the removal of english ivy at the Campbell Station Park in Farragut, TN.


Town of Farragut Stormwater Department

Internship Volunteer

During my first semester of senior year at Farragut High School, I had the opportunity to volunteer with the Town of Farragut Stormwater Department. During this time, I mapped the town streams and creeks with a GPS, evaluated and stored results of streams and creeks, and evaluated / replaced storm drains and stormwater tools.

Fun

Snorkeling & Scuba Diving
Travel


Snorkeling & Scuba Diving

Red Sea Egypt Ras Mohammed National Marine Preserve Salad Coral

My interest in scuba diving started after snorkeling in Thailand's Phi Phi Islands in January 2016. Thailand had incredible healthy reef where we saw large colorful anemone and their accompanying clown fish, a sea snake, a small shark, and lots of colorful fish. At only about 20 feet, I decided that I wanted to get a closer look, so I held my breath and dove down while holding my nose and equalizing. At the bottom, I was close enough to touch the reef and was able to appreciate the incredible detail of the reef. Unfortunatley, I was only able to hold my breath for maybe 30 seconds, and this is when I decided that I wanted to scuba dive.

Since getting open water certified in 2018, I've gone on to dive in several spots across the world and gained certifications for Advanced Adventure Diving, Nitrox Diving, and Emergency CPR. I've done night dives, deep dives past 140 feet, wreck dives, drift dives, and a couple solo dives. These days I'm always planning my next dive whether it's spearfishing off the North Carolina coast or an international destination.

Check my youtube channel to see a few of my scuba adventures. Below are also a few trips which are not published on Youtube.

Thailand

Over 20 dives around the Similar Islands onboard the liveaboard dive ship Manta Queen 1 for ~ 1 week. Most vibrant marine life and best diving to date.



Spearfishing North Carolina

I started spearfishing in 2020 with the excellent company WB Diving. With WB, there are a maximum of 6 divers on the boat with 3 diving at a time. This provides a better quality and safer experience. The dives are primarily on ledge's about 30 to 45 miles off the NC coast. Almost every trip comes back with Hogfish (Hognose snappers), some type of grouper, and spiny lobsters, but amberjack are also abundant if you're brave (or crazy!) enough to shoot one. I've seen green sea turtles, sharks, and much more including one trip where I grabbed (literally grabbed with my hands) some rare slipper lobsters. And that's part of the fun is you never know what you're gonna see or bring back.

WB Diving, spearfishing trip boat catch

Costa Rica

October 20201 - 8 dives around Isla Dispensa in the Gulf of Santa Elena, Pacific coast just south of the Nicaragua border. Includes eagle rays, TONS of puffers, several types of moral eels, HUGE southern stingrays, and much more. Footage below is also from snorkeling in the same area.



Akumal, Mexico - May 2021

Extended video showing our fun at the Secrets Akumal Resort, snorkeling outside the resort in Akumal Bay, and scuba diving cenotes Angelita, Zapote (Hell's Bells), and Maravilla.

Northern Red Sea, Egypt (December 2019)

This trip was onboard the Red Aggressor II liveaboard diving ship and included world famous dives in Ras Mohammed National Marine Preserve, the USS Thistlegorm wreck (considered the best wreck dive in the world), and the Giannis D. wreck.

The Hyde, North Carolina (October 2019)

The Hyde is a well known wreck dive about 15 miles off the coast at about 75 feet in depth. The location is known for Sand Tiger sharks (saw one!), barracuda, grouper, and lots of other smaller fish. Checkout my video below for some highlights from the dive.



R.R. Stone Tug AR382 & Dredge Wreck Playa AR382, North Carolina (May 2019)

This was my first dive off the coast of North Carolina. Both wrecks are well known and about 15 miles off the coast at about 75 feet in depth. Checkout my video below for some highlights from the dive.



Playa Del Carmen, Mexico (December 2018)

This trip was part of a vacation to Mexico and was my first international diving experience. Unfortunately, I didn't have a camera with me for this trip since I was so new, so I only have pictures and video from our dive in Playa del Carmen where the guide had a camera. Our Cozumel dives didn't have one, but I still have the memories :)


Travel

One of my favorite things to do is travel, explore new cultures, and most of all, exmplore new FOODS! I love food and I love traveling to see and feel firsthand how others live around the world. Below are a few of the places I've been.

Hawaii



Graduation Road Trip

To celebrate the completion of my Bachelor's in Computer Engineering, I decided to take a road trip with my brother in the Western US. We went from Vegas through Death Valley, then North to the Ancient Bristlecone Pine Forst, West through the Sierras into Yosemite, then all the way to the coast at San Francisco. From there we followed the coast North through the Red Wood National Forest and into Portland, then we finished up the trip in Seatlle.

Zambrieski Point

Seoul & Daegu, South Korea

Guanacaste region of Costa Rica

Yucatan, Mexico (4 trips including Cancun, Cozumel island, Akumal, Playa del Carme, and Tulum)

Cairo and Hurghada, Egypt (diving in the Red Sea)

Saint Petersburg, Russia (for the 2018 World Cup)

Phuket and Bangkok, Thailand (also diving the Similan Islands West of Thailand in the Andaman Sea)