Geli (Growing Energy Labs, Inc.) provides innovative software and business solutions for designing, connecting, and operating energy storage and microgrid systems. As a subsidiary of Hanwha Q CELLS, one of the world's leading photovoltaic manufacturers, Geli is dedicated to advancing the energy industry with high-performance software platforms that integrate seamlessly with various hardware.
As a Software Engineer at Geli, you will be at the forefront of the rapidly expanding energy storage industry. You'll be working on the core network of distributed energy resources, extending and scaling backends, and processing telemetry streams. You'll need proficiency in backend development, microservices, messaging, cloud, and DevOps. Applicants should be eager to take ownership of projects and contribute significantly to technological advancements within the company. This guide aims to prepare you for the interview process, providing insights and valuable tips to help you secure a position at Geli. Let's get started!
The first step is to submit a compelling application that reflects your technical skills and interest in joining Geli as a software engineer. Carefully review the job description and tailor your CV according to the prerequisites, whether you have been contacted by a Geli recruiter or have taken the initiative yourself.
Tailoring your CV may include identifying specific keywords that the hiring manager might use to filter resumes and crafting a targeted cover letter. Furthermore, don’t forget to highlight relevant skills and mention your work experiences.
If your CV happens to be among the shortlisted few, a recruiter from the Geli Talent Acquisition Team will make contact and verify key details like your experiences and skill level. Behavioral questions may also be a part of the screening process.
In some instances, the Geli software engineering hiring manager could be present during the screening round to answer your queries about the role and the company itself. They might also include surface-level technical and behavioral discussions.
The whole recruiter call should take about 30 minutes.
Successfully navigating the recruiter round will present you with an invitation for the technical screening round. Technical screening for the Geli software engineer role is usually conducted through virtual means, including video conference and screen sharing. Questions in this 1-hour long interview stage may revolve around Geli’s software systems, backend processing, and relevant technologies, such as Java, Kotlin, microservices, and messaging systems like Kafka and RabbitMQ.
In the case of software engineering roles, take-home assignments or live coding exercises may be incorporated. Your proficiency in coding standards, problem-solving, and software engineering best practices may be assessed during this round.
Depending on the seniority of the position, case studies and similar real-scenario problems may also be assigned.
Followed by a second recruiter call outlining the next stage, you’ll be invited to attend the onsite interview loop. Multiple interview rounds, varying with the role, will be conducted during your day at the Geli office. Your technical prowess, including programming skills and understanding of microservice architecture, will be evaluated against the finalized candidates throughout these interviews.
If you were assigned take-home exercises, a presentation round may also await you during the onsite interview for the software engineer role at Geli.
Quick Tips For Geli Software Engineer Interviews
You should plan to brush up on any technical skills and try as many practice interview questions and mock interviews as possible. A few tips for acing your Geli interview include:
Typically, interviews at Geli vary by role and team, but commonly Software Engineer interviews follow a fairly standardized process across these question topics.
Write a SQL query to select the 2nd highest salary in the engineering department. Write a SQL query to select the 2nd highest salary in the engineering department. If more than one person shares the highest salary, the query should select the next highest salary.
Write a function to merge two sorted lists into one sorted list. Given two sorted lists, write a function to merge them into one sorted list. Bonus: What's the time complexity?
Create a function missing_number
to find the missing number in an array.
You have an array of integers, nums
of length n
spanning 0
to n
with one missing. Write a function missing_number
that returns the missing number in the array. Complexity of (O(n)) required.
Develop a function precision_recall
to calculate precision and recall metrics from a 2-D matrix.
Given a 2-D matrix P of predicted values and actual values, write a function precision_recall to calculate precision and recall metrics. Return the ordered pair (precision, recall).
Write a function to search for a target value in a rotated sorted array. Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. You are given a target value to search. If the value is in the array, then return its index; otherwise, return -1. Bonus: Your algorithm's runtime complexity should be in the order of (O(\log n)).
Would you suspect anything unusual about the A/B test results with 20 variants? Your manager ran an A/B test with 20 different variants and found one significant result. Would you consider this result suspicious?
How would you set up an A/B test to optimize button color and position for higher click-through rates? A team wants to A/B test changes in a sign-up funnel, such as changing a button from red to blue and/or moving it from the top to the bottom of the page. How would you design this test?
What steps would you take if friend requests on Facebook are down 10%? A product manager at Facebook reports a 10% decrease in friend requests. What actions would you take to investigate and address this issue?
Why might job applications be decreasing while job postings remain constant? You observe that the number of job postings per day has remained stable, but the number of applicants has been steadily decreasing. What could be causing this trend?
What are the drawbacks of the given student test score datasets, and how would you reformat them for better analysis? You have data on student test scores in two different layouts. What are the drawbacks of these formats, and what changes would you make to improve their usefulness for analysis? Additionally, describe common issues in "messy" datasets.
Is this a fair coin? You flip a coin 10 times, and it comes up tails 8 times and heads twice. Determine if the coin is fair based on this outcome.
Write a function to calculate sample variance from a list of integers.
Create a function that takes a list of integers and returns the sample variance, rounded to 2 decimal places. Example input: test_list = [6, 7, 3, 9, 10, 15]
. Example output: get_variance(test_list) -> 13.89
.
Is there anything suspicious about the A/B test results with 20 variants? Your manager ran an A/B test with 20 different variants and found one significant result. Evaluate if there is anything suspicious about these results.
Write a function to return the median value of a list in O(1) time and space.
Given a sorted list of integers where more than 50% of the list is the same repeating integer, write a function to return the median value in O(1) computational time and space. Example input: li = [1,2,2]
. Example output: median(li) -> 2
.
What are the drawbacks of the given student test score data layouts? You have data on student test scores in two different layouts. Identify the drawbacks of these layouts, suggest formatting changes for better analysis, and describe common problems in "messy" datasets.
How would you evaluate the suitability and performance of a decision tree model for predicting loan repayment? You are tasked with building a decision tree model to predict if a borrower will repay a personal loan. How would you evaluate whether a decision tree is the correct model for this problem? If you proceed with the decision tree, how would you evaluate its performance before and after deployment?
How does random forest generate the forest and why use it over logistic regression? Explain the process by which a random forest generates its forest. Additionally, discuss why one might choose random forest over other algorithms such as logistic regression.
When would you use a bagging algorithm versus a boosting algorithm? Compare two machine learning algorithms. In which scenarios would you use a bagging algorithm versus a boosting algorithm? Provide examples of the tradeoffs between the two.
How would you justify using a neural network model and explain its predictions to non-technical stakeholders? Your manager asks you to build a neural network model to solve a business problem. How would you justify the complexity of this model and explain its predictions to non-technical stakeholders?
What metrics would you use to track the accuracy and validity of a spam classifier? You are tasked with building a spam classifier for emails and have completed a V1 of the model. What metrics would you use to track the accuracy and validity of the model?
Q: What does Geli do? Geli (Growing Energy Labs, Inc.) provides software and business solutions to design, connect, and operate energy storage systems, ranging from residential to utility-scale, as well as grid-tied, microgrid, and off-grid systems.
Q: What is Geli’s vision? Geli is committed to making the planet a cleaner, better place to live. Geli envisions a world with less reliance on nonrenewable power, where energy is sourced from neighbors rather than distant power stations, and software optimizes the use of solar, wind, and battery storage.
Q: What are the key responsibilities of a Software Engineer at Geli? As a Software Engineer at Geli, you will work on the core of our network of distributed energy resources. Responsibilities include developing and maintaining new services within our microservice architecture, scaling backend capabilities, improving messaging infrastructure, managing services in Kubernetes, and contributing to monitoring, logging, and alerting.
Q: What skills and experience are required for a Software Engineer at Geli? Candidates should have a BS or higher degree with at least three years of experience, excellent software engineering skills with Java 8 or Kotlin, strong object-oriented programming skills, knowledge of software design patterns, experience with Docker and Kubernetes, backend development experience for web applications, and hands-on microservice experience.
Q: What is the work environment like at Geli? At Geli, you will be part of a passionate, diverse team dedicated to renewable energy. The company offers flexible work-from-home or office opportunities, a casual professional environment, and many opportunities to lead projects and contribute to development. The company's small size allows for significant individual impact.
If you are passionate about renewable energy and ready to make a real impact in the evolving energy storage industry, Geli presents a unique opportunity to work on cutting-edge projects that drive the future of clean energy. As a software engineer at Geli, you will be at the heart of developing scalable software solutions for energy storage systems while collaborating with a diverse team that values different perspectives for better decision-making.
For additional insights into Geli and preparation tips, check out our main Geli Interview Guide, where we cover common interview questions and tips. At Interview Query, we provide you with the strategies and knowledge you need to excel in your interview.
Good luck with your interview!