Posts

Showing posts with the label Software Engineering

Autofunctions

Autofunctions: Exploring Recursive Utility in Everyday Objects Introduction In a world teeming with multifaceted objects and tools, a curious phenomenon often goes unnoticed: the ability of some objects to perform their primary function on others of their kind. I've coined a term for this fascinating concept: "Autofunctions." This blog post delves into the realm of autofunctions, exploring their presence in our daily lives and their implications in various fields. Defining Autofunctions An autofunction is when an object or tool applies its primary function to another of its kind. Think of a bag carrying other bags, a crane lifting another crane, or a software debugging tool debugging itself. This phenomenon transcends simple utility, reflecting a self-referential or recursive nature in the design and function of these objects. Everyday Examples To truly grasp the concept of autofunctions, let's look at some commonplace examples: Containers Holding Containers: This inc...

ML system design interview

 This was originally posted on https://ideafair.bearblog.dev/ml-system-design/ on 1 Jan 2021 ML System design interview 01 Jan, 2021 This post details how a typical Machine Learning (ML) system design interview is conducted. It is quite similar to a software engineering system design interview, but there are many differences which I will list here. The candidate is given a problem and asked how they would go about designing the solution for the problem. Some example problems are: plagiarism detector for a class, YouTube video recommender, grammar correction service etc. The interviewer then expects the candidate to lead most of the discussion, occasionally bringing in what-ifs, asking clarifying questions, digging down on the details etc. My approach for solving ML design is to divide it to following sections. Sections of interview Problem clarification It is good to ask as many questions as possible, state out all of your assumptions clearly. Not doing any one of the above an...

Lessons from Software Engineering

Image
I have been a software Engineer in Microsoft for a year and half and I would like to share how I have learned the craft so far in hopes that it may help others. Theory  I like reading books as I believe this gives much deeper understanding of a subject. After some research online and asking people for suggestion I found some candidates. Programming Pearls by Jon Bentley is small book so I figured I could finish it fast. One important take away I got from this book is that a good Software Engineer thinks a lot before jumping to code. The second book I read is Code Complete 2 . This is old and you might want to skip some parts (Gotos, pointers etc) which are not applicable today. This book took many months to finish but it was worth it. I especially liked the parts about construction at different levels (requirement, architecture, OO classes), guide for naming, refactoring functions. Find all the learning resources your company provides and make good use of them. If you don'...