Soft skills interview
Soft skills questions
1. (adapt for position) Can you present yourself and tell us how your profile is relevant for the position?
Why do you want to work here ? Why do you want this job ?
- I was hoping you'd ask me that ! Well, as I understand it:
- Firstly, You're looking for an engineer who understands the energy trading business. With my background in finance, I can easily grasp your business operations since green trade PPAs are very similar to options in financial markets.
- Secondly, My high relevant work experiences have equipped me with the skills you need:
- I developed using Python/React and TDD test development in startup Qlower
- I redesigned and implemented a general, low resource consomption, hight compatible and scalable monitoring agent solution in big company Ansys
- I used AWS to deploy a Micro-service backend for my Follow Paris project, demonstrating my proficiency with cloud technologies and modern deployment practices.
- Furthermore, I have the ability to work as a team and flexibility. You also require the developer for this position to work back and forth between two teams, managing his task progress, balancing task time, and handling relations with the teams. My past experiences in multiple domains demonstrate my adaptability for different work environments and contents. As well as a strong ability to lean and solve problems, I can quickly digest technical and business knowledge and collaborate with team to have consistently delivered results.
- Last point, I'm very interested in technology trend news. I read every day to stay updated with the latest in tech, and I can see the trends in the renewable energy industry. I think ENGIE is doing well in the renewable domain, promoting green trade and PPA contracts, and aiming to push the zero-carbon objective (by the way, In the middle of this month, ENGIE juste rises to the top of the list of developers of PPAs for clean energy companies according to Bloomberg report !). Your team plays an important role in supporting this vision, that's why I want to be a part of it. I want to make a difference where I work and it looks like this is the place to do that.
- In summary, I believe that my experiences and abilities will enable me to succeed in this role at your company ENGIE and bring significant value to the organization.
2. (strengths and weaknesses) Can you tell us about your weaknesses and strengths ?
Strengths (2-3 mins)
- Well my greatest strengths are that:
- Firstly, I understand of the energy trading business, with my background in finance, I can easily know how it works since PPAs(Power Purchase Agreements) trade are very similar to options in financial markets.
- Secondly, My high relevant work experiences have equipped me with skills you need:
- I developed using Python/React and TDD test development in startup Qlower
- I redesigned and implemented a general, low resource consomption, hight compatible and scalable monitoring agent solution in big company Ansys
- I used AWS to deploy a Micro-service backend for my Follow Paris project, demonstrating my proficiency with cloud technologies and modern deployment practices.
- Furthermore, I have the ability to work as a team and flexibility, the requirement in Job Description to work back and forth between two teams is something i'm well-prepared for. My past experience in multiple domains demonstrates my adaptability for different work environments. As well as a strong ability to lean and solve problems, I can quickly digest technical and business knowledge and collaborate with team to have consistently delivered results.
- Last point, I have the passion for technology trend. I read every day to stay updated with the latest in tech, and I can see the trends in the renewable energy industry. I think ENGIE is doing well in the renewable domain, promoting green trade and PPA contracts, and aiming to push the zero-carbon objective(by the way, In the middle of this month, ENGIE juste rises to the top of the list of developers of PPAs for clean energy companies according to Bloomberg report !). Your team plays an important role in supporting this vision, and I want to be a part of it. I want to make a difference where I work and it looks like this is the place to do that.
- Well my greatest strengths are that:
Weakness(Good, Bad, Good):
- As for my weakness, I would say it's my curiosity for new knowledge and different solutions. I sometimes have a desire to understand and try out more possible better solutions, which leads me to spend extra time exploring various options. While this expands my breadth of knowledge and enrich my skillset, I also realize that excess exploration can affect efficiency.
- To address this, I'm learning to better balance my work time, what I found that with some simple limits, I can handle it well and it's never ever a problem.
- For example, by setting time limits for exploration. Make sure the task is not urgent but important and worth investing some time in. If in urgent case, initially adopting known solutions for complex problem and then diving into deeper exploration in the later stages of project.
3. (Accident) Can you describe a situation where you had to adapt to unexpected changes or challenges in a previous role? How did you handle it, and what was the outcome?
- Sure, In one of my previous roles of Qlower, I encountered a situation where, just before closing time, a colleague accidentally caused a significant issue in our production environment database. some data was duplicated in the database tables, which was a serious problem as it rendered our IT systems not work.
- We first made a backup database of the problematic version of the issue.
- To address this, I immediately used the AWS RDS Backup feature to roll back, which typically would have resolved the issue. However, the problem persisted, and the system couldn't be restored even though the data seemed normal. We tried different methods and debug with logs of database, and eventually, I discovered that the issue was due to the lack of the memory and CPU on the server running the database. By increasing the server's memory and CPU, I successfully rebooted the production database service and restored all the data.
- After restoring the database, we checked for any data loss and used the backup at the beginning of issue and scripts to recover.
- Outcome
- Our service was down for an hour, as it was hard to imagine that it could be due to a hardware problem rather than a database data consistency problem.
- After all, we did a review and try to understand the cause of the problem. In hindsight, we learned several important lessons from this incident:
- Production database credentials should not be shared with anyone except the tech lead or the person managing the database.
- It's crucial to design database tables properly, including setting a unique attribute field for each table.
- Even with roll back operation in place, we cannot guarantee their effectiveness, as we hadn't anticipated that our database server hadn't enough memory to support a database reboot.
- For highly stable system and database use case, consider maintaining a secondary backup database to avoid single points of failure, as happened in our incident.
4. (Documentation to reduce complex) Give an example of a time when you had to communicate complex information to a team member or client who had little to no understanding of the subject. How did you ensure effective communication and understanding?
- I have met this kind of situation in my experience of Ansys, and I was redesigning and redeveloping a new solution of monitoring agent, and it had many different components and environment for it, such as 3 clouds, 2 system OS, system OS Service level, application level, interact with Backend and a message broker between application and Backend.
- And I could't repeat again and again if I needed to explain, so I wrote many sharing tech documentations, flow charts and structure plans to show my concept and how it works, why there're 4 level for the solutions, how Ansys Gateway Backend interact with Cloud to setup automatically monitoring agent.
- In the same time, we had a meeting per week to synchronize situation. I actively exchange opinions, listen to suggestions, make necessary amendments to the documents.
- By doing this way, I was able to easily get a consensus from team to make this happen within a year.
5. (Communication) Tell us about a project where you had to collaborate with a diverse group of individuals. How did you contribute to the team's success, and how did you handle any conflicts or disagreements that arose?
- That's a great question. I can illustrate this with my experience of Qlower, where I worked on updating the financial fiscal report for landlords.
- We identified that some items in the landlords' financial reports were incorrect or misplaced. For instance, certain items shouldn't have appeared in those reports, and some sub-items needed to be grouped separately. More challenging for me was understanding the meaning of legal references in the real estate financial reports, such as codes like 217 and 214.
- To address this, I had to collaborate closely with the product manager. In our initial discussions, the two of us had one sentence each, but the more we changed, the more we got conflicts. So towards the end of meeting, I said, "Hey, john, I know you want to do it quickly, you want to do it well, right? As well as me, I want also, so we have the same Goal ! Why not we just do something we’re good at? Let's discuss our next steps." then we divided our tasks into two sub tasks:
- The product manager John was to clarify which parts of the report were problematic, how they should be updated, and the relationships between different items.
- My role was to read our backend Python legacy code to understand how it functioned.
- In our second discussion, we were able to point out the issues easily and made necessary corrections and updates to fulfill the product manager's requirements for the report. I also took the opportunity to rename some unclear named variables and add essential comments to the code for the ease of future modifications.
- In our third discussion, we confirmed that the final results met our CEO's requirements and made further small updates. We also compiled our notes and added them to the company's knowledge base.
- Further on, there're several similar collaboration occurred with the marketing department and in my subsequent role of Ansys, where I had to interact frequently with technical and product teams.
6. (Debug) Describe a difficult problem you encountered at work and the steps you took to solve it. How did you approach the problem, and what was the result?
- At my previous experiences, I was tasked with developing the same feature to generate PDF using Python in Django app and in the micro-service lambda function. The first case was for Qlower to generate fiscal report and rent invoice, the second case was a tech exploration in Follow Paris project.
- However, I met different challenges.
- In the Django environment, I faced issues with compatibility with package installation. Compatibility issues often cause significant troubles, and I found that package
pdfkit
couldn't be installed normally through a Docker file. After trying various installation methods, I eventually solved the problem by choosing a Docker image that already had the packagepdfkit
installed - In the AWS Lambda environment, while I could easily install the package
pdfkit
via lambda Layer, but the generated PDF contained some characters not correct like a square or many characters 'X'. Special characters, like Arabic and Chinese, weren’t displaying correctly, indicating a font issue. After researching on Google, Stack Overflow, and GitHub issues, I resolved this tricky problem by replacing the existing font file named Dejavu with a more comprehensive font file, essentially swapping in a larger dictionary with more special characters. - I ended up implementing this in both environments, but you'll see that even if you use almost the same code, it still creates different problems because of the way it's deployed, and the different environments it's running in. This requires strong debugging and problem solving skills to deal with a wide range of issues.
7. (Multiple tasks) Can you share a time when you had multiple deadlines to meet simultaneously? How did you prioritize your tasks and manage your time effectively to ensure everything was completed on time?
- Yes, typically, I get this usually, and I want to talk about how I deal with it.
- Firstly, I try to avoid having more than two tasks at a time to guarantee work quality and efficiency, but it's quite common to end up with two.
- When I have multiple tasks, it's crucial first to assess whether each is worth doing. I categorize the tasks, focusing on those that are both urgent and important or important but not urgent. Tasks that are neither urgent nor important, or urgent but not important, we could immediately communicate back to the manager for reassessment, with a clear explanation of the reasons.
- Next, in preparing the task briefs, I ensure that all aspects are clearly outlined, including the content of the task, the goals, the testing process, and the test attachment files. This helps avoid the time-consuming back-and-forth communication that can arise from unclear task description, effectively shortening the duration needed to complete them.
- We typically divide our day into two halves, morning and afternoon. The morning is allocated to tasks that are urgent and important, such as work with a definite deadline or features that directly impact users. The afternoon is reserved for important but not urgent tasks, like database optimization or code review.
- Once the tasks are clearly analyzed and time allocated, the focus is on working hard, efficiently, and quickly to complete them.
- Last point, learn to Make more notes about python, react, bugs, issue and processes.
- This whole handling process and notes will help me not to get suck once again with multiple tasks or the tasks I have met.
8. (Algorithm) Don you have the knowledge of algorithms?
Yes, I do have a fair understanding of algorithms. In my previous roles, where I was primarily focused on Full Stack development, the frequent use of algorithms was not a primary aspect of my job. However, I have had experience using algorithms to solve specific problems. For example, in Follow Paris project, we needed to optimize the efficiency of data processing because we want to reduce the cost for lambda functions. I applied the quicksort
algorithm to accelerate the data sorting process, which significantly improved the performance of the process ETL. Although I don’t use complex algorithms on a daily basis in my current role, I do understand their importance in solving certain types of problems and I'm capable of choosing and applying the appropriate algorithm when necessary.
Additionally, I am committed to my personal technical growth. In my own time, I have studied more complex algorithms, such as Binary Search, Linked List, Stack and Heap algorithms. I improved my skills by solving problems on Leetcode platform. I believe these experiences have given me a solid foundation in understanding and applying algorithms.
9. How do you handle stress?
"I handle stress very well."
"I've had to deal with stress on occasion, but it has never been a problem in the past."
"You know, I'm just very organized and I make stress not happen."
10. Where do you see youself in 5 years?
"I expect to be advancing based on my job performance, and likely talking on some new responsibilities."
"Do you mind me asking where you see this organization going in the future?"