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
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?
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?