<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[dragonejt]]></title><description><![CDATA[Software Dev Engineer at Amazon Web Services

Civic Technologist with Civic Tech DC]]></description><link>https://dragonejt.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 17:59:26 GMT</lastBuildDate><atom:link href="https://dragonejt.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Contributing to the Street Level Imagery project for the American Red Cross]]></title><description><![CDATA[A while ago, I posted about joining Civic Tech DC, an organization that collaborates with local nonprofits and governments on tech projects. Since then, a lot has happened. We've gained more projects and partners, become a registered 501(c)(3) nonpro...]]></description><link>https://dragonejt.dev/contributing-to-the-street-level-imagery-project-for-the-american-red-cross</link><guid isPermaLink="true">https://dragonejt.dev/contributing-to-the-street-level-imagery-project-for-the-american-red-cross</guid><category><![CDATA[climate change]]></category><category><![CDATA[Geospatial]]></category><category><![CDATA[Computer Vision]]></category><category><![CDATA[image processing]]></category><category><![CDATA[Python]]></category><category><![CDATA[pandas]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Thu, 08 Aug 2024 02:10:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1722808635259/a15187cb-2682-4d56-8bc0-19965b38c576.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A while ago, I posted about joining <a target="_blank" href="https://www.civictechdc.org/">Civic Tech DC</a>, an organization that collaborates with local nonprofits and governments on tech projects. Since then, a lot has happened. We've gained more projects and partners, become a registered 501(c)(3) nonprofit, and I am now a co-organizer and core contributor on one of the projects. Since January, I have been contributing to the <a target="_blank" href="https://github.com/AmericanRedCross/street-view-green-view">Street Level Imagery</a> project with the <a target="_blank" href="https://www.redcross.org/">American Red Cross</a> and Civic Tech DC. This project, started by the American Red Cross, uses geospatial data to download images from <a target="_blank" href="https://www.mapillary.com/">Mapillary</a> and processes them to detect the amount of vegetation, known as the Green View Index (GVI). In this post, I'll discuss my work on this project, its use case, and some technical aspects of the project.</p>
<h2 id="heading-background">Background</h2>
<p>The Red Cross Red Crescent network deals with a lot of natural disasters, and data can help them respond more effectively. One type of disaster is extreme heat, and the Red Cross will set up cooling centers in extreme heat disasters. However, they need to know where to place a cooling center to have the greatest impact. Placing a cooling center in an area more vulnerable to extreme heat is more effective, so they need data about which areas are most at risk.</p>
<p>We can use urban vegetation as one piece of data for assessing extreme heat risk. When an area has more trees and bushes, it will likely be cooler because there is more cooling evapotranspiration and more shade. With data about urban vegetation, we can determine if placing a cooling center there will be effective or not. Conveniently, urban vegetation data can be relatively easily extracted from street level imagery, using a variety of methods like pixel counting and image segmentation. This forms the basis of our project: sourcing street level imagery for an area and then calculating the amount of vegetation there as a proxy for extreme heat risk.</p>
<p>There are some alternatives to using street level imagery and sourcing our own images. As you may know, Google Street View is a large existing repository of street level imagery. However, it costs money to access and the images are licensed restrictively. This does not suit our use case as sourcing thousands of images for an area adds up, and we can't use the images freely. We instead decided to use Mapillary, which is a free and Creative Commons-licensed repository of street level imagery. Satellite imagery is another option and is very popular for working with geospatial data, but it is expensive, and the level of detail for calculating vegetation is just not there for commercial satellites.</p>
<h2 id="heading-a-tour-of-our-repo">A Tour of Our Repo</h2>
<p>The street level imagery project currently consists of three Python scripts:</p>
<ol>
<li><p><code>create_points.py</code> for taking in an OpenStreetMap roads file and calculating latitude and longitude points along the roads every 20 meters for getting images. Essentially, we get a roads file for a particular area we want to analyze vegetation data for, and <code>create_points</code> will filter for specific wanted highway types and interpolate along each highway with a 20m distance and save the latitude and longitude of each point to a GeoDataFrame, which is a pandas DataFrame with one column for geospatial data.</p>
</li>
<li><p><code>assign_images.py</code> for sourcing images and assigning them to points. These images can be sourced from Mapillary or from local images on disk. For the Mapillary image source, we call the Mapillary API to get the data of all images within a 20m bounding box of a point, and then get the closest one to the point and download that. For the local image source, each image has GPS data of where it was taken in the image's EXIF metadata. We search through all local images in a folder and get the one with the closest GPS location.</p>
</li>
<li><p><code>assign_gvi_to_points.py</code>, which calculates a Green View Index for each image and point. We currently use two methods to calculate a Green View Index for an image. The Pixel Counting method takes the green channel of an RGB image and calculates the percentage of pixels in the image that exceed a certain value of green. The Segmentation method, on the other hand, uses <a target="_blank" href="https://huggingface.co/facebook/mask2former-swin-large-cityscapes-semantic">Facebook's Mask2Former</a> segmentation model to segment out the vegetation in an image and calculates the percentage of pixels identified as vegetation out of the total pixels in the image.</p>
</li>
</ol>
<h2 id="heading-what-ive-worked-on">What I've Worked On</h2>
<p>I have mainly worked on the image sourcing and green view index calculation parts of the project. When I started contributing in January, I implemented the Mapillary image downloader to get open source street level imagery from Mapillary. There were several challenges with that, including deduplicating images where one image could be the closest image for two points and handling timeouts that bubbled up as HTTP 400 Bad Requests from the API. I also implemented the local image source, which matches local images to points using GPS EXIF metadata. It was a challenge to explore the EXIF data in an image, and search for where the GPS metadata was. Overall, I've really enjoyed my time working on this project so far, and have learned a lot about geospatial data and image processing.</p>
]]></content:encoded></item><item><title><![CDATA[Devvit #1: Introduction to the Reddit Developer Platform]]></title><description><![CDATA[Most social media platforms offer developer platforms for third-party bots or apps to enhance functionality and engage with users. For example, Discord is known for its Discord Bots that interact with Discord servers, and Twitch has chatbots that ser...]]></description><link>https://dragonejt.dev/introduction-to-the-reddit-developer-platform</link><guid isPermaLink="true">https://dragonejt.dev/introduction-to-the-reddit-developer-platform</guid><category><![CDATA[reddit]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[social media]]></category><category><![CDATA[introduction]]></category><category><![CDATA[coding]]></category><category><![CDATA[software development]]></category><category><![CDATA[app development]]></category><category><![CDATA[#chatbots]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Mon, 08 Jul 2024 00:03:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1720396588965/324affc9-e487-44b4-a5e6-835fb5822bec.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most social media platforms offer developer platforms for third-party bots or apps to enhance functionality and engage with users. For example, Discord is known for its <a target="_blank" href="https://discord.com/developers/docs">Discord Bots</a> that interact with Discord servers, and Twitch has <a target="_blank" href="https://dev.twitch.tv/docs/irc/">chatbots</a> that serve various functions in a streamer's live chat. Historically, Reddit has lacked a robust developer platform compared to the other social media platforms. While they do have a data API and unofficial libraries to access it, they haven't had great support for third-party apps. This is all changing with the introduction of <a target="_blank" href="https://developers.reddit.com/">Devvit</a>, Reddit's Developer Platform that allows you to create third-party apps that can interact with Reddit.</p>
<p>In this tutorial series, I will teach you the basics of Devvit and how to build apps on it, as well as what support you have as a Devvit builder. I will cover how to create an app from scratch, execute code in event triggers, call outside APIs with fetch, and display custom posts through experiences. We'll start with how to install devvit and initialize a new Devvit App from scratch.</p>
<h2 id="heading-installing-devvit">Installing Devvit</h2>
<p>At its core, Devvit is a JavaScript library that runs on Node.js. In order to install it, you must first have <a target="_blank" href="https://nodejs.org">Node.js</a> and <a target="_blank" href="https://git-scm.com/">Git</a> installed. Once you have them installed, you can then install Devvit with:</p>
<pre><code class="lang-bash">npm install -g devvit
</code></pre>
<p>That's it! You should have <code>npm</code> installed from installing Node.js, but if not, you should double-check your PATH and other environment variables. If you are using a different package manager like <code>yarn</code> or <code>pnpm</code>, install devvit globally using the corresponding package manager's install command. Now that you have installed devvit, you can then login using your Reddit account (you will need a Reddit account to build on Devvit):</p>
<pre><code class="lang-bash">devvit login
</code></pre>
<p>This command should prompt a new browser window to open, leading to an authorization page to authorize Devvit on your Reddit account. Once you have authorized Devvit, we are now ready to create our first Devvit App!</p>
<h2 id="heading-creating-your-first-devvit-app">Creating Your First Devvit App</h2>
<p>To create a new Devvit App, run the following command:</p>
<pre><code class="lang-bash">devvit new {slug}
</code></pre>
<p>This slug is especially important as it is essentially the ID for your app. It will be reflected in the <code>devvit.yaml</code> configuration file as well as the URL for your uploaded app at <code>https://developers.reddit.com/apps/{slug}</code> . Make sure to choose one that you are OK with publishing the app as, or else you may have to re-upload it as a new app when you decide to publish it later! The Devvit CLI will ask you to choose one of multiple starter templates:</p>
<pre><code class="lang-bash">$ devvit new slug
? Choose a template: (Use arrow keys)
❯ app-settings
  empty
  experience-post
  experience-post-pro
  forms
  image-uploads
  intro-to-devvit
(Move up and down to reveal more choices)
</code></pre>
<p>In the future, you may select one of the templates to have an easier start to building new apps. For now though, we'll select <code>empty</code>. Once Devvit has created the app and installed your NPM dependencies, <code>cd</code> into the project folder and you'll see something similar to the following:</p>
<pre><code class="lang-bash">$ ls
devvit.yaml  node_modules/  package.json  package-lock.json  src/  tsconfig.json
</code></pre>
<p><code>devvit.yaml</code> is a special configuration file for Devvit. <code>node_modules/</code> , <code>package.json</code>, and <code>package-lock.json</code> are files that are present in any NPM project. <code>tsconfig.json</code> is a configuration file for the TypeScript compiler. Your code will be written in <code>src/</code>, and you should have a <code>src/main.tsx</code> that contains the following:</p>
<pre><code class="lang-typescript"><span class="hljs-comment">// Visit developers.reddit.com/docs to learn Devvit!</span>

<span class="hljs-keyword">import</span> { Devvit } <span class="hljs-keyword">from</span> <span class="hljs-string">'@devvit/public-api'</span>;

Devvit.addMenuItem({
  location: <span class="hljs-string">'post'</span>,
  label: <span class="hljs-string">'Hello World'</span>,
  onPress: <span class="hljs-function">(<span class="hljs-params">event, context</span>) =&gt;</span> {
    <span class="hljs-built_in">console</span>.log(<span class="hljs-string">`Pressed <span class="hljs-subst">${event.targetId}</span>`</span>);
    context.ui.showToast(<span class="hljs-string">'Hello world!'</span>);
  },
});

<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> Devvit;
</code></pre>
<p>Congrats! Now you have your own Reddit App. If you want to upload it and see it in action on a subreddit, you can either playtest it and/or upload it privately on the App Directory.</p>
<h2 id="heading-uploading">Uploading</h2>
<p>In order to test your app on a subreddit, you will first have to create a subreddit that you are a moderator on, and then you can install your app on the subreddit. You will first need to upload the app using:</p>
<pre><code class="lang-bash">devvit publish
</code></pre>
<p>You will then have to input a name for your app, indicate if your app is NSFW, and complete a CAPTCHA to verify that you are a human. Once you have uploaded your app, you will see the following message:</p>
<pre><code class="lang-bash">Creating app...... Successfully created your app <span class="hljs-keyword">in</span> Reddit!
</code></pre>
<p>Now, you can see it online at https://developers.reddit.com/apps/{slug}! You can then install your uploaded app on your subreddit via the website. With the existing code, you should be able to see a "Hello World" menu item under the triple-dot menu for posts in your subreddit.</p>
<h2 id="heading-playtesting">Playtesting</h2>
<p>Once you have uploaded your app, you can then playtest it on your subreddit. While the app has not been published yet, your subreddit must have less than 200 members in order to install new versions of your app on it. You can playtest new versions of the app by running the following command:</p>
<pre><code class="lang-bash">devvit playtest {subreddit}
</code></pre>
<p>This will install the new playtest version of your app on your subreddit. Any changes in the new playtest version will be reflected on your subreddit. Hot reloading is enabled when playtesting, so Devvit will build, upload, and install a new playtest version of your app every time you save new code in your project. Once you are done playtesting, you can revert back to the latest version of your app with the command:</p>
<pre><code class="lang-bash">devvit install {subreddit}
</code></pre>
<p>You have successfully created your own Devvit App, uploaded it, and installed it to your own subreddit to test it! You are now well on your way to developing a great Reddit App. To end this post, here are some resources you can refer to in case you get stuck. Good luck and happy coding! Share any Reddit Apps you make in the comments with a GitHub link or a Reddit App Directory link!</p>
<h2 id="heading-resources">Resources</h2>
<ul>
<li><p><a target="_blank" href="https://developers.reddit.com/docs/">Official Devvit Documentation</a></p>
</li>
<li><p><a target="_blank" href="https://www.reddit.com/r/Devvit/">r/Devvit</a></p>
</li>
<li><p><a target="_blank" href="https://discord.com/channels/1050224141732687912/1050227353311248404">Reddit Devs Discord</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/reddit/devvit/tree/main/packages/apps">Example Devvit Apps</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/dragonejt/sibyl-reddit">My Devvit App (Sibyl System)</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Attending CVPR 2024: Interesting Talks and What I Learned]]></title><description><![CDATA[Last week, I attended CVPR 2024, the annual IEEE/CVF Computer Vision and Pattern Recognition conference. More specifically, I attended the AI4Space Workshop and a few tutorials at the conference, as the main conference sessions didn't capture my inte...]]></description><link>https://dragonejt.dev/attending-cvpr-2024-interesting-talks-and-what-i-learned</link><guid isPermaLink="true">https://dragonejt.dev/attending-cvpr-2024-interesting-talks-and-what-i-learned</guid><category><![CDATA[cvpr]]></category><category><![CDATA[space exploration]]></category><category><![CDATA[space]]></category><category><![CDATA[AI]]></category><category><![CDATA[ML]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Machine Learning]]></category><category><![CDATA[Deep Learning]]></category><category><![CDATA[Computer Vision]]></category><category><![CDATA[Geospatial]]></category><category><![CDATA[conference]]></category><category><![CDATA[research]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Fri, 28 Jun 2024 02:16:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1719540113007/1951f7c2-168f-4c95-ba91-016a4e45f236.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, I attended <a target="_blank" href="https://cvpr.thecvf.com/Conferences/2024">CVPR 2024</a>, the annual IEEE/CVF Computer Vision and Pattern Recognition conference. More specifically, I attended the <a target="_blank" href="https://aiforspace.github.io/2024/">AI4Space Workshop</a> and a few tutorials at the conference, as the main conference sessions didn't capture my interest as much. It was a fun and insightful experience, where I got to listen to many interesting talks, check out multiple interesting posters, and overall learn a lot from the conference. I wanted to go over a few papers and tutorials I found interesting from what I attended.</p>
<h2 id="heading-mitigating-challenges-of-the-space-environment-for-onboard-artificial-intelligence-design-overview-for-a-recently-launched-payloadhttpsopenaccessthecvfcomcontentcvpr2024wai4spacepapersdelcastillomitigatingchallengesofthespaceenvironmentforonboardartificialintelligencecvprw2024paperpdf"><a target="_blank" href="https://openaccess.thecvf.com/content/CVPR2024W/AI4Space/papers/Del_Castillo_Mitigating_Challenges_of_the_Space_Environment_for_Onboard_Artificial_Intelligence_CVPRW_2024_paper.pdf">Mitigating Challenges of the Space Environment for Onboard Artificial Intelligence: Design Overview for a recently launched payload</a></h2>
<p>I am interested in the development and deployment of onboard machine learning for satellites, so this paper was particularly insightful for me. This paper explained well the challenges of "managing thermal constraints, ensuring radiation resilience, [and] overcoming the limited communication bandwidth" when running machine learning models onboard satellites, as well as steps taken to mitigate those risks. The actual hardware used for machine learning was the NVIDIA Jetson Nano, an edge AI hardware device that includes a CUDA-compatible GPU.</p>
<p>Temperature control is crucial to computing in space, as extreme cold will shut off the computers, while extreme heat can cause overheating and damage. There is no natural convection in space, so other actions had to be taken to spread the heat. To mitigate this problem, the team added a "carrier frame, a singular aluminium frame designed to closely follow the contours of the module". The frame acts as a heat sink and conducts heat away from the CPU, GPU, and power management chip. Radiation poses another risk, as it can flip bits in the board's memory, leading to data corruption. The team mitigated the radiation risk by storing backups of all files and computing MD5 hashes of the files. If the hash of a file was different, then the file would be replaced with its backup, and if all backups were also corrupted, the satellite would wait to uplink a good version of the file. The final challenge considered was the amount of bandwidth that the satellite could use when downlinking data to ground stations, which slows transfers and limits the number of files that can be sent daily. The mitigation that the team took was to use the "JPEG-XL algorithm for efficient on-orbit compression of image data". This allowed the team to downlink more pictures in a day.</p>
<p>I found the paper particularly insightful because it used a backup and hashing mechanism to ensure the integrity of files on disk rather than only relying on hardware radiation shields to protect from radiation and bit flips. The team also explained their reasoning for choosing the JPEG-XL image compression algorithm well, discussing the options when using JPEG-XL and the tradeoffs compared to other algorithms. Their software approaches to fixing many "hardware" or "physical" problems were very insightful. This paper also won Honourable Mention at the AI4Space workshop, and I believe they did an excellent job!</p>
<h2 id="heading-transformers-for-orbit-determination-anomaly-detection-and-classificationhttpsopenaccessthecvfcomcontentcvpr2024wai4spacepapersretransformersfororbitdeterminationanomalydetectionandclassificationcvprw2024paperpdf"><a target="_blank" href="https://openaccess.thecvf.com/content/CVPR2024W/AI4Space/papers/Re_Transformers_for_Orbit_Determination_Anomaly_Detection_and_Classification_CVPRW_2024_paper.pdf">Transformers for Orbit Determination Anomaly Detection and Classification</a></h2>
<p>This was an interesting application to a common set of space machine learning problems. Transformers are generally known in the world of natural language processing and large language models as models that accept sequential input in the form of tokens and find relationships between tokens. Seeing them applied to the world of space machine learning on time series data was definitely intriguing. The paper itself goes through parts of spacecraft navigation that fit the model of time series data, and applies transformers to orbit determination, anomaly detection, and anomaly classification.</p>
<p>The team tested three transformer models on tokenized time series data. The Measurement Transformer (MT) "builds off the BERT architecture, adapted for time series data by using a time encoding instead of position encoding". The Tracking Pass Transformer (TPT) uses nested Transformer encoders to extract information from short periods of measurements and combine them for anomaly classification. The Vision Transformer (ViT) "divides an image into a set of 2-dimensional patches, then treats this set of image patches as a sequence that can be processed with a Transformer encoder model". All three transformer models were trained and tested on five classes:</p>
<ul>
<li><p>Drag – erroneous estimate of the spacecraft’s coefficient of drag.</p>
</li>
<li><p>Gravity – reduction in spherical harmonics degree and order in the estimation filter’s dynamical model.</p>
</li>
<li><p>Maneuver – erroneous finite thrust maneuver direction and magnitude estimate.</p>
</li>
<li><p>Nominal – no dynamical or measurement mismodel present.</p>
</li>
<li><p>SRP – erroneous estimate of the solar radiation pressure scale factor</p>
</li>
</ul>
<p>Overall, all 3 models "achieved over 80% validation accuracy, with the best performing Tracking Pass Transformer models achieving 93% validation accuracy". This signifies the effectiveness of using transformers for time series data in spacecraft navigation.</p>
<p>Personally, I found this paper very interesting because of the novel approach of something that is generally used on NLP being applied in space machine learning on time series data. It will be interesting to see if, in the future, more models or methods in other fields are applied to space machine learning.</p>
<h2 id="heading-geospatial-computer-vision-and-machine-learning-for-large-scale-earth-observation-datahttpscvprthecvfcomvirtual2024tutorial23727"><a target="_blank" href="https://cvpr.thecvf.com/virtual/2024/tutorial/23727">Geospatial Computer Vision and Machine Learning for Large-Scale Earth Observation Data</a></h2>
<p>After attending the AI4Space workshop, I then attended this tutorial on geospatial computer vision at CVPR because it was in the same domain as the current <a target="_blank" href="https://github.com/AmericanRedCross/street-view-green-view">Street Level Imagery project that I am contributing to for the American Red Cross</a>. This tutorial mainly covered background knowledge and recent advances in geospatial computer vision on satellite and aerial imagery, and covered standards and methods, such as GeoTIFF for storing geospatial data inside rasterized images, shapefiles for storing geospatial data as well as several current machine learning models being used for geospatial computer vision. There were also discussions about how to participate in the field, such as competitions like <a target="_blank" href="https://spacenet.ai/">SpaceNet</a>.</p>
<p>Overall, while the discussion of geospatial computer vision was very interesting, it didn't align too much with my Street Level Imagery project, as the tutorial focused more on satellite and aerial images and the challenges and advances there, whereas we are focusing more on street level imagery as it is much more accessible and much more frequently updated. For example, while shapefiles are a common geospatial data format, GeoTIFFs are most commonly seen in satellite and aerial imagery. I will be publishing a post about my experience with the Street Level Imagery project and the American Red Cross soon, so be on the lookout for that!</p>
<h2 id="heading-conclusion-whats-next">Conclusion: What's Next?</h2>
<p>Attending CVPR 2024 was definitely an experience that allowed me to learn more about two new fields that I have become interested in. The AI4Space Workshop allowed me to gain a better understanding of where machine learning is being applied in space exploration and its current challenges. Meanwhile, the geospatial computer vision tutorial gave a great overview of the current datasets, methods, and community surrounding geospatial CV. These sessions not only broadened my knowledge of the field but also inspired new ideas for my ongoing projects. If you are following my blog, you'll hear from me more as I delve deeper into the papers presented at AI4Space, and when I talk about my experience working on the Street Level Imagery project with the American Red Cross and Civic Tech DC.</p>
]]></content:encoded></item><item><title><![CDATA[Participating in the SPARK 2024 Challenge]]></title><description><![CDATA[Over the past couple of months, I participated in the SPARK 2024 Challenge hosted by the AI4Space Workshop at CVPR 2024. SPARK stands for SPAcecraft Recognition leveraging Knowledge of Space Environment, and is a competition applying Computer Vision ...]]></description><link>https://dragonejt.dev/participating-in-the-spark-2024-challenge</link><guid isPermaLink="true">https://dragonejt.dev/participating-in-the-spark-2024-challenge</guid><category><![CDATA[space exploration]]></category><category><![CDATA[Computer Vision]]></category><category><![CDATA[Machine Learning]]></category><category><![CDATA[Deep Learning]]></category><category><![CDATA[Competition]]></category><category><![CDATA[challenge]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[space]]></category><category><![CDATA[ML]]></category><category><![CDATA[AI]]></category><category><![CDATA[research]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Mon, 08 Apr 2024 23:27:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711671152473/b5b7a6f0-85fb-4f42-aa4b-feb509236920.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past couple of months, I participated in the <a target="_blank" href="https://cvi2.uni.lu/spark2024/">SPARK 2024 Challenge</a> hosted by the <a target="_blank" href="https://aiforspace.github.io/2024/">AI4Space</a> Workshop at <a target="_blank" href="https://cvpr.thecvf.com/">CVPR 2024</a>. SPARK stands for SPAcecraft Recognition leveraging Knowledge of Space Environment, and is a competition applying Computer Vision to spacecraft semantic segmentation and spacecraft trajectory estimation tasks. Since I am interested in the applications of Machine Learning in Space Exploration, I decided to participate in the SPARK 2024 Challenge as a way of learning more about this field. Although in the end I didn't get great results, I have learned a lot more about the applications of Computer Vision in Space Exploration and have become more excited to attend the AI4Space Workshop in June.</p>
<h1 id="heading-what-is-spark-2024">What is SPARK 2024?</h1>
<p>SPARK 2024 is a challenge hosted by the University of Luxembourg and the AI4Space Workshop that applies Computer Vision techniques to spacecraft semantic segmentation and spacecraft trajectory estimation. The end goal of the competition was to discover new methods to apply machine learning to space situational awareness (SSA). I teamed up with a couple others to pursue Stream 1: Spacecraft Semantic Segmentation as we were more familiar with image segmentation than with pose estimation. This stream was a standard image segmentation task, where the goal was to create a mask of the satellite body and solar panels from an image. The image dataset was generated using models of the Earth and satellites in the Unity3D game engine. Overall, the goal was to submit a collection of image masks that identified the spacecraft bodies and solar panels from the rest of the image. The submissions were judged using the Jaccard Index, a similarity score based on the intersection over union between the predicted segmentation mask and the actual mask.</p>
<p>There was the possibility of publishing a paper about the competition results if the implementation was novel enough, but we opted not to publish anything due to our implementation not getting great results and it not really being novel. However, if your submission implementation was novel or got great results, you could submit it to the AI4Space workshop to try and get it published. The deadline for paper submissions was shortly after the results submission deadline.</p>
<h1 id="heading-our-implementation">Our Implementation</h1>
<p>The starter code and image dataset of the competition already had functionality to load images and visualize them, so I continued from the existing work when building my model. The images were 1024 x 1024 pixels and in color, which are pretty large in the world of computer vision. We used Kaggle Notebooks for our compute and the Nvidia P100 that was included, although the 16GB VRAM capacity of the P100 quickly became a limiting factor. Our implementation was able to stay within those limits though, and used the images and image dataloader as-is without any modification.</p>
<p>We initially started with the standard PyTorch implementation of DeepLabV3 with a mobilenetV3 backbone, using Cross Entropy as the loss function and Stochastic Gradient Descent as the optimizer. We could clearly see the mask identifying the satellite and solar panels when overlaying the mask on top of the original image, but the calculated Jaccard Index was very low. We then tried changing the model used and optimizer all to similar or worse results, and could not change the backbone model because we hit GPU VRAM limits. What finally improved our model was when a teammate told me about a Jaccard Loss function in the <code>segmentation_models</code> package, and when we used the Jaccard Loss instead of Cross Entropy as the loss function, we were able to improve the Jaccard Index to around 0.5 on average. Unfortunately, due to the competition only lasting two months and my teammates and I all having full-time jobs during the day, we ended up not being able to try more methods to improve the Jaccard Index of our model. As next steps, we wanted to try out autocasting the image's pixel values to float16 or downscaling to improve compute capacity and use a different backbone model. The final implementation of our model is openly available <a target="_blank" href="https://www.kaggle.com/code/dragonejt/neomuna">on Kaggle</a>.</p>
<h1 id="heading-what-i-learned">What I Learned</h1>
<p>Although we weren't able to get great results from the competition, I definitely learned a lot more about the applications of computer vision in space situational awareness. The image dataset helped me understand how a satellite would take pictures and view other objects, and why we need computer vision on satellite imagery. I also better understand the most popular problems at this intersection of machine learning and space exploration, and what work is currently being done to solve them. I am also inspired by those who did get good results during the competition, and how much work they put in. This competition has only made me more excited to attend the AI4Space Workshop at CVPR 2024 in June.</p>
]]></content:encoded></item><item><title><![CDATA[AWS Certifications: Are They Worth It? Should You Get One?]]></title><description><![CDATA[If you have spent any amount of time in the tech world, you will know that while there are many standard certifications that you can get if you work in IT, the world of certifications for Software Development is vastly different and much more disorga...]]></description><link>https://dragonejt.dev/aws-certifications-are-they-worth-it-should-you-get-one</link><guid isPermaLink="true">https://dragonejt.dev/aws-certifications-are-they-worth-it-should-you-get-one</guid><category><![CDATA[AWS]]></category><category><![CDATA[Amazon Web Services]]></category><category><![CDATA[Certification]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[AWS Certified Developer - Associate]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Sat, 02 Mar 2024 17:20:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1709349645247/ac039051-5126-4aa4-aa6b-bf4ac21efffa.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you have spent any amount of time in the tech world, you will know that while there are many standard certifications that you can get if you work in IT, the world of certifications for Software Development is vastly different and much more disorganized, because of the fast pace at which technologies come onto the scene and become deprecated. There are certifications for specific technologies like MongoDB or Snowflake, but not all companies use those technologies, and there is always a risk of learning a legacy technology. <a target="_blank" href="https://aws.amazon.com/certification/">AWS Certifications</a> are a little bit different, as they cover a breadth of cloud technologies. I recently got my <a target="_blank" href="https://www.credly.com/badges/12349652-08e6-4a8d-bca8-0e085059c9f6/public_url">AWS Certified Developer - Associate</a>, and I'm here to give an explanation about AWS Certifications, my experience getting my AWS cert, and give an analysis on whether or not you should pursue one.</p>
<h1 id="heading-what-are-aws-certifications">What are AWS Certifications?</h1>
<p>AWS Certifications, as you may have guessed by the name, are certifications that demonstrate skills and experience in Amazon Web Services. Most companies now run their software on the cloud, and Amazon Web Services is the original and largest cloud service provider as well as the innovator in this space. As more and more companies migrate to a cloud-first software development approach, they are looking for people who know how to use cloud services to resolve the complexity and choice that the cloud can bring. One of the primary ways that these skills can be demonstrated is with the certifications that the cloud providers offer.</p>
<p>These certifications are split into four levels (Foundational, Associate, Professional, and Specialty) and <a target="_blank" href="https://d1.awsstatic.com/training-and-certification/docs/AWS_certification_paths.pdf">multiple certification paths</a>. The certification path that I am pursuing is the Software Development Engineer path, hence my choice to pursue the AWS Certified Developer - Associate. They usually cover a broad range of cloud technologies, including VMs and networking (EC2), object storage (S3), databases (RDS, DynamoDB), and serverless functions (Lambda). The main difference that AWS certs have when compared to technology-specific certifications is that they offer the breadth of knowledge about cloud technologies. While certain technologies may come into and fall out of fashion, Amazon Web Services as a whole is here to stay for a long time. Out of the different types of certifications for software development, AWS Certifications are probably the most valuable because of the both the breadth of technologies they cover as well as companies' need for developers skilled with AWS.</p>
<h1 id="heading-how-i-prepared-for-my-aws-cert">How I Prepared For My AWS Cert</h1>
<p>Before I dive into how I prepared for my AWS Certified Developer - Associate exam, you should know that I am not a complete newbie to software development or Amazon Web Services. I have past experience as a Software Dev Engineer, and have used multiple Amazon Web Services since I work there after all. As a result of this, even though the Software Development Engineer certification path starts off with the AWS Certified Cloud Practitioner, I decided to skip the Foundational-level cert and go straight for the AWS Certified Developer - Associate. The certification paths document shows that the AWS Certified Cloud Practitioner is optional for IT/cloud professionals, so if you have already worked with AWS before, you should probably skip it too and go straight to the Associate-level cert for your path.</p>
<p>The entire process of my preparation for the certification exam took around 3-4 months, although I wasn't consistent in my studying for the exam. I decided that I was going to study for my certification in October 2023, and finally took the exam and passed in January 2024. I had experience with most of the popular services from my full-time job and my previous summer internship in 2022. As an Amazonian, I could get 50% off the exam fee as well as free access to the major AWS courses from <a target="_blank" href="https://skillbuilder.aws/">AWS Skill Builder</a>, <a target="_blank" href="https://www.pluralsight.com/cloud-guru">A Cloud Guru</a>, <a target="_blank" href="https://cloudacademy.com/">Cloud Academy</a>, and more. I started studying the A Cloud Guru course for the cert in October, and went through the videos in my spare time. I had decided not to follow the labs or demos, because the exam itself was just multiple choice questions and at work we use Infrastructure-as-Code with the AWS Cloud Development Kit (CDK) instead. It took me 3 months on and off to finish watching the videos and taking the quizzes, and I would say that the content of the course was spot-on compared to the exam questions. I spent January taking any practice exams I could find, and got an average of 85% correct. I would say that anything above 80% correct is usually a passing score. I finally registered and took the exam in late January, and passed the exam and got the AWS Certified Developer - Associate.</p>
<p>Although I didn't realize it at the time, studying for the AWS certification has actually helped me in my day-to-day job. I began recognizing the best service for solving a problem, and the best practices for using certain services (structuring tables and indexes in DynamoDB, for example). I was able to ask better questions about design decisions and challenge the choice to use one service over another. The resume impact of the certification has not been as big for me because I already work here, but I definitely have more context and knowledge in my day-to-day job.</p>
<h1 id="heading-should-you-get-aws-certified">Should You Get AWS Certified?</h1>
<p>This is a hard question to answer, and the short answer is "it depends". But there are a few criteria that you can use to judge yourself on if you should pursue an AWS certification.</p>
<p><strong>Do you already work with cloud services?</strong> This is the obvious question. If you are a DevOps Engineer, Site Reliability Engineer, or Software Engineer who also works in operations, then pursuing an AWS Certification is probably a good choice for you. It will help you understand design decisions and choose the right service for the job, like it did for me. It is also a decent resume booster, as companies nowadays are looking for cloud experience and certifications are the most valuable demonstrator of cloud experience.</p>
<p><strong>Are you Early Career?</strong> If so, I would also recommend that you pursue an AWS certification. As with the case above, having an AWS certification can be a great resume booster and help you stand out in a sea of junior engineers. As a junior, you need every edge over the competition you can get, and an AWS Certification can be one in your arsenal. It will also help you onboard faster at a company that uses AWS, as you will already know how to use the tools that they are working with.</p>
<p><strong>Is there a certification path for you?</strong> Lastly, if there is a certification path that matches your role or career path, then you can maybe consider pursuing the certifications in that path. If you think you would benefit from gaining certifications pertaining to your role or career path, that is something you can consider.</p>
<p>I hope this post helps those who are interested in AWS Certifications and are wondering about whether or not it is worth it to pursue one. My experience with certification may be a little different than others', but I hope that it can still help you decide. If you have any questions or want to relay your own experience with AWS Certifications, please feel free to comment here.</p>
]]></content:encoded></item><item><title><![CDATA[Discussing: Satellite Pattern-of-Life Characterization Dataset and Benchmark Suite]]></title><description><![CDATA[My current interest area in Computer Science research is the applications of machine learning in space and on satellites. In order to learn more about this intersection of space exploration and machine learning, I am participating in the MIT ARCLab P...]]></description><link>https://dragonejt.dev/discussing-satellite-pattern-of-life-characterization-dataset-and-benchmark-suite</link><guid isPermaLink="true">https://dragonejt.dev/discussing-satellite-pattern-of-life-characterization-dataset-and-benchmark-suite</guid><category><![CDATA[space]]></category><category><![CDATA[Machine Learning]]></category><category><![CDATA[Dataset For Machine Learning]]></category><category><![CDATA[satellite]]></category><category><![CDATA[ML]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[research]]></category><category><![CDATA[Paper Review]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Sun, 18 Feb 2024 03:08:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1708226774359/94f04bda-759a-4153-95f7-e27dcf4b9884.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My current interest area in Computer Science research is the applications of machine learning in space and on satellites. In order to learn more about this intersection of space exploration and machine learning, I am participating in the <a target="_blank" href="https://aeroastro.mit.edu/news-impact/mit-arclab-prize-for-space-ai-innovation/">MIT ARCLab Prize for AI Innovation in Space</a>. This is a challenge to use machine learning to predict Satellites' Patterns-of-Life from their trajectory and propulsion data in the <a target="_blank" href="https://github.com/ARCLab-MIT/splid-devkit">Satellite Pattern-of-Life Identification Dataset</a> (SPLID). I decided to give the SPLID dataset's paper (<a target="_blank" href="https://www.researchgate.net/publication/374083350_AI_SSA_Challenge_Problem_Satellite_Pattern-of-Life_Characterization_Dataset_and_Benchmark_Suite">AI SSA Challenge Problem: Satellite Pattern-of-Life Characterization Dataset and Benchmark Suite</a>) a read to better understand how to use the dataset and learn more about the goals of the competition.</p>
<h1 id="heading-what-is-a-satellite-pattern-of-life">What is a Satellite Pattern of Life?</h1>
<p>This competition and paper introduced me to Satellite Patterns of Life, which are "sequences of behavioral modes - periods of consistent on-orbit behavior, such as those in which satellites adhere to various station-keeping protocols - that they pursue throughout their operational lifetimes". It is fascinating that various kinds of satellites, with different missions, propulsion systems, and hardware, could all be characterized into different patterns of life. The patterns of life that the SPLID dataset mainly focuses on are combinations of nodes (different operational transitions) and station-keeping types. This focus on nodes and station-keeping types allows different satellites to be identified as having a specific pattern of life, which makes it easier to perform machine learning on the data. The reason why nodes and station-keeping types only were chosen to represent the patterns of life doesn't seem to be elaborated upon, and is something I would like to learn more about.</p>
<h1 id="heading-dataset-generation-and-format">Dataset Generation and Format</h1>
<p>The SPLID dataset consists of both synthetic data generated by "an in-house satellite simulation tool developed by the MIT Lincoln Laboratory" as well as a real-world space dataset from Vector Covariance Messages (VCMs) "manually annotated by a human expert to generate a list of time-stamped satellite PoL nodes". There doesn't seem to be any novel methods involved in the dataset's generation, but the paper doesn't seem to go into much more detail regarding the in-house high-fidelity simulator and how it simulates mission objectives and propulsion systems. I am interested in how the raw simulator data was classified into node labels and type labels, or if the simulator output included the node labels and type labels already.</p>
<h1 id="heading-discussions-and-applications">Discussions and Applications</h1>
<p>One part that the paper didn't go too in depth about was the applications of the dataset and any machine learning models using that dataset. It is stated that the end goal is to "enhance tracking and orbit prediction capabilities to safeguard space assets from the threat of object-on-object collision". This dataset and related machine learning models probably wouldn't be suited for satellite on-board machine learning since the dataset mainly contains compiled and pre-classified data rather than raw data from onboard satellite sensors or detectors, and the two-hour temporal resolution likely wouldn't be useful for the near real-time responses needed from satellite on-board machine learning. However, I could envision using a Satellite Pattern of Life machine learning model to compile information about where there may be an overcrowding of satellites in space, and knowing to avoid certain orbits if the area is overcrowded. Another application of this could be to identify better orbits to place satellites in to facilitate clear line of sight optical communications from lasers, and lessen the chance of those communications being blocked. The applications of the dataset and related machine learning models would be truly interesting and useful in those cases.</p>
<p>I won't be delving into the details of how the competition was designed or how the baseline solutions were created, since I am actively participating in the competition at the moment. A discussion of the competition itself can be expected once the competition ends.</p>
]]></content:encoded></item><item><title><![CDATA[Entering the Civic Technology Space]]></title><description><![CDATA[Last night, I attended my first Civic Tech DC meeting. Civic Tech DC is a "non-partisan, non-political group of volunteer civic hackers working together to solve local issues and help people engage with the city". It was a great opportunity to work w...]]></description><link>https://dragonejt.dev/entering-the-civic-technology-space</link><guid isPermaLink="true">https://dragonejt.dev/entering-the-civic-technology-space</guid><category><![CDATA[events]]></category><category><![CDATA[volunteering]]></category><category><![CDATA[government]]></category><category><![CDATA[nonprofit]]></category><category><![CDATA[civic tech]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Fri, 10 Nov 2023 03:44:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1699583312516/d8fd11a0-38c6-4f48-92f7-08a947815133.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last night, I attended my first <a target="_blank" href="https://civictechdc.org/">Civic Tech DC</a> meeting. Civic Tech DC is a "non-partisan, non-political group of volunteer civic hackers working together to solve local issues and help people engage with the city". It was a great opportunity to work with other civic hackers and representatives from different nonprofits around the city, and also to learn about the different issues my city is facing and how Software Engineers and other people in tech like you and me can help them. This post serves to broadly define what Civic Technology is, relate my experience working on the <a target="_blank" href="https://github.com/civictechdc/court-scraper">DC Eviction Court Scraper</a> project, and explain why you should care about Civic Tech.</p>
<h2 id="heading-what-is-civic-technology">What is Civic Technology?</h2>
<p>My first experience with Civic Tech was actually when I was a volunteer intern for <a target="_blank" href="https://www.ohack.org/home">Opportunity Hack</a>, an organization that promotes skills-based volunteering for social good and hosted an annual <a target="_blank" href="https://ohack.dev/">hackathon</a> by the same name. During the internship, I along with a few others built <a target="_blank" href="https://github.com/opportunity-hack/simple-electronic-healthcare-records-EHR">MedCare</a>, a simple Electronic Health Records System primarily for use by the Chandler CARE Center and the Neurologic Music Therapy Services of Arizona. It was my first experience building software in a team, and it also started me down the path of Software Engineering. I enjoyed working together with my teammates, figuring out new technologies, and keeping track of everyone's progress. Although I did not know it at the time, this was my first foray into the realm of Civic Tech.</p>
<p>Broadly <a target="_blank" href="https://medium.com/tradecraft-traction/navigating-the-field-of-civic-tech-c1f9670c8f69">defined</a>, "Civic Tech is technology used to directly improve or influence governance, politics, or socio-political issues". While many Civic Tech projects work directly with federal, state, or local governments, others work with nonprofits and organizations looking to inspire change in their community but need help on the digital side of things. Civic Tech organizations are wide and varied, ranging from the <a target="_blank" href="https://www.usds.gov/">US Digital Service</a> and <a target="_blank" href="https://digitalcorps.gsa.gov/">US Digital Corps</a> for full-time work at the federal level, to large organizations providing volunteer services such as <a target="_blank" href="https://codeforamerica.org/">Code for America</a> and the <a target="_blank" href="https://www.usdigitalresponse.org/">US Digital Response</a>, and smaller organizations like Civic Tech DC and Opportunity Hack that work more with city governments and local nonprofits.</p>
<h2 id="heading-my-experience-with-civic-tech-dc">My Experience with Civic Tech DC</h2>
<p>After a few months of settling into my new job, I began looking for Civic Tech organizations that I could work with. I had been interested in Civic Tech since my initial project with Opportunity Hack, and my Software Engineering job at AWS in the government cloud contracting space was a first step towards that. However, many of the larger Civic Tech organizations were full-time jobs working for the Federal Government, and I was unwilling to leave my job to join them. Instead, I looked for volunteering opportunities in Civic Tech and found the US Digital Response and Civic Tech DC as two volunteer organizations in this space. As the US Digital Response was looking for more experienced volunteers (Mid-Senior Engineers), I decided to join Civic Tech DC and work on projects at the city government and local nonprofit level.</p>
<p>At my first Civic Tech DC meeting last night, there were around 30-40 attendees present, and many were first-timers just like me. I introduced myself and made some small talk until the start of a presentation about the Civic Tech DC organization and an explanation of the current projects being undertaken. I chose to join the DC Eviction Court Scraper project as it seemed to be a Data Engineering project, which is a field that I am currently interested in. It used to be an active project that scraped court cases from the DC Superior Court's Web Portal, but no one ended up maintaining it. We also discovered that the web portal had changed, so the old code would not have worked anyway. The rest of the meeting was used to explore and poke around at the new portal, and we eventually discovered an open API that the portal was calling. Next steps were to fully explore the API and see what data we could collect with it, find users and use cases for the project, and design an implementation for software that could scrape the portal and API to collect data about evictions going on in DC and analyze patterns in that data. Overall, it was a very fun meeting and a great (re)introduction to the world of Civic Tech.</p>
<h2 id="heading-what-about-you">What about you?</h2>
<p>Civic Tech is a great space to work or volunteer in as a Software Engineer, as the impact that Civic Technologists make for governments and nonprofits is both outsized and necessary. It is a chance to use your technology skills for social good, whatever that means to you. There is also the opportunity to learn new skills that you would otherwise not learn at work, for example, new technologies or soft skills working directly with clients (governments and nonprofits). I learned more about how DC's government and court system work, and I also will be learning Data Engineering skills while building the project. I am proud to now call myself a Civic Technologist and thankful to Civic Tech DC for organizing the event. <strong>What about you? I am excited about the impact that you can make as a Civic Technologist.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Organizing a Hackathon from Afar]]></title><description><![CDATA[Over this past weekend, I helped with the 2023 edition of sunhacks at Arizona State University virtually. I was managing the DevPost, answering hackers' questions on Discord, and putting out fires in general. It was a pretty fun experience and I was ...]]></description><link>https://dragonejt.dev/organizing-a-hackathon-from-afar</link><guid isPermaLink="true">https://dragonejt.dev/organizing-a-hackathon-from-afar</guid><category><![CDATA[hackathon]]></category><category><![CDATA[events]]></category><category><![CDATA[mlh]]></category><category><![CDATA[community]]></category><dc:creator><![CDATA[Evan Tung]]></dc:creator><pubDate>Wed, 08 Nov 2023 04:01:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1699415974146/d3c9ce36-be81-4d1b-887c-c32bbde48e06.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over this past weekend, I helped with the 2023 edition of <a target="_blank" href="https://sunhacks.io/">sunhacks</a> at Arizona State University virtually. I was managing the DevPost, answering hackers' questions on Discord, and putting out fires in general. It was a pretty fun experience and I was glad to be back in the company of friends doing what we were best at, but it was also insightful how many lessons learned there were from holding an in-person event, and how little I (and virtual organizers/volunteers) can help with as hackathons transition back to being in-person.</p>
<h2 id="heading-my-introduction-to-sunhacks">My Introduction to sunhacks</h2>
<p>My first experience with sunhacks was in the fall of my sophomore year, at sunhacks 2020 (or 4.0 as the organizers called it). This was the first hackathon that I had attended, and since COVID-19 had just burst onto the scene in the previous semester, the hackathon was completely virtual, hosted on a platform called Hopin (remember Hopin?). The events and workshops were all held virtually, and the speakers could all just livestream themselves. Although I did not win any prizes that year, that event left me enamored with hackathons and I continued to attend more with friends. I was interested in the prizes, sure, but more so in the workshops and activities hosted as a chance to learn new things and further immerse myself in the tech community. Soon, when I received a recruitment email from the organizers the next spring, I signed up to be an organizer.</p>
<p>We started planning for sunhacks 2021 (5.0), and soon activities began in earnest to the hackathon a reality. sunhacks is divided into different departments, such as finance, operations, marketing, hacker experience, and tech. Although I was a Computer Science student, I found interest in workshops and activities that I loved and joined the hacker experience team, which focuses on mentoring, workshops/activities, prizes, and judging. We focused on a hybrid hackathon with both in-person and virtual attendees since COVID-19 had become less of a threat. Discord was used heavily for announcements, questions, and as a control center for all operations during the event. Instead of Hopin, we turned to Twitch to host our events and workshops. I enjoyed speaking at the opening ceremony, coordinating some workshops and activities, determining prizes and prize categories, and finally judging. Although the preceding two weeks were hectic and we were constantly putting out fires during the event, I was proud that I was a part of the resounding success of sunhacks 2021.</p>
<p>By the time my senior year had come, many of the original organizers (OG's) had graduated or were too busy to continue planning sunhacks. The mantle was passed onto a few younger organizers and me, and we decided to return to an in-person hackathon. Unfortunately, due to a lack of experience and a lot of red tape with ASU's admin, we were unable to host a sunhacks event for 2022. By May 2023, I had graduated without ever hosting another hackathon.</p>
<h2 id="heading-from-organizer-to-associate">From "Organizer" to "Associate"</h2>
<p>When I graduated, my role in the organization quickly changed. Since I was no longer a student, I could no longer be an official member of the club due to ASU's restrictions on student organization membership. Instead, I transitioned from being an organizer to an associate, like many of the OG's had done the previous year. I could not directly organize the operations of the hackathon, but I could give advice, think of ideas, and still attend regular meetings. The new generation of directors and organizers were going to plan sunhacks 2023 (5.5), a smaller version of the event in Fall 2023 to test the waters.</p>
<p>After spending a summer with my parents at home, I soon moved to the Washington DC Metro Area for my new job as a Software Dev Engineer with Amazon Web Services. I continued to attend meetings and offered any ideas and advice I had to the new organizers. The new organizers learned from our mistakes, and soon we were heading toward the fruition of sunhacks 2023. As COVID-19 became less and less of a threat, the organizers decided to hold sunhacks 2023 as an in-person-only event. This was a great step forward for the recovery of sunhacks from the pandemic, both as a hackathon and as an organization.</p>
<h2 id="heading-returning-to-in-person-hackathons">Returning to In-Person Hackathons</h2>
<p>However, due to the need to return to an in-person hackathon, there was a lot of unexpected red tape in reserving a venue, maintaining site operations during the event, and a lot of other issues that were not needed for a virtual hackathon. This prevented us from holding the hackathon in 2022 in the first place and cost us a year, even though the same issues were dealt with for pre-pandemic sunhacks events. So many lessons learned were a result of processes changing post-pandemic, contacts changing post-pandemic, and generally not knowing what people to contact for what issue. Another reason was that we had never hosted an in-person hackathon by ourselves before, and while the OG's knew what to do for a certain situation, that knowledge often wasn't correctly passed down to us new organizers, resulting in a lot of knowledge siloing.</p>
<p>The in-person hackathon also meant that I could not help as much with the event due to being in the DC Metro Area. Instead of being able to help by, for example, hosting a workshop virtually like many had done in 2020, I could only be a DevPost manager and mentor. The range of things I could do to take the burden off the team was limited, and things that could be done virtually were sometimes just easier done in person. Oftentimes questions were asked in the Discord server about specific onsite procedures, and I had no way of answering them due to not having any idea of what was happening onsite. The burden on the in-person organizers was greater than it would have been had the hackathon been virtual.</p>
<p>Returning to an in-person hackathon was a necessary step for sunhacks and most hackathon organizations as we transition into a post-pandemic world, but oftentimes we lose some of the benefits and help that we get from being a virtual hackathon. Although in-person events are more beneficial for hackers, sponsors and organizers, I believe that they also put more burden on the organizers in sometimes unexpected places. We were lucky to still have a bunch of associates (OG's) willing and able to help us, but it is a lesson to learn for newer hackathons and organizers transitioning to being back in person. <strong>If you are a hackathon organizer, what kinds of lessons have you learned when transitioning back to an in-person hackathon?</strong> For the next sunhacks event in spring 2024, I hope to be there in person to be fully able to help the organizers and also enjoy the liveliness of an in-person event.</p>
]]></content:encoded></item></channel></rss>