Skip to main content

4 posts tagged with "developer"

View All Tags

· 2 min read

I recently stumbled upon this interview from Andrew Ng, arguably one of the guys single handedly responsible for making Machine Learning popular and accessible.

In his interview, there is a beautiful excerpt which I want to highlight. When asked:

Do you have any helpful habits or routines?

He answers: Reading 6 research papers a week seems like a lot, but I think if one can read even one research paper per week, that will germinate lots of new ideas.

Especially for folks who operate in technical domains like I am (my startup is in a domain called observability, this practice would give them new ideas to think about, and possibly innovate on.

While entrepreneurs don't have the luxury to engage in deep research and compare results, they could learn a lot just by grokking through the research papers and at least understand what the basic concepts are. And then let the human mind do its magic 🦄. May be on some opportune day, when you are talking to a customer, hearing his issues and wondering how to solve it, one of these ideas will present itself before you. Boom! 💥

Adrian Colyer, who has been CTO at VMWare and currently is venture partner at Accel, has actually brought this idea to practice. He runs a blog - The Morning Paper where he discusses interesting computer science research paper every week.

There's also a meetup group which discusses research papers periodically and has chapters in many cities of the world. Fortunately they also have a chapter in Bangalore. I will try to attend one their meetups, once in-person meetups are back again, hopefully 🤞

So, which research paper are you picking today?

· 2 min read

As we start building a devops tools business, understanding the user is everything for us. Our users are developers and site reliability engineers who make the software in production, work as it should.

The important point to understand about developers is that they are very curious by nature and always trying to learn new things. They operate in a domain which is very dynamic. The tech flavor of the season changes every few years and they need to keep updating their skills to stay relevant.

Also, they smell any marketing or selling from far. You just can't "sell" to developers. Period. They will only use your product, if it makes life easier for them, saves time or peaks their curiosity. And that's where the role of developer advocates comes in.

Developer advocates help other developers learn about the product by writing blogs about it, giving demos in meetups or helping people with their use cases. They are not trying to sell anything. Rather they just want their product to be easily understood by other developers. They also play a huge role in giving user feedback to product teams.

This roles is pretty new in the Indian SaaS ecosystem. I don't think we have as much experience about it, as we have for inside sales or landing page optimization.

I have created a public twitter list, where I am adding some great dev advocates I came across on twitter. Would love suggestions on who else to add here.

Looking forward to learn more about how can we help developers be more product and do their tasks with ease.

· 2 min read

Off late I have been having lots of conversations with developers and engineering teams. Primarily because we are building an observability platform for microservice applications and developers are the primary customer persona for this product.

What I have observed is that developers are a curious lot - and always willing to explore new tools. Now, I have been a developer in my past life and have worked closely with devs most of my professional career. So, I completely identify with this. If a new tool is useful and I introduce this to my team/colleagues first - I immediately get the swag rights.

I am sure that this is the case in other professions also. Though there are some nuances.

A marketeer who has figured out a new channel with better RoI - firsts milks it himself and then only tells other marketeers about it or writes blog posts on it. This is also because if more marketeers start using that channel, then the attractiveness of that channel and hence RoI decreases.

Among developers though, there is no such competitive mechanics. If there is a more efficient tool, the larger number of devs use that tool - the more efficient everyone becomes. I also think that the rise of open-source is a reason why devs are more ready to share what they are building. Code has high marginal utility and zero marginal costs. Distribution is almost free - and the amount of value it can add to each new user is the same for the first few users as the later ones.

This mechanics of developers sharing the cool new thing they are working on - adding to their brand and increasing everyone's productivity is very unique to this profession. And hence working on new shiny things is cool.

If a salesperson discovers a new way to find emails of people, I think he will first milk it before letting others know. But if a dev finds a new tool that increases his productivity, he will immediately write a new blog post to share how he uses it to improve his output.

The Shiny new tool syndrome is actually a boon to the ecosystem. Of course, it needs everybody to be updated - as the tooling changes every 2-3 years. But if we are able to do more things, by learning from others and teaching others - why not?

· 6 min read

Many people come to me ask about how they should proceed to become a developer in the blockchain space. I thought it would be a good idea to put down my thoughts in a post so that I can easily refer people to this.

As many of you may be aware, blockchain and cryptocurrencies are the craze these days and everybody wants to understand what they are all about. IMO, the current interest is overhyped. Blockchain is not the solution to every problem we are facing today. But to discard them as just another hype would be a mistake. At the least, it warrants a careful examination of how they can change the world.

To me, blockchain represents a fundamental way in which we think about cooperation and trust in society and are a foundational technology. Maybe it will not have any significant impact in the short term (1-2 yrs), but it will significantly alter the tech landscape in medium to long-term (5-10 yrs).

So, if you are really interested in this space, think for the long-term

Now let's get to the question of how can one start to learn about this space and become a "blockchain developer". I am assuming that you already are a developer/ have capability to code but in some other domain. Maybe you are an Android dev or a react dev or work on any of the other myriad technologies out there.

The beauty about this space is that most of the exciting development in blockchain space happens in open source. If you want today, you can look into the source code of bitcoin and figure out how it exactly works. Of course, you need to be able to understand the source code written by other people, which is not trivial.

Github repos for popular projects

Bitcoin Ethereum HyperLedger

Also, the blockchain and crypto community is very open and most of the discussions happen over Github issues, telegram groups, Reddit or mailing lists.

To get started, you have to get a broad understanding of what is blockchain, how its different from traditional technology, what is consensus, etc. You need not understand all this in great detail, but you should have a hang of it. In my opinion, starting with Bitcoin and Ethereum are the best way to learn about all this. For the first 15-20 days, just leave everything else and try to understand how does bitcoin and Ethereum work and what are the various concepts involved. Don't get into coding yet, as that is the simpler part and would be easier once you have the basic concepts sorted.

The best resource for learning these concepts is http://www.bitcoin.cc/

It has lots of explanatory videos and articles. It is more focused on bitcoin but does a good job of explaining the basics.

Once you are done with this, head on to Ethereum Github and digest its white paper

This repo also has a lot of good resources on blockchain aggregated in a single place.

Now, to become a developer you need to understand that there are primarily 2 types of blockchain networks.

**1. Permissioned networks

  1. Permissionless networks**

In permissionless networks, anybody can go ahead and start a node and start mining blocks and participate in the network. Good examples of such networks are Ethereum and Bitcoin

In permissioned networks, only those people who are authorised can run a node which contributes to the network. Such networks are more suited for business use cases, where a business or different parties involved in a business run nodes for the network.

The important thing to note here is that the identities of these nodes are known and everybody in the network knows who is running a particular node. This makes the job of achieving a consensus much easier. If you want to run permissioned networks, HyperLedger is a good project to follow.

From a developer perspective, there are few opportunities in this space:

  1. Build permissioned networks for businesses

Many businesses are trying to understand how they can use blockchain in their use cases. For example, a car manufacturing company may want to use blockchain for their supply chain. Such business use cases, mostly need a permissioned network as the nodes who will operate in the network are mostly known.

Hyperledger Fabric is a good protocol to develop permissioned networks. To get started, go through its documentation. Its decently well explained and should give you a good foundation to start with.

  1. Build decentralised protocols

A lot of research goes into the different type of protocols which are used by the blockchain. Things like which consensus mechanism should be used, what should be the tradeoffs between scalability and trustlessness and how the incentives for different players should be aligned.

These are the sort of things which core developers of Bitcoin and Ethereum worry about. For getting involved in such work, you need to have strong CS and Math chops. You can start getting involved with building protocols by contributing to the Bitcoin or Ethereum project and build your way from there.

  1. Build dApps on existing protocol

The third kind of thing which you can do is to focus on building dApps and smart contracts. dApps are Decentralised Applications which run on existing protocol. Ethereum is the easiest way to get started on this. Ethereum uses a language called Solidity which is similar to Javascript and any frontend developer can easily try to start dabbling in it. Solidity also has a great documentation which can help you get started.

This is also the domain of ICOs. Most Ethereum based ICOs need a smart contract which encodes the logic of their platform. So developers can get projects developing smart contracts for clients who want to do ICOs.

Apart from Ethereum, there are many new protocols which have come up like Stellar, EOS, etc. Each protocol has made its own set of trade-offs which makes it suitable for particular projects. But I would suggest if you are just starting in this field, start with Ethereum - as it has the highest number of devs working on it and most simple queries you may have can easily be solved by searching on Google or StackOverflow.

Dedicated StackExchange for Ethereum Dedicated StackExchange for Bitcoin

While trying to learn about blockchain, keep in mind that development for decentralised web (blockchains, etc.) is very different from the standard centralised development which most developers are used to. So, in the early days, you may have to break your head trying to get an intuition for how it works. But don't get disappointed and lose hope.

Blockchain community is very open and helpful and if you are stuck in some place, just ask. Post it on relevant forums on Reddit, telegram, StackOverflow etc. and I am sure somebody will help you.

All the best in your learning journey! Give a shout out to me on twitter if you need any help.