My Spring 2016

For the past year, I’ve made it a habit to publish my accomplishments and aspirations at the end of each semester. I use it, primarily, to track my progress with respect to my short-term goals and long-term growth. Its auxiliary function is to help me keep in touch with my network, publicizing my accomplishments and inviting others to join in. Enjoy!

No, we didn’t meet Shaq

Another semester down, another step closer to #gettingout.

This spring has been the most rigorous semester of my college career, which is to say it’s been the most rigorous semester of my life. For the past four months, I’ve juggled a full load of 3000+ level courses alongside a 20 hr/week part-time job.

In the fall of 2014, I attempted a similar courseload, albeit with lower level classes and a lesser 15 hr/week commitment. That proved to be too much to handle, forcing me to leave my position to focus on academics, which I still barely passed (with 0.4 points to spare).

In contrast, I was able to take this spring’s more rigorous schedule in stride — passing all my classes while being a productive member of my development team. That’s not to say it was easy — far from it. But it was possible and I managed.

Sacrifices/Time

My desk, fully equipped for code jams and all-nighters

In order to keep up with my many commitments this semester, I was forced to take a critical look at how I spent my time. I realized that my usual method of time management wouldn’t hold up to the increased work load and reduced pool of available hours. So I set out to overhaul my system.

Before I could figure out how to best allocate my time, I had to figure out what each of my commitments were and how much each of them was worth. School and work were the first two to come to mind — they were the driving factors behind my need to restructure in the first place. After some thought, I concluded that I also had obligations to keep myself healthy, continue improving myself and my skills through side projects, and to be a present and engaging actor in the network I’d built over the course of my life.

Now that I had a list of commitments to uphold, I had to analyze their relative importance.

Inevitably, there will be occasions when you simply don’t have enough resources to accomplish everything you’ve been tasked with. On those occasions, it’s helpful to have a pre-meditated hierarchy to inform which tasks are the most important and, thus, warrant the most effort.

The hierarchy I came up with and the reasoning behind it is as follows:

My wall-mounted spring commitments, prioritized

1. School

My next big milestone is graduation. I’ve been working towards it for the past four years. Once I graduate, I am pretty much free to do whatever I want. Therefore, I should do everything in my power to ensure I’m on track to get out and begin the next phase of my life.

2. Physical Health

You must be healthy to do your best work. You can argue with me as much as you want about the boons of harsh, stress-filled conditions on inspiration and creativity, but I know this to be true: eating well, working out, and getting enough sleep are the building blocks for a productive day and, thus, a successful [insert unit time > day].

I’m shouldering this extra burden to better myself at a rapid pace. But if I kill myself in the process, it may well nullify those gains.

Because these are the building blocks for productivity, it made sense to prioritize them high enough to have a positive impact on my other obligations.

In one of the CNN’s newsrooms

3. Work

I got a part-time gig because I wanted to learn new things, boost my resume, and prove to myself that I could handle such a rigorous load after veritably failing two years ago. The money was definitely nice to have, but, by itself, wasn’t valuable enough to warrant running this gauntlet.

In order to accomplish those things, I had to, at the very least, show up. This meant prioritizing the 20 hrs/week high enough to minimize skipping work. School was still the most important thing to focus on and putting work over personal health seemed like a major flaw in priorities, so I stuck it right below them. It was high enough to ensure it received its requisite time (or as much as I could give), but not so high that I was killing myself for it.

The fact that I could drop the position if it became too much to handle was a huge stress-reliever. Of course, doing so would’ve defeated the purpose of starting it in the first place, but knowing you have options — even if you don’t use them — can do wonders for your psyche.

4. Side Projects

There are so many side projects currently sitting in my backlog, that it was extremely difficult — and a bit stressful — to prioritize them so low. It’s hard to shake the feeling that you aren’t being optimally productive when you’ve got a bunch of great project ideas zipping around your head, yet you’re stuck spending hours reading about cumulative distribution functions for Statistics. There were many times when all I wanted to do was take a night off to hack together a prototype, but my time constraints forbade me.

That being said, I recognized the benefits of working on side projects — both personally and professionally — which is why it’s sitting at number four.

5. Social

Everyone likes to socialize and the argument could be made that a fair amount is required for good mental health. That being said, it’s also fair to say that a good deal of it isn’t particularly productive. The cultural tendency to imbibe alcohol at such events further increases their footprint, effectively eliminating any possibility of working the night of and making it near impossible to have a productive next morning/afternoon due to a common side effect: the hangover.

My spartan time constraints left quite a bit to be desired in the “leaving your room” department, but I was content with the fact that the arrangements were only temporary. Some unintended benefits of limiting my alcohol consumption included longer periods of alertness (could’ve just been the Monster) and a large decrease in weekly calorie and carb intake.

Time Usage

Death to pie charts

Of course, no plans are complete without a subsequent analysis of their effectiveness. So, I made it a habit to track the time I spent on each task. I limited this to tasks directly involved in those “productive” priorities that occurred irregularly. My work and class lecture time expenditures remained relatively constant throughout the semester, so the tracking benefits would’ve been trivial. I intentionally left out my non-productive time expenditures so that I wouldn’t spoil relaxing activities with stress about wasted time.

I used Jiffy to track my time — categorizing by commitment and major task. A boon of this historical record was that it allowed me to more accurately forecast the time requirements of future assignments. For instance, I now know the average MATH 3215 homework assignment takes me 12 hours to complete and my average gym trip takes approximately 2.5 hours, with half spent lifting and the other half on travel, hygiene, and recovery.

You can get a more detailed breakdown of how I spent my time HERE (link will be posted when it’s complete). TK

Goals

In my fall 2015 reflection (and my update, ex post facto), the goals I created for this semester were as follows:

Wall-mounted list of spring 2016 goals

In the event my handwriting is illegible, and in the order that I review them, they are:

  • 3.25+ GPA for semester
  • 8Tracks -> 100k listens
  • HAMY Codes -> 1,500 views / month
  • Complete Cracking the Coding Interview
  • Do awesome stuff at CNN
  • Build and Publish SPLINK
  • Summer Internship
  • Enjoy Life

GPA -> 3.25+

Status: Complete

I was able to pull off a 3.5 this semester, but I’ll admit I was sweating a little bit towards the end. I needed a 66 on a cumulative final to pass a class in which my test average was a 65. Proof that a little bit of groveling, and a healthy amount of faith in the curve, can — sometimes — work out in your favor.

8Tracks -> 100K Listens

Status: Incomplete

Four of the new playlists I published this semester

8Tracks has long been a hub of music discovery for me. Over the past few semesters, I’ve dabbled in playlist creation and, more recently, started setting performance goals for my profile. My last goal was to get the sum of listens on all my playlists to exceed 100K.

Stats

This semester’s 8Tracks stats

As you can see, I didn’t quite hit my mark, coming in just shy of 65K at the end of the semester. That being said, the numbers aren’t that bad. I still grossed almost 25K listens and my follower count more than doubled. On top of that, the first playlist I published this semester became my most liked, by almost 600 hearts.

The other five playlists published this semester each failed to pass 1,000 listens, yet, for the most part, retain a listen:like ratio of about 15:1. From what I’ve seen, this is pretty high, leading me to believe it’s not a change in playlist quality that’s caused this drop in performance, but a change in the platform itself. A more in-depth investigation of 8Track’s discovery algorithm, listenership numbers, and new app design could prove useful but is nowhere near the front of my project queue.

Sitting pretty at #2

Although overall listenership has declined, I’ve routinely been featured on the front page of 8Tracks for top trending playlists in the Electronic category. Oz even made it to top 3 site-wide. So while I didn’t hit the metrics I was hoping for, I still passed several other milestones.

HAMY Codes -> 1,500 views / month

Status: Incomplete

Monthly stats for HAMY Codes

I was unable to hit pre-blog-migration viewership levels of 1,500 views/month. That being said, you can see there’s clear progress since the date I migrated my blog to my new domain ’til now. The trend leaves me optimistic that traffic will increase as time goes on, as I predicted in last semester’s reflection.

That being said, I do expect a decrease in visitors in the summer months. A large portion of the content on my site was produced as a direct reaction to academic problems I faced. Because many students take fewer classes in the summer, I expect they’ll run into similar problems at a reduced frequency, resulting in less traffic.

Cracking the Coding Interview -> Finish

Status: Incomplete

The repo holding my solutions

The semester was long and hard and, ultimately, working on my interview skills wasn’t at the top of my priority list. Interview questions are categorized under side projects in my hierarchy. In order to ensure progress towards the completion of the book, I created a habit goal of one interview question per weekday. This basically means five questions per week and gave me a two day buffer period in the event I was too busy to work on them — something which became increasingly frequent as the semester wore on.

If I had stuck to the plan to a T, I would’ve finished the semester somewhere around problem 125 (there are ~150 questions in the book). As it stands, I finished somewhere closer to 99. That’s a deficit of 26 questions, or about 5 weeks of sticking to my guideline, completing one question every weekday. With the semester being ~16 weeks long, that means I had a compliance rate of ~68%. It’s not great, but I’m still a lot better off than if I had done nothing at all.

CNN -> Do Cool Stuff

Status: Complete

My boi, Newstron

CNN threw me into a professional development role for the fourth time in my college career. Each team I work on has its own workflow, providing me with more insight into which factors allow a team to be effective and which do the opposite.

During my term, my team (they shall remain Nameless) was focused on enhancing and supporting Newstron — an internal suite of apps used by newsmakers at CNN. Specifically, I worked on tools that handled external media requests, supported our massive library of videos, and developed features for a new video player — to name a few.

We were given Macs for our CNN-related development work. I’d never used one for anything more than shooting off a few emails or watching a movie, but figured it would be a good opportunity to see what everyone was raving about. I ended up liking it so much, that I’ve opted to purchase one to use as my primary computer. Call me if you see flying pigs.

Tech: AngularJS, Bootstrap, CSS, Express, Grunt, HTML, IPV ProPlayer, JavaScript, JQuery, Less, MongoDB, Nginx, NodeJS, Silverlight, XSLT

SPLINK -> Build and Publish

Status: Incomplete

The landing page I made back in August 2015

Once again, SPLINK has failed to come to fruition. This semester was even busier than last semester and last semester I barely found time to work on it. At some point, you have to decide whether or not you have the will to put forth the requisite effort to bring a project from idea to reality, or whether it’s just fanciful dreaming.

After telling myself I’d work on it for the past 2.5 semesters, I think it’s finally time to hang up the headphones. I still really love the idea, it’s just not the one I’m constantly thinking about — and that’s my current threshold for long-term effort expenditure.

Projects

On a brighter note, just because I wasn’t able to work on SPLINK, doesn’t mean I wasn’t able to work on anything. On the contrary, I’ve pushed out more code this semester than during any other period of my life:

GitHub Activity | May 2015 — May 2016

Of the 282 commits I’ve pushed to public repos from my primary GitHub profile in the past year, 274 of them have occurred since January 1, 2016. That’s a lot of activity, so I’m going to break it down into sections, so you can see what I’ve been working on. Most of the projects I worked on this semester have their roots in my academic courses, which makes sense considering that’s what most of my time was spent doing.

Besides a description of some of the cooler stuff I did, I’ve also listed the technologies/domains that I’ve either touched for the first time or learned significantly more about due to that particular project’s development.

Junior Design

3 / 6 people on our team were named Brian

BusRUs

This project was created for my Junior Design class, which gives teams two semesters to design and implement a system, ideally, solving a client’s problem. Our problem was to overhaul the Georgia Tech bus prediction system to make it more accurate, easier to maintain, and less expensive (the current system costs $50k!).

There are currently screens set up at each bus stop that scroll through the next estimated arrival time for each route serving that particular stop. Unfortunately, those predictions are commonly off by upwards of 5 minutes for buses as close as two stops away, making the entire system extremely inaccurate.

To fix this problem, we created a system that could incorporate historical bus data to create more accurate predictions based on current route conditions. This model is ideal for an Artificial Neural Network (ANN). It trains itself (with help) on the past data, drawing correlations between inputs like weather, time of day, and day of week and the output: travel time from one stop to another. With the ANN in place, we created accurate ETAs for each stop by combining the predictions for the current route conditions and the locations of each bus servicing that route.

The project turned out to be my largest deliverable for a Georgia Tech course and also marked my first glimpse at the underpinnings of a machine learning implementation.

What I Learned: Artificial Neural Networks, PostgreSQL, Python, Remote Servers

Computational Journalism

CompJ focused on the intersection of computing and journalism. Specifically, how technology could be used to extract raw data, synthesize data into useful chunks, and produce newsworthy conclusions about that data.

Atlanta overlayed with crime change statistics and Beltline coordinates

The Beltline and the City

The objective was “to create an interactive map mashup/visualization with a newsworthy dataset of your choosing.” Essentially, we had to find an interesting dataset and put it on a map.

With the Beltline being central to Atlanta’s recent rebranding, I thought I’d try to pick out trends relating to it. After glancing over some publicly-available datasets, I decided to explore the correlation between the location of the beltline and year over year crime rate change in the city of Atlanta.

It’s not the best-looking visualization, nor is it the most interactive/useful— allowing only the ability to select which year to inspect. Despite that, it was empowering to see what I could whip up in just a few nights. Plus it was my first attempt at Python data ingest/transform and D3 for visualization (yay for buzzwords!).

What I learned: D3, GeoJSON, GIS, Localhost, Pandas, Python, Shapefiles, TopoJSON

You can check out the source code on GitHub or play with it (press its buttons) on my site.

Don’t they look regal?

Twitter Cabinet

Remember back in January when Fox made a jab at Trump saying, if he was elected, he would utilize his Twitter followers as his presidential cabinet? No? Well, that’s the basis of our project.

We wanted to see what kinds of trends we could find if we analyzed the tweets of Twitter profiles that followed the last four presidential candidates. Maybe all of Trump’s followers had positive sentiment towards warfare, maybe towards mac & cheese. The point is, we didn’t know what we were going to find, but we thought it would be cool, so we did it. The end result doesn’t do a great job of displaying these correlations, but it looks cool and shows results based on a ton of Twitter data.

The reason it looks so good is because Stephen Song (check out his site) was on frontend and I was doing back end.

I could tell you more, but I think it’s more efficient to see it for yourself. If you want to get more into the technical stuff, here’s the final report. You can even check out the source on GitHub.

What I learned: CSV, data mining, growing files, MongoDB, Naive Bayes Classification, Python, rate limiting, remote servers, sentiment analysis, Twitter API

Feeds: 344,522 | Tweets: 2,086,736 | Analyzing the craziness of Twitter users: priceless

Computer Animation

Not much to say here. I thought it was going to be an animation class in the likes of Pixar or colorful 2d keyframe transformations. It turned out to be a lot of Physics simulations involving way more calculus than I was mentally prepared for. If you want to see the kinds of projects I worked on, check out the videos linked from the repo.

What I learned: C++, Dart, Macs make environment variables a breeze, Visual Studio

Experiences

The semester wasn’t all work and no play. I was still able to do a bunch of cool things:

This Summer

After a ~3 week stay at my parent’s with the Phoenix, I’ll be heading off to work. In the three weeks ’til then, I’ll be wrapping up last semester (with posts like this), working on some playlists, designing some apps, fixing up my basement, and enjoying summer in Atlanta.

Work

Where: Austin, TX
Who: IBM
What: Frontend engineering/design

I’m headed to Austin, TX this summer for IBM Design’s Maelstrom internship program. It’s touted as “IBM’s premier design internship program,” which sounds pretty awesome. My title is Frontend Engineer, but I’m sure I’ll be learning and doing a lot of design, process, and visualization work — all things I’ve been particularly interested in for awhile.

I still don’t know many specifics about what we’ll be doing, but the team seems cool and everything I’ve read/heard about the department seems even cooler. The team encourages sharing of the (non-proprietary) stuff we’re doing in the studio, so I’ll be posting anything that catches my eye.

I’m told Austin has great burgers, tacos, and music so I doubt I’ll want for much. But to make sure I don’t miss out on much, I’m currently compiling lists of things to do and places to go while I’m there, so if you’ve got any suggestions please send them my way.

If you happen to be passing through, hit me up so we can do something weird. That’s their slogan, right? Keep Austin weird.

This Fall

This spring was my last, true, semester at Georgia Tech. I have 2 credits (5 if Global Perspectives is still a thing) left in my degree and that’s the mandatory Health course. For those wondering, I intentionally pushed my graduation back two semesters so that I could fit in another internship, study up for interviews, and give myself time to think about what I really want to do for the next few years.

I currently label myself as a Fullstack Software Engineer with a focus on web technologies. Through my experience at IBM this summer, I hope to get a better feel for the more user-centric disciplines — Front End Engineering, UX, User Research, Visualizations/Graphic Design, etc.— to help me evaluate whether that’s an area I’d be interested in gravitating towards.

This fall I’ll be taking my 2 hour course load and job hunting full time. If/when that dies down, I plan to pick up another part time job and/or work on my side projects.

And Beyond

There are two primary archetypes with regards to what you do professionally, especially in the tech industry:

  • The first is to get a high-paying software role out of college, work a few years ’til some of your benefits mature, then jump to the next company willing to pay you more. Rinse, repeat.
  • The other is to shun corporate environments entirely and dive head-first into your own startup. You wake up early, work ’til late, and bask in the glory that is creating your own product and being your own boss.

Those descriptions are a little crass and extremist, but I think they get the point across well enough. I see the merits — and faults — in both. I don’t think there’s a single life strategy that blows the others out of the water with respect to aspiration fulfillment and personal contentment.

That being said, I do think being mindful of your state of self and intentional in your actions is a necessary groundwork for any successful strategy.

I think I can gain a lot from the corporate world — how to run a system at scale, intimacy with industry-standard practices, and a network of bright and ambitious individuals among many others.

But the startup world is always enticing. To make your idea a reality and to have millions of people genuinely enjoy it — that is the Dream. It is the epitome of self-validation, something you can imagine looking back on in your old age and thinking “I did that. I made an impact. There it is.”

My current plan is to land a job straight out of college and hold that for the foreseeable future. What I’ll be doing and where it’ll be is TBD. I want to work and live as much as I can, squeezing as much as I can handle out of the the problems and opportunities available to me — through my network, locale, and profession.

Concurrently, I want to always be making, thinking, and challenging. I want to provide fertile soil for my creations to both take root and blossom, towards the Dream. It’s possible that it will never come to pass, such is the reality for many (read: most) people. But I would be remiss if I didn’t try — the scaffolding for its success being the absolute minimum I could do with a clear conscience.

Take it as a hybrid of the two archetypes, with a seat within the secure grandeur of corporate and an eye on the bootstrapped fastlane of startups.

Goals — Summer 2016

Before finishing my reflections, I like to include my goals for the near future. It’s common for these to end up changing, but it’s nice to have a record of where my head was when I wrote it. Here are my goals for this summer:

  • Be Interview-ready by August 13th— Tear through InterviewBit and Interview Cake, think about completing CTCI and picking up Elements of Programming Interviews in Java. Use past Google/Palantir interviews as a benchmark. Habit goal of 1 question / day.
  • Expand mind through IBM — I’m jumping in to a summer filled with creatives. I have a feeling it’s going to be a lot different from the gigs I’ve had previously, but that only makes me more excited. I want to soak up as much as possible and use what I learn to inform my processes down the road. Champion the “Yes, and” improv principle to be open and supportive of new ways of thinking.
  • Get weird in Austin — I’ve heard Austin is a sweet place and I want to pack as much of it into my summer as possible. I want to enter the fall feeling like I lived there. That’s a lot of living to fit into a 10-week term, so I’m starting off with an arbitrary weekly quota of 3 cool things. I’ll have to wait ’til I get there to see if this can be increased, but it’ll net me at least 30 things to talk about by the end of the summer. Habit goal of 3 cool things/week.
  • Build a product from the ground up — I’ve got a few ideas that I’d love to implement this summer. I want to go through all the motions and have a presentable product by the time school starts up. Ideally, I’ll go through a few iterations of problem-searching/defining, user research, prototyping, and funding pitches, but I have no idea how long those will take to know if this is remotely feasible. At the very least, I’ll do as much as I can and end up with more than I had when I started. Presentable product by summer’s end.
  • Get comfortable presenting publicly — Presenting is a huge part of making your ideas a reality. If you can’t get someone to understand your stance and subsequently buy into it, then you’re going to have a hard time setting the stage for your success. I know it’ll be helpful in my planned product pitches, but — I figure — why stop there? If it’ll be a major asset regardless of what I do, then I might as well approach it as such and set up a development regimen. Habit goal: Talk through one interview question or verbally present one product/idea each week.
  • Do an “everyday” project —I’m sure you’ve seen these things on Instagram. It’s an open-ended project theme where you publish a new variation every day. For example, the theme may be trees and you post a new picture of a tree everyday. I tried it this semester with SIRHAMY.IMG, but simply didn’t have the time or bandwidth to keep it going. I’m not sure what it’s going to be and I may not post every day, but rest assured it’ll be annoyingly frequent and probably artsy. Create a project with at least 30 installments.
Rebranding underway

I applaud you if you made it this far. It is, by far, the longest reflection I’ve ever written (by almost double). I hope I didn’t bore you to death and that you were inspired to write your own regular reviews or, barring that, at least think more critically about the goals you set and your plans to achieve them. If you didn’t find it particularly inspiring, that’s cool, too — you know what they say, “different strokes for different folks.”

TL;DR: Wrote a lot of code, going to IBM this summer, time/effort/attention are your most valuable resources so use them on what’s important

Thanks for reading,
Hamilton Greene

p.s. Seriously, if you’re in Austin this summer, let me know. I don’t bite often.

p.p.s. If you’re voting this fall, think long and hard about who you’re electing to office. Remember, the President is considered “The Leader of the Free World.”

p.p.p.s. If you want to accomplish something big, make it a habit. Then take one step at a time.

If you want to contact me, Facebook is your best bet. Unless you have my number, then just use that.