YaakovNet

YaakovNet

Jerusalem, ישראל
פרילנסר
  צור קשר

אודותינו

Algorithm development and implementation for scientific research and start-ups.

Technologies: Linux, Node.js, Perl, Inline::C, TCP/IP, integer-linear optimization etc.

תחומי התמחות

תכנות ופיתוח תוכנה

400 ₪ לשעה
Perl
I use Perl on Linux as my language-of-choice for about 15 Years. Performance critical parts are implemented in Inline::C. (See "Algorithm development" above for a selection of projects that mostly were implemented in Perl/C)
מתכנת, פיתוח תוכנה כללי
See "Algorithm development" above for a selection of projects that cover a wide range of topics: economics, bio technology, search engine implementation, programming language design/implementation.
BI, Data Science, Big Data
When building search engine back-ends, I regularly retrieved a few Terabytes of Web data, stored, indexed, managed the data and served request efficiently.
Node.JS
Node.JS brings Googles V8 Javascript engine to the server. Being designed from ground up for asynchronous event-driven processing, this is a perfect tool to implement distributed, high-performance services.

פיתוח אלגוריתמים
Algorithm development and implementation for scientific research and startups:

Ph.D. Mathematics, Cambridge University UK --- expertise in applying mathematics to real-world problems: I focus on projects that combine challenging algorithmic problems with real-world constraints and trade-offs: Feedback to early versions may change the underlying assumptions what problem needs to be solved. Trade-off decisions between what is desirable vs. achievable require a correct understanding of practical needs and of theoretical solution approaches.

Expertise: Mathematics, algorithms/data structures, network protocols, distributed processing
Technologies: Linux, Perl, Inline::C, node.js TCP/IP, integer-linear optimization


Selected larger past projects:

** Economics: FCC spectrum auction prototypes **

The division of one nation-wide frequency band into individual licenses must take into account package bidding, interference and geographical coverage constraints. The resulting combinatorial auctions require efficient solutions of NP-complete assignment problems (using integer-linear programming).

I designed and implemented several auction prototypes for empirical usability studies conducted at the Universities at Stanford and Tokyo. In one case, I developed a novel auction theory to address package bidding for the proposed incentive auctions to sell TV spectrum to mobile operators.


** Bio-technology: Nucleosome location study **

I was hired to numerically analyze experimental data about the location of nucleosomes on the yeast genome: Nucleosomes play an important role in the control of DNA transcription.

The results of our first analysis showed that nucleosomes are much more mobile than originally expected. This invalidated the underlying assumptions of the dynamic programming algorithms that are commonly used in genetic feature recognition. Instead, I developed a custom feature detection algorithm. Also, technological complications in the experiments implied a varying quality of our input data. In many cases, technological noise almost hides the biological signal. We combined the data from several experiments to amplify the signal beyond the random noise.

The results of this work were published in a paper in PLoS ONE.


** Project-specific programming language **

I was hired to design and implement an in-house programming language to address the specific needs of several medium-to-large-scale software projects undertaken by my client: These projects require performance like C/C++ at a higher reliability than usually achieved in these languages. The source code is statically analyzed and then transformed into equivalent C code; to be compiled into efficient executables.


** Visual search engine back-end **

I was hired to implement the search back-end of a visual search engine start-up: Crawl and index the Web, quickly provide cached data for the screen-shot rendering front-end. To support a high data throughput, I developed an asynchronous HTTP implementation that supports about 1000 simultaneous connections per server process; with about 50-100 processes distributed over a small server farm. Today, I would implement such an asynchronous system with node.js.

מפתחי Back-end

חוות דעת

ajax loader