I’ve accepted a position at Griddy, inc. as a Software Engineer / Data Scientist / Project Manager / every-other-hat-I-can-wear. I want to just quickly talk about why I’m so fucking happy to be working at Griddy and sort of what the future holds.

I’m unsure of what I can talk about with regards to NDA so I’m definitely going to err on the side of safety. What I feel confident in being able to say without breaking NDA’s is that Griddy is an REP (Retail Energy Provider) but it’s more of a tech company that happens to be an REP than an REP that uses tech. We essentially have a platform that’ll make delivering electricity to our members super simple, easy, and god awfully cheap. Like, 30% off your energy bill compared to every other competitor kinda cheap.

Quick side note: there are three parts to delivering electricity to a house: the generators, the power lines, and then marketing yourself to customers. Half the country is a “regulated” market where one company will do all three above & have a guaranteed monopoly granted by the government but they can only charge what the gov says. The other half of the country has “deregulated” energy where the first two parts of the equation are still monopolies w/ the government saying how much they can charge but many companies can “sell” the connection between the powerlines & the home. Kinda confusing? Basically, you choose who your utility provider is in deregulated markets… kinda.

Getting to it, I joined Griddy for a few reasons:
1) everyone there is fucking brilliant & entrepreneurs at heart.
2) people truly need this product and it isn’t available in the US
3) I firmly believe that autonomous technology + batteries + electricity will bring about the 3rd industrial revolution so long as energy prices are cheap. If energy isn’t cheap, no industrial revolution.

This company truly has the capability of transforming how 1/2 of all americans get there power. My hope & goal is that it’ll help facilitate cheap energy which will in turn put pressure to move towards EV’s & sustainable energy. I could go on for days, but the end result is that I’m skipping to work & loving every fucking minute of my 12 hour work days.

Shitty post without much more depth as to “why” any of those things are the way they are but that’ll be a post after we launch.

The outline

I don’t know if I’ve ever really outlined in a post exactly what I want the lawnmower to do & the steps

– 100% autonomous
– No wires needed to be installed
– Will mow in certain patterns (i.e. not a roomba going everywhere and anywhere)
– Will know if it can / cannot run over something
– Many safety features including stopping the blade if mower gets tilted
– Will be able to mow full yard in one charge
– <$4000 to build (Although I don't want to sell it, I would want it to be commercially available if possible) Optional: - opening / closing garage door to be 100% "don't need to do anything" - Some kind of tablet in kiosk mode where the user can select certain options Let's break the overall problem of how to build this machine into sub-goals & sub-sub-goals

  • Autonomous Electric Mower
  • Test

Autonomous Lawnmower

I recently posted how I’m going to begin building a 100% autonomous lawnmower. Currently, it seems like lidar technology is trying to make a huge break from the ~$5,000 price point to the $250. However, I think it may be worth it to try to build my own lidar. I’ll take some pictures & update as time goes on.


The responsibility to build

We have the responsibility to build the important things others are not building that fall within our domain of knowledge.

Almost all careers are dedicated to building: a teacher builds a child’s education, a cop builds a better community, and doctors rebuild broken bodies. Hell, capitalism arose because it’s believed that the people who build better should be rewarded more. Going one step further down the hole, all humans are are just builders; we’re ants who know how to build off of things we’ve already done.

But what happens when we see something that needs to be built yet no one does? In 2003 over 6,000 people died from falling off ladders and more than 30,000 people were injured. In 2009, 20,000 people across the globe died from mowing their lawn and 300,000 were injured. How fucking outrageous is that? 26,000 people!

356,000 people were either killed or injured from either mowing their lawn or falling off ladders. To put that into perspective, if you read Harry Potter’s Order of the Phonex & Sorcerer’s Stone then every single word would represent one death or injury… with 10’s of thousands of words left to spare.

Why am I writing about this? Because I’m a software engineer and I believe the technology has hit a point where taking the human out of the equation (and thus protecting them & giving them a better life) is completely possible. Using a combination of lidar, machine vision (deep learning for image recognition), and some electrical engineering, I believe I can build both a working autonomous lawn mower and, as energy density improves, possibly a drone to do the more hazardous activities of shoveling snow off roofs & gutter cleaning.

My issue is that I don’t really want to build all of this. The total bill could approach $10,000 (excluding my time), I don’t have a lawn, and it’s something that will have to be built over many many months with tons of “why the fuck isn’t this working!?”.

But I have to… it’s in my domain of knowledge, it’s exceedingly impactful, and if I don’t then who will? Even if I fail and someone finds a better way, I’ve at least pushed the envelope a little closer to potentially saving lives.


Learning New Things

I’m young, but I’ve had to learn a lot of new things quickly for either work or life. This should be a quick post, but I really wanted to describe what I think is an incredibly important, yet sorely overlooked, part of learning: being able to critique your own work.

This all started when my music teacher, a Juliard Alum, told a joke: the difference between Juliard and the local community college’s music department is that Juliard sounds F’ing horrible when they practice.

The punchline is that Juliard practices their mistakes (thus sounds horrible), but the local community college doesn’t understand what their mistakes are and thus never practices them.

If you’re practicing but cannot tell if you sound good or bad, then you need to take a big damn step back and listen to what is good and listen to what is bad. Before all else, understand that difference and do so until you can specifically understand each attribute of your performance and tell whether each attribute is good or needs work.

Then you practice the crappy parts over and over again until it becomes indistinguishable from the good you’ve listened to. Once you can’t hear the difference between the good and yourself, it’s then back to step one: train more to hear the differences. And then practice more.

Hopefully, once you’re able to critique yourself properly, you won’t actually audition

Donating gives a new heuristic on money

When I was 14 I started working at a mobile gaming company.  I was paid a grand total of $8 / hour and I was RICH!  Well, I was rich because 14 year olds don’t have to buy much & everything I did want was pretty cheap anyways (plus there was always christmas & birthdays).

The odd thing at the time was my heuristic on money started changing: I began pricing things not in dollars but in hours.  That chipotle burrito was fucking one and a half hours of my life!  The new tennis racquet?  25 hours!  That’s more than a day of constant working!  It gave me a certain appreciation for money that I had never had before that moment & gave me a certain respect to working.

This heuristic continued when I was working at in-n-out just things started getting a little bit cheaper.  That burrito became less than an hour, the tennis racquet started to seem like a good trade-off, and the xbox obtainable.  Cars, homes, and the “expensive” things in life didn’t seem feasible, but at least surviving didn’t look so grim.

Then I became a big boy… I became a software engineer.  It’s no lie that we’re paid exceptionally well to sit around & type some characters on the screen (and that’s in between joking with pod-mates).  Something changed in me as well: I started to absolutely disregard money.  I had no appreciation to its power.  Now, I’ve been investing in the stock market since I was 13 so I know the power of compound growth and I’ve been buying a lot of investments in spite of my disregard to money, but I still nonetheless sort of disregarded it.

Sure I thought about things in terms of “this would take me X hours to obtain” perspective, but it was on a much grander scale: that house across the street from my grandparents?  I could buy that in one year’s time (they live in the the middle of nowhere WI).  I could literally own a house in a year AFTER taxes.  I can get a nice car.  I can buy an xbox a day and still have some left over!  So all the sudden it just doesn’t fucking matter so why should I keep track of it?

One night I figured “I should probably donate some of this money otherwise I’m going to piss it away anyways”.  The next day, I sponsored a 16 year old kid named Emmanuel.  That was the day my heuristic started changing.

For $30 / month, you can give a kid in Africa a chance at a better life.  Thirty dollars.  That’s it.  To be honest, I sponsored him semi-apathetically; it’s not that I don’t care about him but it’s hard to care about the situation since I don’t care about what I’m giving away and I’m removed from the situation so I can’t see the impact the money is having.  I just shrugged and thought that I did my good deed for the day.

And then I went to lunch.

It clicked in me like that fateful day as a 14 year old: I didn’t price that burrito in terms of money, I priced it in terms of Emmanuels.  Once I did that, I had to brace myself… because here comes the big-ass fucking tsunami of regret.  The FitBit I bought I had just received a few hours prior? 5 months of giving a kid a chance.  That server I bought literally after an hour of debate?  more than a year of giving a kid a chance. The laptop I type this on? 12 and a half years of giving a kid a chance.  I SPENT ALMOST AN ENTIRE CHILDHOOD ON THIS!  Hooo Leee Fuck.

Dear younger Jacob: you fucked up.

I have two promises I’ve made to myself in life: 1) donate all my money after I die to a good cause 2) work like hell to push technology forward in an effort to improve everyone’s life.  I never really had a good barometer to see how I was objectively doing for #1.  Well, I do now.

Thanks Emmanuel.

Happy Kids



Clarification: I do not mean to say I cannot let myself live (I have the right to make myself happy first) but all those spur of the moment purchases now are subject to this new heuristic… and I know I’ll be spending a lot less here on out.

Hard vs Impossible

In Zero to One, Peter Thiel talks about the three different types of problems humans seek out: easy problems where the solution is quick, hard problems where it takes a lot of time & energy to solve, and impossible problems where no matter how much work is put in you’ll still leave unsatisfied & without an answer.  The goal of this post is to find a system where we can determine if a problem is hard or if it is impossible.

My first thought is in making sure we know what we want to do (to have a definite future, as per Zero to One).  In understanding exactly where we want to go, we can create questions in a tree-like fashion and answer in first principles.  Let’s say we want to build a 200 story tall skyscraper, our first question would be “how do we build a 200 story building?”.  Our answer may look something like “we need to build a building that has a large enough support for 200 stories, handle the immense wind-sheer, and build it economically”.  The questions then become “how do we build a large enough support for 200 stories”, “how do we handle the wind force”, and “how can we make this with a profit”.  Going with the first question, maybe we calculate the base needs to support 100 trillion tons.  From first-order principles, maybe we deduce that we would need something stronger than diamonds  or larger than the pyramid.  That means we are fucked and this problem is impossible.

This works when the final questions on the outskirt of the tree are easy questions but unfortunately sometimes they seem to be hard questions.  Going back to the question of “how do we build a large enough support for 200 stories”, what if there is no current way of supporting all that weight but, and this is important, it doesn’t seem to go against the laws of physics that there couldn’t be that large of a support.  Maybe it requires a whole new way of looking at supporting 200 stories, but physics doesn’t say it can’t be done (it’s important to distinguish “doesn’t say it can’t be done” rather than “it can be done”).  How do we come to the conclusion then?

The good news is that it seems all technology that make huge breakthroughs come from this sort of problem.  The bad news?  Sometimes it’s impossible to prove something can’t be done, even if it can’t be (P=NP is the famous example: no one has proven it can or cannot be done, but it’s assumed it can’t be).

So, we’ve come all this way and I think I have a pretty abysmal suggestion: let the problem peculate in your mind.  Every time a new suggestion comes up, try the new idea and if it doesn’t work then put it back in your mind.  Maybe after a few years if you can’t actually figure it out should you stop thinking about it altogether.  What a let down of a post; I tried thinking about how to prove something can or cannot be solved, but everywhere I have counter examples and thus I’m not sure I can prove or cannot prove how to actually find a solution to a hard problem.


Creating a limited number of routines in Go

Pretty self-explanatory code to create 30 goroutines that’ll upload files as they come in.

Since channels are blocking, the goroutines will not stop until we finally call close(tasks).  I’m a little confused as to why the channels will not send the file to all the goroutines rather than just the one but it must be that internally it’s simply doing a round robin or something.  Not sure; I’ll have to look into that.

SO question here



I think I’m going to make this site more for myself; I have an absolutely horrendous memory & I’ll probably just make more of mental notes about programming principles that I can archive.  As time goes on, I’ll probably blog more about my life but this is for me and only me as of right now.