paint-brush
Software Development and Assembly Language Compilers From An Amazon Devby@thecuriouscoder
498 reads
498 reads

Software Development and Assembly Language Compilers From An Amazon Dev

by Subhasish KunduAugust 22nd, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Subhasish Kundu is the Software Development Engineer [email protected]. He has been nominated for the categories below and if you've enjoyed anything I've written this year, please take some time to vote for me. I started programming during my undergraduate course in Computer Science and Technology. I am very much into analyzing different systems. I am curious to know how things work and what was the learning. I started blogging just to collect my thoughts and share my knowledge with others. I thought others might want to know as well. My writings might help others to save some time. I don’t care if technology is new or obsolete.
featured image - Software Development and Assembly Language Compilers From An Amazon Dev
Subhasish Kundu HackerNoon profile picture


Howdy Hackers!


I’m Subhasish Kundu and I’m the Software Development Engineer 2@Amazon.


I’ve been nominated for the categories below and if you've enjoyed anything I've written this year, please take some time to vote for me.


HACKERNOON CONTRIBUTOR OF THE YEAR- JAVASCRIPT: Voting URL.


As a writer in tech, I believe that compilers and distributed systems are the most exciting technology of the present because of their widespread application. Learn more about my views on those and my journey in the tech industry via the interview below.

What's your current role and what do you like about it?

I am a Software Development Engineer 2 at Amazon. I am currently working in distributed systems. I like it because of its applicability in different areas. Building resilient systems to serve use cases at scale - is pretty exciting for me. And working at Amazon gives me the opportunity to see the scale a system can grow into. Another exciting aspect, for me at least, is the application of distributed systems in the blockchain.


Apart from the scale, it gives me the opportunity to explore a lot of different aspects of programming such as handling error scenarios, analyzing user behavior, etc. So, as an engineer, I have grown a lot.

How did you get into Programming?

I started programming during my undergraduate course in Computer Science and Technology. I started with a humble “Hello World” program in C. Implementing various data structures in different assignments and creating different interesting command line-based programs were my starting point.

How did you get into writing about Programming?

I always liked some form of writing. To be honest, I am yet to consider serious blogging and writing. I started blogging just to collect my thoughts and share my knowledge with others. I am very much into analyzing different systems. I don’t care if technology is new or obsolete. I am curious to know how things work and what was the learning. I was interested in compilers and JavaScript. So, I tried learning how Javascript and React work internally. I thought others might want to know as well. My writings might help others to save some time. Also, a few years down the line, I might revisit as well.

What's your earliest memory of you learning to code?

I could remember one program I had written during my college days. It was kind of a News Paper implementation. The assignment was to add new news with dates, display news for a particular date, etc. That was my first large programming assignment. I used Linked List and Hash map to implement the functionality. Everything was written in C. It gave me the opportunity to learn about complex data structures. It may not be the best way to implement the task, but I learned a lot.


Another important program that shaped my life I believe is creating an Assembly

Language Compiler. It was an assignment. We had to generate low-level instructions from Intel 8051. I learned a lot of concepts during the implementation of the project. Due to my procrastination, I started late, but finished on time luckily!!

When Elon Musk achieves his dream of getting us to Mars, what technology do you think would be important on Mars and why?

I think several technologies. Few technologies are basic building blocks for us and they will remain. We cannot live without compilers. It might be the most important technology. With the advent of AI and ML, it can grow bigger. Distributed systems will be needed very much. But I think the traditional form of distributed systems might change. Blockchain can be predominant.


I did not even talk about hardware-related inventions. We cannot live without those. Most important thing I guess, learnings from different types of technology will be essential for any advancements.

What's a programming language that you would build EVERYTHING and ANYTHING in and why?

It depends on the use cases. Honestly, I don’t have any strict preferences. A few years back, for any system-level work, I would have preferred C and C++. I can now prefer Rust. The performance and usability will be my key consideration here. My day-to-day work revolves around Java. It is pretty close to me because we can accomplish a lot. I like Javascript as well. The way it has evolved over the years is pretty fascinating.

What's something you think Software developers do not do enough of?

I think we implement a lot of things, but we don’t dive deep into learning how some technologies are implemented. For example, take compilers and interpreters. We all use it every day. We can learn a lot of high-level engineering work from compilers. We need to learn more fundamental knowledge. It can only be done by analyzing systems.


I also believe testing is another important aspect we should be doing more often. For me, writing test cases, unit tests, or automated tests, are a kind of living documentation of the system. It is a necessary task to maintain sustenance. Documentation is also a critical aspect. I think we need to consider how easily another person can work with our system is a crucial aspect we miss.


And lastly, I believe, we should do knowledge sharing more often. From sharing root cause analysis to new technologies, sharing knowledge about anything is important.

What is your least favorite thing about programming?

Changing requirements I must say. Change is the only constant in programming. I hate changes. But it will not work that way obviously.

What’s a technology you’re currently learning or excited to learn?

Serverless Computing: I am learning serverless solutions provided by AWS. I am excited to learn how to scale solutions for a large number of customers.


Blockchain: I am exploring on my own. I recently went through the original Bitcoin paper. I want to create a small POC as well for my learnings.


DevOps in IoT: I have explored IoT previously. I want to learn how to apply DevOps principles in IoT domain. Keeping multiple devices updated is going to be a challenge for any company. I recently read a white paper by Canonical on how they are planning to use Snaps in Ubuntu Core. I am excited to learn about that more.

What’s your favorite Programming story of all-time on HackerNoon?

I have loved Hackernoon for a long time. I have read so many articles, that it is hard to pick one. I never thought I have to answer this question as well. 😅

Time travel 10 years into the past or 10 years into the future? What does technology look like? Give reasons for your answer.

Time travel 10 years into the past: 10 years back, I was in my college. Javascript was taking off at that time. At that time, operating system space was still evolving. Ubuntu, at that time, was bringing a lot of new features. It has been phenomenal how Linux has evolved into pre-dominant operating system.


10 years into the future: I did not witness the evolution of the internet. But I am excited to see the evolution of blockchain. A lot of new technologies are being created such as AR/VR, AI/ML, blockchain, cloud, etc. I believe these will mature more into the future.

About HackerNoon’s 2022 Noonie Awards

The annual Noonie Awards celebrate the best and brightest of the tech industry, bringing together all who are making the Internet and the world of tech what it is today. Please be sure to check out our award categories, nominate, and vote for the people and companies who you think are making the biggest impact on the tech industry today.


The 2022 Noonies are sponsored by: BingX, and .tech domains. Thank you so much to these sponsors who are helping us celebrate the accomplishments of all our nominees.