Dino Crescimbeni - Contributor proposal [16/10/2022 - 15/12/2022]

Background

Dino Crescimbeni - Contributor proposal [16/05/2022 - 15/08/2022]
Dino Crescimbeni - Contributor proposal [16/08/2022 - 15/10/2022]
Previous proposal retrospective

I delayed writing this proposal after the retreat (as I stated in the previous proposal retrospective), so I could assess more clearly what the next two months will look like.

The trip validated that what we’re working on is important, not only for DXdao, but also for the community, and that we are developing something interesting.

Goals

  • Fix the issues reported by Team Omega’s audit of the Gov 1.5 smart contracts
  • Work on supporting Gov 1.5 smart contracts in DAVI
  • Be involved in the planning and early technical stage of Gov 2.0
  • Support and fix bugs in live DAVI beta
  • On a general note, keep improving and adding features to DAVI
  • Increase quality and test coverage. Approach new issues with a “TDD” perspective
  • PR reviews have been a constant pain point in our development process. I’ll allocate the first hour of the day to reviews to improve on it.
  • Read more books. Specifically, start and finish “Working effectively with legacy code” and incorporate its insights into my Obsidian vault. I don’t know if this is related to my proposal, but I thought I could add it here to keep myself accountable.

Responsibilities

  • Work full-time per the bi-weekly planning session on smart contracts and front-end issues
  • Attend the daily calls, weekly relevant (for my role) calls, bi-weekly planning sessions, and other meetings.
  • Participate in the governance process

Compensation

Level increase

This current proposal includes a level increase from 2 → 3.

The experience guidelines for level 3 state:

I have skills and experience in Web3/DeFi/DAOs that translate directly to DXdao. I can provide value to key initiatives for DXdao but need guidance on how to complete and check tasks.

The level increase was brought up by squad members during the discussion of my last proposal (here, and here). I obviously can’t be objective, but I do feel that the description fits my current role.

The compensation calculations are based on that assumption.

Timeframe

Two periods:

  • 16/10/2022 - 15/11/2022
  • 16/11/2022 - 15/12/2022

Compensation

  • Experience level: 3
  • Time commitment: full-time (40 hours per week)

Month 1 [16/10/2022 - 15/11/2022]

  • 5.000 DAI
  • 3.000 DXD, vested for 3 years with a 1-year cliff starting 15/11/2022
  • 0.1667% REP

Month 2 [16/11/2022 - 15/12/2022]

  • 5.000 DAI
  • 3.000 DXD, vested for 3 years with a 1-year cliff starting 15/12/2022
  • 0.1667% REP
12 Likes

Dino continues doing amazing work and is an invaluable member of the team. Fully support him moving to level 3 as suggested back at the start of his previous worker proposal.
Was also amazing meeting you in Colombia and spending time together during the retreat.

8 Likes

Great meeting you in Colombia! Thank you for your participation in the DXretreat, really appreciate your valuable input on the vision and future of DXdao. I support this level increase as discussed here.

Also happy to share my birthday with you :slight_smile: :birthday:

7 Likes

Thank you!

Meeting you all in Colombia was awesome, and it makes me enormously happy being part of this community.


The proposal related to this post is up on-chain

2 Likes

Retrospective

Did well

Fix the issues reported in the audit: as a team, we tackled the Omega audit and could successfully deliver the codebase with the fixes they suggested.
My focus was mainly on fixing failing tests and improving coverage. This helped me enormously to understand the architecture and logic of the Gov 1.5 contracts (and scratched my test itch, but that’s on me). I also worked on removing SafeMath and adding custom errors to some of the contracts to improve gas efficiency.

Implementing TheGraph: we put a lot of focus on developing subgraphs, both for the current Guild contracts and the Gov 1.5 contracts. We worked on this doing “pair programming,” and the results were fantastic. We have working subgraph versions (running locally) for both governance systems and architecture logic to retrieve data from TheGraph, but we still have the contract calls as a fallback. The next phase will be to polish and finish the last details, deploy the subgraphs, and code the logic for fetching.

Features and fixes in DAVI: my most significant contribution in this period was the implementation of event listeners for data refetching. This led to a major wagmi update (from 0.5 to 0.7.15) that, since it is a core library in DAVI, required significant changes and debugging but resulted in a substantial performance improvement (PR) and RPC calls reduction.
I finished and merged two features started in the previous period: a raw transaction builder that allows (advanced) users to create actions using raw data; and the ability to use ENS names or addresses interchangeably in every address input.

PR reviews: Since we pair-programmed a lot during this period, we had fewer open PRs than in other periods. I can’t say I allocated 1 hour for review every day, sometimes because there were no new changes to review and other times because I got caught up with finishing what I was currently doing. Overall, I did a fair job reviewing them, but I can still improve.

Needs improvement

TDD: I need to overcome the initial hurdle of thinking about tests first instead of diving into the code and start changing things. This doesn’t mean, however, that the code was untested (I added tests when implementing changes) but that it wasn’t made with the “TDD” framework.

Working effectively with legacy code (book): I left it halfway through. Even though the concepts were excellent (how to write tests for untested code that wasn’t built with tests in mind), the examples and cases were in Java. This made it hard for me to fully grasp what the code was doing and extract value from some cases that weren’t relevant. However, I found a course from Kent C. Dodds aimed at implementing tests in JavaScript (testingjavascript.com), so I’ll go for it instead for the next period.

Governance: I didn’t actively participate in the governance process as I had hoped. I attended the weekly calls but missed reading most of the contributor proposals and voting on them on-chain.

Proof of work

:tada: Allow ens addresses for address input
:tada: Raw transaction builder
:bug: Component break after decimal value
:tada: :gear: Upgraded wagmi, TypeScript and implemented event listeners to refetch data
:bug: TokenAmountInput auto-formatting issue
:gear: :test_tube: Refactor Schemes: increased coverage, replaced SafeMath and added custom errors
:gear: Remove SafeMath from some smart contracts
:test_tube: Fix failing tests [G3]
:tada: Guilds subgraph repo ( * )
:tada: 1.5 contracts subgraph repo ( * )

( * ) This was the first version of the subgraph implementation. We pair-programmed through most of it, so individual PRs won’t reflect the work done

6 Likes

Given that the following proposal will be made in DAVI, and to save making a proposal for just two weeks (15/dec → 31/dec), I think it is better to extend the scope of this proposal until the end of the year since the goals and responsibilities of it remain the same. Therefore, the on-chain proposal will include this new two-week compensation and the second part of this period.

The compensation for these two weeks will be:

  • 2.500 DAI (50% of level 3)
  • 1.500 DXD (50% of level 3)
  • 0.08% REP

The total funds of this proposal are going to be:

  • 7.500 DAI (5.000 + 2.500)
  • 4.500 DXD (3.000 + 1.500)
  • 0.4% REP (0.16 + 0.16 + 0.08)
3 Likes

On-chain proposal here