Ubuntu
I am currently employed by Canonical as an engineer in the Nvidia squad of our Partner Engineering organization, where I work directly with Nvidia to enable and optimize Ubuntu for Nvidia's Grace and DGX server hardware.
|
|
Independent Work
My primary independent project since 2020 has been Spiral, a free-form notetaking application for Linux and Windows. Having the unique opportunity to direct the development of a program
that I use every day has been instrumental in making me a better software engineer, and the feedback I have received from both regular users and fellow open source developers has helped me gain
a greater perspective on how to effectively select and implement new features and bug fixes.
|
|
Purdue University
I completed my M.S. in Computer Science with a focus on operating systems and networking software development in December of 2023. During graduate school, I improved and extended multicore support for the Xinu operating system and built an ethernet driver for Xinu on the Orange Pi.
I completed my B.S. in Computer Science in December of 2022. During my time as an undergraduate, I developed a comprehensive understanding of all levels of software development through a variety of projects and courses involving
operating systems, computer networking, algorithms, distributed systems, and more. Specific details can be found on my About Me and Projects pages.
|
|
|
Graduation and Career Update - January 4, 2024
I'm excited to make two announcements today. First, I recently graduated from Purdue with my Master's degree in Computer Science.
My work on Xinu over the past year has been very rewarding and has helped me significantly improve my operating system software development skills, as has my coursework.
Second, I have accepted a full-time job offer from Canonical, where I will be joining the Ubuntu engineering team and working directly with major silicon vendors to optimize Ubuntu
for their hardware. I am elated to have the opportunity to work full-time on improving Ubuntu and the Linux ecosystem as a whole, which I believe is integral to my philosophical
career goal of improving computing for all users.
|
|
School, work, and project updates - February 27, 2022
Perhaps unsurprisingly, my CS coursework is still keeping me very busy
for most of the year, especially with this being my first semester in
Purdue's BS/MS program. However, I have still had some time to work on Spiral. Last month,
I introduced several new features that had been requested by some of Spiral's users,
such as support for exporting pages as PDFs, printing, and theme overrides, as well as a few
notable usability improvements. Spiral is also now available for download via the AUR
(in addition to its project website).
I am also excited to announce that I have accepted an internship offer with GE Aviation for this summer.
I look forward to learning more about the software development process in the aerospace industry,
which I think will be a fun experience.
|
|
Spiral Release and Summer Internship - October 15, 2020
As usual, I have been very busy with my Computer Science
coursework since the start of the semester back in August, but
I'm excited to announce a couple of things regarding Spiral as well
as my career plans for next summer. First and foremost, although
Spiral has technically been released since June 22, when I
published version release 1.0 to the Spiral project page, I
decided to wait to make an announcement about it until I had a
sufficient amount of real-world notetaking experience with it
outside of the context of a testing environment. Given that I
have been using Spiral as my primary notetaking apparatus for
four different courses since the beginning of the semester, I
can confidently say that it has increased my productivity
considerably and allowed me to organize my notes more
effectively than traditional word processors, just as I had
intended. If you would like to try the first official release
version of Spiral, you can download it on Spiral's project website
Second, after a solid set of interviews with several different
companies, I have decided to accept an offer to join Cat
Digital's Software Engineering internship program for Summer
2021. I look forward to working with Caterpillar and developing large-scale software
solutions, which is something
that I haven't had the opportunity to do yet as an individual
developer.
|
|
Spiral's first official beta release and native overhaul is
now available! - May 21, 2020
It has been a very busy few months since the beginning of my
second semester at Purdue, but I'm happy to report that I'm
still doing well, I have had a great semester, and I have a
major Spiral update available for download. I'll start with
the Spiral update first since that's the primary reason for this
update. Over the past few months (but mostly during the past few
weeks since I was pretty busy with schoolwork up until May 9th),
I've been working to drastically improve Spiral's user
experience since it has become my primary note-taking
application. There were some pretty egregious usability and
efficiency issues that I ran into over a semester of using the
Java version, and it got to a point where I realized that if I
wanted Spiral to be good, I was going to have to start from
scratch and develop a native solution. As a result, that's
exactly what I did. Spiral Beta 1.0 - the first native release
of Spiral - is now available on
Spiral's project website. This version is considerably
snappier, cleaner, and has a much better file specification than
Spiral's alpha versions (notebooks are all contained in their
own individual files rather than with the "exploded" structure
of the alpha versions). It also contains several features
that would have been much more difficult to implement in the
Java version, such as system theming. This version of Spiral is
built on the QT framework, which has been a pleasure to develop
with. (Seriously, if you're going to make a desktop application,
QT is incredible). So far, I haven't noticed any major bugs on
either the Linux or Windows builds of Spiral on my personal
machines, but I will definitely be updating it throughout the
summer in order to fix any bugs I find and add more features.
Aside from Spiral, I also participated in BoilerMake VII back in
January, where my teammates and I won the "Best Water
Conservation Hack" award by EcoLab for our water usage tracker,
"Water You Using." |
|
Spiral's first alpha preview is available! (and other updates) - November 7, 2019
Once again, I've neglected to update this home page for over a year, but I promise it isn't without reason.
First and foremost, I have been spending the last few months working on my latest personal project, Spiral,
which is finally available as an alpha preview. Spiral is a free-form note-taking application that lets users
easily organize their thoughts without being effectively restricted to a linear document format like how most
traditional word processors and note-taking apps function. I've been prioritizing Spiral over many of my other
projects because I have been wanting to switch to Linux as my primary desktop OS for a long time, but a certain
note-taking program isn't available on any Linux distributions, and I wasn't able to find an open-source alternative
that had the features I was looking for. Obviously, the only solution was to write one myself. Although I didn't initially
plan to release it to the public, I realized that there are probably tens of other people out there who would like a
(non-web-based) version of this type of program, so here it is. You can download the first Alpha Preview build of Spiral
on Spiral's project website. Please do note that this is a preview build, so things are still buggy. Additionally, I have
made Spiral open-source, so anyone is welcome to contribute. Aside from Spiral, I have also been working on some major
improvements to a few of my older projects, so be on the lookout for those in the next few months.
On another note, I also started my first year as a Computer Science student at Purdue University back in August, so that has been occupying
much of my time as well. (Thank you, Purdue Math Department).
|
|
Where have I been? Summer Updates and new apps - July 15,
2018
It's been almost a year since I've posted here, so I have quite
a bit to talk about in this post. Once Summer began, I
immediately got to work on a couple projects that I hadn't had
time to work on during my Junior year of high school as well as
a new project that I think is going to be very valuable. First
of all, I pushed out a few huge updates to LandmARk that really
improved its feature set and user experience with a brand new
Landmark editor and a new motion tracking system that I have
been writing over the past few months.
Click here to try it out if you haven't already. In addition
to the updates I have made to LandmARk, I have also been
spending a fairly large amount of time on a project that I
haven't announced until now to the public, Aurora v4. You can
find out more about that on the
projects page. Finally, I have also been developing a school
safety app called Lockdown Manager which will hopefully allow
students and staff members to lower their response time in the
event of a hostile intruder. I don't have a release date planned
for Lockdown Manager yet, but the prototype is complete and I'm
working with my school district to get it implemented and
released to the public as soon as possible. Feel free to read
more about it and watch the demo video linked on the
projects page. |
|
LandmARk - geotagged, augmented-reality artwork - July 30,
2017
LandmARk is an augmented reality app that allows you to view
and place virtual artwork in different locations around the
world. By using a combination of augmented reality and GPS
technology, LandmARk allows users to interact with the world
around them by drawing their own artwork on landmarks. Leave
your signature on a watertower, draw a hat on a statue, plant a
virtual flag in your yard, or just see what other users have
created. With LandmARk, the world is your canvas!
You can find more info on LandmARk here |
|
Playlist Analyzer for Spotify launched & Sonar Shutdown - April 28,
2017
Hi, everyone. First off, I'm sad to announce that Sonar will be
shutting down on May 6th. You can
read more about that here. However, you'll be happy to know
that I have been working on some major improvements to some of
my existing projects, as well as a few others that I haven't yet
announced. Additionally, I have also written a simple program
using Spotify's API that analyzes your playlists & shows the
percentage of each individual artist in a pie chart. Feel free
to click the link below if you are interested. I've got some
other big projects on deck, so stay tuned for more updates.
You can view the playlist analyzer here |
|
Announcing Sonar: A new type of social network - September
8, 2016
It has been several months since I have released any new updates
on my website. However, I have been working on something
completely new that I think will breathe fresh air into the
world of social networking. Sonar is a social network that is
entirely based on audio. With Sonar, you can send audio clips
directly to other users with direct messaging, or you can upload
them to your wall for anyone to see.
You can access Sonar at
www.sonarapp.xyz or
download the app for Android.
|
|
Happy birthday, Aurora! Passive recognion added in Beta
3.1.4 - May 4, 2016
Once again, it has been a while since I have released a new
major Aurora for Android update. However, this update adds a new
feature that has been recommended to me on several occasions:
passive recognition. That's right, you do not even have to lift
a finger to activate Aurora anymore. Simply enable "Hey, Aurora"
in the settings menu, and Aurora will begin listening whenever
the app is closed. You can even have Aurora perform tasks when
your phone is locked.
You can get the latest Aurora
update here.
|
|
Beta 3.0 Adds Weather Info and Bug Fixes - December 30, 2015
I know the last update was over a month ago, but I have not
forgotten about Aurora. The latest update, Beta 3.0, fixes many
of the bugs that were restricting performance the most. In addition to the usual
batch of bug fixes, Aurora now comes with access to an API
called Weather Underground. This allows Aurora to access
conditions, forecasts, temperatures, and wind info. You can view
the full list of updates on the
archive page.
You can get the latest Aurora
update here.
|
|
New Wolfram|Alpha Response Layout - November 21, 2015
It has been a while since I have released a new Aurora
update, but this one includes a very long anticipated
improvement that I have finally managed to finish. In this
update, I have updated the way that Wolfram|Alpha returns
responses. Previously, responses from Wolfram|Alpha would come
as a single string of text that Aurora would read to you. With
this modification, Aurora now retrieves more information with
each query and displays it in a meaningful and organized
fashion. In addition to the layout update, this update also
includes many small performance improvements.
You can get the latest Aurora
update here.
|
|
Some of you may have recently noticed that Aurora has been
unable to retrieve restaurant information from Yelp for the past
few weeks. I would like to apologize for any inconvenience that
this has caused, but I am glad to announce that I have released
a patch to fix this error. For those of you interested, the
error occurred due to the Yelp API token being reset
automatically. Because of this, when Aurora attempted to
download the restaurant information from Yelp's servers, its
access was restricted due to the mismatched token. In addition,
this update also improves Aurora's conversation.
You can get the latest Aurora
update here.
|
|
Beta 2.4 Contains Major Bug Fixes and a New Design -
September 6, 2015
Once again, here comes a great improvement to Aurora's look
and feel. With this update of Aurora, you will notice that
Aurora acts much more like a dialog overlay than it did before.
This new look allows Aurora to be much less intrusive than
before. In addition, I have also fixed several major issues with
Aurora, one of which was how she returned info from
Wolfram|Alpha.
|
|
Aurora's new interpreter is here - August 31, 2015
I know it has been a while since the last update, but I can
guarantee that this update will fix many issues that you may
have encountered so far with Aurora. One thing that you will
notice immediately is that Aurora's voice recognition service is
different, as the Google speech dialog has been removed. This is
because I have reconfigured the voice recognition program to
work within the Aurora activity instead of launching its own. As
a result of this, you will notice that the voice recognition
service is more efficient than it was before. Additionally, you
will also see that the speak button will turn red while you are
speaking to Aurora, and your speech will be constantly updated
on the screen as you speak. However, these are not the only
updates. In addition to everything already listed, I have also
updated Aurora's interpreter program to be more dynamic and
understand a wider range of conversation. You may notice that
Aurora can't understand as much outside of commands that she
used to, but I can assure you that this is only temporary. I
have created this new interpreter so that conversational topics
can be easily added, so you will find that Aurora's
conversational skills will really begin to improve after this
update. One other thing that you may notice is that Aurora will
send you to the Google client for text messages and some
calling. Again, this is only temporary. I will be implementing
my own client program for this in the next update.
|
|
Aurora Interpreter v2 - August 15, 2015
Get ready for a huge improvement to Aurora's conversation
with Aurora Interpreter v2! It still won't be out for a while,
but the newly redesigned Aurora program will drastically change
how you use your personal assistant. The issue with most
personal assistants is that they do not usually give you a
response that corresponds directly to your question. For example,
if you say "I like [insert word here]," most virtual assistants
would just respond with something generic like "I don't know
much about that." However, once the new interpreter is released,
you will be able to say something to Aurora and get an
informational response that is exclusive to whatever you said.
For example, you could say something like "I like pasta," and
Aurora could respond with some information on the nutritional
facts of pasta, or even locations of nearby pasta restaurants.
|
|
Aurora Beta 2.0: The biggest update yet - July 29, 2015
The latest update of Aurora (Beta 2.0) would have to be, at
least in my opinion, the biggest update yet. Not only does this
update fix many bugs that have been brought to my attention by
the users, but it also adds a plethora of new features that
improve the overall user experience. What are these features,
you may ask? My personal favorite feature is the new user
preference database. Simply put, Aurora can now remember key
details about things you say to her. Currently it is limited to
favorite foods, but the database is growing. Don't worry though,
since the database is entirely at device level, no outside
servers can access your information. (Not including searches on
Yelp, Google, or Wolfram|Alpha) In addition to the restaurant
recommendations, Aurora is also able to search the Wolfram|Alpha
database for answers to questions that she does not know the
answer to. Another function that I recently added is Aurora's
spell command. Simply say "Spell" followed by a word and Aurora
will speak the spelling of that word to you.
You can get the latest Aurora
update here.
|
|
Say Hello to the New Look of Aurora! - June 20, 2015
The users asked, and I listened! The Beta 1.8 update of Aurora contains
a long overdue redesign in the user interface. Not many features
have been added, but I am certain that Aurora's new look is a much
better alternative than the previous. One of the biggest changes
that you will notice is Aurora's new action bar. From the action
bar, users can access the command list and settings menu by
pressing their respective buttons. Also, the new settings menu
allows the user to physically edit their preferences in addition
to the voice options. There were also several bug fixes, some of
which include improvements with temperature conversions and a
fix to the frequent screen freezing.
You can get the latest Aurora
update here.
|
|
New Aurora update adds more features & fixes - June 14,
2015
The latest update to Aurora adds, in my opinion, some of the
coolest features yet. In addition to the well known bug fixes, I
have also added two huge features to Aurora's code. One of those
features could save some time, or possibly convenience a person
while driving. Now, by simply saying "Aurora, get most recent
text message," Aurora will read the most recent sms message sent
to the user's phone! The other feature that I have added is a
location feature. By saying "Where am I?" to Aurora, the user
can get a voice response of their current street address. I
personally think that this is my favorite feature yet, but if
you do not like it, you can simply disable Aurora's location
access in your device's settings menu.
You can get the latest Aurora
update here.
|
|
Aurora fixes are out, as well as a new logo! - June 12, 2015
I know it has been a while since my last Aurora update, but
this one brings several very important changes to some of
Aurora's background work. I have fixed many errors that my
friends and fellow testers have brought to my attention, some of
which include the way that Aurora calls and texts other users.
Previously, the user would only have been able to call, text, or
email contacts with a first and last name listed in the contact
card, but now single names such as "mom" or "dad" will work.
There are several other errors that I repaired with this update
that can be viewed on the Aurora
Archives page. In addition to all of the bug fixes, I have
also modified the logo for Aurora. This logo has the same shape,
but it now has the texture and color of Aurora Borealis.
|
|
Aurora Beta is here - June 1, 2015
Well, after weeks of programming, Aurora Beta is finally
here! Aurora's features are almost all there, and the latest
application packages can be downloaded from my
Projects page. The latest
Aurora builds are packed with new features, including new
commands, better conversational skills, and more ways to ask
Aurora a question.
|
|
Aurora Beta release coming soon - May 26, 2015
It has been almost a month since I started writing the source
code and conversation algorithms for Aurora, and I am happy to
say that Aurora for android is in Alpha version 5.0, and I am
planning to release a beta build to my website very soon. As far
as releasing Aurora to the Google Play Store, I am not sure when
it will be available there. Stay tuned for updates as I continue
through the development of Aurora.
|
|
|
|