< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #28 - September 15, 2019

If you are looking for work, check out this month's Who is hiring? thread.

Here are the top threads of the week, happy reading!

Top comment by Waterluvian

I recently experienced months of sleeping problems. Where I wouldn't sleep for days. Or would sleep a few hours. I would be exhausted and my head would hit the pillow and BAM adrenaline and I can hear my heart pounding and I'm awake. It got so bad I would go into the basement and destroy a wall that I kept repairing. I would cry in frustration. I started to have suicidal thoughts. It was harming my marriage and made me a crappy father.

I've seen a psychologist before for other things but there's just something about me that makes me stubborn. I should have seen one again but I never got around to it. I kept self-justifying that "new idea X" would be what fixes the problem.

I think the issue was subconscious because if you asked, I couldn't tell you what was bothering me. But I think it might be about being this pillar of my family, the sole breadwinner, and had a toddler and a baby and a mortgage and a new remote job all within 2 years. Everything piles on and there's a ton of good reasons to feel anxiety.

Anyways, you know what ended up changing everything and making me sleep like a baby? World of Warcraft Classic. I used to never find time for gaming. Or games would never keep my attention. I would always wander off to the huge list of things I need to be doing to be a good worker, dad, housekeeper, husband. But I got into WoW for chuckles and got hooked on having 3 hours a night to just do stupid pointless stuff in a fantasy world. And now falling asleep feels so different. My brain is relaxed, replaying some of the moments from the video game in my daydreaming imagination. And before I know it, I wake up rested and energized and actually looking forward to experiencing the next day.

Top comment by csallen

I've spent a ton of time as a developer trying to make money from various side projects and businesses. So most of my top "wish I'd discovered this earlier" list revolves around tech+business stuff:

* Strategy #1: Charge more. patio11 has been shouting this from the rooftops for years, but it didn't sink in until after I started Indie Hackers[0]. If you charge something like $300/customer instead of $5/customer, you can get to profitability with something like 50 phone calls rather than years of slogging. It's still hard, but it's way faster.

* Strategy #2: Brian Balfour's four fits model[1]. It's not enough to think about the product. You also need to think about the market, distribution channels, and pricing, and how each of these four things fit together. I imagine them as four wheels on a car. It's better to have 4 mediocre wheels than 3 great ones and a flat.

* Book: The Mom Test.[2] Amazing book about how to talk to customers to research your ideas without being misled, which is a step I've stumbled on before.

* Tool: Notion. I just discovered it recently. I use it for all my docs and planning.

[0] https://www.indiehackers.com - my latest business, and the one that actually worked

[1] https://brianbalfour.com/four-fits-growth-framework

[2] https://www.amazon.com/Mom-Test-customers-business-everyone/...

Top comment by ComputerGuru

The Count of Monte Cristo, hands down. Published 1844 by Alexandre Dumas, one of the greatest writers to have ever lived.

I’m an avid reader and I always laughed at the idea of having a “favorite” book.. until I found mine. I loved the book so much, I resolved to learn French (et je l’ai fait!) just so I could someday read it in the original French.

Top comment by Zach_the_Lizard

Not Google, but another Big Tech company.

Visibility is very important to getting a promotion at a large company. Selling your work is important.

To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles.

If you fail to do so, you can do absolutely amazing work but rigid processes and evaluation criteria will conspire to defeat you in a promotion committee setting.

At least, that's true in my company. From my ex-Google peers it seems to be true there as well.

Being in a smaller office means you get fewer of the best projects available to you. Reorgs sometimes steal them. Cancelling projects makes the last half a waste of time from a promotion standpoint.

As for what constitutes a good project. It will:

* Let you lead it

* Have peers at your level + one or two

* Work with multiple other teams

* Ideally work with multiple teams outside of your group, e.g. you're in, say, a chat app team and get to solve issues for some other app

* Good product manager and designers with a well thought out product; it's not fair, but if the project is successful business-wise people will often incorrectly attribute that to your own skills

* Have large engineering scope. Committees get confused and sometimes think simple designs to solve complex problems are bad. You want to solve problems that are complex even in terms of the solution (or can be made to sound complex) to check more boxes.

* Allows you to solve problems for other teams

I haven't optimized for promotion and thats personally hurt me in the quest to get to L6. I very, very close but didn't quite make the leap.

Don't ignore the flaws in this committee process. Exploit them.

Don't be me.

Top comment by kennu

1Password has always offered the best usability for me. Many other password managers (eg LastPass) have failed, for instance, to work with the AWS sign in page and some other tricky websites. 1Password UX is also well polished in other ways and is nice to use. I consider this kind of good usability to significantly increase my quality of life, since I login to various online services all the time and I want to eliminate as much hassle as possible.

I realize all this requires a great deal of trust in the maker of 1Password having done things right and currently I have that trust. This may change in the future of course.

Top comment by lwansbrough

Halo 4 and 5 use a project developed “in house” at Microsoft called Orleans. Roughly speaking it is similar to Akka. It’s an actor based distributed system which attempts to hide the implementation of distributed networking. In essence, each match and each player get their own “network attached“ object (a “grain” in Orleans terms.) So:

    var player = new Player(123);
is actually instantiated _somewhere_ on the network (not necessarily locally on the calling server.) Then operating on that object, such as:

    await player.FireWeapon();
tells the server (“silo” in Orleans terms) which owns that player instance to invoke that method on it.

In this way, it is very easy to quickly update game state without obsessing over the throughput of a single machine.

Top comment by pytester

* Examples. Realistic, complete, useful examples that demonstrate the software being used in the manner it is intended.

* Glossary for any special terminology that can't just be googled - especially project specific terminology that may be confusing, and double especially terms or phrases which are used slightly differently to the way everybody else uses them (e.g. 'user' means something slightly different almost everywhere).

* Lots of "why" describing why the software behaves in ways that seem surprising at first glance.

Top comment by mieseratte

I don't. Turning my hobby into my career killed my hobby and, really, that's fine. It affords me a good life and the ability to discover and enjoy new hobbies.

If you're worried about "keeping up," then I would suggest you 1) ignore the rat-race that is framework-of-the-day and 2) focus on learning fundamentals of your domain. Sure, you'll miss out on some hip startup jobs but typical employers don't care about your lack of 5 years experience in a 3 years old framework.

Top comment by jlebar

Maybe you're different than me, but I have a tough time really learning something without a concrete task at hand. I also find that I have a tough time learning if I don't have someone to ask questions of. And I find that online developer communities are much more welcoming of newb questions after you've contributed something concrete.

If it was me (and it really was me just a few years ago), I'd git clone llvm, join #llvm on freenode, and ask if there's any simple refactoring or cleanup people are doing. Give me a chance to absorb the code and also build some goodwill in the community, which I might then leverage into getting help on more complex parts of the compiler that I want to hack on.

If you're looking for a project, the nvidia GPU ("NVPTX") backend in LLVM has a bunch of horrible global variables protected by locks, and it all really should go away. And it's not hard to find other simpler refactorings to do in there, it's pretty yucky. No compilers experience needed, just C++ skills.

Top comment by rblion

Cut out drinking, weed, meat, sugar, processed foods.

Wake up every day around 5am and dive into deep work.

Got rid of my iPhone and replaced it with a flip phone.

Deactivated Facebook, barely check Instagram anymore.

Dropped about 25 pounds without working out much, feel great.

Eliminated anyone who is parasitic towards me, saved a lot of energy and time.

Scaled my agency/consultancy without any marketing, just referrals and word-of-mouth.

Collected a TB of nature/wildlife photos from my travels, written a lot of posts for a blog I am launching soon that covers a range of topics from minimalism, plant-based lifestyle, deep work, web development, UX design, creative service, entheogens, dhyana.

Mapped out an UX and schema for a platform that I will submit to YC. If rejected, try crowdfunding.

Consolidated my life goals and bucket list down a lot after realizing a lot of things lately.

I have never felt more whole, grounded, centered, focused, organized, stable before. :)