Yes, you read that right - my good friend Courtny and I launched a podcast, dubbed “The Work Item”, where we talk about everything that comes to mind in the product development and design space. We even have a mascot, named “Peppy the Post-It” (Courtny is the creative mastermind behind the art and the mascot name, by the way). Two episodes of this podcast are already out - the first one being on remote work (check it out on YouTube), and the second covering our career paths (also on YouTube).
Back in 2012, I had experienced a situation where one of my Git repositories (I will not mention any specific providers here) suddenly disappeared overnight, with no recovery options. And while I was able to restore some of the code from local backups, it was an all-around bad position to be in. You know how you’re always told to not put all the eggs in one basket? Who knew that it applies to code as well!
Daniel Kahneman, a pyschologist and economist notable for his work in the psychology of decision making, noted that “true intuitive expertise is learned from prolonged experience with good feedback on mistakes”. And let’s be realistic - any human makes mistakes, in both professional and personal matters. It’s a part of everyone’s life, regardless of your socio-economic background or the range of skills and abilities you possess. And just like with any skill or ability, one can make less mistakes over time.
One of the skills that I find to be indispensable for a product manager is the ability to learn new things quickly. The reason why this is important is because we operate in an environment where things change constantly, and there is frequently a need to jump in and help with a specific aspect of product delivery that is new. This raises an interesting question - what is the best approach to learn things quickly?
In several conversations with individuals that I help mentor, the same question seems to be coming up more often than others - what are the skills necessary to be a good product manager? This seemed like a great opportunity to provide a more persistent outline that can be referenced by others in the future, hence this post. I should mention that this list is, of course, not comprehensive - depending on the company, responsibilities and the product one is working on, additional skills might be necessary (or even the same skills, but in a different context).
I was working on some data analysis recently, that involved me dealing with data snapshots. These are effectively point-in-time representations of specific data. For example, if you’d be dealing with the amount of items at a warehouse, you could imagine that you’d be taking a snapshot through the day of how many items you have available during each hour. That will give you a pretty good idea of the in-flow and out-flow of materials.
A colleague and I were working on some data analysis tools today, and they encountered a puzzling error when processing a large chunk of data. Due to the volume of unique users that they were analyzing telemetry for, they decided to use sampling by hashing the user IDs and then taking a slice of the group they wanted to investigate. Because they were using Kusto, they could rely on hash() - a function that returns a hash based on the input value (it uses the xxhash algorithm behind the scenes).
Back on January 22, 2010, I started this blog - time sure flies when you are having fun! I didn’t even join college back then, and I already wanted to share the little knowledge and tips I had with the world. Ubuntu Karmic Koala was recently released, and I was fiddling with it overwriting my MBR, ruining my n-th Windows 7 installation. Back then, my dream was to one day work at Microsoft - a pretty far shot from someone coming from the part of the world I’m from.
When building tools that authenticate against other APIs, more often than not I need to manage private keys and secrets. The challenge is that sometimes it’s very easy to forget the fact that the key is sitting somewhere in a configuration file, and it will be accidentally checked in to the repository. With the proliferation of tools like trufflehog, that’s generally not a position you want to be in. A lot of services are being proactive about it, and when a leaked key is detected, it will be automatically revoked (notice how it someone attempted to use it within minutes of the leak).
I will preface this post by saying that it’s not about quantifying the education of those that already went through coding bootcamps, but is rather a point of view (i.e. opinion) for those that are considering whether they need to sign up and pay for bootcamps that will teach them how to write software. I am sure there are quite a few people who found success going down the bootcamp path, and I am extremely happy for those that found it to be their preferred approach.