SoundBytes Logo
Published on

Advice for a young Software Engineer

Here is an incomplete list of things I either managed to get right or wish I knew when I started my career in software engineering. Invariably, getting outside your comfort zone, luck, and connections play a big part in how your career will shape out.

Give me the list

  1. Identify and go deep on a leading-edge technology. Over time, work on increasing your breadth of knowledge into other parts of the stack.

  2. Your first job matters more than you think. The wrong starting role can pigeonhole you.

  3. Work for a startup. If given a choice between more equity or a bigger salary, go for more salary as the chances of the startup hitting the jackpot and you lasting long enough there are low, particularly if you are not part of the early stages.

  4. Nobody likes a team member who constantly complains but offers no suggestions to improve the situation.

  5. Find a mentor who offers unbiased advice and can open the door to big opportunities.

  6. Ensure your resume and LinkedIn profile are kept up-to-date.

  7. Never annoy or get on the wrong side of anyone who is responsible for office administration or payroll. You would be suprised at just how much they do for you on a regular basis.

  8. Be prepared to move to another city or country in order to advance your career.

  9. Work for a large multi-national corporate to get an idea of how to navigate office politics.

  10. Learn the basics of good investment strategies. Play the long game, don't panic if the stock market tanks, and don't invest more money than you can afford to lose.

  11. Look after your physical and mental well-being. Find a hobby or play a sport.

  12. Be the person who can start a startup. This means being able to develop a front-end, back-end, data access layer and deploy it. One day, you might decide to launch your own business.

  13. Do due diligence on all prospective employers. How long have they been in business; how much staff turnover have they had; who are their customers; what is their reputation in the market?

  14. It's OK to ask for a pay rise. Present your justification by listing your achievements and what the market is paying for comparable roles. If the thought of this makes you nervous, send your request over email but be prepared for an eventual face-to-face discussion with HR or your manager. Remain calm and professional during the process.

  15. Learn to recognise when your manager is under pressure. Ask them how you can help if you have capacity to do so.

  16. You will probably go through a number of company restructures or layoffs during your career. If you sense this is about to happen, be ready to jump ship before the proverbial hits the fan. If you can't do this, work hard, keep your head down and a maintain a log what you are working on in the event you have to justify your position.

  17. Always have a Plan B. That way, you are in control when things feel like they are getting out of control.

  18. Become highly proficient with a relational database such as PostgreSQL or SQL Server. These database platforms have been around for decades and are unlikely to disappear in our lifetime.

  19. Dress like you want your managers job (but don't tell them if you do want it).

  20. Try to stay in a role for at least two years. Frequent, short-stints on your resume raise questions about your ability to get along with others and see projects through to completion.

  21. Most application performance problems are the result of poorly written database queries or excessive client/server round-trips. Learn how to analyse SQL execution plans, and perform each action using one call between the client and server.

  22. Your manager will like being asked what they did over the weekend. If they talk at length about what they did and don't enquire about you, they are probably a narcissist.

  23. Don't start a business with someone unless you can agree on what the next five years working together look like. Avoid going into business with anyone where there will be a large imbalance of power.

  24. Stateless, share-nothing applications will scale more easily than stateful applications.

  25. Always give your manager an overview of the content prior to presenting on a controversial or polarising topic. That way you can avoid the fallout from saying anything that could be perceived as an attempt to throw them or your colleagues under the bus.

  26. Long lunches with alcohol consumption are only acceptable if they are arranged by and with your manager. Better still, if they are paying.

  27. Learn the basics of good application security. This means you should develop an understanding of the OWASP Top 10 threats and how they evolve each year.

  28. Never take long, personal phone calls at your desk in an open plan office. Find a room or make calls during your breaks.

  29. Working at smaller companies tends to magnify results when you do a good or a bad job. If you want to stand-out, smaller companies provide greater opportunities to do so than working for larger companies.

  30. It's OK to return to a former employer if you left on favourable terms. They'll probably be flattered you approached them and they won't have to pay recruitment fees.

  31. Avoid complaining about work on social media and don't accept friend requests from your manager.

  32. If you are doing something complex which you'll need to repeat in future, document the process. Share this with others to save them time and to make you look like more of an expert.

  33. After gaining a few years of experience, try contracting. You will either love the freedom and flexibility of it or realise that you prefer the safety blanket that permanent employment offers.

  34. Maximise your surface area of luck. Meet more people, try new things, learn new skills.

  35. Done is better than perfect.