Optimize For Changeability
It's a common misconception that startups never fail for technical reasons; in fact, it's often the case that technical failures cause trouble in other areas. Burnout, difficulty in reacting to the market, or failure to raise capital could all be caused by the technical team's inability to change the code - due to poor maintenance or inefficient methodologies.
I help startups and tenured companies deal with fear of change and cluttered architecture by introducing a proven methodology: build minimal software, maintain quick feedback cycles, and write tests that protect from breakages while enabling swift progress.
As a founding member of the Wix Engineering organization, and as the VP of Engineering at Orbs.com, I hired and led dozens of software engineers and engineering leads. I can help you with scaling your software system or your organization, creating a better engineering culture, mentoring your engineers in sustainable development methodologies, and dealing with the fallout of accelerated growth.
Dealing With Your Next Scale
Growth is painful. You've found your market fit, but now adding new features becomes slower and your codebase is hard to change. Maybe you need to break a monolith apart, rethink your architecture, or apply a Continuous Delivery pipeline.
We'll define a scoped project, and I'll pair with one of your engineers. Together, we'll make the system easier to change, refactor it, and add test coverage, leaving you with at least a subsystem or a microservice that you're proud of, along with an engineer who can propagate the concepts and knowledge.
Software That Works
Test-Driven Development is a proven methodology that helps you write the simplest code possible, with few assumptions and no time wasted on up-front design. I can join your engineers in writing a new piece of software, or deliver a workshop tailor-made to your tech stack. Unlike mainstream TDD workshops, we will work on real code, that can reach production and focus on tests that actually enable fast iteration. At the end of the project, your team will never want to write untested code again.
Level-Up Your Engineers
You have assembled an exceptional team with a great deal of potential. They are eager for mentorship and want to improve their skills and knowledge, but you are constantly juggling unattainable deadlines and mounting requirements. Drawing on my experience leading the Wix Backend Engineering Guild and the Orbs engineering team, I can help your team members enhance their expertise in areas such as software engineering, architecture, and leadership, allowing them to reach their full potential.
See The Forest From The Trees
Successful startups operate at a breakneck pace, responding quickly to changing markets and continually refining their product and vision. This can make it challenging to look beyond the next sprint or quarter. Drawing on my experience helping to scale Wix from a team of 20 engineers to over 1,000 across multiple sites in Israel and Europe, and transitioning from a monolithic architecture to hundreds of microservices, I can help you plan for the future while also ensuring that you're not leaving any money on the table.
We worked with Shai on a couple of projects... on both projects Shai paired with one or more of our engineers and worked together for long durations in order to make significant progress. Shai puts emphasis on giving knowledge and methodologies and focuses on giving the team the learnings and tools that would stay after he's done with his work...
Shai worked closely with our engineers for extended periods, and his prioritization of knowledge sharing and adoption of best practices, enabled the team to acquire a diverse set of skills and tools that proved to be highly valuable long after his contribution. It is truly a testament to the significance of investing in sustainable learning and development within any organization.
VP OF ENGINEERING,ORBS
I joined Orbs to build the engineering team and bootstrap the software running the Blockchain consensus algorithm. I paired with Orbs' technical co-founder and over a couple of weeks we created, using Test-Driven Development, the skeleton for the Blockchain node, covered by comprehensive E2E tests and by fast, responsive integrative tests. The system is continuously integrated and deployed to a test environment where production-like traffic helps prevent regressions.
WIX BACKEND ENGINEERING GUILD
As Wix grew from 20 to 100 to 1,000 engineers, it was important for me that we retain the essential DNA of what made us an amazing engineering organization. I served an essential role in crafting the way the Guild interacts with the functional units at Wix (referred to internally as "Companies"), in shaping the Guild's (and the entire R&D organization's) hiring practices and processes, and in instilling a culture of professional growth and excellence.
I also took an early part in shaping the way Wix Engineering expands abroad into new sites and territories, starting with the Wix Vilnius office, where I spent some time in 2014-2015, and later when strategizing around the idea of a Kyiv office (which became the largest engineering site Wix has outside of Israel).
In 2016, I assumed joint leadership of the Backend Engineering Guild, focusing on infrastructure, hiring, and guild member professional growth.
I architected and led the engineering team for Wix Stores, utilizing the Scala language, TDD, microservice architecture and Event Sourcing to create a system that can deal easily both with scale and with the (very rapidly) changing requirements coming from the product team. This architecture proved resilient and survived for almost 10 years, and has also become somewhat of a template for other event-sourced solutions at Wix.
When I joined Wix, we had 4 server systems, each a monolith in its own domain. I spearheaded the development of Wix's backend microservice infrastructure, and later packed everything nicely so that creating a new microservice at Wix was a matter of class inheritance in Java.
WIX HTML WEBSITE BUILDER
During this period I introduced Scala into the Wix Backend group, which quickly became our language of choice for JVM systems, and pioneered the use of TDD at Wix.