Meet Darko, who built and deployed cloud infrastructure with a Commodore 64, a Kubernetes app to Tandy 102, and that’s not all.
It all started back in 1991 with a Commodore 64 computer and some books. Darko would type in some code from the books, and “things were happening on the screen”. At some point later he got immersed in the world of video games, the internet, operating systems, and programming, but his dream job was – being an IT support person.
My boyhood dream was being that person that gets in the car in the middle of the night and fixes computers.
That dream did come true for him but in a different way. Darko started at Amazon as a Premium Support Engineer for AWS, but now he does something completely different: live-streaming on Twitch.
Developer Advocates do more than just talk at conferences
You currently work at Amazon as a Senior Developer Advocate. How did you get to this company, and what was the journey like?
Darko: Amazon came to me by chance. I got an invitation from their recruiters via LinkedIn. After a few conversations, I got the opportunity to work with them and accepted it with open arms. Like most people at AWS, I started in a junior position. Actually, I didn’t do what I’m doing now. I started as a Premium Support Engineer. And in terms of progression, I began as Level 4, and I’m already (almost) Level 7, which I consider a great personal success.
I came to Amazon with quite a bit of knowledge about AWS, but I got six months of training and preparation to get to that certain required level. Which I was thrilled about and needed.
Tell us more about your position. What does a Developer Advocate do at Amazon?
Darko:
The job of a Developer Advocate- former Technical Evangelist, is much more than just running around conferences and giving presentations.
Many things are done in the background related to the organization and curation of content. For example, people in my position do the entire selection and processing of content/speakers for our significant summits and conferences. But one of the nice things about this role is that it’s different for almost everyone. In my position, I am focused on live-streaming content.
I spend most of my time working on strategy, organization, and execution of Live Streams for AWS (I have at least two weekly episodes on the AWS Twitch channel). And after all those streams and events, I have to redirect any feedback to the right people at AWS.
Amazon is a big company, but it’s more like many small startups inside one big organization. So That allows us relative freedom in decisions about what we will do and how we will do it.
Learn Python. It Just Works™.
What is your programming language of choice?
Darko: Regarding programming languages, it depends on what I try to do. Mostly, these days, you will see me fiddle around with Python. Why Python? Well, it Just Works™. All jokes aside, I think Python is an excellent language for people who do not write code daily.
Python as a language is easy to get into, easy to do what you need it to do, and has a fantastic community. Besides Python, I use JavaScript for most of my infrastructure development (with Infrastructure as Code tools such as AWS CDK) and for some front-end stuff. When not using any of these languages, I stick to C++, C, and Lua. Those languages are close to my heart, and I enjoy using them.
What would you say is the most popular programming language currently, and why?
Darko: Instead of saying what are the most popular languages, let me change the question – “What are the most important languages?”. In my humble opinion (and remember, I am not a developer, so I have no reputation to defend), the most important languages to learn in 2023 are Python and JavaScript. Okay – why this? Simple: With the ever-growing expansion of AI/ML, Python has become the de facto language of AI/ML developers. Most AI/ML projects are done using Jupyter Notebooks and Python.
Hence, if you want to do anything in that space (and I hope you are), Python should be your language of choice. As for JavaScript, well, anything that is done today on the web is mainly done using one or more JavaScript frameworks. It is definitely the thing that moves the web, some phone apps, and more.
So, no matter what you think about languages such as Java, Rust, or GoLang – as it stands now, I believe JavaScript and Python are the most essential languages.
Kubernetes on a Tandy portable computer, cloud infrastructure on Commodore 64…why?
You used a 1986 Tandy portable computer to deploy a Kubernetes application to AWS. And that’s not the only modern thing you did with old computers…
Darko: I have a weird hobby; I collect old computers. The reason I do this is because I skipped a big part of computing in the 1990s and 1980s, so I wish to experience that. You may ask yourself now, “But what do you DO with those old hunks of metal?”. I try to do two things: 1.) Restore them to their previous glory by cleaning and repairing them, and 2.) Make them do something they should not do – like connect to the internet.
Now I come to the article I’ve written. In short, what I did here is:
I used a Tandy 102 portable computer from 1986 and deployed a Kubernetes application to AWS.
The article goes into detail, but I “simply” used the Tandy 102 as a “dumb terminal” and ran kubectl commands from a more modern computer. Some would say that is cheating, and I would agree with them. The Tandy 102 was never meant to run something like a networking stack, let alone kubectl.
The idea came from thinking about something very modern (in a tech sense) that I can do with something very old. I have a few more things I’ve done but not written about it:
Training a Machine Learning model on a Pentium 2 Computer, deploying serverless applications with a DEC teletype, building and deploying cloud infrastructure with a Commodore 64, deploying a container cluster onto 3 Apple Macbooks from 2007.
Again, “Why Darko?”. Well, I find it fun. Fun to stretch the capabilities of technology and maybe give someone a nostalgic chuckle.
Technology has not changed that much in 40 years
What lessons did you learn from this project regarding old and new technology?
Darko: One thing that stood out for me when doing a project such as this is that technology, in its essence, has not changed all that much over the last 30-40 years. Yes, we have moved on with bigger, better, faster systems, but the core concepts remain. The CPU still has cycles, the memory still has its addresses, and the input and output devices still (kind of) do the same thing. It shows that even old (very old) hardware can be used in a pinch to do more modern stuff thanks to the backward compatibility of modern systems. More specifically, thanks to command line tools and Linux.
Everything as a code
Please share some predictions on what you thing the future will be like in tech and how to future-proof your career?
Darko: I will speak from a very biased position here, as I do work for a cloud vendor, but my opinion when it comes to the future of tech is the following:
1) Everything is on the cloud. Yes, unless there is an absolute need for a local data center (regulatory or latency requirements), all workloads should use the cloud. Reasons are plenty, but as an engineer, for me, the biggest reason is the ability to try new things, experiment, fail, and try again.
2) AI/ML is the wave of the future. If you are not using AI tools to help you do a better job, you better get started. With the availability of AI coding companions such as Amazon CodeWhisperer or GitHub Copilot, you will only benefit from those as a developer. Besides just using AI/ML tools, see how AI / ML can benefit your workload. Is there a need that AI can fill in your product? Will it improve the end-user experience?
But also, remember these wise words: “Never use AI unless you need it”.
I am trying to say that do not try to shoehorn AI into your application just because everyone else is doing it.
3) Everything as a code – since everything is in the cloud, everything should also be coded.
If you are not writing your infrastructure as code, you are doing it wrong. If you are not creating configuration elements as code, you are doing it wrong.
You are doing it wrong if you are not adding audits as code. Automate your job away by doing everything as code, and you will be able to reach any scale.
4) The best programming language is the one you are good at. So, pick a language that makes sense and get good at it. Just try not to make that language an esoteric one and stick with the mainstream. Do not worry too much about the latest and greatest and hottest languages, if you know one language well, others will come quickly.