Cooperation intent from a Software House

Hi everybody in the community!

I’m one of the main executive (and co-founder) of a Software House based in Poland. We’re focused mainly in Mobile and Web development. This said, I’ve been a member of the MakerDAO community for already several months, and I’m getting more and more interested in contributing to it actively (this means in what my company and myself know to do the best: software development).

I’m very interested in start growing Smart Contract expertise within my company (I know it’ll be not that simple, and probably it’ll make sense to bring some blockchain developer expert to lead our “learning team”). I’ve been already thinking in the best way to kick-off this training to interested members of my team; of course, have our own resources limitations (being Christmas a tough deadline for most of our projects, it is difficult to simply release some devs to study Solidity and play with Smart Contracts when having big amount of work to conclude in other projects). But I’m thinking seriously in conducting this “learning” in the MakerDAO arena.

What I’m not sure is, if such learning will be of that big value to MakerDAO right now, for sure if there are things to do in Mobile / Web we’d shine there, but when it comes to our first incursions in Smart Contracts programming, I’m sure there’ll be a lot of hurdles to solve until having a Smart Contract team that the community could trust in.

Really would like to know the community recommendations and advice in this regard, how could we help the most as well. But note, that my biggest interest is to form a Smart Contract team in my company, and it is clear how much we could help MakerDAO if we would have that team to its disposition.

If some of you are curious about the company and what we do, feel free to check out our company page, or our design portfolio.

Thank you very much in advance for any advise that you could give. It’ll be hard to start during December, but I should make this happen from January.

BTW, I had no idea about what Topic or Tags assign to this thread, let me know about this one if possible @LongForWisdom, thanks!!

6 Likes

Great post Adrian!

Regarding your interest in developing smart contracts:

I went through your portfolio and seems a lot of your work is in the consumer internet field. Some have described the consumer internet world working under the motto “move fast and break things.” I would recommend sharing work you’ve done which is mission critical with a zero tolerance for failure. That would probably give the MakerDAO stakeholders the confidence that your team can perform and produce code which is fully robust and can handle operations with large value at stake.

Cheers

2 Likes

I cannot argue about that motto, sadly it is not a result of developers (in most of the serious cases), it is more a product of the continue negotiation with stakeholders who want all done for yesterday and don’t want to spend the time and money in building strong test suites for their products. It is my day to day talk with clients, everybody comes to our type of companies with the intention of building an “MVP” for which they don’t want we spend the estimated time (always those tough deadlines)… The price to pay: the software development cycle is altered and a lot of technical debt is accumulated for “when they get those promised funds in their series A-B-C rounds”… software devs are being then pushed to get results ASAP and don’t spend that much time in automated testing (which is time consuming), and yeap, that simply has one result: to break things.

We focus a lot in constructing software using the most highest standards within our clients constraints, applying agile methodologies and DevOps practices to the software development as much as we’re able to. Not saying that always we can spend the time that we’d like with a given software, but for some business critical features there are sometime that “zero tolerance for failure”, specially when leading with payments (in several online booking systems we have worked with for instance). But I cannot say that it compares with putting into stake those millions (or billions) flowing through smart contracts. But I would love if I could build that confidence as well within my team (probably it makes sense to start there, before talking of the community trusting in us for it). I’m not interesting in saying that we can do things we haven’t done simply because we’re devs, IMHO, that would be not a realistic statement.

Definitely we are focused so far in that consumer internet field, but willing to get into the smart contract development (not few the amount of job requests we have received in this regard). Maybe the best would be to start “small”, more contributing with the creation of those web pages which I see the community require which interacts with the block chain (most of them using infura.io right now I think), in those there will not be millions in stake.

Also something good for the community I hope: I’m not thinking in asking for anything in return for our cooperation if that makes sense, once there are results, up to the community to determine how to effectively premium our efforts. Happy to start taking on some smaller projects for now and showing results with time while I focus in building those required skills within my team.

Note, that I personally have great interest in the success of MakerDAO, willing to see MKR price skyrocket and hundred of billions (or trillions) of DAI in circulation… I know there is a long road till there, and I’m just trying as well to see how I can make my small contribution with what I can offer at this moment.

6 Likes

quality assurance like automated testing, proofs, security etc. are all specific and deep engineering skills, each one takes years of deliberate practise, talent and passion to become an expert at

it’s not as simple as saying ‘clients never give us a budget’ if the devs are learning on the job

regardless of what the client expectations or internet mottos might be, do your devs know how to decouple and plan code to be amenable to unit testing? do they have deep understanding of security exploits and how to mitigate them? are they mathematicians who can understand and produce formal proofs?

without a sense of specific skillsets and experience on your team it’s hard to identify what might be useful work to be done

the idea of ‘starting small’ by focusing on what is the ‘adjacent possible’ next step relative to your existing clients/work and then working your way deeper into the MKR tech stack makes perfect sense

fyi, the community calls are recorded on youtube and often have projects from the ecosystem that potentially need/want help with shiny, user friendly interfaces, integrations, etc.

1 Like

Thanks @David_Meister for your feedback on this.

You’re right about the years, talent and passion you mention there. I studied Physic Engineering, never took that one to practice though, since my time in the university I was linked to groups developing applications, I worked in the development of code and circuits (using MicroC) for PIC and PSoC microcontrollers and a lot of LabView and C++. Then started in the freelancing world developing applications for Android and Backend (specifically with Laravel Framework). I’ve been developing apps for over 15 years if going back to the beginnings (I was in national programming contests in my country, using Pascal then, and also a lot of Delphi for several applications developed for specific private sector applications). Note that I personally have worked at least 2 projects using TDD, I have a very good understanding in how to decouple the code properly using dependency ingestion to make it ready for unit testing, how to build feature / integration tests, system / UI tests, and having those skills myself I’ve worked hard to establish them within my own company. I’m a member of several freelancing organizations, some of them which quite high standards (like Toptal).

Having over 30 engineers in the company (which was created 5 years ago) I cannot say it has been an easy task to make them experts testing their own written codes; in fact, I cannot say that more than 5 of them have really those high skills you mention there (most of them are graduated from informatics engineering, and a few of them from Computer Science). Now, those from computer science I’m sure they can produce formal proofs, they have a stronger mathematical background, but I would not agree if we say that only those with such mathematical skills are able to understand security exploits and write clean, readable and scalable code (I know a lot of mathematician and data scientists who are programmers and knows nothing about good coding practices, and very good information engineers who are not able to solve some simple mathematics puzzles (but probably it doesn’t come down to skills, and more to interest)).

There are more parts to it that’s true, devs with broad skills unit testing their codes work faster (in the long run), I’m one of the supporters of TDD BTW; but I’ve lived in the freelancing world for too long, where budgets are more limited and deadlines are tougher, and where all comes down to how long something will take and to “who does it faster and cheaper gets the job” (sadly but true!). Lucky to say that the last 3 years have been quite different for myself and my company, but not always I had the time to spare and work for the long run.

Letting here an important set of skills within my company (not that I could use all the resources at will to attend opened projects). Worked languages and technologies (strongest skills, ignoring those “known or worked” which we don’t do in a daily basis):

Mobile:

  • Android (Java, Kotlin)
    • Testing (Espresso, Robolectric, Mockito, JUnit 4)
  • iOS (Swift)
  • Multi platform (Flutter)
  • Framework and Libs
    • Dagger 2
    • Android Annotations
    • Android Jetpack and Android Architecture Components

Web:

  • Front-end (Angular, React, NextJS, Gatsby, Preact)
    • Testing (Jest, Testcafe, Cypress)
  • Back-end (Laravel, NodeJS - Express, NestJS)
    • Testing (Mocha, PHPUnit)

CI / CD:

  • Gitlab-CI
  • Jenkins
  • Circle-CI

DB:

  • Relational (MySQL, Postgres)
  • NoSQL (MongoDB, Firestore, Firebase Realtime Database, DynamoDB)
  • Graphs (Neo4J)

Cloud Platforms

  • AWS
  • Google Cloud

Others:

  • Chatbots and NLP related applications
    • DialogFlow
    • Google Cloud NLP and AutoML NL, AWS Textract

Hope it helps the community to know where it can start with our cooperation.

I was wondering if the community was keeping some board with all the works being worked on currently (from where somebody could have an idea of what is needed to be done next?).

3 Likes

Hi All!

Got from @juanjuan that maybe my team could start working in some simpler things, like for instance an UI for tracking the current MIPs. Happy to take on that one! Have some questions though, not sure if using this post for it, or better to have a call with some community members. Letting some of them opened here though:

  1. Should we create this feature over an already existing tool / code base? Or should be created from scratch?

  2. Design wise, should it follow the same branding (colors, texts, styles in general) like in the current site at https://makerdao.com/? Maybe some of you could point to some branding guidelines document?

  3. Is there some general board the community is using for tracking the progress on these projects / initiatives?

  4. Any member with knowledge in which tech are preferable for building such tools? Servers - cloud providers (if any) preferences? (ie. not sure if you’re deploying all these pages toward IPFS, or there is some cloud provider hosting everything, would be great to get some info about it, also if there is some CI / CD in place, etc).

  5. Finally if somebody could have a quick call to gather all the requirements, I know there are some docs about the process, but a quick call of around 30mins could give me a lot of insight about what is really necessary (and what not).

Not sure how fast we’ll move with it, but I’ll like to ensure to start on it already if that’s fine (or at least, to know already who can I consult in the community for this and who is handling this type of initiative if such person / role already exists of course).

5 Likes

@smaugho maybe you could help figure out some of the UX issues, e.g. Why choose Maker over Compound/Aave? and Fears about new Dust Limit Increase - PR Responsibility for new/small account users and likely many others

you could probably scrape these forums for a few keywords and find a lot of complaints :sweat_smile:

2 Likes

@smaugho,

I am no expert but I think there is plenty to do in the interface area.

Payment apps: You based in Poland? Europe has a number of pay/send money mobile apps that could need DAI integration. The Netherlands has Tikkie and Scandinavia has Vipps. I am sure there is some useful demo work that can be done here. Possible cross with remittence transfers.

Integrate with accounting software. With real world assets there will be real demand for software that bridges crypto and real world accountants. Replaces current system of taking snapshots and dumping everything into Excel.

Integrate bank accounts. Use DAI directly from your fiat bank account. Not happening in 2021, but someone could pay you for doing demo work.

just some ideas

1 Like

Hey @smaugho!

As for your specific questions for MIPs site, @juanjuan is the lead on/owns the specs for that project. Answering some preliminary questions:

  1. As I understand, that question is being addressed now. We have a skeleton framework from our community-development site, but it may not serve the best purpose for the UX desired in the MIPs portal.

  2. As for the design, the Foundation design team (cc @turbo) has worked on Brand Assets, and the Developer Experience team has been building Dai UI which already has the Comm-Dev designs as well.

  3. @juanjuan will be managing the PM specifically for the MIPs site. If you’re talking about a board for general community projects, there’s way too many to keep track and each team has their own management / stack. Examples: actual MIPs is tracked on this Github board, community development puts various projects on Github boards, (but we are in the process of updating/cleaning up and revisiting another form for this) and there are community teams who have their own PM sheet, and tools that are developed by various community members are hosted on their own repos. Welcome to decentralized coordination :wink:

  4. Don’t have the answer to this one - as far as I know, there’s no standardized answer. The Foundation has TechOps that can provide guidance and Developer Experience working on a developer portal, but I’m not sure if it covers this.

  5. @juanjuan is the point person for the MIPs site (cc @longforwisdom @charlesstlouis). Also happy to take a call to get you onboarded to general community projects. You can ping me on Rocketchat - @amy.jung

Another project in mind - We are also looking to refresh https://mkrgov.science/, which will need an update once the new contract is in. This is mostly a web interface, with some on Maker contracts.

4 Likes