1. What do you want to learn or do more of at work?
On the day to day I wish to be in a position to contribute my knowledge and experience to the people I work with, team, organisation, to make their lives better. I have acted as team lead to small teams, and enjoy ensuring that everyone has what they need to not only succeed, but enjoy themselves in doing so, feeling the value of their contribution and connectedness with broader goals and the organisation. I also thrive on ever expanding the depth and breadth of my technical knowledge, no detail is too small, and no matter where in the stack I am looking and learning, I enjoy getting the fine details of the immense whole and being able to navigate it effectively for support and project/uplift/improvement activities. I enjoy the challenge of support where no two jobs are identical, and I like support because one is never far from the human side of technology, which to me, is actually the cutting edge - after all, if people cannot use a product then its theoretical worth is clearly in question. Of course, supporting a great product enables me to provide the most excellent experience, knowledge, advice and uplift through the support process to customers which is why I am excited to work for Vercel. Look forward to becoming expert at what next.js and vercel infrastructure can do for its clients - and learning about vercels infrastructure and how it is able to serve the incredible environment, services and tools. Helping each individual through their challenges to come to a solution is the essence of both great support and service provision and gives me a feeling of great satisfaction.
2. Describe how you solved a challenge or technical issue that you faced in a previous role (preferably in a previous support role). How did you determine that your solution was successful?
In my current role I became sole SME for their AWS Connect Telephony application. This meant that all escalations came through myself at some point in their escalation process. In one case A configuration that normally would be submitted as a request and then a change proposal drawn up for approval had been made in the production environment by an excecutive with admin priveledges without the assistance or oversight of any operations teams including CAB. This meant that a live advertising campaigns calls were not being captured by the correct agents nor Saleforce, the main CRM. I found that the issue was isolated to a failure of automation between the AWS Connect instance and Saleforce that should have caused the creation of a sister object in Saleforce in order for customer records to be captured and associated to it. In this case, the Marketing team and Saleforce Administrators were the stakeholders, and I worked with them finding that due to renaming the object the saleforce object did exist but under a different name, further it was found that the Schema for the json payload sent by Connect to saleforce was missing crucial definitions and therefor subsequent operations and saleforce integrations were not functioning. This was iteratively solved through sandboxed testing in production with the product owner from the Saleforce team. When we had successfully rectified the issues in our testing, the config was applied and appropriate managers notified to closely monitor and report any further incidents. Though confident in the testing, we monitored the situation for 24 hours, marking the issue resolved 24 hours later after confirming no further incidents were experienced.
3. How would you compare Next.js with another frontend framework? Feel free to compare with a framework of your choice.
Next.js is more than a front end framework. Some frameworks (Vue, for example) specialise in certain functions and do them quite well, whether that be content formatting and UI, or speed and advanced caching. However, they are frontend only, and are limited in their effectiveness and future proofing or code reusability by the middleware or API layer used to contact the servers, databases and content. Next.js when combined with Vercel platform is a complete backend and frontend solution that eliminates considerable overhead of cost and time in administration and maintenance and division of developer labour building and maintaining server infrastructure and uplift in the stack as it seamlessly scales leveraging the ongoing releases and upgrades coming from Vercel’s highly capable dev teams. Further, the hosting is scaleable instantly on demand without intervention or consideration beyond best typescript or coding best practices within next.js. The specialised functions that other frontend frameworks focus on are also native functions of next.js. Built on the react framework, next.js inherits the pedigree and integrations and libraries from that healthy community of developers. Next.js excels in serverless and edge functionalities that are part of the reason it is a clear leader in web application frameworks, and will continue to be at the forefront of full stack development in the near future as DC and cloud operations continue to evolve and grow into a modern full stack integrated framework approach such as Next.js.
4. When would you choose to use Edge Functions, Serverless Functions, or Edge Middleware with Vercel?
An edge function is something that can run locally on the client machine such as URL rewrites during an agile like change where resources perhaps have been moved to a new location, but all references need to be identified in case they are still hiding in legacy code. The url rewrite can be set as a global edge function to redirect any traffic to the resource site wide at the end point prior to the request being sent for the content. Further, this function could perform a monitoring function, identifying any calls still directed to the old resource for review and correction, but not hindering useability or UX. A serverless function enables server-side logic or operations to be performed on action at the endpoint. Such as form submission. The data can be validated, tasks performed, such as send the data to a database, or send an email etc. An edge middleware function might be to ensure a user is authenticated on a certain route or routes within a site. So, a function to ensure on landing at a url, or performing certain functions a user is authenticated, this could be done by checking a local tokens validity, or whatever is needed, prior to further actions or service on that route.
5. Imagine a customer writes in requesting help with a build issue on a framework or technology that you've not seen before. How would you go about troubleshooting this and what questions would you ask the customer to understand the situation better?
I would gather as much information at first as possible. Identifying the following:- Size of the concern and impact of the issue (i.e. is it an enterprise account, or free tier and dev exercise with no business impact to the issue)
- The nature of the application, its history and purpose and complexity broadly - (i.e. is it imdb like, or the sandbox of a uni student for their great app idea conceived and begun 3 weeks ago in the early hours of a saturday morning.)
- Then, ensure I understand the issue thoroughly, so, obtain the faulty code, error logs, and anything else that will assist looking at the issue.
- Obtain details about when the issue occurred, its replicability etc. until the problem is clearly defined to the limit of my knowledge or ability to understand the specific framework and build.
- Then, working with the customer - or knowledgeable colleagues internally, I would independently study the framework or functionality that is under investigation whilst learning and appreciating the design and construction choices of the customer.. this approach is primarily to methodically uncover the issue and provide direct resolution, but also to potentially assist by providing ideas for improvements to design/code if it is seen that an alternative to the existing practice may be the best solution to provide larger view uplift to existing operation/design/function.
6. The customer from question 5 replies to your response with the following: “I’m so frustrated. I’ve been trying to make this work for hours and I just can’t figure it out. It must be a platform issue so why don't you just fix it for me instead of asking me questions.”
“Hi Edward, I hear you, and understand the frustration, I can see how far you have come with PetSupplies.org’s site recently, and commend you for the efforts, its is a most elegant solution and understand you are very keen to go live. As mentioned previously, the crux of the issue is the ….. and the best solution would be to separate as much of the logic as possible from the server functions being called for data within the “create my puppies new look” part of the app. i.e. Rather than the weight of the logic being on the server to provision the various outfits each time a change is made, this could be condensed to a single call on load, and functions occurring locally for the activities, such ad…. 🙂 This, as we saw from the logs, is the reason for the tests not performing to the standards promised by vercel and next.js and not an actual failure. By refactoring a little at this stage, you can see it will also be easier to get started with useable skeleton code for your upcoming “giraffe pyjamas” and “kittens mittens” projects. As we discussed, due to initial demand expectations being low, this work does not all have to be completed prior to go live, and if you would like, I would be happy to arrange a call to discuss a roadmap for doing these changes in production whilst live so that they will not impact operations post golive. —- So.. in other words, I would be understanding and offer as comprehensive and palatable solution as is possible, whilst ensuring the customer is cognisant of the scope of our support whilst also being provided with excellent support and guided to a sensible new direction even if a quick fix was the initial expectation or desired outcome.