I'm a freelance software developer and I would like to offer my expertise to the BitShares DAC. Read up on my professional background if you like. As you can see ;-) I'm not a GUI type. My preference is backend programming, network interfaces and console stuff.

I have done most of the backend work for porting PTS to PTS-DPOS. PTS-DPOS is basically a fork from BitShares-0.4.23.1, so I'm already familiar with the BitShares codebase.

I see my activities mainly in these areas (in no particular order, priorities will be worked out together with the core devs on a case-by-case basis):

1. Infrastructure

For PTS I have implemented a dynamic list of seed nodes published via DNS. Porting this to BitShares should be simple. I will create and maintain such a list for BitShares (and DevShares) and publish it in the DNS. These DNS names can then be added to the static list of seed nodes built into the client. Every time the client is started, it will fetch a fresh list of seed nodes from DNS and use these. (Once set up, the list is updated automatically and requires hardly any manual maintenance.)

To my surprise, the current client does not work with IPv6. This is a no-go for a brand new networking application, IMO. I will work on porting the networking code to IPv6.

I will continue to provide my Linux packages of BTS (and DVS) for the current set of distributions (CentOS, Fedora, openSUSE), free of charge - I would do that anyway. I can work for pay on adding support for Debian, RHEL, Ubuntu and ArchLinux.

2. External APIs

The BitShares code already contains a very elegant mechanism for defining and generating the external RPC API (also used by the GUI wallet). The same mechanism also generates the command line interface.

The next logical step is to use this mechanism for generating a common API for external applications. I'm thinking of a BitShares-Java API, a Perl module, C library etc., similar to what Xeroc has already started for Python.

In addition to generating the plain method calls, the parameter types and return types should be formalized as well.

3. Code Quality

A delicate subject. This is not about bashing other people's coding style. It is also not about throwing everything away and starting from scratch (only better this time). Nevertheless, objective metrics on code quality exist, and application on the BitShares codebase suggests that there is room for improvement.

What is code quality and why is it important?

Clean code is simple in the sense that it is easy to read and easy to understand. It is highly modular and well-structured.

When code is easy to read it is also easier to see bugs. This leads to a better product.

Code that is easy to understand makes it easier for new developers to join the team, reducing the time (and cost!) to get them up to speed.

Well-structured code is also easier to maintain, reducing the time (and cost) to find and fix bugs.

Modular code facilitates adding new features to an existing program. It is easier (and cheaper) to add a new module than to fiddle with many details all over the codebase.

Educate others. Not with long monotonous lectures, but by setting examples. By generating interest, explaining and giving pointers.

Introduce tools. I plan to select tools and metrics for evaluating code quality to highlight problem areas and measure improvement over time.

Apply the boy scout principle: Always leave the code cleaner than you found it.

4. Grunt work

There are currently (2015-01-31) 130 open issues in the main github repo. Some of these are more than 7 months old. This is not a sign of lazyness (there are more than a thousand closed issues), it's a sign of an overworked dev team. I can take up some of these issues, taking load off the core team.

In a similar way, I can investigate issues posted by forum users that never even make it into a github ticket.

B. Suggested mode of operation

1. Pricing

I can offer to work for the BitShares DAC for €55.00/hour including all expenses. (This is less than my usual rate, and more than 20% less than the average.) I will adapt the amount of work I'm doing to the exchange rate of BTS/EUR.

I will not charge for

time spent on the forum,

work that is immediately applicable to PTS-DPOS (the codebases have diverged and merging changes is a real PITA anyway),

things I would have done anyway (like maintaining my linux packages, see above).

2. Delegate Operation

I suggest that a 3rd party runs a 100% delegate on my behalf. This should be either an individual living outside the EU, or a business located outside Germany. This serves two purposes:

It is a tax optimization - in this setup I don't have to charge VAT.

It is an insurance to the DAC - the 3rd party can check that I'm actually working for my money, and withhold/burn the funds if I don't.

The 3rd party will have to make their identity (name and address) known to me, so I can send them a proper bill (for example on a monthly basis). These bills (excluding the 3rd party's identity) plus a more detailed report will be published here for you, the shareholders, to check.

The 3rd party should agree on a fixed price for their own service in this setup, which will also be paid from the delegate proceeds. Any remaining funds below a threshold (for example two weeks of delegate payment) will be carried over to the next month, the rest (above the threshold) will be burned.

The first two weeks of pay will be taken as compensation for the registration fee.

3. Delegate Operator

Cube has agreed to run the delegate for me. He's a long time member of our community and has been running very reliable PTS-DPOS delegates for a while now.

Quote

I am a IT consultant cum project manager by profession. I started as a developer and a system admin before moving on to a sys analyst, senior analyst and then the project manager role. My IT profession and experiences are over 20 years. I am one of the team members responsible for the release of PTS DPOS. I detailed my interest in crypto here.

- Cube

Cube will charge USD 135.00 per month for his services. This includes hosting, server maintenance and bookkeeping. At the current rate, USD 135.00 is roughly 10% of the total delegate earnings.

Thanks for the proposal. Your willingness to help sounds genuine. However, I would like to hear from some core dev team members as far as whether your proposal helps fill their need. And I'd like to be sure this remains a synergistic and cohesive team, rather than a sum of its parts. The other dev delegate candidates so far have already proven themselves as part of this team. If you get some of the current devs to endorse you, that would mean a lot to me.

I dont understand you are charging your own rate and not based on delegate percentage? What if delegate pay halves you spend less time? How will stakeholders have visibility in terms of how manyhours you put in? It should be results driven rather than per hour... If you are saying youneed 2 delegates at 100% thats different but it will wouldnt be enough to cover you working fulltime so again I dont get it.

Btw since price is low devs have to understand this and charge less for example I have similar experience level as you but I am planning on running a delegate for my shopping carts which took over 2 months to develop and probably another 2 to finish off all the work and doesnt count setup which was a big chunk and also hosting fees etc of over $200 per month. I know i wont get the same compensation as the core devs that got 3m bts in bonus and more for their work but those that relocated hit the gold mine especially as price was high then.

Until it rises back up i would expect a core dev to work for 1 100% delegate for one project in parallel with other projects

In the past Bytemaster seemed to insist that anyone wanting to be a core Dev had to move to Virginia in order to reap some synergies from team proximity.

i wonder if he still feels this way?

In the end it's not BMs decision anymore .. however, the guys in Blackburg still 'own' the official github repo and the domainswhich makes at least the development progress centralized. However, I believe that, in time, development will become more decentralized, i.e. what we see in Linux

In the past Bytemaster seemed to insist that anyone wanting to be a core Dev had to move to Virginia in order to reap some synergies from team proximity.

i wonder if he still feels this way?

In the end it's not BMs decision anymore .. however, the guys in Blackburg still 'own' the official github repo and the domainswhich makes at least the development progress centralized. However, I believe that, in time, development will become more decentralized, i.e. what we see in Linux

yup

@PC: Fein ... werde voten! Go for it

Logged

█║▌║║█ - - - The quieter you become, the more you are able to hear - - - █║▌║║█

Thanks for the proposal. Your willingness to help sounds genuine. However, I would like to hear from some core dev team members as far as whether your proposal helps fill their need. And I'd like to be sure this remains a synergistic and cohesive team, rather than a sum of its parts. The other dev delegate candidates so far have already proven themselves as part of this team. If you get some of the current devs to endorse you, that would mean a lot to me.

I think Peter makes a strong proposal, and even with the currently low exchange rate, I believe we can find some relatively low-hanging fruit for him to work on which would not conflict with anyone else's work, but still provide valuable polish and improve usability. Note that some discussion is still required in order to decide on specific tasks, but once decided, he will be held accountable at the various levels--by his delegate operator, by myself and the rest of the dev team, and by all of the shareholders.

Your willingness to help sounds genuine. However, I would like to hear from some core dev team members as far as whether your proposal helps fill their need. And I'd like to be sure this remains a synergistic and cohesive team, rather than a sum of its parts. The other dev delegate candidates so far have already proven themselves as part of this team. If you get some of the current devs to endorse you, that would mean a lot to me.

I have contacted the core devs before registering my delegate and received positive feedback - otherwise I wouldn't have bothered to pay the reg fee. Of course I'd be happy too if they could show their support also in this thread. Edit - thanks Vikram!

I'm aware that for various reasons I won't become a member of the core team in the foreseeable future, but that is not my intent. My plan is to work on less critical tasks that the core team currently cannot take on due to lack of resources.

I dont understand you are charging your own rate and not based on delegate percentage? What if delegate pay halves you spend less time? How will stakeholders have visibility in terms of how manyhours you put in? It should be results driven rather than per hour... If you are saying youneed 2 delegates at 100% thats different but it will wouldnt be enough to cover you working fulltime so again I dont get it.

Btw since price is low devs have to understand this and charge less for example I have similar experience level as you but I am planning on running a delegate for my shopping carts which took over 2 months to develop and probably another 2 to finish off all the work and doesnt count setup which was a big chunk and also hosting fees etc of over $200 per month. I know i wont get the same compensation as the core devs that got 3m bts in bonus and more for their work but those that relocated hit the gold mine especially as price was high then.

Until it rises back up i would expect a core dev to work for 1 100% delegate for one project in parallel with other projects

I have looked at other delegate proposals before writing mine. What has often surprised me is that candidates describe *what* they are planning to do, but not *how long* it will take them. So effectively shareholders don't know how much these plans are going to cost them.

OTOH the type of work I have to offer has a market price. I'm even staying below that, because I like the project. Shareholders can decide if they want to pay market rates for developers or not. I will publish a list of what I've done and how much I'm charging for it. Shareholders can verify results and decide if the results are worth what I'm asking - if not they can fire me. That's how the freelance developer market works.

An important difference between my normal work and this proposal is that normally I don't have to pay 60k BTS up front just to apply for a job. I have done this here because I have confidence in my capabilities as a software developer. I trust the community to make the right decision here, and all I'm asking for is a little trust in return - if I don't live up to expectations you can always downvote me again.

I have looked at other delegate proposals before writing mine. What has often surprised me is that candidates describe *what* they are planning to do, but not *how long* it will take them. So effectively shareholders don't know how much these plans are going to cost them.

OTOH the type of work I have to offer has a market price. I'm even staying below that, because I like the project. Shareholders can decide if they want to pay market rates for developers or not. I will publish a list of what I've done and how much I'm charging for it. Shareholders can verify results and decide if the results are worth what I'm asking - if not they can fire me. That's how the freelance developer market works.

An important difference between my normal work and this proposal is that normally I don't have to pay 60k BTS up front just to apply for a job. I have done this here because I have confidence in my capabilities as a software developer. I trust the community to make the right decision here, and all I'm asking for is a little trust in return - if I don't live up to expectations you can always downvote me again.