Providing Better Meta Tags for the Rest of Us

Story 1 – Meta Tags

With messaging systems trying to satiate information-hungry users, it’s fascinating to see how standards are popping up around the decades old infrastructure of the internet. I’m talking, of course, about the meta tags and their evolution, or lack thereof. When sharing links on popular platforms, the new standard is to show a preview of the link so that users can know what they’re about to click on. Facebook introduced a new standard to help unify sites around the web and make information more easily scrape-able. Since then, there have been more standards added on to the age-old infrastructure of meta tags.

Story 2 – Serverless Architecture

A quite fascinating and paradigm-shifting technology is peeking its head on a lot of cloud platforms: serverless/Functions as a Service (FaaS). The possibilities that this technology opens up are not only quite endless, but also pretty darn cool. The premise is that one can deploy a simple function and only pay for the length of time that the function took to complete running. This is a great addition to micro-services and can instantly lower an API’s costs. Since well-designed API’s are stateless anyway, one doesn’t need a server constantly up, but only spun up as needed. It’s easy to see that FaaS can very easily turn API hosting on its head. And given my great interest in backend architecture and API design, I’ve been itching for a good excuse to play around with serverless architecture.

Story 3 – The Convergence

Meet Better Meta, the API that allows you to quickly and easily fetch any site’s meta tags in a digest-able JSON format, built on AWS’ Lambda. Better Meta is the perfect example of an API that can run simply in AWS Lambda with minimal resources and provide valuable information in a readable format for other developers to use in their applications. This allowed me to play with Lambda and get a feel for the serverless world and API’s, work with XPath (the scraping needs to be done somewhere, right?), study a bit of the history of the internet and evolution of meta tags, and of course, provide a valuable resource for fellow developers. Happy meta tagging!

Anything That Can Go Wrong…

…will go wrong. I used to think that this Murphy guy was just a pessimist who didn’t know how to see the cup as half full. And then, as one might see where this is going, I encountered the infamous law first hand.

That one client of yours that accounts for 80% of your income? They’re actively looking for a more economical solution.

The tickets that you were supposed to print for the upcoming event that you’re already late for? Too bad everyone was too busy to replace the ink in the office printer.

Your partner in the project who was supposed to lead the presentation? She might’ve forgotten to mention that she gets really bad allergies this time of the year.

Whether intentional or not, these things happen, and probably at the worst possible time. The examples above are all real. Yet, as the author of a blog post about Murphy’s law, somehow I was still surprised and unprepared when these times came around.

It’s important for us to constantly challenge the assumptions we make and to have a plan B for when the one constant you thought was always going to be there shifts from under you without a care in the world.

Budget for what would happen if this client disappeared off the face of the earth tomorrow.

Print the tickets ahead of time, not on your way to the event, or be proactive in replacing the ink for the printer and be everyone’s new favorite office mate.

Prepare with your partner and be ready to take the mic when the big presentation comes around.

What are the major assumptions you’re making, and what can you do right now to prepare for the day when those assumptions are pulled out from under you?

Please Leave Your Notifications at the Door

We are a lucky bunch. We live in a world where one can share the screen they’re looking at instantly with people halfway across the world. And I’m seeing more and more people take advantage of this amazing technical feature, as they should!

However, what I’m not seeing is etiquette around this channel.

When I have guests over at my house, I try to prepare for them appropriately: I clean the living room, puff up the pillows from their slouching state, put things in their proper place, spray some Febreeze and crack a window, and maybe even cook up some appetizers. And yet, when I partake in a screen sharing session, I don’t see similar preparedness. There are windows overlapping on one another, browsers with more tabs than I’d want to look at, and notifications coming in randomly to inform the viewers that the presenter’s girlfriend’s cat threw up in her shoes again. It makes me wonder where the disconnect is between people’s homes and workstations…

Given some of the bad practices and disorganized workstations I’ve witnessed, I propose the following Rules of Etiquette for the Remote Sharing of One’s Desktop:

  • If you plan on using a browser window during the presentation, open a brand new browser window. Then open any tabs you may need during your presentation. This way your coworkers won’t need to see which cat-of-the-week video you were watching or the controversial subreddits you follow.
  • Minimize all open windows and then open only the ones that will be needed for the presentation.
    • macOS: Hit Command + M for each application with open windows.
    • Windows: Hit Windows + D.
  • Enter ‘Do Not Disturb’ mode to make sure push notifications don’t interrupt your presentation.
  • Try to foresee any questions that may arise and be prepared for them by having relevant tabs/applications/windows open that you can reference.
  • If you’re on a Mac, consider using Spaces to create a clean workspace to work out of.
  • Within any open applications you’re presenting, maximize them to the full size of the screen to make sure users’ attentions are focused on the current agenda item. Given people’s attention spans, it’d be very easy for them to drift and oh look! A squirrel!
  • Potentially zoom in or enlarge text on certain windows when needed, such as web browsers, code editors, etc. While you’re only a few inches away from your monitor, people on the other end may be further away from their source of video. It couldn’t hurt to ask if the current size is appropriate for all the participants.
  • If you want to get really fancy: use the application switcher keyboard shortcut to be able to transition between applications and windows seamlessly and without a fuss. You can read up more about it here.
    • macOS: Hold down the Command button. Now hit Tab once. Continue to hit Tab until the application you are trying to switch to it selected, then let go of all keys and watch as that application pops into the foreground!
    • Windows: Follow the same instructions as for macOS above, but replace Command with Alt. Also important to note, on Windows, this switches between all windows, not only applications

Following these simple rules will help make desktop sharing sessions not only more professional, but more of a freshly welcomed home visit than a messy living room with a slightly sour odor…

The End of My Lithios Chapter

They say that when one door closes, another opens. Well, when an app is closed, you have the whole home screen full of opportunities!

I just ended my employment at Lithios (mobile-first software development consulting) and decided to see what the other side of the fence looks like. A more organized, 9-5 office job with a few locations, break room, and TPS reports (well, hopefully not that last part). It is a bittersweet feeling like none I’ve had before.

Lithios is just about all I’ve known of my professional career up until now. My friends and I were the board and C-suite and ran the whole operation bootstrapped for years – while always profitable and paying ourselves a (modest) salary, I may add. The freedom to start initiatives was exhilarating. The culture that we defined and carried out by example was captivating. The people we hired are amazing, each in their own individual and unique way. The amount that I have grown through my times at Lithios is intangible.

But alas, I am moving on.

Onwards to see what working as part of a larger company feels like. To be in a strictly technical, and not business role. To work with a veteran of the field who can code laps around me. To ‘shave off of someone else’s beard’, as the saying goes in Hebrew.

Needless to say, the good, great, and nerve-wrecking times at Lithios will not be forgotten. They will be carried with me into the next chapter, and beyond.

Water

“Be like water making its way through cracks. Do not be assertive, but adjust to the object, and you shall find a way around or through it. If nothing within you stays rigid, outward things will disclose themselves.

Empty your mind, be formless. Shapeless, like water. If you put water into a cup, it becomes the cup. You put water into a bottle and it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend.”
― Bruce Lee

Even before I came across this fantastic Bruce Lee quote, I felt this. I called it ‘neutral’. I feel like I’m a ‘neutral’ guy. I have a very easy time adapting to situations and getting along with people. I dislike very few people. I’m usually quite content wherever I am and with whatever I’m doing. Honestly, I feel like I have it too easy sometimes.

However, nowadays, when I’m faced with a tough (and sometimes even not so tough) situation, I don’t know what to do. I’m almost /too/ neutral. If I’m always content, I don’t have a preference for some things. Water is /too/ shapeless. I want to be jelly. Easily adaptable, but still have a shape of my own when I want. Does anyone have some gelatin?

Campus Cruizer: The Journey of my First Startup

If you know anything about me, it’s that I like to solve my own problems using creative software solutions. My college life was no different in that way, I just had a larger array of problems to pick from. So back in 2012, before Uber was ubiquitous, back when you actually had to think hard about whether to give your credit card number to a random app, back when going out in college meant one of your friends having to claim Designated Driver for the night, I experienced the Beeper System at Appalachian State University. Little did I know at the time, this was the start of something huge.

The Beeper System

In a small college mountain town, taxis didn’t have much of a presence; it didn’t make economical sense for them to be around. So the students came up with their own solution, the Beeper System – rumors are it originally involved beepers way back in the day. The Beeper System is a very large Facebook page where people can post their phone numbers on holidays and weekends and volunteer to drive people from A to B for a flat $2 per person, or $5 minimum. This concept was absolutely brilliant to me! First of all, you have a large community of students interacting and socializing from all cliques, while giving students a chance to make money on their ‘night off’ if they have a vehicle, while all at the same time keeping their town safe from drinking and driving incidents by giving people a reasonable and efficient option for transportation for the night.

While I absolute loved the idea of the Beeper System, I couldn’t help but cringe at the largely inefficient and manual system that was the cluster fuck of a Facebook page. Naturally, I started thinking (that’s when things can get dangerous…). I sat down with a then-acquaintance and now-best friend, co-founder, and business partner Arjun Aravindan and pitched him what I thought was an innocent side project, Campus Cruizer (Cruizer for short).

Campus Cruizer 1.0

After much discussion with my business partner, we cracked our knuckles, buckled down, and started coding. The first version of Campus Cruizer was one of the more elegant solutions I think I’ve ever created and still hold it dear to my heart. The system worked kind of like a strip club (though I didn’t even know how strip clubs worked at the time, I promise). We would be the main entity, the gate keeper, if you will. Drivers, or ‘cruizers’, would buy a ‘Cruize Coin’ and trade it in to get onto our ‘Queue’ for up to 8 hours (we never had anyone drive for 8 hours..). We had a dispatcher phone number, the ‘Cruize Line’, that would distribute calls evenly amongst all the cruizers that were currently live. So if you as a student needed a ride, you would call one central number, be redirected to the next available cruizer (with the driver’s number masked for privacy, though they could call or text the rider to coordinate), and talk details with them as far as how many people you were with, where you currently are and where you are headed. The pricing was based off of the Beeper System, $2 per head for around campus and $3 per head for downtown. All the tips the cruizer made during their shift were theirs to keep, we just kept the profits from the Cruize Coins. Also of note, if you were on the Queue and received no calls at all, you got your Cruize Coin back to try again another night – no money earned equals no money spent.

People absolutely loved this.

During our launch party (catered by cruizers), we had our drivers make over $100 per night. It was a huge success! I didn’t realize at the time what we had stumbled across.

It’s also worth noting that at the time, Uber and Lyft were just starting up and had yet to make their way to the Triangle area. As for NC State students, it was us, expensive self-entitled taxis, or find a designated driver.

We were able to find a mutual friend of ours that worked at the school newspaper and got an article about us on the front page. Our recognition shot through the roof! We had meetings left and right with different departments in the university who kept complimenting us about our product, how great and original it was, and offered their help in whatever area they could.

We launched the MVP of Cruizer in March of 2014. Uber and Lyft launched in the Triangle on April 24th.

Retaliation and Cruizer 2.0

That summer, while school – and therefore Campus Cruizer – was on a hiatus, Arjun and I knew we had to do something to keep up. We had proved our point and made a bit of a name for ourselves, but knew we had to innovate to stay relevant. After all, the new competition’s apps made their solutions much easier to use; you could use your credit card to pay without having to worry about carrying cash (also, more profits for the business), the apps could pinpoint your exact location without having to talk to someone on the phone, and their built in rating system gave both riders and drivers quality assurance.

Summer 2014 was probably the most stressful stretch of time in my life yet. Not only was I sick, but we had to work non-stop the entire summer to try and stay relevant. Within the duration of a single 3 month period, we were able to replicate the entirety of the Uber/Lyft system. This included rewriting our entire API with location tracking, payment integration, and rating system, and creating brand new apps for both iOS and Android to rival the functionality of Uber and Lyft’s respective apps. We also had to make sure NC State students knew about our service and why we were that much better than the new players in town; ‘For Students, By Students’. We had pushed our marketing efforts in the way of buying branded koozies and placing them in every single dorm room in NC State (with a partnership with IRC on campus).

To this day I don’t know how we were able to pull it off.

Loss of Momentum and the 800 Pound Gorilla

We had a secret weapon with us that we were using to try and maintain our position and keep our ground: our bootstrapped, homegrown, ‘by students, for students’ roots. The fact that we were NC State students, served NC State students, and worked with mostly NC State students, meant that we were part of the people; we could relate to the NCSU population and connect with them. In the same way that a small town’s mom & pop ice cream shop would thrive where a Ben & Jerry’s would merely sustain, we were hoping that our not-so-secret sauce, though still a crucial ingredient to our recipe, would be our winning move.

However, one thing that we (foolishly) overlooked throughout our business model was the lack of traffic during summer break. Since our driving value was a system built by students, for students, it actually worked against us in the summer months. During the May through August time frame, there were very few students around, and even less that were going out on weekends to their usual shenanigans. That entire summer, Arjun and myself were so focused on the product and the business that we didn’t realize that Uber was gaining on us, and quickly. While they weren’t nearly the size they are today, they were still VC backed with millions of dollars behind them. They were recruiting drivers left and right off of Craigslist and giving out free rides like there’s no tomorrow.

When school got back in session, we had a hard time getting back the momentum that we had at the end of the previous school year. While we, the founders, were busy with our heads to the grindstone working nonstop on the technology aspect of the product, we failed to realize that the larger players were taking over our market at an alarming rate.

Campus Cruizer never got back to where it was before that summer.

Growing the Team and an Uphill Battle

It didn’t take too long for Arjun and myself to realize we couldn’t quite do this alone, no matter how many hats we liked wearing all at the same time. Our first recruits were actually avid users of the service and had shown interest in helping out during a few Cruizes (Arjun and I would Cruize pretty often to keep an eye on our client base, see how they enjoyed the service and what could be corrected, and more importantly, set the vibe that we were trying to put out for the Cruizer service).

We hired two unpaid interns to help us with marketing. We hosted a few events around campus, gave out some the remaining of the koozies that we had left over from our summer marketing push, and stepped up our social media game (which I still personally see as a necessary evil in today’s start up world, #SorryNotSorry).

This marketing push was fantastic for us and got us some customers back. But with a loose regiment, not clearly defined enough goals and metrics, and everyone balancing a full school load, that tapered off after winter break.

Come spring time 2015, we had started to make another very large push towards getting Cruizer to where we wanted it to be. That included hiring two more developers (one of which I still work with today), a business development guy and a marketing guy. We really did have an all-star team. The biz dev helped us put together a more solid business plan and created an elaborate Excel sheet that would help us decide how much to charge per Cruize (we had shifted the model over to charge per minute and per mile to stay competitive). The marketing helped us plug in detailed analytics and tracking software into our apps to be able to track user flow and find out how our users are – or are not – interacting with our apps. And of course we, the developers, would then update the apps as necessary and implement any feature updates we saw fit. Arjun and I still oversaw all the operations and made sure things were running smoothly.

Our all-star team was working hard and making good progress. However (there’s always a ‘however’, isn’t there?), we were all still balancing either school or full time jobs at this point. While we were making slow and steady strides towards our goals, we weren’t making them fast enough. By early 2016, ‘calling an Uber’ was practically second nature to most college students, just as ‘Google it’ became a part of everyone’s vernacular, leaving competitors in the dust. Arjun and I had had many talks before, but the time came when we officially decided that our efforts weren’t seeing the progress and results we deserved.

Campus Cruizer was shut down in March of 2016.

Afterthoughts

Campus Cruizer was my first baby, there’s no doubt about that. It spawned from an idea, to a side project, to a full fledged start up with seed investors (thanks mine and Arjun’s parents!!), a full team, and two live apps; it was a living, breathing company. It was always a dream of mine to ‘invent things’, and this put me in the driver’s seat of exactly that. As a developer, I enjoy building things; solving problems with creative software solutions. I’ve published a few projects in the past that fit that description. But nothing quite like this. This was a tiny bit of what I like to consider a developer’s dream. I got to build a product that saw the light of day. It gained real traction, real users (over 1000 throughout Cruizer’s life), and real money was exchanged on this platform. We gave people jobs by giving them a platform to drive people. We made people’s nights by providing a ride back home for them, sometimes even stopping by drive-thru spots for some midnight munchies. We made a difference. While we couldn’t get Cruizer to the end goal we had hoped for, there’s no doubt that this adventure was incredible, and like no other that I’ve experienced. I am unbelievably grateful for this ride (pun very much intended, we loved these).

While I’m here, I would like to thank everyone who partook in this whole process, our team, our investors, our drivers and our riders, and everyone else along the way who helped or offered help or cheered us on. Seriously, you are all awesome.

I also learned quite a bit from this journey and would like to share just a few of those tangible lessons with you:
– Your business partner will have a huge influence on this entire voyage. Whether good or bad, that depends on who you bring along with you. As for me, I seriously lucked out. I didn’t know Arjun very well when I first approached him with this idea. I had simply thought he had decent business savvy and he could help me market the platform with his connections. It turns out I was right, but he was also so much more. If it weren’t for Arjun, Campus Cruizer would not have gotten as far as it did.
– Momentum is everything. I didn’t realize it at the time, but the fact that we had momentum in a few places and didn’t capitalize on it completely was a mistake on our part. I can only imagine how our users must’ve felt when they saw us going back and forth between activity and silence on social media and live cruizers.
– Startups are not easy. But you already knew that. At least I can say that from experience now 😉

BaDumChh and the Beloved Retro ‘Apps’

I hereby announce my newest project, BaDumChh; a daily one-liner joke texting service.

The idea for BaDumChh came to me one evening during a startup weekend when I was working on something completely unrelated. I simply wanted to create a fun, quick app that could run (and hopefully sustain) itself, built on Twilio’s phone system. I was so excited about this idea originally that I had trouble sleeping that night just thinking about the possibilities and how I would go about implementing a service like this, where I’d get the renewable jokes from, a business model, etc.

Throughout the development of BaDumChh, and even more so now, I realized what I love so much about this idea (even more than the guaranteed smile on my face once a day) – the fact that this is a texting service and not a mobile application.

In a world that is constantly evolving and being populated with countless apps for any and all needs you can imagine (and probably some you can’t imagine), I’ve grown to miss some of the simpler days without having to download an app specific to each need or constantly see how many notifications I’m behind. That is one of the beauties that the Twilio API enables. Sure, I can’t send push notifications to my users. Or easily charge them through in app purchases. Or send app updates. But why use push notifications when I can text my user? It makes communication that much more personal. And if I set up my own payment system, I can avoid the standard 30% cut that instantly comes of the top from app stores. App updates? I can push up changes to my back-end any day and all of my users will be on the new, updated version instantly. That also means I have one code base to maintain, not 2 (or more if I wanted to support more than just iOS and Android). Not to mention that while most cell phones ever have text message capabilities, only smart phones (of a certain operating system, version, etc.) can support apps.

I was recently introduced to another app that works through texting instead of an app, Digit.co. Digit Savings will hook into your bank account and inform you of your spending habits and move money aside for you in a separate Digit Savings account. All of this through texts. That tiny fact makes me respect this up-and-coming start up all the more. Digit also does not even provide an app option (as of November 2015).

Another startup that works through texts is GroupMe. GroupMe enables groups to chat easily through a single phone number instead of the mess that group messages can be (especially on a dumb phone). The interesting thing about GroupMe is that while they operate through texts, they also have an app that you can use instead of texts. Through the app you get a few more benefits like sending and receiving unlimited messages (they have a monthly quota for texts), favoring messages, emojis and images, and no message length limit (which is and always will be a limitation of texts).

So what is the ‘better’ option, a text message app, or an app as we’ve all grown to know and love? I don’t think there’s a right answer (what a cop out answer…); I think it very much depends on what you’re trying to do. But in today’s super busy, hustle and bustle daily routine world, BaDumChh will remain a simple and elegant service that will put a smile on your face the old fashioned way.

On Hodgkin’s Lymphoma and the Brentuximab Clinical Trial: The Story of a Very Lucky, Unlucky 21-year-old Student

‘You have Cancer.’

Those 3 words are enough to turn anyone’s life upside down. Especially if you’re a (relatively) healthy 21 year old student who has always strived for karma to be on his good side. And yet, Cancer was in the cards that I was dealt.

Cancer

In May of 2014, I was, totally by coincidence, diagnosed with stage I Hodgkin’s lymphoma. I was stunned. Speechless. What the fuck did /I/ ever do to deserve this?? I’ve been a good guy, most of the time at least. I got good grades, was pretty nice and friendly to people, I recycle when I can, and even volunteered in my community. But I couldn’t let myself get hung up on the ‘why’ aspect of everything, after all, it doesn’t matter why it happened anymore, it just matters that it happened. Now I need to deal with it.

Immediate Effects

Getting healthy was, quite obviously, my first priority. That really sweet summer internship I scored in Charleston for really good pay? Drinking smoking and partying? Having an overall quite badass summer? Yeah, that wasn’t happening anymore.

You make plans and the universe laughs.

For the duration of the summer, I moved back to my parents’ house so they’d be able to support me, keep an eye on me and help me where needed.

Not the ideal summer plans for my senior summer. But it needed to be done. I was going to beat this sickness and become a better person because of it.

Chemo

I went through 4 treatments of ABVD, each spaced two weeks apart. The first treatment was rough, to say the least. Besides feeling physically weak (and not to mention emotionally so as well, though that wasn’t a side effect of the chemo itself), I got really bad mouth sores. To the point where I couldn’t eat solid foods or even swallow without pain. My parents made mashed potatoes and crushed up meatballs specifically so I’d be able to eat something. I felt helpless. When was the last time my parents had to make ‘food smoothies’ for me to be able to eat? Not for a long time…

During the first treatment, I also started getting a fever while staying in my apartment one night. While undergoing chemo, they tell you to seriously watch out for fevers and the like, since your white blood cell counts are really low and a fever could actually cause some damage. After a long and scary night, a few phone calls to the on call doctor, some impromptu medication, a ride through the city with the windows down with a good friend, and a delicious peanut butter-fudge-extra fudge milkshake, I felt better.

Another kind of weird effect I had during chemo was random hiccup attacks. Out of the blue I’d start hiccuping and not be able to stop for hours at a time. While it wasn’t painful, it was a tiny bit annoying and drew unnecessary attention to myself when I just wanted to stay in the shadows.

Because of these effects, for my next 3 treatments I was given a Neulasta shot the day after chemo. Neulasta literally makes your bones produce more white blood cells. This in and of itself blew my mind. It was also nice because the next 3 treatments went much more smoothly with no real hiccups (pun not intended).

I didn’t throw up a single time while on chemo.

It’s also worth noting that I chose to not get a port operation. Usually, cancer patients will have a port surgically inserted near their shoulder; this makes it very easy to deliver the chemo drugs in a quick and efficient manner without causing pain to your veins. Since we had only spoken of a few treatments and were optimistic about the whole situation, I decided to rough it out and not use a port. This was sometimes a bit tricky, the nurse couldn’t always catch my vein right, and the drugs caused soreness in my veins and arms. But in the end of the day, I saved myself a procedure. I was lucky.

Clinical Trail – Brentuximab

Before this, a quick breakdown of usual Cancer treatment: Chemotherapy works by attacking all of the fast growing cells in your body, therefore by killing most of the large Cancer clusters you have. That is then usually followed up with radiation treatment to kill any remaining Cancer cells to try and prevent the disease from relapsing.

Now to the clinical trial: While talking to the doctors about treatment options, they mentioned and recommended a clinical trial going on at the hospital with a drug called Brentuximab. This drug would follow chemotherapy and replace radiation treatment. Brentuximab was FDA approved for relapse Hodgkin’s patients. Meaning, if you got Hodgkin’s a second time, you would be able to take Brentuximab to fight it. This clinical trial was for virgin Hodgkin’s. The theory is that if this drug works well for relapse patients, hopefully it can do some (well, a lot) of damage to the remaining Cancer cells in people who have gotten Hodgkin’s for the first time. This seemed like quite a good option for me. Sparing me radiation treatment is a huge win since it has been shown to not always be effective and a lot of times would come back to haunt you later on in life. Especially if you get radiation treatment at the age of 21. Also, because this was a clinical trial, it was all paid for (when I say all I mean the clinical trial portion, not chemo). There were some slight differences from regular treatments such as another PET scan, regular follow ups, its own set of side effects, and of course knowing that this is just a trial. But at the end of the day, I went ahead with this option. Time will tell if this was the right decision or not, but right now I think it was the right decision.

Fertility

Before starting chemo, the doctors informed me that this may potentially harm my fertility. As a 21 year old male in his prime, this was frightening news.

I went to a sperm bank and deposited thrice, just to be safe. There’s still a good chance that I will be able to reproduce naturally in the future (they say give it at least 5 years after complete remission). But having had to go through that and deposit sperm in a bank because my fertility was in jeopardy was scary.

Hair

Yeah, it’s gonna happen. I was a bit optimistic for a while since my hair didn’t start falling out until after I got the second treatment. But then it happened. I lost hair on my head, my beard and pubic region.

This was actually quite a big hit for me. Before my diagnosis, I was known as the guy with the ponytail. I had always and since I can remember had taken pride in my luscious and flow-y hair. The ponytail and beard combo also looked quite good on me (call me biased…). Needless to say, that had to go and I didn’t have a say in the matter.

It was embarrassing. It was sad. It put a spotlight on me when I didn’t want it. I felt like I lost a big part of my identity. And yet, what can one do? I embraced it and tried to play it off when people mentioned it. ‘Oh yeah, summer got hot so I just shaved it all off.’

I also got a lot of double takes. People didn’t recognize me anymore without my defining feature. It was also interesting to see which people did recognize me immediately versus people who had to take a hard look and still didn’t recognize me. I’d like to think that told me something about certain people.

After the fact when I could look at things in a more positive light, I like to say that this all just happened because someone upstairs wanted me to get a haircut.

Remission

On July 25th, I was in full remission. I had had cancer for 3 months. I was really lucky. Due to the timing of everything, I didn’t even miss any school. My grandmother has a saying that goes: ‘even with bad luck, you need good luck.’

Brentuximab Treatments

I wasn’t done though. After being in remission, I needed to go through the Brentuximab treatments. There were 6 of these, spaced 3 weeks apart each. My last treatment was on December 23rd. Even then I wasn’t done. I had to wait 2 months to do another PET scan to make sure I’m in the clear. Which I was.

Support / Socialness-ness

You will feel alone. You will feel isolated. Be sure to get the support you think you need (and probably more than what you think you need) to help get you through this.

My family was an invaluable resource during this time. Not only did they help me where needed (drove me to treatments, sat through chemo sessions, prepared me healthy food, etc), but the fact that they were just there for me was nice. I even had a few relatives come from abroad to visit and help me through. One of my uncles (that lives abroad) kept on texting me jokes and funny pictures. This was one of the more thoughtful things anyone did for me at the time. Not only did it show that he was thinking about me and cared for me, but he also managed to put a smile on my face.

My friends were there, though a bit less than usual and a bit less than I would’ve liked, I think. They came over sometimes and hung out a bit and checked in on me every now and then. Honestly, I don’t even know /how/ they could’ve been more helpful, I just wish they were. At the same time, I couldn’t really blame them. Their friend got Cancer. What are they supposed to say or do in that situation? It was new territory for them as well as myself. I think moreso than anything else I was a bit angry at the world and jealous of them. They kept on keeping on. And I couldn’t go on with my usual, normal routine. Things were different for me now. I found myself even pushing a lot of people away from me during this time. It was all very confusing for me.

There are lots of support groups and events you can go to to meet people in similar situations or people that have gone through what I was going through. I went to one Hodgkin’s fertility event and that’s it. The one event was alright, it was informative but I didn’t quite connect with anyone there, mostly by choice. These groups and events weren’t really quite for me; I’m more of an introvert and much preferred to handle things on my own and get lost in thought questioning the irony of the universe. While I can’t say from experience, I’m sure these support groups are unbelievably helpful if that’s your thing.

While I did try to tackle most things on my own and act like a big boy who didn’t need help or sympathy from anyone, my family and friends being there for me was unbelievably helpful. I wouldn’t have gone through what I did as easily as I did if it weren’t for all of them.

For family of people with cancer: I think you’re gonna know how to go about handling a situation like this. Make your family member know that you’re there for them, I think that’s the most important thing. My family made clear that I was never alone throughout the whole process. This was invaluable.

For friends of people with cancer: I think it’s really important to your friend to let them know that you’re there for them. I very much did like the check-in texts, a phone call may have been nice as well. My friends coming to pick me up and grab lunch together was thoughtful and made me feel like I was still part of the crew and not much has changed; that was nice. I also was recently shown the following ’empathy cards’ (http://www.upworthy.com/8-nontraditional-empathy-cards-that-are-unlike-any-youve-ever-seen-theyre-perfect?c=ufb2), I think I very much would have liked to have received something like this.

Other Thoughts

Look, this is not going to be an easy experience. Physically, mentally, and emotionally. But I think the most important thing is to simply take it one step at a time and to try and think optimistically through it all. Having a good source of support (read above) I think is also very important, even if you may not think so at the time or don’t necessarily take advantage of it constantly.

Aftermath

It was not a fun journey. But it made me stronger. It made me who I am today. I learned a lot about myself. I learned a lot about the people who were close to me.

My journey still isn’t over. I need to go to annual follow up scans for the next 5 years to make sure I’m still Cancer-free and healthy. But I made it to the other side, and I’m thankful for that and for the bit of luck I had along the way.

Netflix and Why Options Are Bad For You

I will make your life better by taking away your choices.

I probably sound crazy right now. Let me change your mind.

How often do you find yourself drowning in a vast, empty sea of television shows and movies without giving a single shit about which one you watch? It’s like walking down the aisle in a grocery store and searching through an endless variety of laundry detergents when all you want to do is get that damn stain out of your good shirt.

As it turns out, there’s a reason for this uncertainty you experience when browsing through too many options. It’s called the Paradox of Choice. I came across this feeling first on Netflix. I found myself never being quite satisfied with whatever I watch on the brilliant streaming service.

That’s where Netflixr comes into play. A quick bookmarklet that will give you just a few random options from the Netflix page you’re currently viewing. It’s pretty simple, but sometimes that’s the way it should be. Mindless television should be a bit more mindless.

With more options comes more responsibility.

Think of it like this: Given a thirty minute break for lunch, you have enough time to heat up a quick meal and watch something before getting back to work, with a little wiggle room to get your mac n cheese to the right temperature. The longer it takes you to decide between It’s Always Sunny in Philadelphia, the Office, or Derek, or anything else, that’s less time you get to eat and enjoy your damn television show.

Turns out, I wasn’t the only one thinking this way. Sheena Iyengar, who literally studies how people choose, has a TED talk about the very same topic. In it, Iyengar mentions that more options will sometimes make it more difficult for people to commit. She then goes on to mention a few ways to make that decision easier for the consumer. One of those ways? You guessed it. Cutting options.

I will make your life better by taking away your choices.

Who’s crazy now? 😉

As usual, to install the Netflixr bookmarklet, drag this link to your address bar. Simply click on the bookmark on any Netflix page, and viola!

Optimizing Grocery Shopping – Superbetize

You run to the grocery store. You forgot all about your hot date who’s coming over soon and expecting a lovely home-cooked meal. As you run down the aisles, picking up the ingredients you typed in on your phone, you realize you’re going to be late. Not a good first impression… The items in the list are all over the place, making you run back and forth through the grocery store aisles as if you work there. If only there was a quick and easy way to view your shopping list already categorized…

Well now there is!

I’d like you all to meet Superbetize. This site will take your list of groceries, and categorize (super-betize!) them in different sections found in most grocery stores (e.g. produce, frozen foods, household supplies, etc.). The site provides a nice mobile interface as well so you can easily use it on your phone while traversing the grocery store aisles.

I am very proud of Superbetize. Some may even say that I’m super proud of it. I believe I’ve managed to solve a problem experienced by many, but spoken about by none. I also used this project as an excuse to learn some new and interesting technologies. Those include: Bootstrap, mod_rewrite, and cron jobs.

 

I want to introduce you to a problem I had while developing this site. The ‘groceries array’ that I use to actually sort through the grocery list was manually created by yours truly. I knew there was no way I’d be able to get everything right the first time, between all the different brands, categories, and spellings of product names. I needed a way to update this groceries array regularly with items that weren’t already in the list. This is where cron jobs come in to play.

Cron jobs are scripts that run on a schedule. These are usually used for automated backups or system administration. For each script, you can simply tell it the interval to run (daily at noon, Fridays at 5pm or once a year on April 20th). I created a simple cron script to run once a week that will collect all of the ‘Uncategorized’ items (which were stored in a separate table in my database) that went through Superbetize, and email that list to me. It works beautifully.

Once a week, on Sunday nights at 1am, I get an automated email coming from my hosting provider (where the cron script is hosted), with a list of all of the uncategorized items that were sorted in the past week. I simply add those items manually to my groceries array in the proper category, and update the live grocery array! This way you know if Superbetize couldn’t get your item once, next time it’ll be in the proper place 😉

Ideas, suggestions, and criticisms are welcome! Enjoy!