A Conversation With Lisk Backend Developer and SocketCluster Founder Jon Gros-Dubois
Jon joined Lisk as a Backend Developer last month. He is also the founder of SocketCluster, a software framework designed to simplify development of highly scalable systems, which can send and receive data in real-time betweens users and machines. We had a chance to sit down and chat about what he does at Lisk and learn a bit more about SocketCluster.
Q: I noticed you have an interesting accent. Where are you from?
A: I was born in Guadeloupe, a French island in the middle of the Caribbean. I lived there until the age of 11 before moving to Australia. I lived in Australia for many years, but settled in Europe two years ago.
Q: When did you begin coding?
A: I began coding about 14 years ago at the age of 14. I have experience in C/C++, C#, Python, Java, PHP, AVR Assembly, ActionScript and JavaScript. However, JavaScript has been my specialty since 2007; it is also my preferred programming language. I like JavaScript because it is flexible and expressive; it lets developers focus on logic rather than syntax and semantics. JavaScript’s flexible design has allowed it to evolve over time without ever breaking backwards compatibility; this means that JavaScript code, which was written over 10 years ago, can still run on all of the latest engines.
Q: Why should people care about decentralization and blockchain?
A: For the past 20 years, I have witnessed the increased centralization of everything. Companies have been getting bigger and fewer in numbers, resulting in a concentration of money and power in fewer hands. Government regulation in many countries has also made it difficult for small-time investors to participate in the growth of the technology economy. This has resulted in a large number of people being locked out of opportunities. Decentralization through blockchain will help to better distribute and allocate funding so that it is evenly spread out and accessible to more people. Blockchain projects achieve dominance by bringing people in instead of locking people out.
Q: How would you describe Lisk?
A: I think of Lisk as a decentralized democratic economy. Before joining Lisk, I spent a great deal of time researching the reach, flexibility, scalability potential and economic incentives of various cryptocurrencies. I believe Lisk ranks very high in all of these areas, which makes me very excited about its future.
Q: What makes Lisk different from other blockchain projects?
A: Lisk uses JavaScript; nowadays, most developers know JavaScript. This will be great for ecosystem growth. I believe that the structure of Lisk’s community/network will make it easier to reach consensus if/when it comes to big decisions. It should also lead to better outcomes. In addition to achieving scalability by offloading some of the workload to sidechains, Lisk’s Delegated Proof-of-Stake architecture should also make it easier to scale the mainchain if/when needed. Also, the fact that you can use your voting power to earn ‘interest’ on your Lisk holdings is brilliant. When you factor in sidechains, I think that Lisk will strongly reflect what an ideal economic system should look like.
Q: How did you spend your time prior to joining Lisk?
A: I was mostly doing contract work as a software developer/engineer for big companies and startups across different industries. At the time, I wasn’t sure which industry I wanted to specialize in, so contracting allowed me to try different areas. In addition to working full time as a software engineer, I’ve always kept an open source project on the side. Open source work is fun; you can find any problem that interests you and start to implement a solution for it. With open source work, there are no business constraints, therefore you can think very long term and pick very difficult problems. You can aim high and learn as you go. My first major open source project was a web content management system for developers; similar to Wordpress, except with a user-friendly drag-and-drop interface. It never became popular, but I learned a lot from building it, so it was still worthwhile. After that, in 2012, I started working with Node.js and that’s when I became interested in web application frameworks and real-time technology. This eventually led me to start SocketCluster. The common thread in all my open source work so far has been that I’ve consistently been working on platforms and frameworks for developers; to give them tools to build websites and systems more efficiently. Lisk feels like a continuation of that for me.
Q: Tell us a bit more about SocketCluster.
A: SocketCluster is a real-time (WebSocket) framework, a pub/sub data transport layer and a protocol. It makes it easier for developers to build highly scalable systems which can send and receive data in real-time between users and machines. It’s general purpose so it can be used for building many different things like chat systems, stock price tickers, trading systems and pretty much any other system/app which requires moving large amounts of data between clients and servers in real-time. I started SocketCluster several years ago because alternative solutions couldn’t scale beyond a single process on a single CPU core. CPU design trends meant that CPUs were getting more and more cores, so I felt that modern systems should be able to automatically make use all of these cores to get the best performance possible.
Q: What problems does/will SocketCluster solve?
A: SocketCluster can solve the problem of transferring a potentially unlimited number of real-time messages across a potentially unlimited number of machines/nodes using all available CPU cores on each machine. It can also be used in simpler configurations; it’s designed to be flexible and extendable. When a system only needs to process a few thousand messages/transactions per second, things are relatively simple; this is because that kind of processing can effectively be handled by a single CPU core running on a single machine. Once you go beyond a few thousand transactions per second, things suddenly get ugly. Past a certain point, no matter how much you optimize for performance, the code may not be able to process any more data; it might use up 100% of a single CPU core and leave all other cores on the machine essentially idle. This is partly because for many years, CPUs have not been getting any faster in terms of raw clock speed; they seem to have peaked at around 5 GHz (when overclocked). Recent CPU improvements have focused almost entirely on increasing the CPU core count which is currently approaching 72+ cores on commercially available high-end CPUs. Unfortunately, adding more CPU cores comes with a significant tradeoff; a program can only make full use of available CPU cores if the underlying task can be parallelized. ‘Parallelized’ in this context means that the underlying task can be broken up into smaller sub-tasks which can be processed in parallel (independently, at the same time) as opposed to serially (one after another). This constraint is also the reason why the blockchain has been so difficult to scale. SocketCluster’s pub/sub API supports scalable message passing across many machines/nodes. If setup correctly, it can scale linearly with respect to the number of messages as you add more machines/nodes to the network. SocketCluster shards pub/sub channels across available CPU cores and also across available machines on a network. SocketCluster basically opens up opportunities for Lisk to allow it to scale linearly to always be able to reach more users and to handle more transactions.
Q: Can you describe a typical day on the job for you?
A: I don’t know if I’ve had any typical days yet. I’m still relatively new to the Lisk team so I’m still in learning mode. There are a lot of details to absorb when joining an existing software project. I recently spent a lot of time writing tests; I spend a fair bit of time reading and running other developers’ code to understand how things work in detail. Being new to a project is challenging, but it’s also highly motivating.
Q: What skills and technologies are you the most interested in improving upon or learning?
A: My main areas of interest so far have been scalability and distributed systems. Now my focus is blockchain technology; there is a lot left for me to learn and it’s always evolving, so the learning will probably never stop. I like to come up with hypothetical strategies for scaling cryptocurrencies, therefore learning about all the main algorithms and architectures that are used in the industry is a good way to come up with creative strategies to solve various problems.
Q: What is one piece of advice you would give to someone looking to pursue coding?
A: You don’t need to be super smart to be a great coder; you just need to be curious, persistent and reasonable. It’s important to listen to other people’s opinions. When your code gets too clever or complex, it sometimes means you need to take a step back and consider alternative approaches. Coding is a social activity and there is rarely an absolute right or wrong way to do things.
Q: What industry sites and blogs do you read regularly?
A: I read a lot of tech-related stuff. Hacker News, Hackernoon, TechCrunch, VentureBeat, Reddit and lots of different blogs and publications on Medium.
Q: What do you like to do in your free time?
A: Aside from work, I enjoy contributing to open source projects, reading blogs, and hiking.
Q: What is your favorite book and why?
A: My favorite book is “Fooled by Randomness” by Nassim Taleb. It’s an interesting book about the role of randomness in life and in the markets. It gives a really good sense of how much more complex things are than they appear. This resonates with me because software development is often about mitigating the effects of chance and randomness; and that generally involves being exposed to a great deal of complexity that most people tend to miss.
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://blog.lisk.io/a-conversation-with-lisk-backend-developer-and-socketcluster-founder-jon-gros-dubois-22192f3710c0
Welcome to the platform Lisk team!
Welcome to Steemit! Very exciting news, I can't wait to see where the Lisk platform is heading in the coming years.
It's great to have you posting on Steemit and I'm sure the community will appreciate more of this type of content.
really, i'm new in the platform too but welcome Lisk Team :)