Important Things to keep in mind
— Self-improvement, Life Guides — 13 min read
Documents/Administration:
- Insurance (car insurance, health insurance, dental insurance, homeowner, pet, etc.)
- Figure your finances out (learn basics; credit cards, 401(k), savings, rrsp, etc.)
- Medical appointments (optometrist, dentist, psychologist, yearly checkup etc.)
- A plan for debt (there is good debt and bad debt but debt is debt, nevertheless. Plan to get out, even if its a baby step ahead).
- Taxes (check on your taxes, make sure everything is correct and keep on top of it)
- Have an income (even if its a cashier job - it's still an income. Never underestimate a step forward)
- Check your document expirees (passports, licenses, credit cards, etc.)
- Put all important documents split in specific locations (specifically: passports, licenses, social security, birth certificate, marriage license, tax returns, registration, finance records). Suggest putting these in TWO different places, in case of a robbery or some unseen event. If something happened to one batch of documents, the second set is there to validate your identity.
- Go make copies of all those documents and put these physical copies in a third location.
- Appoint someone you trust with your passwords. If your computer has a lock, give a physical copy in case something happens to you, so they have access to these types of information.
- If there is something very important you need to tell someone before you pass away, write it down and put it aside just incase.
Immediate Rules:
- Keep spaces and items, clean.
- Make a healthy lifestyle (especially eating)
- Enforce sleeping rules (If you are having sleeping issues, investigate asap.)
Healthy Lifestyles:
- Floss. Nothing makes you feel like you have your life as put together, then flossing. You can buy the stick applicators that are way better. If you're doing that, you may as well get mouthwash.
- If you're flossing and doing mouthwash, may as well wear your retainer.
- Make your bed everyday.
- Buy a tool to measure your personal activity (an app, fitness watch, etc.)- wear it constantly.
- For those sleep deprived: blackout curtains, ear plugs, satin pillows, weighted blankets, stuffed animals, white noise, asmr, no technology 1 hour before bed, reading before bed or natural supplements can help a lot. If you're getting tired after you're eating: this is often a symptom of a food allergy, food insensitivity or overindulgence.
- Make a skincare routine.
- Buy new socks and underwear.
- Put a counsellor/psychologist on your yearly checkup list
Career/Income/Growth:
- Have an income
- Make a huge goal within reasonable limits (huge goal does not mean being a CEO- it's what's meaningful to you).
- Make smaller goals to get there
- Make smaller goals for you to personally enjoy
- Write down the things that would impress you, if you achieved. Pin it physically to a board.
- Get a whiteboard/corkboard or something you can physically see items written down everyday
- Mentioned above, make a plan for your income. Even if its 1$ saved a week- that's still 365$
Emotional/Mental Wellbeing:
- Get your phone out and put your loved ones birthday in your calendars. Add important events.
- Add in your phone a once a month reminder to check in with loved ones to see how they're doing
- In that calendar, make a note if one of your friends is going through a hard time, set a reminder to check in on them.
- Figure out what you want in life, especially dating. If you don't figure out what you want, you make yourself vulnerable to being used or being misguided.
- Identify (or try) your Achilles heel. What are you bad at? Just keep this in mind for later development.
Overnight Change:
- Donate the pieces in your wardrobe that aren't you anymore. Start getting pieces that are. Think about where those items are also coming from; consider secondhand.
- Start reading, get a bookshelf and begin to fill it with things you love.
- Do what you want with your appearance as long as it's in alignment with your goals/vision for yourself.
- Volunteer even if its just 3-4 hours a week. Retirement homes and aging populations, are some of the most valuable connections you can have.
- Go to the gym, watch what you eat, do all the advice reddit prescribes.
- Go out of your way to teach someone something, even if its just a tutorial. This will help you grow confidence in your own knowledge, sharpen communication and help connect to others.
Checkbox Lists That Will Start To Change Your Day:
- The 15 things you are afraid of list. Great, now go do most of them.
- The 3 things you should have done but ignored, list. Great, now go do them.
- The 3 things you wanted to do this year but haven't got around too (make sure they're fun).
- Not a checkbox: The last 4 years of bad decisions you made and beside them, why you made it. Sit with that uncomfortable feeling for awhile and accept responsibility. If you do not learn, the universe will try to teach you again.
- When you're done with those lists, print out a monthly calender and jot down some important things you need to do. After you do that for awhile, make a weekly to-do list, eventually a daily one should result. Checkboxes are your friend and give you dopamine.
Things I Had To Learn The Hard Way (that I hope you'll avoid to make this world a better place)
- Always attend the wake and/or funeral. People die once. Stop being selfish and think of others. You will never regret going.
- Give more than you take.
- When you fail to make a decision, the universe will make it for you. It may be the wrong one, still. When you are too indecisive and finally make a decision last minute, the weight of that decision will often come back to you, like a slap in the face. It's okay to be wrong and make mistakes.
- Hold yourself to a high standard and if no one is telling you that you can do better, I am.
Common Bad Habits:
- Unplug preferably from social media. If not, limit to 30 minutes.
- Quit ideally daydreaming, moreso when you have other things you should do or work towards
- Stop applying all your time to something that has little feedback (videogames- add another hobby)
- Stop staying up late at night
- Quit feeling sorry for yourself and if you can't stop (we've all been there), go listen to someone else for awhile.
- Failing to think/check in/consider other people on a frequent basis
- Running away from your problems through travelling, instagram, netflix, drugs, booze, dating etc. Stop turning your brain off all the time. You have good ideas up there.
- Monitor your recreation
- Being bad with finances (this is not the same as poverty)
- Comparing yourself to others.
Small Things That Will Pay Off:
- Go learn basic history- especially go learn basic history of the last 75 years
- Have a basic knowledge of finances, housekeeping, driving, changing tires, etc.
- Have a basic knowledge of common mental illnesses (depression, anxiety, bipolar, narcissism etc.)
- Ask your parents things you wanted to know; record a message from them, even if its something small.
Lessons learnt by a Senior Engineer
- The best way to advance career is by changing companies.
- Technology stacks don't really matter because there are like 15 basic patterns of software engineering in tech field that apply. All fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret over it.
- There's a reason why people recommend job hunting. If one is unsatisfied at a job, it's probably time to move on.
- Learn to be honest with your manager. Not too honest, but honest enough where you can be authentic at work.
- Qualities of a good manager share a lot of qualities of a good engineer.
- Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
- The most underrated skill to learn as an engineer is how to document. Also, writing good proposals for changes is a great skill.
- Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100.
- Titles mostly don't matter. Principal Distinguished Staff Lead Engineer from Whatever Company, whatever. What did you do and what did you accomplish. That's all people care about.
- Be kind to everyone. Not because it'll help your career (it will), but because being kind is rewarding by itself.
- If you didn't learn something from the junior engineer or intern this past month, you weren't paying attention.
- Paying for classes, books, conferences is worth it. Attend few conferences, buy few 1.5k courses, many books, and a subscription. Worth it.
- Being a good engineer means knowing best practices. Being a senior engineer means knowing when to break best practices.
- The best demonstration of great leadership is when my leader took the fall for a mistake that was 100% my fault. You better believe I would've walked over fire for them.
- On the same token, the best leaders I've been privileged to work under did their best to both advocate for my opinions and also explain to me other opinions that conflict with mine. Work hard to be like them.
- Learning a language isn't hard. It's learning the ecosystem.
- Working with smart engineers has made me a better coder. Working with smart non-technical co-workers has made me a better engineer.
- Good people write shitty code. Smart people write shitty code. Good coders and good engineers write shitty code. Don't let code quality be a dependent variable on your self worth.
- I've met some brilliant people who I've learned from over 10+ years because I was kind to them. And I've grown a lot by working hard and not being afraid to try new things
- Most teams and products are going to have endless backlogs of features and bugs, and there is no amount of work you can do (individually at least) to make a dent. But what you can do, especially once you (a) understand the code base and (b) understand and align yourself with management, is pick the most important things to work on.
- A side-effect of this (above) choice is you'll start coding less and less, because often your 40h work week is better spent doing something else - high level design proposals/reviews, meeting and coaching other engineers, giving tech talks to a wider audience, and aligning yourself with leadership. Now you're outputting less than you did before, but when you do output something (or lead/train the team that outputs it), it matters, and you'll start getting recognized and rewarded again.
- No matter how small things are if its something forgettable (and most of the things in software are) then log it somewhere.
- Build a notes sites just for yourself, no need to be fancy. Open a text file, write about what you learned, store in a git repo or in google docs.
Unethical Tips:
- Avoid having to fix your own tech debt by getting a new job every two years.
- A small number of key tests that exercise the areas that are most likely to break, are more effective than having a high test coverage
- When starting a new job, focus all of your effort on making a splash right out of the gate. Gain a good reputation as early as possible. Then relax for the next 5 years. Even if it does become obvious that you aren't as effective as you were, your manager will probably try to hide this fact to his superiors, because he is likely to be blamed himself. Managers aren't going to have an excuse for why their superstar developer sits around doing nothing now.
- As a leader, give people positive feedback as often as possible, both to the individuals on your team, and to their managers. The team members are are going to want to continue the behaviors that got them praise, will often reciprocate the praise, and the effect costs you literally nothing.
- Know when to swallow your pride and leave a debate, even if you know you are right. Sometimes it's best to let the other person learn the hard way.
- Don’t focus on the work that benefits your team or company the most, focus on work that’s the most valuable that’s publicly visible and is something that’s valuable at a higher level. You get promoted faster this way in many places.
- When a problem happens, scale it to look worse than it actually is, so when you "finally" fix it, your teammates (especially the non-technical people) will think you are better than you actually are.
- Regarding legacy code: sometimes it's OK to let production be QA. You can't always account for everything, and sometimes no one else cares/knows anyway, so just do your best, make the change, and ship it. Let the yelling show you what needs to be fixed.
- Lower your output until you get a verbal warning and then only do slightly better than that. Don't kill yourself for someone who doesn't care or doesn't have the power to reward you if they did care.
- Pick projects that have the most visibility vs complexity
- Learn how exactly the company makes money, and put all your “work/talk” under that angle
- When you talk about your achievements - you have to feel uncomfortable from how awesome you are during that talk.
- Don’t fight for the stupid shit, at the end of the day no one cares that your approach is nice/cleaner etc, you just make enemies with no benefits
- Become an owner of the feature/field, make other depend on you
- Tell your manager your real career goals, but make sure they don’t threaten them
- Insert a few small, easily found marker bugs to be found by QA or customer testing. This will let you know how much you can rely on the QA process, and it will make testing more rewarding for the testers, so they might be more attentive and test more thoroughly.
- While accepting tasks/responsibilities, opt for one-off deliverables rather than ongoing recurring items. This is basically because you will stop getting credit for recurring tasks after a point, but they'll still add to your workload. Eg: developing a new system may be easier than maintaining an old one
Acknowledgements:
I (@vijethph) just found this while browsing Reddit, thought it was good, and put up here with some modifications of my own. The original work and credit all go to whoever posted this up on Reddit (I don't know their name). So, I thank them for sharing this valuable material.