Thursday, July 17, 2014

How I was fired from Leadpages for standing up for their own self proclaimed culture principals (“no politics”, “no bureaucray”) – An Open Letter

Dear Friends,

I write this email to present to you some problems that have come up recently that have caught me by surprise. These are problems that I feel strongly about and that I feel could potentially prevent LeadPages from reaching its potential as valuable business software and services (as well as being a company that attracts great, innovative and entrepreneurial people). Problems that I was fired for taking a stance against.

With each additional outside manager that has been brought into Leadpages to “help” us work I have found myself less and less motivated and less and less productive. I felt that I was not the only one experiencing the change, but that others were afraid to speak up.

It was in February of this year that I was initially hired as a python web developer, but in the last 4 months I’ve written less than 1000 lines of python code for LeadPages. This isn’t because I haven’t wanted too (or am able to) — rather this is because despite the title I was given —  at the time I was hired the bottleneck for the development team was and still is templates (simple HTML, CSS, and some javascript coding). Having recognized the problem months ago — I ignored my title — and instead focused on what was (and still is needed). I mostly self learned the LeadPages template system and in the last 4 months have fixed many bugs and worked extra hours on many occasions toward release.

Additionally, I taught myself as many of LeadPages  systems as time has allowed (hat tip to Matous, Simon, Bogdan, Dave, Radu Dan and Ray for writing them). Recently I spent hours documenting what others would need to get started with developing their own LeadPages (such as development environments, and now v4 templates) – in the hope that more trained coders would ease the bottleneck. For the past few months, I have worked to reconcile the abilities of the builder and features of the templates — this having lead to some of the initiatives that have come with the creation of the new builder (migration issues, dynamic elements, etc…). On more than one occasion I have stayed up late at night and also worked weekends (at the request of my supervisor the Director of Product Development) to finish features on time. I say this not in expectation of any fiscal compensation (Leadpages paid me well). I was happy to do each task as part of the work.

However, In the past few weeks I have felt that myself and others in engineering were losing all autonomy – the departure of Director of Product Development (on vacation for a week) lead to a reimplementation in the way work was done by the VP of Engineering  — and these changes are why I started to feel unhappy with the way things were developing. Upon Director of Product Development’s return all of the “new” practices stayed in place. Having heard of some of the VP of Engineering’s plans months ago (I dismissed them as I thought they would never see the light of day) – as they grew I saw no end in sight to the growing bureaucratic process continuing to be further implemented. The problem with slowing development (as I saw it) was that we didn't have enough coders to write all the code that needed to written and debugged.

There is an old saying that “companies will eventually be controlled by those who can stay awake in meetings the longest”.  My hope is that LeadPages is never such a company — but there is no certainty that it will not be – and now appears headed on that path.  This past week I made a few decisions: to work on resolving a builder translation problem, and to write documentation for the developers that will be writing templates in the future. These were a continuation of working on the same bottlenecks I and others in the development team have worked on for months to resolve (as well storing what I’d learned in a way that others could use it). Following each of these decisions I was scheduled into meetings by the VP Engineering to explain my actions. I was also told to “not get too far ahead”. This past week my fellow developers also learned that changes to the way we work will now lead to a centralization of all tasks (this executed by the VP). None of the meetings I was scheduled were necessary (I had already arranged to contact the people relevant need to talk to fix each issue). Add to this everyday morning meetings (along with the additional company meetings), and the meeting you have to have when you're done with any work or starting on anything new -- all left me feeling micromanaged — all while we were facing an upcoming release -- which lead to an exchange with with the VP of Engineering (which I regret was public). My confusion lay in the fact that part of the LeadPages’ pitch to me upon my employment was “no politics, no bureaucracy”. This top-down controlled workflow – was however the opposite of this principle – and lead to my losing intensity and passion for the work — which I have sustained since my first months at LeadPages. I felt that others may be feeling the same way but were too afraid to say anything. One coder I overhead mentioned his nostalgia for the "old way" of doing things. I continued working on the same bottlenecks -- but had my permissions removed on the documentation that had been under progress for over a month (work I was doing that was approved by my supervisor the Director of Product Development).

LeadPages has by far the best business model of any company I have worked for. Lead Pages’ CEO Clay Collins decision to move to build a marketplace is additionally a powerful play — one I strongly supported (and still believe in). Its known by some as the tower and moat strategy ( Its an especially powerful move, because if an ecosystem can be built it will make it very difficult for others to “copy” LeadPages because they won’t be able to copy the ecosystem.  Yet, I feel strongly that if the process of communication and development continues along it’s recent bureaucratic developments — it will be very difficult to convince developers to join that community and maintain the pages and programs that will keep it thriving. This is precisely because software that requires decisions in meetings to get built is not accessible. It has been my goal to bring my experience of using successful ecosystems (Amazon’s Cloud and Elasticsearch) into the type of experience people get using lead pages. I believe in accessibility — in its power to build emergent ecosystems — and is my hope that that LeadPages will have marketplace that will enable anyone with an internet connection,  time and knowledge to build something that can fix a problem they see in their world or in their company. That accessibility doesn't just appear -- it is grown within.

I was informed of the change today. There's really not much more to the story as for cause of my departure (though you should always hear both sides of the story). I was in process of writing my side when I was informed (I had intended to wait until after the release) -- but things happened.

To my friends – I appreciated the opportunity to work beside you and with you and more specifically:

To Jason: My hope is that you will be given recognition and management responsibilities for the leadership you have already shown in developing the builder.

To Chase: I think the design of the builder is not just great – its brilliant. You are (to me) the most influential front-developer I have ever worked with.

To Donovan: I was always kind of suspicious to me that you always brought Donuts (after all Dexter always brought donuts and he was serial killer) but I learned that you are also a great javascript developer (and have taken to learning angular because of how highly you spoke of it). I will in the future speak angular (and then we can talk).

To Dave: I have the utmost respect for your abilities at python (and coding in general). You didn’t know this – but I always thought of you as the “Lebron James” of programming – without a doubt the most productive coder I’ve had the pleasure to work with.

To Nick: I learned about testing frameworks and I regret that I will not be able to work with you more on them. You may have to “become me” sooner than you thought. Also, if we should run into each other -- remember that I like poker stories where you don’t tell me the result (rather setup the moment of decision)

To Pushpa: We didn’t work together long – but I learned a few neat testing tricks from you in the short time .

To Kayla: I was pleasantly surprised by your coding potential – and strongly felt that you have the ability to continue to learn many more coding concepts and tricks – be it producing single pages or much larger websites.

To Ray: As I said before – it was an absolute pleasure working with you.

To Max: I always felt more secure with you around – it’s a feeling like there wasn’t a hack you couldn’t reverse engineer and counterattack.

To Clay: I have a great admiration for your abilities as a marketer and whenever you spoke about marketing – I often left learning something new and exciting.

To Simon: You didn’t know this but when you interviewed me I had trouble understanding your accent. On one question you asked me (about proxies or something  -- ray later told me) I had no idea what you asked but didn’t want to ask you to keep repeating yourself. I answered in a general manner about emailing app engine to see if they could fix it (and surprisingly this was the answer that lead ray to want to hire me).

To Bogdan: I regret that we never got to work closely together as our statistical interests (I suspect) would have meshed well and perhaps lead to program that could write itself.

To Kevin: I loved your stories -- and I could probably learn a lot more from you at lunch or something.

To Jeff: Your videos are lightyears of above the competitors and hope someday to see you on a commercial as the new "micro machines" guy.

To my enemies (you know who you are) : enjoy the bureaucracy. I can you tell that my departure was not decided by Ray or Clay (or any others mentioned in my thanks).

I have but one final favor to ask of friends, and that is for a show of support in this time of transition – not for me – but for my wife. She is feeling that our security has ended -- and is very anxious.

I, however, feel that no man in this world is truly fired who has friends and if you have anything that would help to reassure wife (and are willing to leave a comment) I would most appreciate it.

With Sincere Regards,

P.S. I am uncertain to what precisely what I will do next. If any of you have suggestions – or just wish to email me – I’m available at . I’m not acutally unemployed as I have 2 ongoing software projects I have been contributing to for the past few months on nights/weekends that have been requesting further work from me – but I do have some open time for other considerations. I should also mention that my wife is 5 months pregnant so I must act in this regard -- to secure her confidence -- of a healthy pregnancy and labor.

Sunday, March 3, 2013

Be Three For Awhile

We sing songs
of animals and dinos
And make up sounds
for giraffes and rhinos
Though you want to babel on the phone
Put pasta in a pot
and boil it on the stove

You'll get your chance
at the grown up dance
Backwards though--we never go

Just be three for awhile
Just be three for awhile...

We play games for fun
like hide and seek
You spot my feet
sticking out beneath the sheets
Though you sit up by the wheel
and practice driving
where you feel

You'll get your chance
at the grown up dance
Backwards though--we never go

Just be three for awhile
Just be three for awhile...


Charlotte at Two

Charlotte at One

Charlotte Jane

Saturday, March 3, 2012

Charlotte at Two

Two's a crayon in your hand
drawn on paper and then
It's a tent on the floor
a half eaten apple core

Just a game of pretend
hear the lion roar
Two is dancing
and asking for more

One is all gone
Two is just one more
Learning patience
like a dog by the door

Two is movies and lists
Annie, Pippi, Spy Kids
Picking up the remote
hearing Elmo's song notes

Just a game of pretend
making ducks quack
Two is climbing for rides
up on daddy's back

One is all gone
Two is just one more
Learning yes and no
Reading Go Dog Go

Next year, maybe thank you and please
Learning--waiting--counting till three

Charlotte at 1

    Charlotte Jane

Sunday, January 1, 2012

My Inner Sponge


UPDATE: 1/1/2011 Same trimester and same craving. The mysterious "sea sponge" craving has resurfaced two years later(the baby is due in early march). Here's what happened last time:

My wife has had an unusual craving recently which coincided directly with the beginning of her third trimester of pregnancy. She has had an intense urge to drink water using a sea sponge as a filter. As far as pregnancy cravings go this is one of the more unusual ones, however a simple Google search revealed that the urge to chewing on sea sponges is actually one a small population of people around the globe shares.

There are plenty of potential reasons why she may be craving sponges, but none of them mattered as we headed out in search of a place that sells sea sponges. Emma had been chewing on synthetic sponges for a few weeks but began to crave the real ones. "We'll find one" my wife assured me as we headed out in search of the elusive sea sponge. Being that we live in Minnesota I was not optimistic that we would, but America has instilled in my wife the sense that anything is out there for purchase, you just have to look hard enough. My first bright idea was to stop and Wal-Mart and Target. They have everything....everything but real sea sponges of course. Damn. "The pet store, they sell fish supplies, I'll bet they have sponges." I said. Emma reluctantly came in and looked around. We found lots of coral and things to make a fish tank look good except of course sea sponges. "Let me have the keys," she said. "You don't think I can find a sea sponge." I replied. "It's not that, I just want to wander." she said as she hopped into the drivers side. She seemed uncertain of exactly what direction she wanted to go, but suddenly took a turn east. We were driving through Apple Valley, a local city with numerous big box stores and mini mall shops. Suddenly she took a left, "There, there's where we'll find my sponge." She was heading toward Bed, Bath, and Beyond. "It's here I can feel it." she said to me as we parked and headed inside. She seemed to know exactly where she was going and went directly to the section where she found her real sea sponge for $14.99. I had to laugh at the fact that we had really found one, and we had done so by wandering.
Now that she's had it for a week the craving has been satisfied and perhaps because of the sea sponge and perhaps coincidentally the baby has undergone a huge growth spurt this past weekend. I don't know why. I also don't know the exact reasons for the craving. Some ideas include:
1.Sponges have medicinal potential due to the presence in sponges themselves or their microbial symbionts of chemicals that may be used to control viruses, bacteria, tumors and fungi

2. The sponge is consumed for calcium as Calcerous sponges are made of calcium carbonate

3. The sponges is used to filter water as early Europeans used soft sponges for portable drinking utensils and municipal water filters

4. 1,2, 3 are all wrong and I have no idea why my wife craved sea sponges

I tend to think 3 is the most likely and that perhaps the craving is a memory of a past strategic use(she is of European ancestry).

Our lives at many moments can become occupied by cravings, simple ones for sea sponges, or more complex. The strange thing is we live most of our lives in ignorance. We seek something out on a whim without knowing the "why" or the "how". We are only given the signal by our bodies, that may have a purpose and may not. My inner sponge is a representation of my survival through ignorance. Maybe it's better I don't know, as I'm not needed for chemical reactions anyway. I'd probably mess the whole thing up like my high school chemistry experiments(and in the body you can't just screw up and fudge the numbers at the end).

Thursday, October 27, 2011

Changes in American eating habits from 1980 to 2009

I'm learning the statistical programming language R at the moment. My goal is develop a second career for myself as a statistician for medical studies. In any case one of the practice data sets I've been working with documents the changes in American eating habits since 1980. The data comes from the 2009 Statistical Abstract of the United States.

Sunday, October 16, 2011

What will the Timberwolves look like in 2012

The 2011 NBA Season is passed. Dirk Nowitzki, Tyson Chandler, Jason Kidd, and the Mavericks proved they were the Big 3 and the Dallas Mavericks took home the championship in 2011. The 2012 season is delayed and like all NBA fans I'm eagerly awaiting tipoffs and poster jams, although I also side with what the players are doing. I'd much rather see them getting the money than the Scrooge Mcduck owners. The delay is especially disappointing because the Timberwolves look to be a much different team this year adding Ricky Rubio, Derrick Williams and head coach Rick Adelman. As I don't have anything but speculation to add on when the lockout will end I wanted to look back and ahead and take a look at last year and consider; Was Rambis a bad head coach? How was he bad and how will Rick Adelman be different? Will the 2012 Timberwolves be much better?

Kurt Rambis inherited a very young team constructed by David Kahn. Here are histograms showing the break down of Minnestoa Timberwolves' players Defensive Rating(Left) Offensive Rating(Right) .

Offensive and Defensive Ratings are closely related to points per possession and track how well players generate offense and play defense.

Interestingly the Minnesota Timberwolves team average Defensive Rating was 111 and team Offensive rating was around 106(marked with a X on the chart). Defensively the Timberwolves team defense allowed the rating of the majority of their players. Offensively the wolves scored at a level that only could have been obtained being carried by a minority of the players. This makes sense because when you're on offense your team decides who to go to and shoot the ball, while on defense you don't have this luxury. The other team is going to go to where you are weak(if they are any good). So the question came to me could Kurt Rambis ever have fielded a team with 5 good defenders?

Looking at the answer is no. The Wolves had only 4 players at any given time that posted above average defensive ratings(Darko Milicic, Kevin Love, Corey Brewer, Kosta Koufos) early in the year and Brewer and Koufos were swapped for Anthony Randolph late in the year. So at point guard, small forward and often shooting guard no matter what Kurt Rambis did he'd always be putting a defense with holes on the floor. Often he'd play Corey Brewer at shooting guard to try and compensate but I believe this was a mistake. Why? While I have yet to crunch all the data I have a working idea(based on preliminary data) that it takes 5 to defend and if you can't put out 5 above average defenders on the floor its better to just go with the best offensive player, which brings me to my second point.

I analyzed data from to answer the question: What was most likely to get you the most playing time for the Timberwolves under the Rambis and David Kahn regime? I looked at 9 different stats

  • Offensive Rating(ORtg)
  • Defensive Rating(DRtg)
  • Salary(Sal)
  • Effective Field Goal Percentage(eFG)
  • Total Rebounds(TRB))
  • Assists(AST)
  • Steals(STL)
  • Blocks(BLK)
  • Turnovers(TOV)

I did some fancy stat stuff in R that you can mostly ignore while still understanding the conclusions of the analysis. Basically I found which of these stats mattered in a model where A+B = Minutes Played and A and B were these 9 factors. Ignore everything but the stats with '*'

What most influences minutes played and how(Table 1)

Estimate Std. Error t value Pr(>|t|)
(Intercept) -15894.01 48224.03 -0.330 0.7514
ORtg -18.94 42.75 -0.443 0.6712
DRtg 141.99 415.42 0.342 0.7425
Sal 353.80 140.70 2.515 0.0401 *
eFG. 3494.34 5139.56 0.680 0.5184
TRB. 94.35 169.76 0.556 0.5957
AST. 41.65 34.62 1.203 0.2680
STL. 348.58 890.94 0.391 0.7073
BLK. 67.10 264.96 0.253 0.8073
TOV. -95.24 72.43 -1.315 0.2299

ANOVA-Is the table 1 model reliable? (Table 2)

Response: MP
Df Sum Sq Mean Sq F value Pr(>F)
ORtg 1 3276048 3276048 9.5740 0.01746 *
DRtg 1 223150 223150 0.6521 0.44592
Sal 1 3144386 3144386 9.1892 0.01908 *
eFG. 1 482732 482732 1.4107 0.27367
TRB. 1 4168 4168 0.0122 0.91521
AST. 1 91002 91002 0.2659 0.62195
STL. 1 1033 1033 0.0030 0.95773
BLK. 1 24972 24972 0.0730 0.79484
TOV. 1 591711 591711 1.7292 0.22995
Residuals 7 2395275 342182

Ok, good did you ignore everything but the stats with '*' ? If you didn't let me summarize the tables. The first one says that only one of the 9 factors was likely to get you playing time : Salary. So what that means is that the amount minutes a player played on the Minnesota Timberwolves was mostly influenced by the salary he signed on his contract. This means that the problem with the lineup was either

  • A. Kurt Rambis was unable to bench highly paid players that performed badly
  • B. Kurt Rambis believed the highly paid players played well

All this goes back to a point I'd like to make, setting players salaries(and relative status on the team) is probably more important than having the best coach. Who set the salaries for the Minnesota Timberwolves? Mostly David Kahn but it wasn't all his doing, as many of the contracts were inherited or are set by the rule of the league(like rookie contracts). Kurt Rambis it seems did not have the power to overcome the status of the players that was pre-set. But if you're reading this and think Kurt Rambis has been vindicated as a head coach, you're only partially right. Take a look at the second table. There's a little * next to ORTG which means that it's likely that Offensive Rating in the first table is likely to be an accurate result. Here's where Kurt Rambis vindication goes away: the model says that the higher the offensive rating the LESS likely you were to get minutes on the Timberwolves. Here's my thoughts on why this is.
Rambis came from the Lakers where he was in charge of defense. When he came to the Wolves he had the sense that 'defense' wins(and it can) although in the Wolves case it was impossible to put an above average defense on the floor with the Timberwolves players in 2011. So in the end Rambis appears to be bad at coaching an offense. This was disguised while he was assistant coach with the Lakers because I suspect he had little say on offensive matters. Is Rambis a good defensive coach? Quite possibly, but it's hard to tell with the Timberwolves players. Rambis was fired and the Timberwolves hired veteran coach Rick Adelman.

Rick Adelman comes to the Timberwolves from the Houston Rockets where he led them to a .500 or over records in all his seasons. I asked the same questions about Rick Adelman that I did of Kurt Rambis. What were significant factors in getting you minutes on the Houston Rockets in 2011? Below are the models.Again players are evaluated on

  • Offensive Rating(ORtg)
  • Defensive Rating(DRtg)
  • Salary(Sal)
  • Effective Field Goal Percentage(eFG)
  • Total Rebounds(TRB))
  • Assists(AST)
  • Steals(STL)
  • Blocks(BLK)
  • Turnovers(TOV)

Ignore everything but the stats with '*'

What most influences minutes played and how (Table 3)

Estimate Std. Error t value Pr(>|t|)
(Intercept) 28542.291 34190.417 0.835 0.423
eFG. 2681.085 7133.429 0.376 0.715
TRB. -102.565 120.497 -0.851 0.415
AST. 17.138 39.575 0.433 0.674
STL. -534.994 670.391 -0.798 0.443
BLK. -227.702 256.435 -0.888 0.395
TOV. -77.963 78.400 -0.994 0.343
ORtg 8.044 46.585 0.173 0.866
DRtg -249.472 294.233 -0.848 0.416
SAL 146.081 76.973 1.898 0.087 *
Multiple R-squared: 0.6227, Adjusted R-squared: 0.2832

ANOVA(Table 4)

Response: MP
Df Sum Sq Mean Sq F value Pr(>F)
eFG. 1 3754126 3754126 5.8502 0.03614 *
TRB. 1 1079287 1079287 1.6819 0.22380
AST. 1 75663 75663 0.1179 0.73842
STL. 1 52118 52118 0.0812 0.78147
BLK. 1 2528 2528 0.0039 0.95119
TOV. 1 2188235 2188235 3.4100 0.09457 *
ORtg 1 247285 247285 0.3854 0.54864
DRtg 1 881875 881875 1.3743 0.26825
SAL 1 2311247 2311247 3.6017 0.08693 *
Residuals 10 6417089 641709

Remember, Ignore everything but the stats with a '*' . Ok, so again in table 1 we find that Salary was a significant factor for getting mintues. Although on the Houston Rockets in 2011 Rick Adelman appears a little less likely than Rambis to be bound by salary(.08 vs .04). Moving on to the second table we find some differences of coaching style. Both Effective field goal percentage(eFG) and turnovers were significant factors along with salary in determining playing time. Basically Rick Adelman is more likely to play players with a high shooting percentage and bench players who turn the ball over. So who is likely to benefit from this change of coaching style and whose minutes are most likely to change under Rick Adelman?

The table below ranks the Wolves players according to Adelmans style(based on eFG and low turnovers) and Rambis based on who gets paid the most or is most trumped up by his General Manager(Wes Johnson)

My prediction is the hiring of Rick Adelman bodes well for Martell Webster and Derrick Williams and creates a problem about playing time between Michael Beasley and Derrick Williams. In fact I suspect that a BIG part of the reason Adelman signed with the Minnesota Timberwolves for 2012-2016 seasons was that Houston was really high on Derrick Williams. If you do a search for college players that posted the best NCAA effective field goal percentage with win shares over 8 in the last 10 years here are the top 12 names on the list :

Why did Adelman come to the Timberwolves? The 2012 Timberwovles have 3 of the top 12 players for Adelmans favorite player attribute. I wouldn't be surprised at all if Rick Adelman starts a lineup of Ricky Rubio at point guard, Martell Webster at shooting guard, Michael Beasley at small forward, Derrick Williams at Power Forward, and Kevin Love at Center. What do you think the 2012 Minnesota Timberwolves lineup will be?

Thursday, September 1, 2011

NBA lockout thoughts: Stern and Fisher analysis

I follow the news from the NBA lockout once in while and caught two interesting statement's from both the leaders of the players and owners David Stern and Derek Fisher.

 Worried anyone?


"It was a very engaging meeting," said union president Derek Fisher of the Los Angeles Lakers. "We didn't waste a lot of time at all. ... We, kind of as a group, agreed to really continue just focusing on getting the deal done and really try to stay away from the semantics and the verbal jabs, the back-and-forth, and really try to remain focused on the deal points."

We know what we're holding and we know what you're holding.

Neither side would commit Wednesday to a deadline for getting a deal this time that would preserve the entire 2011-12 schedule. Working up to or soon after Labor Day would seem to be vital -- but no one said that, either. "There is clearly enough time," Stern said. "We don't have any deadlines in mind. We just have meetings in mind and discussions in mind." Said Fisher: "We have not tried to set a ... particular date and increase the urgency that's already there. I don't think either side feels that that's needed. There's enough pressure as there is." What's a realistic turnaround time from handshake agreement on a new CBA to NBA basketball in one form or another? "Guys are continuing to work out and train, and prepare themselves for the season to start at any time," Fisher said. "Players are physically and mentally prepared to handle [any] circumstances."

In the first statement Derek Fisher uses the qualifier "kind of" when describing the players and owners as a group. This tells me that the group is fractured. I think it means the players have agreed to focus on getting a deal done(the owners haven't). The owners are willing to wait it out. Put another way, the median NBA owner(15 out 30) is willing to wait longer than the median NBA player. Looking at the second statement Derek Fisher uses an extended contraction "We have not" when talking about whether they have set a deadline for getting a deal done. This tells me that the players have discussed a date where they'll accept a lower offer(while of course they haven't discussed this with owners).

My prediction is the NBA season will start after a few months of lockout with players taking a bad deal because most of them aren't prepared to go a whole season without basketball. Right now the players should think about sending Derek Fisher to acting class because to anyone observant enough Fisher is giving away their position. Right now I feel the NBA owners win this fight.

This could change if the players Union was to focus and pool it's savings  to ensure that it maintains a majority of the players committed to going a whole year without basketball and aggressively pursuing contracts in other leagues(and also making sure Derek Fisher rehearses his public statements).