Author Archives: Rami Massoud

Thrilling Next Chapter

After far too long of a wait, I am excited to finally be announcing my newest adventure: I have joined Blue Apron as Software Engineer!!


…like two months ago…but starting a new job is hard, and so is blogging.

There is so much “new” packed into this change, it’s almost overwhelming. This new role marks a pretty dramatic shift from spending the past seven years primarily as a PHP Engineer to developing with the Ruby language, on the Rails framework. I’ve always considered myself a language agnostic, using whatever I had to/needed to, but now I am really putting my money where my mouth is. I’ve worked with Ruby a few times, even written some pet side-projects on Rails, but working with something professionally can be a whole new ballgame. I even had to start a new emacs config!


Tried to find a funny RoR meme, but most are just mean…

New job also means I’m working in a new part of Manhattan: my new offices are located in SoHo, bordering with Chinatown. Holy. Freaking. Crap! The food options near the Blue Apron offices are amazing. Within a 10 minute walk, I have an endless stream of options ranging across all types of cuisine, which rocks.


The past two months with Blue Apron; bringing myself up to speed on Ruby, getting to know all my new coworkers, it’s been one hell of a ride. I’m very excited to see what the future has in store!


2014 Albany Strength USAPL Meet

Final Squat Attempt 405 lbs

This past weekend I put a years worth of training to the test, and competed in my second USA Powerlifting meet. A grueling seven hour day that, once again, taught me an incredible amount about myself as a lifter.

But, before I go into any of that, I’ll put the videos front and center. First, the abridged video of just my three best successful lifts of the day, followed by the video containing all of my attempts throughout the day.


Albany Strength February Meet Results

I managed to challenge my-2013-self, and come out ahead. Setting a new competition best in the squat of 405 pounds (30 pound increase!), and an all-time best deadlift of 510 pounds (10 pound increase!). Rounded out with a lagging bench of 215 pounds (10 pound decrease), I managed an 1130 pound total (30 pound increase!) in the 275 pound weight class, landing me in 4th place.

What I Did Right

Considering I was able to make considerable gains on the squat and deadlift, even after throwing my life into chaos by moving to NYC, I think there was a lot that went really well with my training. The biggest contributor to my success was definitely trying out the Smolov squat program, even if it was the abridged version.

Final Squat Attempt 405 lbs

The other key factor was letting myself gain weight. A prospect that, after losing over 90 pounds and getting into shape, was incredibly difficult to let happen. It was a necessary evil, as it allowed me to recover easier, while pushing myself to my limits.

Being my second meet, I had a much better idea of what to expect, and what to prepare for. The actual day of the event is incredibly hectic and stressful, even if you don’t count the impact of performing the actual lifts. The last thing you need to worry about as a competitor is keeping track of when your next attempt is. This crucial information is what dictates your decisions on timing your warm ups, as well as making sure you don’t…you know… miss an attempt entirely. This is why having an experienced handler to rely on is critically important. This year I asked my good friend Mike to help me out, since he helped me last year, and he did an excellent job. Both of us being familiar with the flow, made the whole day much less mentally exhausting, and made me much less hesitant to compete more often.

What I Did Wrong

The biggest – miscalculation – I made goes back to that whole “allowing myself to gain weight” thing. When I competed last year, I was in the 242 pound weight class, and my goal was to be in that weight class again this year.

That was a nice idea.

Unfortunately, it didn’t end up happening. This was entirely a result of a lack of planning on my part. When I finished my Smolov cycle, my squat was far stronger, but I had ballooned up from 240 pounds to 265 with only a couple of months until the competition. Not wanting to lose a significant portion of my hard won strength gains, I attempted to slowly cut weight so I could compete in the 242 pound weight class.

Too slowly.

Suddenly I was three weeks away from competing, and still 18 pounds too heavy. Trying to cut that much weight, in such a short amount of time, proved to be too much. Resulting with getting bumped up into the 275 pound weight class, weighing a measly 247 pounds.

Lessons Learned

Needing to cut so much weight, in such a short amount of time, certainly gave me the most insight this time around. Now I have a much firmer grasp of my limitations with cutting weight, which will serve me well. Not only as I approach the next competition, but as I train. From now on, I will be much more careful when I gain weight during particularly difficult training cycles, limiting myself to a 10 pound deviation from the weight I want to compete at.

Something I may not have learned this time, but a lesson that was certainly reinforced, involved my poor showing with bench press. It has always been my weakest lift, so I never prioritized it while planning out my training, as it is frustratingly un-fun to struggle with progression. This time I not only did not progress in a lift, I seem to have lost progress in it, a real wakeup call.

Game Plan

With another meet under my belt, it’s already time to start planning for the next one.

Working toward my third meet, I want to start to be more competitive against the others in my weight class, as opposed to only competing against myself. As much as that is about how much weight you can move, it is also about being smart about what weight class you are best suited for. To that end, I think my days in the 242 weight class are over. The goal is to now diet down to under 230, and train hard to be competitive in the 220 weight class.

What that training will consist of is still currently in flux, and will be highly dependent on how dieting down to the lower weight class will go. Bench press being a priority, the current plan is to try Smolov Jr, as many lifters have had a lot of success with it significantly boosting their bench numbers. In parallel with the bench work, I am also going to run a more intense (thirteen week instead of seven) version of Smolov for squats. Combining the two routines will likely be brutal, but I am fairly confident it will go a long way towards making me an overall better lifter.

The Next Big Thing

Over the past couple of years, I’ve made some very significant changes in my life: I’ve lost over 90 pounds, significantly improved my health, upgraded my style, and made it through my first powerlifting competition in one piece. I’m very happy with the progress I’ve made, and the things I’ve achieved, but there was the question of: what next?

Well I’m happy to finally be able to publically announce the next major change: as of June, I’ll be moving to NYC to work at Vimeo as an Application Engineer!


For months, I’ve felt the pull of the NYC tech scene. Between the meetups, hackathons and tech talks, there was so much to learn and do, but just out of my reach. So when I heard Vimeo – a company I always thought would be really cool to work for – was looking for PHP developers, I had to put my name in the hat. Plus getting to work in the IAC building in Manhattan didn’t hurt either, though the temptation to make every day a Food Tour adventure might.


As excited as I am to be moving to a place as full of opportunity and adventure as NYC, I’ll most certainly miss being so close to so many of my friends and family. Thankfully I’ve gotten nothing but support and encouragement from everyone I’ve told, and I can only hope that they’ll use my move as an excuse to visit the city more often.

Now I just have to figure out how the hell I’m going to top this next year…

How To Destroy Your Web Server and Ruin Your Night

You could say I have a fairly healthy interest for the systems admin side of tech. I wouldn’t say I’m an expert, but I think I could get by as an entry to mid level admin. Though that certainly doesn’t stop me from doing some colossally stupid things with my personal server(s).


As of right now, I have two hosted VPSs, including the one that this blog runs on. This server is supposed to be my “production” server, so it’s as locked down as I can make it, with only the necessary services running. Beyond that, the next cardinal rule of managing a production environment is testing software updates somewhere else before you run them on the production machine(s). Even though I’m fully aware of this rule, and of the possible ramifications of not following it, I’m usually – read: always – too lazy to test updates on a mirrored environment first. Cue ominous music.

That feels about right

That feels about right

The Incident

Yesterday before I left for the gym, I decided to log into my server and run, just like I do every couple of weeks, probably the most dangerous command I have in my bash aliases.

alias update='sudo apt-get check && sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get autoclean'

A command that I’ve run hundreds of times without incident, until now. After running the command and clearing my terminal, I went through my typical cursory check of this site before heading out to the gym.

Pictured: Brief confusion, before panic sets in.

Pictured: Brief confusion, before panic sets in.

No. F$@KING. Way!

Debugging – Panic Style

I was so confused, I failed to realize I was getting the default apache page, when…you know…this is supposed to be an nginx only box… I checked the site config files and “restarted” nginx and php-fpm a couple of times before I realized apache was somehow installed and running. I shut down the apache process, thinking it was just conflicting with the nginx process, but what I didn’t realize was that nginx was somehow uninstalled from the system!

Crap! Crap! Crap! Crap! Crap!

More investigation revealed that not only had nginx been uninstalled, but so had php-fpm! No wonder restarting though the /etc/init.d/ executables did nothing. What exactly did I miss?!


That would explain it…

This is what happens when you do this crap in a hurry! But no big deal, the configs all seemed to be intact, just install everything again and we are back in business. Right?

~ $ install nginx-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
nginx-full : Depends: libgeoip1 (>= 1.4.8+dfsg) but 1.4.7~beta6+dfsg-1 is to be installed
Depends: libpcre3 (>= 8.10) but 8.02-1.1 is to be installed
Depends: libssl1.0.0 (>= 1.0.1) but it is not installable
E: Broken packages

Wait…what? Why the hell are the nginx/php packages dependant on library versions that don’t exist or are uninstallable?!

Dreadful Realization

At that moment, I remembered something a friend told me a few days prior: Debian 7 was just released. Somehow I was trying to install packages in Debian 6, that had dependencies on libraries in Debian 7! But how?!

Now we add Dotdeb, a great resource for debian installs that provides bleeding edge packages for a stable and up to date LA(/E)MP stack. Update your /etc/apt/sources.list to include the repo:

deb stable all
deb-src stable all

Then add the GnuPG key:

apt-key add dotdeb.gpg

Adventures With Nginx and PHP


Using Dotdeb is very simple:

1. Add the main repository to your sources.list

Depending on your distribution (Wheezy or Squeeze), add these two lines to your /etc/apt/sources.list file (you can also choose a mirror near you) :

deb wheezy all
deb-src wheezy all


deb squeeze all
deb-src squeeze all

2. Options

If you want to install :

  • PHP 5.4 on Debian 6.0 “Squeeze”, add these two lines too :
    deb squeeze-php54 all
    deb-src squeeze-php54 all

Dotdeb Instructions



 Cleaning Up My Mess

It’s not such a big deal to screw up, as long as you can fix it, right? Well that’s what I’m going with here.

I followed Dotdeb’s (updated) instructions to specify the version of Debian I was using, and tried to install stuff again.

The following packages have unmet dependencies:
nginx-full : Depends: nginx-common (= 1.4.1-1~dotdeb.0) but 1.4.1-1~dotdeb.1 is to be installed

What a nightmare! Thankfully one that isn’t ridiculous to work through. After running

sudo apt-get autoremove

I was finally able to successfully reinstall all of the packages I accidentally removed

Woo hoo!

Woo hoo!

Word of Warning

While I was writing this post, and further investigating what happened, I discovered that there is something…strange with the Dotdeb PHP 5.4 packages. I would not recommend using them with Debian 6 (squeeze) just yet, especially if you want to install PHP extensions like mcrypt or suhosin.

If you end up with issues installing PHP extensions you’ll want to find out what PHP components you have installed that are 5.4, and remove them with apt. In a similar setup as mine, you’ll want to remove php5-fpm and php5-common to clean up all of the problematic components.


After that, you should just be able to install PHP 5.3 along with whatever extensions you need!

Meals For The Lazy Lifter – Basic Meat & Veggies

Ain’t Nobody Got Time For That

I cannot begin to explain to the uninitiated how much my new health-conscious lifestyle eats into my free time (probably as much as I used to…eat). It is So. Very. Easy. to just get some takeout after the gym, or some crappy frozen meal you throw into the microwave for a few minutes. So easy, but you won’t get very far with that, at least I didn’t. If you want to keep track of what you are eating so you can actually lose the fat/weight, the easiest way to accomplish that is to prepare and weigh everything yourself.


Post-workout nutrition can get…messy

The main problem with cooking your own meals, other than the skill typically required, is the time. On a good day I feel mind-warpingly lazy when I get home, much less after being in the gym for 2-3 hours. Compound that with the intermittent fasting protocol I’ve been following, when I get home at 9 I am in no mood to prepare a complicated dinner. Then you factor in my “cooking” skills and I am left eating dinner at 11, not exactly my ideal night.

no time

What she said

So what is a ravenous, health conscious, big lifter to do? Stick to the basics!

Planning Is Your Salvation

Same as with your workouts, if you want to get through this while keeping your sanity intact, you will have to plan and prepare! I have found picking a day, and preparing a week’s worth of food is usually the best strategy. That way you can eat fresh food, and not have to spend an insane amount of time on preparation. The question now is what the hell to buy and prepare. If it wasn’t obvious from the title: a crap-ton of meat and vegetables!

meat & veggies

No time to screw around here!

What you are seeing in that picture is almost eight pounds of beef tenderloin, along with ten pounds of mixed vegetables. Something that for me, will last about a week. What I don’t have a picture of is the industrial sized package of boneless chicken breast to balance out my main food groups. However you accomplish it, get yourself a healthy amount of fatty meat (beef, lamb, pork, or a mix), and a bunch lean meat (chicken, turkey, bison). Once you’ve taken a decent chunk out of the local fauna, it’s time to set your sights on vegetables! You have tons of options, dependant on your preferences, not just on what to get, but also on where. When the season is right, I’ll go to the local farmer’s market and load up on a wide variety of veggies. If that’s not an option, whatever doesn’t look like crap at the grocery will do.


To get all of this raw material processed, you’re going to need a giant bowl, giant pan, two cutting boards (one for veggies, one for meat), ditto on knives, and a ton of space. Take care of the vegetables first, thoroughly washing them, then cutting them into decent size chunks to throw into the bowl. Easy right? SUPER EASY!

Now on to…butchering the rest of this meal

Depending on your cuts of meat, this might go differently for you. I really like the tenderloin since you can just cut it into steaks of whatever thickness your heart desires. The general plan here is to just cut up the slab of meat into more manageable portions. What “manageable” means is up to you, I tried to shoot for 16 oz steaks.

fresh steaks

Can you taste those sweet, sweet gains?!

The chicken is even easier; just take the chicken cutlets and cut them in half, removing what little gristle they make it out of processing with.


Chicken breast, the staple of weightlifters everywhere!

At this point, you should have a giant bowl of vegetables, and two heaping piles of meat. If you don’t…well, you should probably have locked up the dogs before you started this project. Whatever the state of your supplies, it is time to power on through to the seasoning part of this masterpiece. Some of you may want to experiment with smaller samples to get the seasoning right, which is probably smart. For the non-lameasses, like myself, just go into the spice cabinet and grab whatever herbs and spices smell good. With your seasonings of choice by your side, lay out one of the types of meat evenly in the giant pan you got earlier. Once the meat is laid out, spice to your heart’s content. I usually just coat all of the meat on one side with each of the herbs and spices, then add the super secret ingredient: tons of olive oil!

spiced chicken

Picture: Way more than 11 herbs and spices

If you have a basting brush lying around, use that to make sure all the pieces are well coated with the seasoning and olive oil.

portioned steak

Talk about easy access!

Final step in the prep work is portioning. Bust out the Ziploc bags and food scale, and start bagging the meat and veggies into single meal portions by weight. I went with one pound of meat per Ziploc bag, and same with the vegetables. It also helps to write the exact weight on the bag for easy entry into your food tracker.

Good Old Fashioned Barbecue!

There are, of course, plenty of ways to cook up the meal. Personally, I greatly prefer cooking all of my meals on the grill. Mostly because there is little to no cleanup afterward.

Cleanse it with fire!

If you’re still following my lead: while the grill is heating up, go ahead and grab a bag-o-meat and a bag-o-veggies out of the refrigerator. There is still a little more to do with the vegetables to get them barbecue ready, so grab some of those tasty herbs and spices again, along with the olive oil and aluminum foil. Cut a healthy length of aluminum foil, and dump the vegetables out into it.


Now season them to taste – which for me was in a very similar fashion to the meat – and dump in some olive oil. Then roll up the foil, and crease the edges to make it into a semi-sealed pocket for the veggies to ghetto stir fry in.

sealed vegetables

Mmm way better than a burrito right?

Hopefully the grill is nice and toasty by now, somewhere around 500 degrees fahrenheit preferably. If it’s ready, throw your speed-meal on the flames, and let the magic start. I’ll leave the details of the actual barbecuing to personal preference, just try to make sure you cook stuff enough that it probably won’t kill you.


If you weren’t hungry before (HA! Yeah right…) the smell will definitely fix that.

The Fun Part

Now that the work is behind you, time to sit back and enjoy the delicious fruits of your labor. Feel free to add some side dishes to spice things up. Sometimes I’ll cook up a half dozen eggs to go with my meal, or a few cups of rice, all dependant on my mood and what macros seem lacking that day.

Finished meal

Crap, now I’m hungry all over again!

Most importantly: make sure to take advantage all of that free time you just made for yourself! Which if you’re like me, means you get to go to sleep early! (WOO HOO)

Optimization WordPress Plugins & Solutions by W3 EDGE