Michael Hoichman, Software Developer in Berlin, Germany
Michael Hoichman

Software Developer in Berlin, Germany

Member since November 19, 2020
Michael is a senior software and algorithms developer with more than 20 years of experience. He specializes in the design and development of projects from scratch, algorithms, run-time optimizations, data structures, parallel computation, and general problem-solving. He has worked in both startups and scientific research labs.
Michael is now available for hire

Portfolio

  • Varonis
    C++, C#, HTTP, Windows, Visual Studio, Amazon Web Services (AWS), Moq...
  • Toptal
    C++, Test-driven Development (TDD), Visual Studio, Git
  • Weizmann Institute of Science
    Mathematics, C, Bioinformatics, Optimization, C++11, Data Structures...

Experience

  • C++ 20 years
  • Linux 20 years
  • Data Structures 20 years
  • Algorithms 20 years
  • Optimization 15 years
  • Parallel Computing 11 years
  • R 11 years
  • Multithreading 8 years

Location

Berlin, Germany

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code), Linux, Windows

The most amazing...

...project I've worked on was an R (C++) package, tgstat. It enjoys hundreds of monthly downloads on CRAN and is widely used by scientists around the world.

Employment

  • C++ Developer

    2021 - PRESENT
    Varonis
    • Developed a pilot project in C++ for security tracking systems monitoring file activity.
    • Implemented a transporter service in C# to transmit the scanned results to the S3 Amazon bucket using HTTP (Amazon API Services).
    • Contributed to the development of the unit testing using Microsoft unit testing and Moq.
    Technologies: C++, C#, HTTP, Windows, Visual Studio, Amazon Web Services (AWS), Moq, Microsoft Unit Tests
  • C++ Developer

    2021 - PRESENT
    Toptal
    • Contributed to a 4 -month project for Alteryx as a C++ developer working with two teams located in the USA and Ukraine. Developed new features for the core engine in multithreaded architecture.
    • Tracked and fixed bugs using Jira with guarded check-in and testing (GitLab CI/CD).
    • Developed and updated unit tests (test-driven development).
    Technologies: C++, Test-driven Development (TDD), Visual Studio, Git
  • Software and Algorithm Developer

    2009 - 2021
    Weizmann Institute of Science
    • Built a high-performance R package—misha—with 30,000+ lines of C++ code under the hood for analysis of DNA sequences. The package uses custom data structures, advanced algorithms, and parallel computation to facilitate top performance.
    • Designed and developed an R package—tgstat—to replace various standard R functions with equivalents boosting run time >100x (correlation, distance, ...). The performance is facilitated by the use of C++, BLAS, and multitasking.
    • Built a high-performance module for Python for analysis of medical records data from the biggest Israeli health insurance company, Klalit. The package uses C++ under the hood.
    • Developed a front-end application in React that facilitates analysis and prediction based on the medical records coming from the biggest Israeli health insurance company, Klalit.
    Technologies: Mathematics, C, Bioinformatics, Optimization, C++11, Data Structures, Algorithms, Linux, React, JavaScript 6, Python, BLAS, Multithreading, R
  • Senior Software and Algorithm Developer

    2005 - 2008
    Ethos Networks
    • Designed and implemented the first generation of Smart Ethernet Switch by Ethos.
    • Created and implemented fast centralized and distributed dynamic traffic engineering algorithms to achieve maximal network utilization and flow fairness in Metro.
    • Hired and mentored the first generation of software engineers in the company.
    • Filed US Patent (US7969886) for "Bandwidth allocation for hierarchical telecommunications networks" algorithm.
    Technologies: Algorithms, Networking, Linux, C++
  • Software and Algorithm Developer

    2004 - 2005
    Silicon Design Systems
    • Designed and implemented a global router engine for a floor plan of microprocessors.
    • Designed and implemented algorithmic infrastructures: congestion avoidance, geographical 2D trees, maze routing, and timing optimizations.
    • Optimized the run-time of the critical parts of the existing codebase.
    Technologies: Optimization, Algorithms, Solaris, Linux, C++
  • Software and Algorithm Developer | Team Leader

    1998 - 2004
    Banter (later: IBM)
    • Designed and implemented the statistical adaptive text classification engine—the company's core technology. Based on the engine's performance, the startup was acquired by IBM.
    • Managed an application team developing MFC applications and low infrastructure.
    • Developed a multi-platform multi-threaded client-server event logger.
    • Developed multi-platform low-level infrastructures (threads, synchronization objects, sockets, etc.).
    Technologies: Microsoft Visual C++, Optimization, Algorithms, Multithreading, TCP/IP, Microsoft Foundation Class Library (MFC), Linux, Windows, C++
  • Software Developer

    1994 - 1998
    Hadassah Medical School
    • Designed and developed from scratch an application "Maestro" for controlling auditory experiments.
    • Designed and developed an application for controlling visual medical experiments.
    • Received the Kaye innovation award for the development of "Maestro" in 1996.
    Technologies: DSP, MS-DOS, C++

Experience

  • Tgstat - Fast and Efficient Implementation of Statistical Tools in R
    https://github.com/tanaylab/tgstat

    Tgstat reimplements some of the standard functions of R such as cor, dist, etc. with high-performance alternatives. The run-time boost on the large data sets often exceeds x100.

    In addition, tgstat implements clustering algorithms for single-cell RNA.

    Tgstat enjoys hundreds of monthly downloads on CRAN.

  • Misha - Genomic Data Analysis Suite for R
    https://github.com/tanaylab/misha

    The Misha package is intended to help users efficiently analyze genomic data. The data, which is maintained in a custom database, is screened and accessed from R without the need to load the whole genomic set into the memory. 1D and 2D data are supported (interactions between the chromosomes).

    Misha is widely used in various research labs around the world: Cambridge, Stanford, Weizmann, NY Mountain Sinai, MDC Berlin, etc.

Skills

  • Languages

    C++, R, C++11, C, JavaScript 6, Python, C#
  • Paradigms

    Parallel Computing, Distributed Computing, Test-driven Development (TDD)
  • Platforms

    Linux, Visual Studio Code (VS Code), Unix, Solaris, Windows, MS-DOS, Amazon Web Services (AWS)
  • Other

    Algorithms, Data Structures, Multithreading, Optimization, Computer Graphics, Statistics, Mathematics, Networking, TCP/IP, DSP, Matrix Algebra, HTTP
  • Libraries/APIs

    BLAS, React, Microsoft Foundation Class Library (MFC), Moq
  • Industry Expertise

    Bioinformatics
  • Tools

    Microsoft Visual C++, Visual Studio, Git, Microsoft Unit Tests

Education

  • Bachelor's Degree in Computer Science
    1992 - 1996
    Hebrew University - Jerusalem, Israel

To view more profiles

Join Toptal
Share it with others