Solace Developer Spotlight: Dunith Dhanushka
Hometown: Galle, Sri Lanka (2 hours of driving from Colombo, the capital.)
Years of being a developer: 12
Primary programming language(s): Java and Python
How did you start as a developer?
I started my programming career back in 2005 with Visual Basic 6. I was playing around with the GUI-based applications first. Then I found web development was interesting. That turned me into a PHP developer. Back in the day, I learned PHP by reading a lot of ebooks and following along with examples. Meanwhile, I worked as a PHP developer while I was studying at the university. Then I started learning Java as I was interested in learning about distributed systems. I learned a lot while contributing to open source projects and following up on certain big data technologies like Hadoop and Hive.
What is your typical day like?
Currently, I work as a developer advocate at StarTree. As my work is fully remote, I have a lot of flexibility to manage my tasks in a day. I’m a morning person, so I usually write for like 2 to 3 hours in the morning. Then I do research and learn about new technologies during the rest of the day. In the evening, I have an overlap with my colleagues in the United States so that we can collaborate, join calls, and focus on developer community-related activities.
What is your favorite thing about being a developer?
As a developer, it is very easy to try out new things in the field. All you need is a computer and the Internet connection. The craftsman and the toolset are tightly knitted.
What project are you currently working on?
Reading some research papers about column-oriented databases. I’m planning to write an article series about that soon. Also, I'm trying to refine a developer workflow to develop async APIs.
What new skills or technologies are you learning?
Python for data visualization, distributed database fundamentals, and advanced SQL for data analysis.
What soft skills do you think a developer should have to become successful?
- Effective communication skills to understand others clearly as well as to express yourself confidently
- Writing skills to share what you have learned with a wider audience such as blogging
- Public speaking skills to talk to an audience
What cool tech trends are you seeing?
Data mesh is definitely getting traction. Streaming ETL/CDC is becoming the MUST HAVE in this space. Event-driven APIs and AsyncAPI spec are picking up speed. As usual, event-driven architecture is ever-growing and getting a wider adoption in the industry.
How do developers increase their code quality?
Always read the code written by others. Start by cloning a git repo of an OSS project and go through the project to understand the structure of the codebase, how tests are structured, etc. Practice the Test-driven Development (TDD).
What advice do you have for other developers?
Whatever you do, do it with your heart. You’ll have amazing results. If you really love your work, you won’t feel a difference between work and personal life.
When designing solutions, start with the bare minimum that addresses most of the pain points. Then keep iterating until you solve all possible problems. Have a closed feedback loop to communicate user feedback into engineering.
Find a way to give back to the world. We as developers consume a lot of information from the Internet. Stackoverflow and YouTube are a few examples. As you progress through your career, try to share your wisdom with others in the form of writing, videos, or conference talks.
Before jumping on a technology bandwagon, always try to understand what it tries to solve, what the financial return for your investment in time to learn it and master it is, and whether this technology is sustainable over time.
If you could retire now, what would you do?
Settle in an isolated village and start a school to teach kids programming, math, and other stuff (for free, of course!)
If you were a Solace Dev Community admin for one day, what would you do?
Well, that’s a tricky question. I would say I will give each member 100 points for their contributions so far.
What is your Solace wish?
- Build a catalog of vertical solutions for different industries. Include a reference architecture and accompanying samples so that users can learn fast and implement that with the Solace PubSub+ platform.
- Add more support to integrate the async protocols that are closer to the edge/user. Examples, webRTC, WebSub, SocketIO, etc.
- Solace Developer Spotlight: Shradha Bhatia
- Solace Developer Spotlight: Heiko Henning
- Solace Developer Spotlight: Naman Mathur
- Solace Developer Spotlight: D Rajesh Kumar (aka rajeshdns)
- Solace Developer Spotlight: Nagaraju Kshathriya (aka NaGG)
- Solace Developer Spotlight: José Rodrigues (aka, CloudGod)
- Solace Developer Spotlight: Manish Yadav
- Solace Developer Spotlight: Sjaak Overgaauw