1) Web engineering relies very little on CS academics, algorithms, big O etc
I do not have a computer science degree yet I’ve worked in 8 companies in the last 13 years holding leading software development positions. 99% of what I do I learned by doing. My lack of a proper CS degree only haunts me during bullshit interviews as many interviewers who do have a CS degree tend to focus on CS academic topics rather than things a web developer would actually do during his tenure at the company.
2) Engineers are paid way too much
When I look at the different types of jobs that exist which a person could do, I just can’t see how sitting at a desk all day hacking at code should command salaries of 100K+. It seems too easy. The world is completely unfair in this respect. For example, when I see the wait staff at a restaurant running around to serve dinner, I feel these people as working much harder than any internet engineer you’ll ever see. The bay area is home to 24 year old engineers sitting in herman miller aeron chairs taking breaks to play ping pong and check Reddit all day.
3) There are no women in technology
Of all of the tech teams on which I’ve been a member of in 13 years, I’ve only worked with 2 women. One was foreign.
4) Avoid SQL joins in your website code
One of the bigger websites I worked on relied heavily on SQL joins at runtime. Do not design sites this way. Write database access code which uses CRUD-style access on single tables at a time without transactions. It’s faster, can scale properly, and you will avoid SQL deadlocks.
5) Manager? Treat your employees like you’re lucky to have them
Of all the places I’ve worked, about 50% of them treated their engineers like shit. If you are a manager, you should be fired for not treating your engineers like solid gold. Period. Take your team out for fun events. Given them flexible hours. Publicly acknowledge their achievements and encourage professional growth. Developers are the kings of the Bay Area, yet 90% of them don’t know it. Of all of the careers that exist, engineering is one where the employee has the upper hand. Demand respect or leave. You’ll find it elsewhere.
6) Work sustainable hours
It takes so long to develop things to a high degree of quality, be careful not to work your life away. If you’re in your 20’s or 30’s, it’s easy to have the mindset that these are the hard years where you need to put the extra hours in. Don’t forget that most things don’t work. The work will always be there but your youth won’t be. Spend time with friends. Meet new people. Do as many social activities outside of work as you can. There’s more to life than your work so live it.
7) Only join growth companies
In the Bay Area, I feel like every idea still gets funded and there are tons of shitty ideas. If you’re good, don’t join a zero growth company. Join a company that’s fucking kicking ass. During your interview, be sure to ask for what the KPI’s of the company are and how they are growing. Use your spider senses to see if there’s really any growth at all. Working at a high growth company will have a hugely positive impact on the rest of your life.
8) Don’t be an asshole
It’s a lot easier to be a great engineer than a good person. When you move on to the next thing, people will remember you less for your skills and more for who you were. When I think about people I’d like to hire, I only consider the people who were the kind of people I’d want to drink a beer with or introduce to my friends.