I am a software engineer living in Israel. I am mostly experienced with C, C++ and Python back-end development on Linux platforms. In recent years I am developing complex testing and workflow infrastructures for software-based enterprise storage products.

Except for programming (which I also do on my free time), I am also into graphic design, photography, language learning and linguistics, and music. I play the guitar and drums.

Open Source Projects

Below are some open source projects I've been working on recently

Slash

Slash is an open source testing infrastructure aimed at large-scale products and integration testing.

Slash was born after many efforts to build testing products on top of Python's unittest and tools like nose have failed miserably.

It offers a rich and robust hook and plugin interfaces, extensible configuration and a flexible loading/running model. It also contains well-documented recipes and facilities to build your own in-house testing infrastructure and tailor it to your needs.

View on Github →

Weber

Many parts of the workflow in my workplaces so far has involved dedicated web services providing service to both automated and manual processes. These enable for a smoother, more approachable workflow and boost productivity significantly.

You will almost always want to develop these in-house, but the boilerplate needed to get an app running can be overwhelming.

Weber is a full-fledged, fully functioning web application skeleton intended for in-house deployments. It includes a working flask skeleton, authentication, bootstrap styling, database models, an admin interface, asset management, ansible deployment and much more. It aims to come as close as possible to an instant web application.

View on Github →

Forge

Forge is a record-replay mocking framework inspired by Google's Mox.

It is well-maintained, thoroughly tested and contains a rich set of features for testing replay order, dependencies, and many others.

Unlike other mocking frameworks (most notably Mox and Mock) it puts a very strong emphasis on type and signature checks, which avoids some of Python's common pitfalls having to do with dynamic typing.

View on Github →

Flux

Flux is a library for mocking time in Python. It presents an interface to manipulate the fake timeline, increase or decrease its speed, schedule callbacks at virtual time points and more.

Flux makes testing long-duration sequences feasible without the use of sleeps in your testing code.

View on Github → Read the Docs →

Confetti

Confetti is a Pythonic configuration library. It powers the configuration for Slash and other projects.

Confetti supports backup/restore, path expression assignment with type deduction (useful for command-line applications), inline documentation and metadata assignment.

View on Github → Read the Docs →

Mongomock

Mongomock is a mock for MongoDB collections for use with unit tests.

It is meant to alleviate the requirement for a running mongod instance when running tests, and makes it easy to quickly establish data fixtures in your tests.

Although it aims to be as compliant as possible with the real MongoDB implementation, it is still constantly improved and more features are implemented. Feedl free to open issues for missing functionality you would like added.

View on Github →

Others

Head on over to my Github page to find out more!