Since then, I:
* Moved out of my $3.3k/mo Manhattan apartment and bought a home for $200k in Western Massachusetts. Paid in cash so I no longer have to pay rent/mortgage. I feel like my time is much less "metered" now because my annual living expenses are so low, I can pursue things for fun without worrying about how much it's costing me in terms of time.
* Attempted to build a startup on top of a distributed storage cryptocurrency (https://blog.spaceduck.io/). Didn't work because the underlying platform wasn't mature enough yet, so it was more expensive and less reliable than centralized solutions.
* Attempted to build a business with a ML-powered recipe ingredient parsing service. Found out recipe apps aren't really willing to pay for it. (https://mtlynch.io/shipping-too-late/)
* Currently working on toy projects to sharpen my web development skills because I've found that part of my skillset to be a bottleneck with my previous projects.
The problem, as I discovered at promotion time, was that none of this was quantifiable. I couldn’t prove that anything I did had a positive impact on Google.
If they hornswoggled me into helping them, it’s evidence of their strong leadership qualities. I was just the mindless peon whose work was so irrelevant that it could be pre-empted at a moment’s notice.
Don't take this as an ad-homimen attack because it's not. You fell into the same trap some other people do at stack ranked organizations.
These systems create evolutionary pressure and the people who thrive are those who adapt to the ranking system as much as the job. Right, wrong or indifferent the ranking system is part of the job and in the same situation the people I see getting promoted would have dedicated significant time proving anything they did produced value or they wouldn't have done it.
That's why (IMHO) it was so difficult to get anyone interested in changing our stack ranked system to anything else; because those who thrived under it were in charge of deciding whether and how to change and already knew how to succeed in the old one.
It's actually not a cynical way to view your job. If what you do doesn't make an impact for customers and/or other teams in the organization, was it really worth doing?
I've consistently seen that successful engineers focus on work that has an impact, and they are good at making it known. The first part is obviously good, but a lot of engineers disdain self-promotion. However, self-promotion is not a bad thing if you really are good at your job, because it opens up opportunities to have an even greater impact, which is good for you and for the company.
The problem is that, at review time at Google, you have to be able to "quantify" the impact. Many types of impact are quantifiable (e.g. "Made server request scale from 100 query-per-second to 1,300 qps", "reduced code size by 30%", etc.).
It's much harder to measure, say, the impact of a refactor where you made the code easier to reason about and more maintainable, so that future work can be done on it more easily.
I witnessed the same thing at Google; I worked on a project that everyone joked only existed because the person who wrote it wanted promo, and the best way to get it was to design a very complex system, and convince others to adopt it. (He did get it, and promptly switched teams.)
Some things have been made better, though. I've heard that going from L4 → L5 now involves much more influence from your manager, since they would know and, without quantifying something like a refactor, can speak to the positive impact you had in a project.
I've also seen refactors that just made life difficult for everyone else with constant non-functional changes. In the end there is a lot of fashion in programming, and while some refactors are worthwhile most are not in my experience.
The refactor is supposed to provide payoff in the future, but what normally happens is fashion changes and someone new comes by and says "this code is shit" and starts the process over. The supposed benefits never accrue.
Measure commits/authors before and after a refactor.
Measuring number of commits? Create fewer, larger commits. Measuring commit size? Pull in more third-party libraries, even where it does't make sense. Author count? Add more/less documentation and recruit or inhibit new devs depending on what your goal is.
Not to mention the number of commits/authors before and after an arbitrary point in time might conflate a successful growing project with a project in a death spiral being passed around from group to group.
It's a good idea, but in practice simple metrics like this often (but not always) devolve into prime examples of Goodhart's law.
If you can’t find a measurable benefit to a refactoring (or anything else, really) then maybe it was not worth doing in the first place.
There is no programming project in existence with enough developers working on it, that developer-productivity data derived from a change to it would not be considered "underpowered" for the sake of proving anything.
A high impact infra change will often inconvenience dozens of people and distract from feature work... You know, the shit people actually care about... (this is analogous to how "Twitter, but written in Golang" appeals to approximately no one.)
And solve the halting problem while you're at it
Goodhart’s law is not applicable to scientific management because metrics have different purpose.
If what you are doing isn't making an impact, why is it being assigned to you in the first place?
Or, to put that another way: a worker is hired to do things. Their comparative advantage is in doing; time they spend in any other role than doing is labor that would have been better allocated/delegated to someone else, to clear them up for more doing. (It's very clear when you think of high-status "workers"—for example, surgeons. Time the surgeon spends inside the OR is worth tens of thousands of dollars; time they spend outside the OR isn't worth anything. If you can hire an administrative assistant for $30/hr to take admin-work off the shoulders of the surgeon, to ensure that the surgeon spends even one more hour inside the OR per week, then the admin assistant has paid for themselves.)
A manager, meanwhile, is hired to prioritize, delegate, lubricate channels of communication, ensure their team of workers has the resources it needs to "do", and then defend the workers from anything that would take away from their "doing" time. These tasks are the manager's wheelhouse; it's where their own comparative advantage lies. Time a worker spends managing themselves is company money wasted, because a manager would have been able to get that work done far more effectively, for less effort and time input.
You don't want a doctor spending time reading charts to triage patients (i.e. assigning work to themselves.) The intake nurse does that. And you don't want the intake nurse spending time trying to diagnose someone after taking their symptoms. That's what the doctors are for. Each role has their comparative advantage. Let the roles bleed together, and overhead goes up while lives saved goes down.
Why do "old" organizations like hospitals understand comparative advantage better than FAANG? Why isn't it seen as a failure of management to prioritize effectively when everybody isn't always doing the most important thing they could be doing at that moment?
There are a different set of disadvantages to this system, but I just wanted to point out that in Google’s case, management doesn’t assign anything, so an engineer working on something unimpactful is not seen as a management failure but a choice made by that engineer. It’s fine to do and you can keep your job forever doing work you believe in even if it’s not overtly “impactful,” but if you want to get promoted, it’s up to you to align yourself with the higher-level priorities.
Edit: That’s not to say Google never wastes highly-paid employees’ time (like your admin example), but the core difference is Google employees aren’t just hired to “do.” They’re also expected to spend a lot of time thinking, prioritizing, and organizing themselves, so that’s not wasted time.
The real problem for organizations is choosing what to optimize for, and how short sighted they can afford to be to survive. Someone below mentioned that the military in a war time environment is probably something that people who subscribe to this kind of thought would think is the ideal work place. The thing is if you look at these organizations in times of crisis, they may optimize for the quickest way to win the war, when it really should be to ensure long standing peace.
Management DOES do a lot to prioritize/delegate/lubricate channels of communication, etc. That is their primary role.
But you have more engineers than you have managers. You have more people providing a more varied set of insights into what should be prioritized, what general work needs to be done, what opportunities exist, etc.
To a certain extent, you have to be willing to let some people sometimes be working a little sub-optimally to allow the autonomy that results in making some of the crazy cool products and services these companies create. That autonomy being available is one of the big things that drew me to Amazon, and it's something I believe I've taken full advantage of to the company's benefit.
Giving people the latitude to run projects and create PoCs before getting full buy in from management allows people to be creative. But yes, if you've spent a year working on a project, you should be expected to show the results of what you've done. Some stuff is more ambitious, sure - but even when the results aren't immediately obvious, you do need to be able to explain the potential and what data backs up that potential and the ability for the project to reach it.
From my experiences over the past five years, being able to find opportunities for improvement is hugely important to the culture and the promotion process. You need to be able to identify these opportunities, and that generally means some sort of metric is available to work from, and measure against as you try to improve it. (Of course metrics and statistics can be gamed, but I'd argue it's not good to go through life assuming everyone is a bad actor). It's a skill that sometimes needs to be developed, and it's something I work with people on to help them with the process, but I think it's a very good thing in general. I've seen a lot of positive come out of it.
My two cents, anyway.
This ideal state is what people tend to be vaguely gesturing toward when they say they want "meritocracy." Even this state isn't really meritocratic, but it certainly has a management structure that knows what it wants and is actively steering every action of their subordinates to get the highest-ROI goals accomplished sooner than later; and where there is enough demand for skilled work that skilled workers are reserved to exclusively do the work they do best.
† The assumption (that seems to cash out at least somewhat) being that when two armies of equal size clash, the winner will be the one with a better leader-of-leaders, the one who has instilled a better management philosophy into their officers, such that the army as a whole ends up being run well. If there was some way to make entire departments of a company "fight", the way that two army battalions can engage in mock battle to determine their overall relative competence, capitalism might actually be able to succeed in evading the Peter Principle. Anyone have a good idea of how to do that?
That's so good i want to steal it for a chapter in my book
People aggressively going for promotion and as my team leader said "but he hasn't done any real work for 6 months".
I saw some one going for the first management level spend a million pounds of share holder money and 15 man years redeveloping a system in oracle - Because having a project worth > 1 million and with more than 10 staff was a tick box for promotion.
The resulting brinksmanship guaranteed his employees were ranked exactly the way he wanted. Ironic but he's now the head of a recruiting agency that purports to find top candidates via "big data" techniques yet he did his very best to subvert the system. So what exactly does he think he's datamining?
Assuming you're doing good work your boss should be your strongest advocate and trying to help get you recognized and promoted.
But if you're not inclined to self-promote then it definitely hurts and lots of folks on HN say they suffer from some level of impostor syndrome. If someone thinks "Should I really be here, am I really good enough?" they may also overly discount the value of their work and think there is nothing worthy of promotion in both senses of the word.
"Then, it struck me: what if ingredient parsing was the business? If this was a problem for me, then surely other developers struggled with it as well. Hopefully, some of them made money and would give some of said money to me if I solved their problem. Thus, the idea was born for Zestful, my ingredient-parsing service."
Before starting to write a single line of code, you need to do market research and understand the opportunity size. Building a business takes several years of personal investment and you are betting a lot of potential missed opportunity on the "ingredient business" market. This is a common mistake that, again, I have made myself, too.
And really, one can learn so much about what people want without having them use anything. User context interviews are hugely helpful. But my favorite thing is real-world tests even before there's a product. If most of your sales will come via people clicking on an ad and looking at a landing page, test that first! If people won't sign up, there's no point in building anything after that.
A good example comes from my cofounder at a startup we did in 2010. At the time, we had theories about an app that people would mostly discover through their Facebook feed. We used Greasemonkey to do user tests and found out that although some liked our idea, most people hated it. So we threw that out and did something else. But two other startups went on to build the same idea and fail with it. We estimate we saved $2m in learning what they learned. Ignite talk here: https://vimeo.com/24749599
I suppose that this is still entering an existing market since the people who comprise the market exist already exist, but it's new in the sense that this group of people collectively have a need that isn't being met. And sometimes the goal of market research is just to find one of those unserved (or underserved) markets.
I think the market is not in parsing, but extracting nutrition information.
The project kind of came out of me needing ingredient parsing for a different product and existing solutions being a poor match.
Edamam requires you to display their logo in your app if you use their API, which I found inappropriately intrusive.
There's a similar service called Spoonacular, but they don't allow you to store results for more than an hour, which is crazy. I wanted to build a search index that let users search by ingredient, so it made no sense for me to reprocess my entire corpus of data every hourly.
But they succeeded and I didn't, so maybe the weird API terms are what they need to survive.
The single necessary and sufficient condition for a business is a paying customer. The day someone pays you money for your product or service, you have a business, and not a day before. You cannot define a business as a product, because if nobody buys your product, you simply do not have a business. The marketplace is the final arbiter of success.
Now, just because you have a paying customer does not mean you have a good business. In order to have a good, sustainable business, you will need to gain enough customers paying enough money within a relatively short period of time so you do not run out of capital, but instead, become profitable. And as a startup, you have few resources, so every action you take must be hyper-efficient.
Therefore, you will not start by building a product or hiring developers or recruiting salespeople. Instead, you will take a customer-driven approach by finding an unmet need and building your business around it.
Suggesting a book for someone who has failed running a startup right away is naive and glib. Also, the OP didn’t put too many details of why his startup failed. Asserting that they have poor entrepreneurial skills - how do you know if it wasn't circumstantial?
If you want to know something specific say accounting, read a book about that specific area. If you want to know more about the “general” aspects of startups - listen to interviews of founders about which unique chellenges they faced.
I strongly discourage anyone starting a business to not listen to Sam Altman’s advice or anyone who gives generic “strategic” advice. These books are akin to “How to become a millionaire”. Yes, I’m talking about books such as “Lean Startup”, etc.
You get so much value from reading about specific aspects than from general startup books. Learn how each LEGO piece works and learn it well. You know, you’re going to have to rely on these specifics to actually get your business rolling. Strategic advice - you can consult your friends, discuss and determine the best course of action through your own acumen based on data that you have. That startup book on your shelf is not going to help at all.
However, for many founders, myself included, there’s an aspect of “you don’t know what you don’t know” and in these cases I find the generalist books quite helpful. For these topics, it is extremely helpful to have a wide but shallow understanding of business, strategy, law, etc so if you encounter a problem you at least understand enough to know where you can dive deeper (or know you need to hire someone else). The advice in general business strategy books certainly lacks nuance. But for anyone who is not already enmeshed in the many many aspects of running a complete business themselves, they are great guides to gain a 10,000 foot view very quickly.
The storage thing is already solved, people have no reason to switch from AWS. As he mentioned his product was worse, so even if it was just for the sake of competition...
That conversation made me realize that I’m not Google. I provide a service to Google in exchange for money.
I was very lucky to have a friend who taught me that very early (not about Google specifically, the same applies to any company). Working as a contractor just cemented it - I was sitting next to people earning half as much as I was or less, just because I was a contractor and they were an employee. Once you can see this, it's amazing when employees get sucked into killing themselves working crazy hours because they identify so strongly with the company they work for. Companies go to great lengths to promote the idea that we're all one big family, of course, precisely because it allows them to exploit their workers more easily.
Since leaving Google, I now make a software product I sell online. I have no boss, no employees and no investors. Occasionally I miss having coworkers, but mostly it's great. Freedom is really worth a lot of money, at least for me.
>Since leaving Google, I now make a software product I sell online. I have no boss, no employees and no investors. Occasionally I miss having coworkers, but mostly it's great. Freedom is really worth a lot of money, at least for me.
Yeah, that's the thing I miss most. Not just the social interaction, but being around smart people. Within Google, it was so easy to learn because there were experts in every field imaginable. Outside, there's so much bad information floating around, so if I'm not knowledgeable in a particular area, it's hard for me to distinguish between good advice and cargo cult techniques.
I'm (apparently) not Google-quality but I can tell you for sure that "out here" everybody else is adopting the same tactics, and it's shifting from "not getting promoted" to "not keeping your job". And then they complain that there's a shortage of "talent".
Was this still true after all the taxes, insurance, and stability factors are considered, or was this just your hourly rate?
I was in London working in web & finance at the time, so it was a fairly distorted market. I did get bitten by the dot com crash, but even so I was only out of work for about 6 months or so and that was a pretty extreme event. Realistically in the current environment job stability in a major IT centre like London is so good that contracting is pretty safe. In a more unstable market there would be a higher element of risk, for sure.
Curious if that is actually true when comparing to tier 1 banks/hedge funds full time employee salaries+bonus+retirement+healthcare.
Assume 600 GBP/day * 22 day/month * 10 months (realistically) full time work, that's 132k/yr.
From that take out accounting, illness, insurance, healthcare, retirement, travel, possibly more.
All things considered, once you get above 100k base as employee contracting becomes less attractive.
Strictly as a money move that is, there's other dimensions for sure.
Ie. 900+GBP/day is listed rarely and for very specific/niche things.
Then, the more niche it is the more likely it is that the downtime between contracts becomes longer I imagine.
Curious what your anecdotal experience has been, to the extent that it can be shared.
I suspect IT contractors are not seen as real professionals in the British class structure
In the UK you would normally expect 3x for a short 6 month contract.
When you wrote
> Freedom is really worth a lot of money, at least for me.
it seemed to imply you took a paycut to gain your freedom. To a degree, I would make that trade-off too. But, your point about contractors making twice [it can easily be 3x] what FT colleagues do, made it sound like you don't need to trade money for freedom, rather enjoy both. Hope that's the case for you too! If not, know that it can be!
Or so I've heard.
*Btw your cartoon on your blog is good. If that's your original creation you might consider developing it out.
You basically get the extremes of everything in Boston at a much lower price.
Possible downsides are long, snowy winters, and far fewer jobs.
You should write for the Lonely Planet :-)
Working remote can definitely be isolating anywhere, but I think if I were going to go back to it I'd prefer a midsize city to either rural or dense urban settings. Rural settings are obvious just small, and that's made harder by being isolated while you work. But huge cities tend to feel anonymous - if you're not actively engaging and meeting people it's easy to get forgotten or even miss out on finding out about things you'd like to see and do. It may just be a function of my tastes and hobbies, but somewhere Springfield-sized makes it a bit easier to find a stable group of people outside work to spend time with.
More broadly, there's a lot to be said for college towns and non-huge cities relying on safe anchors like 'meds and eds' or corporate research. Boulder's probably too big and pricy these days, but Northampton, Rochester NY, Flagstaff, Ithaca, and the Research Triangle are all inviting. Heck, even Fargo ND was shockingly inviting last time I came through - I'd rather live there than Cleveland.
The food scene in Northampton is great by the standards of rural MA. There are only 2-3 restaurants there that are any good at all.
Which obviously isn't what people normally mean by "food scene", my brain just approximated the topic as "well, it's better than all those rural places without any good grocery stores".
But Providence is actually a nice exception; lots of events, good food and activities, several colleges, but pretty cheap housing and not terribly dense or gridlocked.
I wish I could draw those cartoons. I work with a freelance cartoonist named Loraine Yow (https://www.lolo-ology.com/). I wrote a blog post about how the process works: https://mtlynch.io/how-to-hire-a-cartoonist/
Don't take this the wrong way, I'm sure you considered this, but... why put all that cash down when you almost certainly could have got a low interest mortgage and made more by putting that money in... well anything really?
You gotta look out for people who argue real estate transactions are as cheap and frictionless as stock market transactions, or insist on weird date ranges in historically bubble economies or rapidly changing demographic economies, or insist tax policy does not exist. Not everything is fundamentally an income stream and you need a plan when a simplification to that fails and you take a massive capital hit. If the error bars on the numbers are large enough, the same number can be interpreted to prove anything. Finally look out for people who confuse average/median with "everyone". All of those are HUGE effects when making financial decisions.
I'm not OP, but I have no mortgage and its worth pointing out that my personal break-even income is obviously twelve times the monthly payment lower than someone with a mortgage, and given a realistic 1/3 of income going to mortgage for most folks, obviously my runway is 1/3 longer than everyone with a mortgage. Also immensely lower stress.
It was also convenient for making offers. I don't have to jump through the hoops of involving a bank in the process. And for most sellers, a cash offer is more attractive because there's no chance of the bank stalling or killing the deal.
The house I bought, I saw it the morning it came onto the market and offered cash on the spot to seal the deal. Seller might have accepted with a mortgage anyway, but I think cash was good incentive for them to proceed with me immediately instead of waiting a couple days to gauge interest from other buyers.
An extremely common theme heard from people with a lot of money is to get your money working for you.
Another extremely common theme is you hear from the same people is after a while they realized it just didn't make them happy like they thought it was going to.
Theoretically there is a certain maximum level of feeling good that's possible in a day. My goal these days is to optimize for that. I'm not there yet, but I can see a path to it. At some point the pursuit of money puts pressure against some of that happiness in one form or another. At least that's been my experience and observations. It's not an absolute rule but a reasonable hueristic.
If from an emotional perspective it wasn't possible to feel any better than you did, what would more money actually do for you?
IMO a lot of people need to dig much deeper on their 'why' for chasing the maximum amount of money possible. It's not 'wrong' to do so, nor am I judging anyone for doing it, I just think it's quite a one sided perspective that that should be the goal and that alone.
It's mostly about status and getting laid at an instinctive level. I realized this after already having a child, so I've technically passed on my genes and recently a vasectomy, so I can't even pass on any more genes. Yet my instincts are still the same. Chase after status, position yourself to be the fittest mate possible. We just can't turn those drives off, so once we've earned enough money and our happiness is no longer increasing as a function of getting more money at some point after that we actually hit an inflection point and things start to go the other way.
I can totally see how a roof over your head that can't be taken away from you and low AF overheads makes life feel like a breeze. That's actually worth a lot, just not in Dollars.
(Is a "lead researcher" the head of your team, a person researching the properties of the metal Pb, or a researcher made out of that heavy grey metal? This is practically an unsolved computational linguistics problem)
Plumbologist - a person researching lead (/led/).
Plumbous researcher - researcher made primarily from lead (/led/). Probably an AI that deeply resents the materials-based engineering flaws in its processor core and robotic reality interface.
Lead (/leed/) plumbologist - most senior of a research team investigating lead (/led/).
Plumbous plumbologist - aforementioned AI, but dedicated to self-improvement.
Lead (/leed/) plumbous plumbologist - most senior of a group of lead-constructed (/led/) AIs, investigating the mystery of why the human progenitors chose such a bad metal for building robots.
If that mentality is widespread, it explains so much about Google.
I have been in a similar situation at British telecom where the competition was even more intense.
In systems engineering (where most but not all the engineers and developers sat) you would have 16-20 promotion slots from MPG2 to 4 every 15/16 months.
Several hundred people would get through the paper sift to even get an interview - as my boss said get an interview the company was 100% sure that you where capable of performing at that level I had three successive boards and didn't get it.
MPG2 was the entry level grade BT had a super flat structure. Some people where so desperate they would join payphones to get a promotion.
More savvy ones joined the mobile side as they where known for having serious grade inflation
I think there's something fundamentally flawed about our education system that isn't teaching or preparing people for the real world. I think every child should grow up with a basic understand of economics and how our economy works.
here's some advice about doing an indie business:
When you build your own software business: the rewards are not proportional to how much effort you put in. You may put relatively little and get a huge reward or may work day and night for years with 0 revenue.
The problem isn't that Google just says, "Hi, donate time to us, your corporate overlords, in exchange for nothing." Instead, they make a very reasonable argument of, "You should help your teammates and colleagues."
Imagine that you're on a team with a junior developer. Their feedback is basically worthless to promotion committees because they're low-level. If they say, "Hey, can you help me understand why my code is crashing?" the selfish answer is, "No, if I spent two hours helping you, the benefit I provide to you is not measurable or quantifiable and won't help my case for promotion." But it would also be kind of miserable for everyone if you constantly avoid helping your teammates and only do the absolute minimum required to avoid standing out as egregiously unhelpful.
"You should help your teammates and colleagues produce more value for the company because we hired you to produce value for the company" is an argument.
Now if the company's employee evaluation process doesn't recognize the second-order value you produced here then that's the company's problem, not yours.
I think I personally skewed too far into trying to do unmeasurable things, but I feel like it would be miserable to live on the other extreme where you only do things that are measurable and benefit your career.
Where does that thinking end? If I don't feel like finding a garbage can, should I just throw my trash on the ground as long as nobody sees me? After all, it's the city's fault that they haven't set up incentives to prevent me from littering.
I would argue if you aren't able to see why the education system produces that result on purpose then you don't understand how the economy works.
Thanks for sharing your experience Michael in that blog post. Can I read that "$200k paid in case" as in all paid off without loans even from family/friends? If so, $200k seems like a high saving amount considering average American household are in credit card debts. In other words, Google job did pay really well with RSUs and bonuses so that you can save up to buy house in one shot?
Doing so in just 4 years may be harder (again, depends on your spending), but if you have a little nest before then I don't see what's so strange about it.
As a privileged developer, this is an extremely untrue and privileged statement. Developers like myself who don't live in SF are lucky to receive any signing bonus, and would be lucky to earn half of that as a yearly salary. Outside the US it's not possible. You are part of a very small and very fortunate group.
In that context, it's definitely priviledged but far from being extremely untrue.
It's not enough to live the rest of my life on, especially if I want to start a family, but I'm set for the next few years.
I'm not sure if I'd apply in any case. I feel like it's questionable ethically to take public assistance when I could earn a high income if I chose to work for an employer.
* this is where you can usually tell someone is judging
And your metaphor of the poor as children you wouldn't steal candy from is exactly the kind of ideological superiority i'm talking about.
Could you talk about what those projects are about and what languages/frameworks you are using?
What's next? Are you looking to start another business or taking some time to just learn and work on projects that you find interesting?
Just wanted to say that I really enjoyed reading your blog posts and forum posts on IH. Good luck!
Sure, I'm working with Angular now. I might switch to Vue.js because I'm not crazy about Angular and I've heard very good things about Vue, but I'm also wondering if I'd like Angular more once I reached proficiency in it.
>What's next? Are you looking to start another business or taking some time to just learn and work on projects that you find interesting?
The project I want to get back to is a keto recipe search engine (https://ketohub.io/). I put it on hold for other projects, but I have more ideas for it and it's a good project for me to stretch my web development skills.
I may also consider projects targeting customers in Western Mass that nobody else is really going after. When I tell people here I'm a developer, many tell me that the software they're forced to use at work is terrible and old but there's no replacement, so maybe I'll find one I can tackle.
>Just wanted to say that I really enjoyed reading your blog posts and forum posts on IH. Good luck!
I am probably preaching to the choir here, but if you are looking to sharpen your skills, it's almost always better to stick with a single tech and learn it really, really well. That doesn't mean it's harmful to step through some Vue tutorials to get a feel for how it is different, however, if you're not careful you can end up losing a ton of time learning about the JS framework du jour and not actually making progress on anything. Especially if you are not in any hurry to build something useful.
Just about the only constant in JS frameworks is that any decision you make now on which one to use will probably be wrong in a year.
That's not to say optimizing for development speed isn't a good thing, especially if you are looking to bang out POCs as quickly as possible to vet startup ideas. But if you're not careful this can devolve into "funtime with tech" that could be a major distraction which might not even look or feel like one.
Speaking from experience :-)
+1 for moving to a less expensive area and ‘buying back’ some of your own time. I did this a long time ago and have seldom regretted it.
That's actually what I based mine on. I wrote a series of blog posts explaining how I did it:
Unlike you though, I think I’m taking too long to execute rather than failing to monetize something.
You have no idea how much the people of Vermont appreciate this. Be sure to tell all your friends who want out of NY how great Western MA is. ;)
I ended up at Etsy. A major criteria of mine was "find a business model I want to work for." Etsy checked all the boxes -- I was impressed by the caliber of people that I talked to when I was interviewing, I got a fair offer, I think the business model of selling local goods internationally is a good thing for the world, and I would be working directly on things that affected the bottom line. It hasn't been all sunshine and roses. There were 2 rounds of layoffs and almost everything has changed since I joined. But something that doesn't change very fast at a small established company is its business model, so I've managed to still be motivated to work there despite all the churn around me. It also helped me realize that some of the ennui I felt at Google was really a shifting of interests -- I'm not interested in technology for technology's sake anymore, but instead am motivated to solve problems that I think can be solved via technology.
I get why it was essential to the business. You can only grow so much as a small truly handmade market. Then it's OK to sell "vintage" clothing and on and on...
>It also helped me realize that some of the ennui I felt at Google was really a shifting of interests -- I'm not interested in technology for technology's sake anymore, but instead am motivated to solve problems that I think can be solved via technology.
I personally have an interest in both aspects. Still like and find technology interesting, but I guess I had somewhat of a business orientation from earlier, so appreciate that aspect too.
Words to live by. :)
I was at Google for six years; I had a lot of fun building various parts of cloud, but then at some point realized I didn’t really care a lot about the component I was working on, and looking around, I didn’t see a lot of other projects going on that I really felt passionately about.
I had some savings, and wasn’t really worried about finding •some• other software engineering job in Seattle if that ran low, so I decided to take off to think about what I really wanted to be doing in life. And then a friend reached out to me - he was founding a startup, and was I interested in joining?
So I did an ML startup for a couple of years. It was tremendous fun; lots of work, but I felt very connected to what I was building, why I was building it, &c; it felt good to be really thinking about the product from an end-to-end, “How is this going to delight the customer?” point of view. I think I’d have had to be a director at Google to have the same level of involvement with the entirety of what I was building...
And then, we were bought by Intel. It’s not too different, though - it’s a much bigger company, of course, but I feel pretty connected to the stuff I’m working on; I see and understand the business case, and my role in it. I don’t know that I’ll work at Intel forever, but certainly for the foreseeable future; I’m having fun, and feel pretty fortunate to be working here.
It was very educational (in a good way), despite the uncertainty around paychecks (just from the higher odds of going under at some point down the road). For people who’re in a financial position to handle some paycheck risk, I’d definitely recommend trying a startup.
I left for a more senior position at a smaller, less prestigious software company, though I've moved again since. Right now I'm working remotely from Toronto for a Silicon Valley start-up.
Ultimately, I wish I had approached working for Google a bit differently. I thought it was sort of an overgrown startup, and you were supposed to look for something that needed doing and do it. No. Google is a large highly structured company with a distinctly process-oriented culture. It's a place where you do what you are told. That famous proverb about Japanese nails absolutely applies. I eventually figured that out, but by then it was too late.
My only advice to people at BigCo is to make sure you have a good reason for doing whatever it is you're doing. Your boss telling you to do something is not always a good reason to do it.
And make sure you have some kind of metrics that show your work is important. If you're told to do something that you don't think is important, make sure you have metrics showing that your work is more important and do that.
I just started recently and was considering leaving for a startup, but have decided to stay and see if it gets better (I have only been at BigCo for few months). Mainly I feel like I'm not really needed, and it's a long existing and complex system so I can't propose some project of my own that easily. Many changes require multiple teams input etc. Feels slow.
Thanks for the advice, I will definitely keep it in mind.
I would either build credibility at your local team first (seems slow given the setup you describe) or find another group that is more dynamic. Look for energetic team leads that run impactful projects, talk to them (face to face) and ask what would it take to join their team. My 2c. Good luck
I understand the initial project you're assigned may not seem terribly important. But that's because you're new and you don't really know how things work yet, so they can't assign you anything really complicated. Do the initial not-quite-busywork successfully, and more important and interesting work will come along.
It took me around two years in to start feeling comfortable setting direction and priorities at a team-wide level. Of course, I was making my opinion heard long before that, but it was just that, an opinion.
At only a few months in you're still an unproven quantity. Don't expect to be getting the most important projects just yet. Take whatever you are given and knock it out of the park.
I like my team and manager, I just don't think they have a lot of time for me or time to think about what I'm assigned and whether it's worth doing. Lots of new ppl on the team recently. It's also possible that I'm just not asking enough questions. I think it is a bit of both.
If it turns out your manager was right (which is likely given you've only been there a few months), you'll at least get more context to understand why. You can use that context next time
I'm also not a very social person, and randomly chatting with people around the company for project ideas is something that I'm seemingly incapable of doing.
Will this cause me to fail at my job? How do I learn to be more proactive with these kinds of things?
But (to use my example) "efficiency" is relative. It requires a good mental model of what fits into what and how. So, to solve for that, you'd focus on absorption, and taking-in as much of the environment you can in as much detail as you can - oh, and focus on the most insignificant things the most. (The idea is to stretch your attention span and make it grow.) Endeavor to absorb at the same rate on day 100 that you do on day 1 (ie, replicating the way you react when things are new/interesting). Not perfectly achievable (I don't think), but that's the approach I've used to get my brain going in the right direction.
As for sociability, that's something that needs to be practiced in its own right to get stronger, like attention span. A bit like learning to use a new tool, you can't immediately be fast at it without some initial purpose-less practice. (Always fun to bootstrap those kinds of things...)
If necessary (but only as a last resort) spend an hour each day increasing test coverage. That is just something you can do that will probably also yield further ideas.
Second, if you're at google, get a mentor. They probably have an internal tool for that, maybe even something hr-like.
"The nail that sticks out gets hammered down."
Unless it's a coat hook. The lesson I think is if you're going to stick out, be useful.
Its curious how these companies claim they are totally different or even unique but just turn out to be the very same.
>>I wasn't promoted when I figured I deserved it
This is again one of those large company political things. Year long promotion packet building, lobbying your work with promotion committees, getting a willing boss, and doing other routine political ground work to set you up for one.
Another big thing in these companies, every one joining has to go through a very arduous interviewing process, preparation for which can last weeks to months. So you have rockstars full in all teams, or at-least they like of themselves that way.
Ultimately regardless whatever people might say about surrounding yourself with smart people, its never generally a great idea to surround yourself with smart competitors in a pyramid hierarchy.
If a smaller company has a toxic culture or you have a toxic manager you may have no choice but to leave.
Bad managers are everywhere!
Honestly, I don't care enough about getting promoted to go through that whole rigmarole, nor would I quit a job over having to deal with that in order to get promoted.
Of course, that's also probably why I don't work at a FAANG and never will.
I don't think you should let that stop you. I work at Google and don't care about promotion. I expect that I will get it sooner or later but really don't care if I do or not. I get paid enough to live a decent life already so I prefer having the freedom to do what I think matters as opposed to what's good for my career since sadly those don't align as much as they should.
then again, i hate office politics and i cannot see myself getting to close to this kind of big-company.
I'm guessing you don't know how the process works? I'd like to give a summary so you have more context. Apologies if that's incorrect.
Your promotion is decided by a promotion committee, who likely do not know you or what you do. This is done in an attempt to make promotions fair and objective across the company.
That being the case, you need a promotion packet to describe what you've done to people who are basically strangers.
Don't get me wrong, the process has many issues but I don't think it's fair to assess them without understanding their purposes and I don't think anyone I've seen who complains about it has been able to come up with something better.
In my career experience, that has more to do with understanding what really needs to be done, and what brings value to the company.
I'm sure I've made some junior engineers feel that way after they tried to pull me into a long argument about brace styles, or after they wanted to refactor years of working code to use their favorite framework.
Were you on a 4 year vest schedule for your stock grant at Google? If so, did you leave some money on the table?
Facet Development is a freelancer network made up exclusively of ex-FAANG engineers. Facet does the work of finding freelancing jobs/projects and then we send them out to devs in the network. We also provide project management and billing/collections, help with taxes, etc, so freelancers get to spend a lot more of their time doing the enjoyable parts of freelancing and not trying to run a small business.
We target FAANG companies and companies that wish they could hire FAANG devs when finding work for our freelancer network. When I was a dev lead at Microsoft, bringing on vendors or outsourcing was a terrible experience, because they always seemed to be below our hiring bar. So I started Facet to solve the problem I had when I was an engineering manager at a FAANG company.
We have more work than we can handle, so if you are a FAANG or ex-FAANG dev that wants to switch to freelancing or already is, you should sign up!
You can read more about the Facet Developer Network here: https://www.facetdev.com/blog/the-facet-developer-network-th...
"Look, you've always wanted to jump ship to freelance, but it's hard and you're used to being heavily supported by your org. We have that for you."
"Look, you want to hire these people but you can't. I can, and they can complete your project in a super high quality way, you just need to pay for it. We can be there next week."
I always wanted to jump ship so I could work on my own startup, but was afraid cause I had no idea how to find work as a freelancer, and was totally not the sales type. I figured there had to be more people out there like me.
Can you give an idea of what an ex-FAANG dev can expect after signing up? Like what's the frequency of projects? (not sure when you started this, if you just started it I understand you might not have a clear answer yet)
We get new projects weekly and our network is sized to match. We want make sure the number of opportunities we find covers 75% of our developer network. Our network is smallish right now (less than 50). If demand for joining exceeds our project capacity we will implement a wait-list for joining until our project volume catches up.
I got lucky in that a very large project (~$500k) fell into my lap while still working full-time at Netflix, so once the contract was signed, I quit my job and started freelancing. My small freelancing business grew into a proper software development agency over a few years. Eventually, I was able to do a "real" startup - I started an analytics company (www.numetric.com), raised $16M in VC and grew that for 4 years. I did NOT like working with VCs. So we hired a replacement CEO and I left to do my next thing.
I still own Facet and after leaving Numetric I had some free time to experiment with ideas on how to grow Facet. That resulted in the creation of the Facet Developer Network.
What am I doing now?
I enjoy building dev tools. I am currently building ReviewNB (https://reviewnb.com) that helps with Jupyter Notebook diffs and commenting. I built https://nurtch.com earlier this year to help Dev/Ops teams write executable incident runbooks.
I moved back from Seattle to New Delhi, India. Cost of living is less than $2000 per month which gives me enough time to work on my projects without being stressed financially.
Living in tier 2 Indian cities or suburban areas can cut down the expense in half. ~$1000/month for a comfortable lifestyle.
Finally, the real inflation (not the official one) is high and any saving could potentially be worthless in a few years (except real-estate which is why it has absurd prices) which also means owning a home is quite hard.
If you are fortunate enough to live in a very progressive town like Chapel Hill NC, which has a completely free bus system for everyone (paid for by student tuition, state taxes, and grants), then you can get around for pretty much free. The rest could be spent on food and health insurance if one chooses
In short, I left due to burnout, though I think it wasn't so much the team/work as it was my character lends itself to burnout if I'm not very careful to erect work/life barriers and not trample them in spite of myself. I also tried hard but failed to get promotion to L6 SWE, and that left me with a bad taste in my mouth. This was mostly a matter of personal immaturity at the time though. In retrospect my technical skills may have passed muster, but my ability to make things happen in the organizational and interpersonal sphere weren't really at an L6 level. My foot was already half out of the door by then, anyway.
In the intervening time, I've worked on an (unsuccessful) Android game, worked at a startup (again, burnout is easy when you internalize the existential precariousness of this sort of venture), and have since moved back to my hometown, bought a nice house, started a family, and done remote contract work. I have a few projects incubating and am planning on pursuing some entrepreneurial bootstrapping once my current contracts peter out shortly.
I miss the proximity to amazing engineers and casual availability of supercomputing resources, but in the end, I'm grateful to have saved enough to have a great deal of freedom in how I spend my days and to have been fully present for the first few months of my son's life.
Another benefit of time outside of Google is getting acquainted with the equivalent software ecosystem outside of their walled garden. Borg -> Docker/Kubernetes, MapReduce/Millwheel -> Spark, Dremel/bigquery-> Presto, etc etc.
Worked at AWS from 2008 to 2014 (Europe, then Asia, then USA), then Vmware (also USA) from 2014 to 2016.
I then spent ~1 year at a startup, as CTO - the experience sucked, and I consider it to simply be a big mistake.
1.5 years ago, I left that job, worked on a new idea, and in August 2017 I founded a startup, Fabrica, with two other friends.
I am still there. No salary. Bootstrapped until March, then raised some angel money. Doing ok.
I will never go back to the corporate world. I'm done with it. I have some money on the side, and I firmly believe that money is to buy things that matter to you. To me, not working at a corporation matters.
Damn dude that is a very good way of putting it
There's helpful perspective seeing freedom from corporate work as something you're effectively "buying" with less income, rather than avoiding because "it's less enjoyable".
People tend to be quite loss averse, so reframing it as a feature you're buying rather than loss you'll accept can really change how it feels.
What about the experience sucked? What was the mistake?
Let's say that there were signals that I should have left earlier, and I didn't listen at first; such as: two co-founders fighting often and disagreeing; not a clear product-market fit, and my product proposals were never taken seriously; lots of arrogance; etc.
> To me, not working at a corporation matters.
Yes. Don't see myself every going back. And don't have to.
"Money is coined freedom" -- Fyodor Dostoevsky
If your money is not buying you freedom...you're doing it wrong. :-)
- Instead of leading an eng team, maybe CTO meant "our entire tech team".
- Maybe the founders sucked, or had personal conflicts.
- Maybe the business was broken in ways a technologist can't fix.
- Maybe the business was viable but this individual did not enjoy being a part of it. Could be anything from "there are too many salespeople yelling into phones all around me" to "the technical problems were not the sort I am interested in / good at solving".
Not all companies are like this, but smaller ones that are looking for CTOs (whether due to founder splits or turnover) often are.
The other thing that sometimes happens is when a CTO position is carved out for a company that is doing well but needs "maturity," typically due to missed deadlines/etc. This can be a pretty terrible experience unless this sort of thing floats your boat - a lot of the downsides of working for a large company, but still the risks of working for a small one.
The two co-founders had personal conflicts; the business was broken, and never became viable. And a few other things...
That seems to be the paradox of founding a startup for the reason you stated.
I guess if the acquisition happens, I can happily accept it as a necessary evil to get more "freedom" in the form of money, and to make my co-founders and workers happy.
Last year I wrote a blog post about the biggest lessons learned during the transition. Seems pretty relevant. https://hackernoon.com/software-engineer-to-saas-founder-c16...
Also left SF to be a digital nomad. SF is so expensive and if you aren't fundraising you don't need to be there. There's so much of the world to see, and it's easy to be productive anywhere there's internet.
I ask because I'm interested in doing that soon.
- Agility. Snap moves 10x faster than amazon/ms.
- Small size. Our dev community is so much smaller than Fb etc. Last quarter our reported user count was around 188MM? So the amortized # of customers influenced per dev is very high.
- Ownership. I am the tech lead for all of analytics in snap (an uber lead as we call it). In Dynamo I was the TL for the storage part alone, my other offers from fb/twitter/oracle et al were around running parts of their machinery. Nothing came close to the extent of ownership provided by snap. An L1 in snap owns 5x of what an L1 would own in FAANG.
- Rest of the benefits remain equal / better: You are surrounded by smart people, you have hard problems to solve, perks, benefits and comp are very equivalent to / better than fang.
That's pretty much what I tell people during my job sells / interviews as well! If you are looking for the above, you can't beat small companies. On the flip side - FANG do have the scale very few others can only dream of reaching (dynamo did millions of qps per region and ran in 10s of regions). I am obviously hopeful we will make snap that big :)