Working in the Industry: Interview with a Wix Software Engineer


Working in the Industry: Interview with a Wix Software Engineer

Profile and Professional Experience

Name: Avishai Ish-Shalom
Current Title: Software Engineer at
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 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; 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?

What Are Containers and Containerization in DevOps? 

With the constant changes in software development and deployment, containers and containerization have emerged as the most sought-after topics in DevOps.  Containers bring to the table a lightweight, portable, and performant way of packaging, deploying, and managing applications.  Using these said ways, DevOps teams can benefit in many aspects.  This article revolves around the container […]

Advantages and Disadvantages of Microservices Architecture  

Within the scope of software development, microservices architecture has become a prevalent strategy, radically transforming the way applications are developed, deployed, and managed. It, however, comes with its own set of challenges. What are Microservices?   Microservices architecture is an architectural style that decomposes the application into small, loosely coupled services using microservices tools. Each service […]

Introduction to Progressive Web Apps

In today’s dynamic world of web development, PWAs, or Progressive Web Apps, stand as an innovative alternative to overcoming the barrier between traditional web pages and native apps.  Thanks to their ability to provide users with an app-like experience but still being flexible and accessible as a web page, PWAs have become very popular among […]