Working in the Industry: Interview with a Wix Software Engineer

Author:

Working in the Industry: Interview with a Wix Software Engineer

Profile and Professional Experience

Name: Avishai Ish-Shalom
Current Title: Software Engineer at Wix.com
Past Positions: Co-Founder and CTO at fewbytes, Infrastructure Group Leader at Leaway Enterprise, and Public IT Center Manager at The Hebrew University.
Experience: 10+ years
Most Important Coding Language: JavaScript
Motto: “In a world where every device has an API, everything is a software problem”.

Career Advice From a Wix Software Engineer

Avishai Ish-Shalom is a Software Engineer at Wix.com. This seasoned software developer has over 10 years experience, and in this blog he shares his invaluable advice on networking, tech interviews and professional development to help you to progress your tech career.
How ​did ​you ​end up in the software development industry?
I’ve been playing with computers since I was a child, and when I was in university, I worked in the IT Department to finance my degree. Over time, I discovered I was more interested in software systems than physics, so when I got a new opportunity with a software company, I decided to give it a shot (a desirable salary helped me make that decision). I toyed with the idea of going back into physics for a while, but eventually I realized that this career path was the right one for me.
Did ​you ​always ​want ​to ​become ​a ​Software Engineer?
Years ago, I studied Physics in the University of Jerusalem; my goal was to become a physicist. I had little exposure to the software services industry which was only starting to gain momentum in Israel at the time. When I started working in software, the Cloud hadn’t been discovered, and many tech jobs which are common now didn’t exist yet. I couldn’t have even imagined my current job now.
Tell ​me ​a ​bit ​about ​your ​professional ​background.
My career started while I was working in the IT Department in The Hebrew University. It was a great place to learn, and I worked alongside very knowledgeable people. I was solving interesting problems and the environment was nice with little pressure from management. My boss encouraged me to try out new things, and directed me to professionals I could consult. The environment was supportive, and I had the freedom to develop my software skills and my professional confidence.
If ​you ​could ​look ​back ​to ​the ​start ​of ​your ​career ​and ​give ​yourself ​any ​advice, ​what ​would ​it ​be?
I would have told my younger self to master learning and validation techniques before anything else. The more junior you are, the larger the amount of poor quality information you will come across. It’s essential to know how to differentiate high value information from misleading information. Even basic questions like “who should I listen to?” or “what should I learn next?”, are very hard to answer without this skill.

Your​ ​Career​ ​Right​ ​Now

What ​does ​your ​current ​position ​involve ​and ​what ​are ​your ​day-to-day ​responsibilities?
My current position is Software Engineer at Wix.com; my role involves people management, project management, technical mentoring and software architecture expertise. My responsibility is to lead a team of backend developers who are in charge of several core services in the company. In practice, this job means being responsible for the creation and implementation of features, promoting long term solutions to architectural problems, and improving the professional standards of myself and my team.
What ​are ​the ​most ​important ​aspects ​of ​your ​job?
The most important parts of my job are problem solving and data analysis. My job is to empower other engineers to create new features and help them to implement these. By analysing any issues, I help others to focus on the right problems so we can discover lasting solutions as a team. I found that in many cases people are doing their best, they just need a little direction and that’s where I come in.
What ​coding ​languages ​do ​you ​use ​the ​most?
Scala and Python.
What’s ​the ​most ​satisfying ​problem ​you’ve ​ever ​solved?
That’s hard to say. I think the most satisfying in the long term was actually a meta-problem; I created a clear methodology for analysis and learning.
What ​do ​you ​think ​are ​the ​most ​important ​skills ​for ​software ​developers?
Continuous learning and a structured approach to problem solving. Programming languages and frameworks come and go, and even hardware changes. Despite this, the ability to learn new techniques, technologies and ideas is vital. It is with these tools that we can learn to deal with new problems in an improved way; this is a skill that will serve you as a developer no matter what happens in the future.

CV and Interview Advice​

Have ​you ​any ​advice ​for ​someone ​finding ​it ​difficult ​to ​stay ​motivated?
Create a real world project that you will use and derive personal benefit from. The beauty of software is that you can often get value pretty quickly even with relatively low effort. Using this tool you’ve built, seeing it work and improving your life will give you motivation to continue learning. As your projects evolve, you will evolve into a better programmer.
What ​are ​the ​most ​important ​features ​of ​a ​tech ​CV?
CVs can be a potentially misleading document. When I read a CV I’m looking for indications that this person is passionate about learning new things.
Did ​you ​ever ​apply ​any ​useful ​tips ​that ​helped ​you ​succeed ​in ​your ​first ​tech ​interview?
Most of the problems you will be confronted with in good interviews are problems you haven’t seen yet. Stay calm and work on the problem with a clear methodology in place. You can actually ace a technical interview while failing to solve the problem – it’s how you approach the problem and what you understood about it that counts.

Coding​ ​and​ ​The​ ​Future

What’s ​your ​favourite ​coding ​language ​and ​why?
Clojure. Clojure is a language that’s very different from most popular programming languages because it is rooted in a few fundamental insights. Modern programming is complex, but Clojure focuses on simplicity, immutability and pragmatism.
What is ​the ​most ​important ​coding ​language ​in ​2018?
JavaScript. For better or worse and despite all of its shortcomings, JavaScript remains the engine of the modern internet. If you don’t understand Javascript, you don’t understand the internet.
Why ​do ​you ​think ​coding ​has ​become ​so ​important?
I’ll share my professional motto with you: “In a world where every device has an API, everything is a software problem”. As programmable devices comprise a larger part of our environment, many problems are becoming new software problems. From your smartphone to an airplane, from sewage pipes to nuclear power plants, everything in the modern world is based on software.
It’s surprising for people to learn that many things that they refer to as “hardware” actually contain a considerable amount of software. A bug in the code is now a bug in hardware. I believe not knowing how to code today is like being illiterate two hundred years ago; you could get around the world but you could never truly master it.
If you’re interested in a career in tech, why not try our free 5 Day Coding Challenge?

How Much Do Data Analysts Earn?

The role of a data analyst has become increasingly essential across various industries. As companies seek to make informed decisions based on data insights, the demand for skilled data analysts has surged, prompting the question: How much do data analysts earn? If you’re considering a career in data analysis, this blog will provide you with […]

What Does a Data Analyst Do?

A Data Analyst is a professional who gathers, interprets, and processes data to extract meaningful insights that can guide business strategies. They are the bridge between raw data and actionable recommendations.  What is a Data Analyst? The role of a Data Analyst has become increasingly vital for organisations seeking to make informed decisions based on […]

What is an Android Developer?

An Android developer is responsible for creating and maintaining applications for the Android operating system. These developers use programming languages like JavaScript, Java, Kotlin, and others to design and build mobile apps that run seamlessly on various Android devices, from smartphones to tablets. They collaborate with designers, product managers, and other team members to craft […]