Asaf Shochet, Developer in Rehovot, Israel
Asaf is available for hire
Hire Asaf

Asaf Shochet

Verified Expert  in Engineering

Full-stack Developer

Rehovot, Israel

Toptal member since June 24, 2019

Bio

Asaf is an experienced web developer and team leader. He's recently worked for TimeToKnow, where he led a development team of ten full stack developers. He masters JavaScript, HTML, CSS, and ReactJS for front end, and Java, Spring, and MongoDB for server-side. Asaf has vast experience in building great UI and with 3rd party integrations. He loves teaching and working with professionals at all levels, and he's a tech blogger.

Portfolio

TimeToKnow
React, CSS, HTML, JavaScript, MongoDB, Apache Tomcat, Spring, Java
MyThings
Fiddler, TestNG, Jenkins, Selenium, Java

Experience

  • Java 8 - 5 years
  • JavaScript - 4 years
  • HTML5 - 4 years
  • CSS - 4 years
  • MongoDB - 4 years
  • Spring MVC - 4 years
  • Full-stack - 4 years
  • React - 4 years

Availability

Part-time

Preferred Environment

Jenkins, Git, IntelliJ IDEA, Visual Studio Code (VS Code), Windows

The most amazing...

...thing I've coded is a system that allows the users to upload their own PDF, convert it to HTML, and add education entities such as quizzes and videos on top.

Work Experience

Team Leader and Fullstack Web Developer

2014 - 2018
TimeToKnow
  • Led a team of ten talented developers.
  • Created a content editing system that enables the creation of interactive and engaging educational material, using ReactJS, Redux, and Webpack.
  • Developed a server in Java, Spring, and MongoDB, using 3rd party libraries to convert PDF and EPUB files into HTML, extracting their metadata, text, and manipulating them.
  • Led the self-service effort of the company, moving from into a B2C business model.
  • Managed the automated testing effort in the company, both technically using Java, Selenium, and the testing policy.
Technologies: React, CSS, HTML, JavaScript, MongoDB, Apache Tomcat, Spring, Java

Test Automation Engineer

2012 - 2014
MyThings
  • Designed and built the test automation infrastructure from scratch, using Java, Selenium, and TestNG.
  • Integrated the testing system in the deployment pipeline using Jenkins, making it an integral part of the continuous integration process.
  • Created end to end tests that simulates the life cycle of ad management with Selenium.
  • Simulated complex test scenarios of IP based conditioned using integration with OpenVPN's API.
  • Trained the R&D department regarding the usage and advantages of test automation.
Technologies: Fiddler, TestNG, Jenkins, Selenium, Java

Experience

Client and Server-side Development and Management of System's Administration Panel

Developed and maintained the main application's administrative management console, both client and server-side.

Client-side: HTML, CSS, JavaScript, ReactJS. Using React Router for URL navigation support, Redux for state management, Material UI for nice and smooth interface elements.

Server-side: Java8, Spring Boot+MVC (Tomcat based), MongoDB, TestNG.

The application is used regularly by the customers and helps them to manage their account's settings such as name, logo, and colors, manage users, roles, courses, organization hierarchy, see usage reports and more.

Some of the more interesting features developed for the admin are:
* Localization of the user interface.
* Supporting several roles that used the admin, each with slightly different capabilities.
* Support management of the organizational hierarchy tree, and its usage across the system.

Server-side Development of TImeToKnow's Content Editing Tool (Create)

As a server-side developer, using Java, MongoDB, and Spring, I was in charge of designing, implementing and testing of applications server-side.

The application enabled users to create engaging educational content, so some of the main capabilities I developed were:
* Version management of the users' ebooks which they created using the application
* Publishing mechanism that created a zip file containing a playable version of the content
* Integrating with 3rd party vendors for authentication purposes
* Optimizing slow processes and profiling the system's behavior

Team Leader in Charge of TimeToKnow's Self-service Effort

https://global.echo.timetoknow.com/login.html
One of the efforts I lead in TimeToKnow, during my time as a team leader and a full stack developer, is the self-service flow. The goal of this effort was to expose the company's platform to small businesses and private tutors, in contrast to the prior approach that targeted only large organizations.

My part in the project was adjusting the system to new requirements that are a must in the self-registration flow, such as:
* Develop an online registration module on the server-side.
* Integrate with a marketing department's mini-sites,
managing the integrating with the marketing website, by exposing APIs in a secure way to be used publicly
* Update system's entities to be user-based instead of organization based (which is suitable for organizations, but not for individuals).
* Integrating with Amazon's services such as Simple Queue Service and Amazon's mailing service.
* Implementing google analytics

Creating End-to-End Test Automation Infrastructure and Tests in MyThings

As an automation engineer, I took part in creating the test automation infrastructure from day one.

The goal was to have end-to-end tests, that opens a real browser and simulate users, in a way that could give the managers assurance before releasing a new version to the customers.

To do so, we created a testing infrastructure using Java8, Juice, Selenium, TestNG, ExtentReports, Sikuli, and Jenkins (for deployment), so that the test suite (written in Java) will run on a testing environment every time new code is pushed to the application's GitHub repository.

The role included writing most of the tests, maintaining them, integrating to Jenkins, implementing a reports engine and communicating with management to make sure we are always on track.

Frogrammer.net Programming Blog

On my spare time, I write to my programming blog, focusing on things that interest me, and hopefully other people.

Education

2010 - 2013

Bachelor's Degree in Computer Science and Philosophy

Tel Aviv University - Tel Aviv, Israel

Skills

Libraries/APIs

React, Node.js

Tools

Jenkins, IntelliJ IDEA, Git, Apache Tomcat, Fiddler, Webpack

Languages

Java 8, JavaScript, HTML5, CSS, Java, HTML, Python, C#

Frameworks

Spring MVC, Material UI, Spring Boot, Spring, Selenium, TestNG

Storage

MongoDB

Paradigms

Test-driven Development (TDD), Agile

Platforms

Windows, Visual Studio Code (VS Code)

Other

Cross-functional Team Leadership, Web Development, Front-end, Servers, Full-stack

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring