The Journey From Product to Code
“In most cases, the software is like cathedrals. First we build them, then we pray” – Sam Redwine
! ------ Disclaimer: Opinions expressed are a limited summary opinion and I'd LOVE to know more so tell me. I use the word developer, engineer, cat interchangeably etc for the purposes of avoiding being in semantic hell because there are more fascinating things to do. There is a strong ML bias btw but this is my experience from ML/MLOps into Product Development, kthxbye ----- !

Tl;DR : Building things is fun.
Over the past year, I’ve delved into the world of software development more fully. In the past I’ve worked with Engineers and in a Test Automation capacity. Beyond putting ideas into code, but rather what it means to write a good piece of software. Previously I had focused on data analysis, learning the more conceptual technical aspects of Machine Learning as a subset of “Artificial Intelligence” – discovering the ingenuity and complexity behind modern engineering including how the hell distributed systems even work, well, like 0.001% understanding surely.
This exploration has been, as always enlightening and transformative.
The Journey:
Software development to me is a landscape where innovative ideas can evolve into impactful solutions. Among the most compelling aspects of this field are the extraordinary individuals I’ve met, whose deep expertise pushes the boundaries of an area of the technology Deep Learning.
This is by no means new. It’s new and mindblowing for me though. 👾
For deeper somewhat technical insights, I recommend the “Latent Space” podcast, “Cognitive Revolution” & “Gradient Descent” featuring luminaries like Knott (Concrete Mathematics is an amazing textbook if you, like me enjoy being confused, or just get it with more clarity.
They also feature industry leaders weapons like Andrej Karpathy (OpenAI, Tesla, OpenAI) PS is there any nicer person in the field!??!!) He has the teaching ability and obvious passion that inspires.
In particular I have deep respect Dennis Habbasis (PyTorch, Meta), who has lead Open Source project PyTorch.
While my journey has mostly focused on the technical “make it work” aspects of learning to build, I’ve also gained an appreciation for the aesthetics of system integration, systems programming etc though these have not been my main passion. This short piece outlines what I have and will continue to learn; it will explore the adventures and lessons learned in software making, inviting you to discover the beauty and challenges of this dynamic field yourself. It is one field where you can learn as much as your head can take, and much of it readily available.

What I’ve learnt:
Below is what I’ve discovered in a year of somewhat focusing on building “fun stuff ” and getting more fat in the process.
These lessons are my own. There is no claim to accuracy or authority. Only my experiencing bouncing from ideation, architecture, distillation, building and deploying. As well as the Machine Learning elements and of particular interest deployment of lives models (for a different day!)
I am, and will forever stay a beginner though – and welcome any and all improvements on any channel!
- Programming is logic
- Learn to debug early
- Languages, patterns are syntax and can be learnt
- Style is important (most of the time)
- Compilers don’t lie – It’s my mistake!
- Learning new kinds of applying the logically either in patters or simple syntax don’t change.
- Don’t be someone who can only understand one part of the procedure.
- I have no idea what I’m doing myself but I like to put myself in the shoes of everyone I work with. Know what DevOps and increasingly MLOps (do love!) are going. There is a semantic argument there too but lets not bother in this format.
- Be thankful for the people who went to the effort of making sure your use case is handed at a low level eg. C++, but we get to play at a higher level of abstraction.
- Learn basic Git (I really need to get better at using git but only so much Alex to go around.)
- Learn to Debug, don’t print console.log etc – as with all rules I still use it but try to incorporate loggers in.
- Learn cloud tech, don’t worry about vendor unless you really care or it’s necessary for your use case or employer.
- Your code will inevitably appear terrible moments after you started working on it.
- It will look worse a mere few seconds later.
- Then as the meme goes, 3 weeks later hello_world(“print”)
- Debug
- Use ALL the tools. To learn especially, don’t make it do the work but if you don’t need to cut the tree down, use some wood. If you think you’re cheating using it – wait until someone is doing the stuff you could to you in 16% of the time because they used a calculator not an abacus to write. There is nothing wrong with wanting to be a purist and explore what is known as a form of craft by any means – otherwise – use them!
- Code generation is only going to get better.
- Find Heroes: My #1 is Karpathy, #2 is Habbasis from Deepmind maintains Pytorch as part of the Open Source community with Meta’s funding support, Gehotz is #3 because of his similar nature of “I’m just going to do it.”
- Build, Panic, Repeat
- Never stop questioning
- Debug
- Sometimes (because complexity) your code will work the second time for no obvious reason
- 6 minutes of debugging can save you 12 years of pain
- Yes, you need to look for your answers elsewhere, don’t feel bad
- Don’t try the same thing 1000 x if it isn’t working. Try the stuff and things that you haven’t
Premature Optimization is the enemy of progress
Sir Tony Hoare via Donald Knuth
- Get it working then get it faster, better.
- Build, Measure Learn (The Lean Startup method)
- Programming something is not the same as building something – go program your microwave to run for 10 minutes it’ll take you to read this (this is a highly exaggerated, hyperbolic example for the laughs. 😘)
- Building something complete is so much harder.
- Deploying it is harder…
- Projects are always harder than they seem – like mountains (yayyyy pain!!!!)
- Building your own full stack projects: In my case from the Data messing about, model experimentation etc and then learning to develop, integrate and deploy has been fantastic.
- Love yourself. Software is complicated (Message to me and all life situations)
Happy Building! With Love,
Because, Music 🙂