Francisco Soto Ramblings about code, life and stuff.

Body hacking and losing weight.
Oct 10, 2013

Holy sh..

The zombie apocalypse…

If we ever are in the middle of zombie apocalypse I want to survive. I really do.

Do you wake up in the morning, walk to the restroom, look yourself in the mirror and wish you could lose those extra pounds in the belly? I do.

I never really thought seriously about dieting or going to the gym. A diet was a horrible prospect, I never really liked the idea of going on a diet and I even prided myself on how I could eat without any remorse. Not to say you should have any, of course, unless you ate like me without any care or regard to health or my body.

Maybe I never ate very badly or maybe because I am on the tall side I never really looked incredibly overweight but I have been heavy. The highest weight I recall from weighing myself was 227.07 pounds (103 kg) and I am 5.87 feet (1.79m) tall.

Not much of a chance on surviving

Life in San Francisco

Life in San Francisco has helped me though although many people thought that because all the food and restaurants I would become even heavier. I thought so too. But living in this city encouraged me to walk more for several reasons like that owning a car is hell, the weather is awesome, the city is beautiful. There are some parts of the city that aren’t so great but walking around is a great activity to do in this city.

Of course this helped a lot with the little extra me I had been carrying around. Moving here and being around for a while brought my overall weight down to 205-210 pounds (93-95 kg) and my terrible fitness level improved just a little bit.

But this certainly wasn’t enough.

Other random exercising experiences like riding bikes or hiking literally brought me down on my knees more than a few times so I decided to take action.

Tiny chance of survival


One book that really gave me a lot of very good pointers and was very helpful in all this was The 4-Hour Body: An Uncommon Guide to Rapid Fat-Loss, Incredible Sex, and Becoming Superhuman by Tim Ferris.

It is a very good book and the diet it proposes for weight loss works and is relatively easy to follow but you have to be very strict about it. I tried a couple of times but didn’t really followed to the letter and that messed up the results. Even the tiniest detail like keeping the sugar in the coffe, my mistake, can and will stop you from getting results.

The diet presented in the book has the following points:

1) Avoid “white” carbohydrates.
2) Eat the same few meals over and over again. (The book has a list of the permitted meals)
3) Do not drink calories.
4) Do not eat fruit.
5) Take one day off a week.

The day off makes this diet particularly appealing since you won’t be giving up on whatever calorie packed food you love forever. You can eat it on your day off along with anything else you want.

Another diet, or life style, I read about was the Paleo Diet which is very similar to the one in the 4 hour body, except they eat fruits, avoid legumes and don’t have any cheat day. The rationale behind this eating style is that the body hasn’t really evolved for modern eating. We haven’t evolved yet to eat and process grains very well, nor we didn’t have domesticated cows or animals till very recently by evolutionary timeframes. So they basically promote a diet in the style of our hunter/gatherer ancestors.

You should eat meat, poultry, fish, eggs, vegetables, fruits and nuts. Avoid grains and all their derivatives, dairy, legumes and everything that is processed.

Almost there...

I choose…

I ended up doing a combination of both. I do not consume grains, dairy, processed food, potatoes (high carbs) and legumes as recommended by the Paleo diet, but I also do not consume fruits as the 4-hour body diet suggest. The reason I avoid fruit is because of the sugars they contain which do not help with weight loss. Once I get to a body weight I am comfortable with I will resume eating fruits. I also have a cheat day but I take it every two weeks.

It sounds harsh but in reality it isn’t that bad. I love meat, chicken, turkey, pork, eggs and vegetables along with them. I also drink a lot of water, this is a must as well.

My meals usually are:

  • Breakfast: Eggs and some vegetables or a couple of slices of organic bacon.
  • Lunch: Either meat, poultry or fish and a lot of vegetables.
  • Dinner: Either meat, poultry or fish and a lot of vegetables.

I drink only water and unsweetened coffee.


I also started going to the gym to improve cardio and hopefully to keep and develop some muscle along the way.

I bought myself a Fitbit Flex and a Fitbit Aria Scale to help me track my activity, weight and body fat percentage. I love Fitbit products. I also use their website to track what I eat and try to keep my planned calorie deficit. You can take a sneak peek at my profile here.

What I do in the gym is basically treadmill/elliptical trainer for cardio and BodyPUMP classes for a bit of strength training.

The results

I can certainly say that I am shocked by the speed with which you can achieve fat loss if you commit to a healthy eating style. I always disliked all the products that promise easy/fast ways to lose weight because they are just trinkets to help people feel better and we buy them because we want easy solutions to hard problems.

But, it is not that hard. It may feel like a sacrifice in the beginning but once you start seeing the results in the mirror and start feeling great it won’t feel like it anymore. You will do it because you enjoy it. If you use a product like Fitbit’s Flex which add goals and keeps tracks of what you do you can even enjoy it as a game of sorts.

I am not quite there yet, but let me show you my results. The picture from the left was taken on August 31th, 2013. The one on the right was taken on October 7th, 2013.

Almost there...

What do you think?


I am a rocket scientist! Kind of.
Aug 07, 2013

Affordable Access To Space

So… Mexico

In my last post I wrote we were going back to Mexico. That was the plan, really. I even put my vacating notice with my land lady. But two days after I did that I got a very interesting message in Careers StackOverflow. The subject of the message was: “Interested in programming for space?”.

Yes. That was the subject line.

The content of the message wasn’t very long. It was only a couple of paragraphs. The first saying what they do, satellites, and the second about what they need: a low level programmer for the satellite’s code.

How can you say no to something like that?

Enter NanoSatisfi

I did. Or at least I tried. I had already made my mind that I wasn’t going to look for another job for a while. I didn’t want to rush into things. I wanted to take time off, relax and think what is it that I truly wanted to do next. So I gracefully declined.

But, really. Who wouldn’t be interested in programming for space? Really, are there people out there who would truly say no to such thing? Certainly not me. I said no but I couldn’t shake the idea off my mind. So I researched about NanoSatisfi and what they stood for.

Quote from one of their videos:

Now imagine if tomorrow your child comes home and says: “Mom, today I controlled a satellite in space.”

Peter Platzer

That is definitely something I would love to be a part of so I wrote back to them.

The company is doing something great that I love. They are a small startup and thus reached out to me looking for a developer who can work in any part of the stack (web, database, backend, api, embedded) but clarifying that my primary responsibility would be the embedded software close to the metal. So close you can actually taste it. So it is basically a broad range of roles, technologies and paradigms to play with; it is very hard to get bored. If you are bored or tired there is always something else to do.

So we had a call, I went there to interview for a day. They were happy, I was happy and so they presented and offer and after the usual back and forth I accepted it.

Now I do satellites for a living!

I’ve been here for four days and I am loving it. The first generation satellites were just launched from Japan. And I am hard at work with the second generation. So far I’ve tested one of our new boards and been playing with two microcontrollers we are going to use.

There is a beautiful and challenging simplicity in diving into microcontroller data sheets, following PCB schematics and trying to understand them, working with tiny operating systems and trying to squeeze maximum performance and memory savings into the code.

I can’t wait to have my code go into space at the end of this year!


Back to Mexico
Jul 16, 2013

Graphs, graphs, graphs!!!!

The whirlwind

These past months have been rough. Changes, adjustments, moving, going, returning. At the end of 2012 I resigned from my job at INgrooves and went back to Mexico for the holidays not knowing for sure what to do next. I was torn between two choices: looking for a new job in the bay area, get an H-1B transfer and stay or go back to Mexico and do something different. Maybe something on my own.

Since my wife and I had only lived for one year in the bay area we decided that it was too short a time frame to live in such a place. We did many activities, went out and met people; it wasn’t enough. We felt like one year was not good enough and staying would bring more experiences and joys.

I started looking for a job.


Sometimes things just don’t work out.

I worked at Expensify for four months and nine days and then I quit. I love the product I think I really hit it off with a lot of the people and had a great time hanging out with them but I somehow never felt like I fitted in their engineering culture. I tried -and so did they- to make it work but we had some irreconcilable differences and I decided to part ways. It wasn’t fair for them or for me. I thank them all for the home they gave me in this tiny amount of time.

And now I was back to square one, what’s the next step?

I didn’t thought it that much but I decided to apply to Google.


This wasn’t actually my first rodeo. I interviewed with them about two years and a half ago and failed on the second phone interview. I had a severe gap in my graph theory knowledge and the question they happened to ask was very easily solvable with it. I took a few stabs in the dark but failed miserably. This was entirely my fault, I didn’t really prepare for said interviews even though they are famously hard.

After that I made sure I solved the problem they gave me in several ways and tried to fill the gaps I had, not only the graph one but all that I could find, which are many, on computer science that started rusting with the years. I am very happy, these past two years I’ve learned and re-learned many interesting and useful things. Plus some others that had been in my “I need to do that someday” list, like learning Lisp.

But I digress.

This time I prepared really hard for the interview. I went back to the basics. I took my algorithms books (this, this and this), and when through them. I also went through some other nice reading material like Operating Systems Design and Implementation and The art of multiprocessor programming, plus Wikipedia and whatever other helper material I found on Google. I spent two weeks of very intensive studying/rehearsing.

I produced a lot of artifacts during this sessions and I put a lot of effort into actually understanding exactly what was going on in everything I wrote as opposed to simply translating the code/pseudo-code from the books into my favorite language. I made sure I understood the why’s and the how’s, I cross referenced literature, tried different approaches, plus the years of experience under the belt kind of makes you see things in a new light.

And yet I failed. This time I didn’t even make it past the first phone technical interview.

The technical questions were really basic, or so I thought. I won’t disclose the exact problems but suffice to say they involved arrays and binary search trees. The interviewer asked me the question, I explained the straightforward solution, explained the complexity in the average case and the worst case, he then asked me for an improved solution that avoided the worst case and I came out with one fairly quickly, he said he liked that idea and asked me to implement it. I wrote an implementation of the binary search tree plus the functions needed for what we were discussing in C on a Google’s Doc document.

He then asked for the complexity of the solution which I responded and he seemed satisfied and he asked me how could we improve it even further, I made a quick suggestion that would make each insertion into the tree O( 1 ), in the context of this specific problem, and I modified the code to implement the suggested change. That was the last question.

I have to say here that I had a few typos in the code which I compiled after the interview. Things like sarch instead of search, ndoe instead of node, tre instead of tree and missed a condition in one of the functions I wrote. if (left > right) return; which I assume is the thing that made him decide not to proceed further.

The recruiter called me and said he couldn’t give much feedback so I will never be sure what was it that the interviewer didn’t like and this time around is not really clear what was it. I probably need to improve my Google Doc’s coding abilities.

The end result: I am probably not Google material.

Mexico it is.

And I don’t mean it in a bad way. I actually want to go back to Mexico. I know I could easily find a job here that would gladly get me an H-1B transfer but I am not really sure that is what I want to do and I do not want to rush into things. I cannot stay in the US for very long because of the revocation of my current H-1B, although I still have my visitor’s visa, and because living in San Francisco without having a job is almost next to impossible.

I want to go back, relax, do some fun stuff, write code just for the kicks of it, read as many books from my ever growing queue as I can and then figure out what is it that I want to do next. Find another job? a job outside Mexico? Work as a contractor and travel the world working from the remotest of locations? Start my own thing?

Who knows, only time will tell (and this blog when such time arrives).


Older entries... / Go up...