Welcome!

Software engineering is new.

Every other professional and academic field, from Civil Engineering to prostitution, has been around for tens of thousands of years by some name or another.

As a field, Computer Science is less than a hundred years old. Software Engineering as a profession less than 60. Almost every piece of software was written by someone still alive today.

Now that includes you.

The entire history of our craft is the size of one human lifetime. By the time you die, that history will have doubled in length.

Everything you see that didn’t come from nature was built by hands like yours.

Your hands now embued with the incredible power to create. One day those creations will solve big problems for the world.

You’ll have many jobs, but this is your one craft. You’ll use the skills that you’re accumulating over for at least forty more years. Slow down and fully understand the problems you encounter, there’s plenty of time.

Practicing our craft just for big money, your parents respect, or because society told you so is a bad idea. Starting a company just for those reasons is ten times worse. Fundamentally our day to day is creative writing, and just like other creative professions we need that spark to keep going.

You’ll meet people who trudge through regardless. They are miserable or sociopathic. Sometimes both.

There are 168 hours in a week. 112 after 8 hours of sleep a day. Add in the gym and dinner and you’re at 98. Of those remaining 98 hours, you will spend 30-80 hours a week working. Try to pick something you won’t hate.

Even if you do hate it, out of respect for yourself, do it to a high standard while you’re looking to leave.

You’re a problem solver first, a craftsman second, a professional third, but to the company you’re just their largest expense. They will not hesitate to cut you if times get tough. You’ll soon see that they, and their mouthpieces, will always try to convince you that times are tough. They can’t help but salivate at every potential thing that might displace you.

Do not hesitate to gouge their eyeballs out when times are good. Never be afraid to leave. Interview at least once every two years, update your resume once a year as part of your performance review. That’s the only true way to test your market worth.

This part of your life is precious, you’re young, healthy and have no kids. It won’t be that way forever. Don’t sell it cheaply.

Being a good problem solver means your number one skill is not writing code, it’s building things people want and need.

Being a craftsman means those solutions are built right.

Being a professional means you will keep yourself accountable.

None of these mean you are a pushover that exists to please your manager. Your job is to solve problems for the company, correctly, not fulfill a badly planned schedule.

Have backbone, and self respect. If something is wrong say so. Do not be intimidated by seniority. The biggest way to win as an employee is to get things done by the time you say it will be done.

Still, make an effort to be nice to your coworkers. It’s free and we’re all only human. Software Engineering is a team sport, you can’t do it alone. Don’t become the person who constantly complains publicly about how hard things are, or how bad management is. Show leadership, keep things moving forward, complaints don’t help.

A little maturity goes a long way in this industry. No matter how technically adept you are there’s always something new to learn from someone. No matter how high up the social-capital hierarchy you climb everyone from CEO to Janitor is treated with the same respect. There are no untouchables here, in order for any organization of people to run everyone needs to do their jobs. No tech company would survive for 24 hours without someone cleaning the toilets. Decisively take accountability for your fuck ups. Everyone makes them. Blame games just waste time the could be spent fixing it.

You can make a million dollars a year and still sit alone in your big empty house because no one wants to talk to you outside of a professional context.

Don’t get caught up in the latest zealotry or hype waves. AI, crypto, Rust, de jure. The industry’s attention is mercurial. It always chases new shiny baubles, while a majority of big companies still use Java 8.

Learn about the breakthroughs, and use them to solve problems if needed. There’s never a universal solution to all problems. Leave playing ideological dress up to zealots, founders and VCs.

If something is not signed sealed and delivered, it means nothing in business. Words are free, money is not. This your best filter for who means what they say.

Ignore the advice of anyone who is not building something interesting or useful. Resist the bait of those who want to sell you courses, stir up politics, or only talk how to get into “prestigious” companies. They haven’t built anything of value themselves. Knowing what’s going on in the industry is important, third hand gossip is not.

Understand that from the smallest startup to the largest tech company the underlying purpose is to solves peoples’ problems. Identifying those problems and building solutions are the skills you need to build. This will preserve your agency, not exclusively studying to pass arbitrary interviews.

Exorcise any doubt about your abilities. Pursue true mastery above all else through practicing your craft. Do the reading.

Nothing replaces putting in the reps. Not talent, raw intelligence, charisma or connections. At the end of the day the most important question is always “can you do it?”. Not, “what did you get?” on some piece of paper from some authority figure.

The hacker’s mindset’s most prominent feature is relentless curiosity. Never lose that.

Nothing is sadder than when you see an engineer lose the light in their eyes from creating things.

Hack the planet,

Chris