To give a little bit of context, I'm a senior software engineer with 8+ years of experience and have worked at four different companies. I have to admit that I'm not a genius developer, but I always get the job done and have consistently received great performance reviews throughout my career. I've been looking for a new role since early this year because I haven't had a pay rise in the past two years, and some of my colleagues who have been working here for many years have confirmed that there is no career progression in this company.
I'd say it's not difficult for me to land an interview; about 70% of the resumes I send out result in an invitation for a technical interview. However, I have noticed that all the jobs I've landed so far were through take-home assignment tests. There are some live interviews focused on concepts and system design, but they never involve coding tests or problem solving questions. There are a couple of reasons why I don't do well in live coding interviews:
I'm the type of person who can only focus and think when I'm by myself. I never do pair programming, and if my colleagues ask me questions that require analysis, I always tell them that I will get back to them once I've found the solution.
I don't remember most programming syntax if I need to write code from scratch. Throughout my career, I have always used tools, do lots of Googling and tend to copy/paste a lot from existing solutions, then improve from there.
I experience high anxiety when I'm put on the spot, which brings me back to point 1.
Now here's the problem: with ChatGPT and many other AI tools on the rise, I don't see any companies offering take-home assignments anymore. It kind of makes sense since all the take-home assignment tests I did could probably be done in minutes with ChatGPT.
I really flunk all of my live coding interviews because I basically go blank whenever I'm asked to code on the spot. I don't think I'm capable of passing interviews even for mid-level positions at this point. I think I'm not the only one, and I'm wondering what people in similar situations do to land a job nowadays.
Another note: I know that FAANG and most other tech companies test heavily on LeetCode problems and always ask further questions to evaluate your problem solving skills. I have given up on applying to these types of companies since my first role. I'm just aiming to progress my career and salary at whatever company I can land a job with.
When I worked for a marketing agency as the Tech Director, overseeing all web development and technical aspects of the business, we had a unique approach to evaluating potential hires. We administered a 3-hour development test, scheduling it at a convenient time for the candidate, even during evenings or weekends. The task involved completing a WordPress design project with specific criteria within the 3-hour window. This test wasn't a strict pass or fail but rather a way to gauge their skills and what they could achieve under time constraints.
The results were telling; some candidates clearly lacked the necessary skills, while others demonstrated a strong aptitude and effort. We hired those who showed a good understanding and capability, even if they didn't produce a perfect result.
I went through the same test myself and secured the job. Looking back, I'm quite surprised at my approach. I didn't use Bootstrap (I wasn't familiar with it at the time) and instead did everything manually without any coding libraries. Today, I would approach the test very differently with the knowledge and tools I've since acquired.
If you're concerned about the capabilities of AI like ChatGPT, look out for Devin. It can, for instance, create WordPress plugins with impressive ease. This could put developers out of a job for sure. 1 person could just use Devin and act like 2 to 3 DEVs.
I completely agree that performing a code test on the spot can be challenging, and I failed those types of tests myself. However, demonstrating a portfolio can be incredibly helpful. Having something on GitHub or a similar platform that you can include on your resume is invaluable. This is the approach I use in my current role, where all our workers are remote, both onshore and offshore.
However, you can also frame it as leveraging AI tools to enhance your work efficiency and code quality. In my view, it's essential to have the coding/development knowledge and understanding to effectively utilize AI with the write commands. In addition, you need the knowledge on how to implement it and use any functions it might give you.
For instance, I used ChatGPT to optimize a piece of code I wrote from scratch, reducing it from 210 lines to 113. This optimization made the code run more efficiently plus I learnt how I could maybe change my code in the future.
Yes, I use ChatGPT to help me phrase the above better, because why not