
Asaf Shochet
Verified Expert in Engineering
Full-stack Developer
Rehovot, Israel
Toptal member since June 24, 2019
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
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
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
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.
Test Automation Engineer
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.
Experience
Client and Server-side Development and Management of System's Administration Panel
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)
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.htmlMy 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
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
Education
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring