About this Blog
This blog contains information I wish I had earlier-on while becoming a self-taught Software Engineer. The term self-taught is a dubious one because you’re always learning from others, even if it’s not from a traditional institution. A computer science degree (or similar) obviously has tremendous value, but it’s sometimes not feasible to invest that time or money. The tremendous breadth and depth of resources on the internet on the broad topic of computer science is slowly making it a common skill like basic math. Over time, more peoples’ work roles will naturally shift towards being connected to software in one way or another, requiring everyone to increase their software-related technical productive output. Hardware and robotics will continue its upward trend as well, but any new breakthrough in hardware often results in orders of magnitude more opportunities in software. A great example of this is the huge number of software development opportunities created by the iPhone. Web 2.0 and Social Media only took off after its release. This doesn’t mean the relationship is one-way from hardware to software — it’s actually symbiotic, because Social Media helped drive the growth of mobile hardware. Another example of this natural exponential branching of software opportunities from milestones in hardware is the advent of cloud computing (pioneered by AWS) that modeled web components as primitives which can be assembled like puzzle pieces. Although one could argue this latter example is a mixture of hardware and software at a lower level.
There are plenty of ways to learn to code. Deciding which path to take can be daunting with a high chance of taking a sub-optimal path to your goal. Heck, even deciding what your goal is can be tough. Crowded landscapes need a birds-eye view.
This is just a blog right now, but it is the foundation for something more. Here’s a very brief overview of the roadmap:
- Current phase where blog posts are written manually. This phase will continue until 100 blog posts are reached.
- 2 blog posts per month in 2023 to complete this phase faster.
- Images will also be added to the Main page for each blog post, wrapping up the short-term UI updates.
- AI will be used in the form of language transformers to write another ~900 blog posts trained from the 100 that were written manually.
- The ~1,000 blog posts written up to this point will be a thing on the side.
- Software.Land will feel like a fun journey towards software-related goals.
- Phase 1’s journey will be enhanced with AI where common problems in the industry will be tackled. Various communities in the private sector, including academic, will be very pleased with this phase if implemented well.
Simultaneously gaining personal experience in Big Tech (in this still very early >5 year career), as well as gradually rising to the top-tier of the algo competitions arena, will further enhance this bird’s eye view. Contributing to open-source projects is another value-adding side goal for Software.Land.
Finally, a special thank you to some of the people I’ve worked with who have contributed to my education in some way:
- Ben Hughes (Chakra-UI)
- Dimitar Pavlov (APIs and much more)
- Elliot Messias (service meshes)
- Alaister Straka (Kubernetes)
- William Montgomery (cursor pagination)
- Christian Peer (APIs)
- Fabian Siddiqi (cloud resource allocation)
- Benjamin Withers (Kafka)
- Abu Salim (general problem solving)
- Andrii Kostenko (internal Amazon tools)
- Duncan Lam (internal Amazon tools)
Everyone on this list, including myself, is thankful to the countless contributors of computer science and engineering content on the Internet. Everything we do would be made much more difficult without it. The relationship between myself and some on this list could be categorized as frenemies due to a few points of contention, however, their contribution to my education deserves mentioning.
Sam Malayek works in Vancouver for Amazon Web Services, and uses this space to fill in a few gaps. Opinions are his own.