Thanks for signing up.
We'll see you soon 👋
We'll see you soon 👋
Last week I posted ‘Engineer your career… part 1’ which discussed one side of the story that I have heard between software engineers and their prospective employers over the years. In this part I will discuss what may be important for applicants to hear.
You may want to change the world with some amazing people but there are criteria you are going to need to meet to ensure you are aligning with your dream company’s needs. Amongst a lot of variables such as each party’s ambitions and goals there has to be some clear overlap that benefits an employer by hiring you.
Remember, it’s you who typically wants to get into their company!
‘A grade’ teams strive to continue to hire ‘A grade’ candidates.
Ensuring a baseline of intellectual firepower in all employees will give confidence that as a whole they will continue to be able to face and overcome any novel problems with confidence. Interestingly this doesn’t necessarily come from experience or even from getting top grades at a top school, smart people are just really good at spotting other smart people and they believe that raw talent can learn anything.
An interesting point is that all companies tell me they are an ‘A grade’ team, this of course is not the reality. You may have to accept that your intellectual firepower is fixed within you but so is everyone else’s, if you don’t cut it somewhere you will elsewhere and it is all very subjective. Remember about needing the intellectual balance amongst smart peers!
Many of these top end companies have literally built their technical foundations off the back of a deep and broad understanding of Computer Science. This is often what separates the good companies from the great companies in the systems they create. This area is where your education, your ability to pass exams or become top of your class may really help you shine. Can you recall your theoretical undergrad knowledge unflinchingly, tackle your data structures, algorithms and mathematics foundations?
Interviewers will assess your knowledge of the fundamentals as a strong hiring signal regardless of who you are. Don’t forget, you can teach yourself this knowledge and I have seen self-taught software engineers or those from mathematics and physics backgrounds fly through such interviews.
These companies need demonstrable technical ability that can be assessed. Regardless of how well you understand the fundamentals and can talk the talk, can you walk the walk?
The way you have learnt to code and who has assessed your code over your personal or professional programming career will influence the habits you have got into. I have had dozens of ex-Google and Facebook employees fail interviews due to writing poor or ‘hacky’ code, then super smart coders with excellent fundamental knowledge who just over-engineered solutions. This is the part you really cannot take a short-cut through, you need to put in the hours and have your code reviewed by people whose opinion matters.
The good thing is no matter who you are or where you are in the world, nothing is stopping you from continuing to learn, practice and get your code out there. Blog, dump, fork, share and post wherever you can to ensure you are continually learning, improving and getting your code reviewed. Inevitably you will be sat in a technical interview and you don’t want to let all your awesome theoretical knowledge down by not realizing your code sucks.
This seems like the most simple and softest of all companies needs but trust me this is where most people fall down.
This is where your dreams, wants and desires that we have dissected come up to bite you on the ass. You are not trying to work in research or for a billionaire’s side project. More often than not, regardless of how well the company PRs itself, you are applying to work at a private company that at the end of the day needs to drive revenue and generate profits to enable it to do what it does day to day. Yes, ideally you will find the companies that want to remain profitable to fund their activity rather than the other way round.
Regardless, these are businesses and you are an employee of that business. You have your part to play in their greater goal which along the way should allow you to realise your ambitions. ‘She just gets it’, ‘he is very commercial’… is the sort of interview feedback that gets me out of bed in the morning. Requiring minimal time investment and attention to be very productive means you will very likely outshine the top achievers across intellectual firepower or fundamental knowledge. Be motivated and pulling in the same direction as the company. Be the employee you would want to hire into your own business.
Regardless of your perception of your dream company the reality may be quite different, the grass is always greener and you need to think about what will actually make you happy on a day to day basis. There is nothing wrong with having aspirations but there are a lot of factors contributing to happiness and you need to fit into a commercial world. You do need to shape your skills and attributes to ensure you are aligning with the needs of your most desired companies whilst letting your passion and enthusiasm shine. You are being assessed on intellectual potential, your academic study of the topics at hand, your ability to deliver high quality code and to be able to do this in a reliable way as a ‘commercial’ and productive employee.
In return you will get to work with incredible people where you will always be learning. You will get a sense of satisfaction from delivering high quality work, no matter what your company does you will feel proud of this work, this will make you critical to the business’ function, your company will not want to lose you and will compensate you well.
This is a narrow view of some of the most technically advanced firms out there and not representative of the wider market. I hope this insight helps.
Originally published on www.linkedin.com
Engineers who find a new job through Golang Works average a 15% increase in salary.Start with GitHubStart with TwitterStart with Stack OverflowStart with Email