Monopolistic Thinking Aug 26, 2024 This one starts with a Steve Jobs quote. Love him or hate him, nobody disputes that he lived for his product vision and cared deeply about the experience of his customers. “If you were a product person at IBM or Xerox, so you make a better copier or computer. So what? When you have monopoly market share, the company’s not any more successful. So the people that can make the company more successful are sales and marketing people, and they end up running the companies. ...
Joining startups, scaleups and big companies Aug 23, 2024 A lot of people join startups. There are a broad range of reasons, but it usually falls somewhere into some of these: Startups are fast paced, with everyone wearing many hats, so you will learn a broader skillset, and more rapidly, than if you had spent the same time at a BigCo. Startups give you the ability to have an impact: you can be a big fish in a small pond, and easily bring in new skillsets that it is likely nobody already has. ...
Quality Assurance Jul 30, 2024 Why even have Quality Assurance? This one starts with a question: what is the purpose of Quality Assurance in a product company? I think we all agree that there’s a very big primary goal of making sure bad products don’t get delivered to customers. The question, then, is in all the little secondary factors, and the tradeoffs that they imply. For example, is it ok to prevent all bad products from getting to customers by also preventing all good products from getting to customers? ...
Electric motor intuition Mar 2, 2023 As someone who’s been working with electric motors for a long time, I’ve seen a lot of newcomers get confused about things like kV, internal resistance, motor size, magnet strength, and how all the various aspects of the motor design actually impact the motor’s performance in different situations. A note, this page is only going into brushless DC permanent magnet (BLDC-PM) motors, and even then particularly as they pertain to the 10W - 1000W, weight and efficiency sensitive applications, such as multirotor and fixed wing drones. ...
Building 10x software teams Feb 22, 2023 Twice in my career I’ve had a boss mention, in relation to the team I was leading at the time, “I’ve never seen such a productive team before.” Sometimes it’s harder to see from the inside, but with the benefit of hindsight, in these cases, something special happened. It certainly isn’t something I can force to happen, and it isn’t from anything like pulling crazy overtime or just ‘working harder’. It’s more like an emergent behavior of the correct team members, the working environment and the problem that needs solving. ...
Software engineering analogies Feb 22, 2023 Software is hard because it is extremely highly dimensional. There is all of the state in your program, all of the dependencies and their intricacies, all the footguns in the language you are using, and then finally the complexity of the real-world problem your are trying to solve. Communicating this, and the implications it has on the development of software to non-engineers can be a frustrating experience. Here are a few analogies I’ve found work in the real world to explain why things are so hard. ...
C++, Memory Corruption and Crashes! Oh my! Apr 5, 2022 A story travelling through the wild lands of embedded C++, following mystery crashes, memory leaks, uninitialized pointers and compiler bugs Once upon a time, I graduated from university with not a trace of C++ knowledge under my belt, and promptly got a job writing C++. The codebase was running piggy-backed on a Sierra Wireless SL6087 modem, which gave us roughly 0.5 second time slices where we could run our code before we needed to hand back control to the modem and wait for it to call our code’s entry point again. ...
Do you really understand what your software does? Apr 3, 2022 A motivation for declarative state machines - centralize your state transition logic! I’d like to think I’ve been incredibly lucky the first place I worked. For a small startup they had a lot of stuff done ‘right’. Unit tests, CI, fast release cycles. KANBAN with retros and planning as necessary. A focus on quality and testing ideas in the market. But from an algorithmic perspective, I think the biggest thing I learned there was to make explicit state machines. ...
Product design for organic growth May 21, 2020 Remember this quote from Alan Kay - “Simple things should be simple, and complex things should be possible”. If your product is complicated for people who need simple things, the learning curve will be too steep and people won’t begin to use it. If you don’t allow the flexibility for expert users, they will move elsewhere when they run into the limits of what you offer, and expert users are what drive organic adoption because people listen to them. ...
Understanding DrussGT May 21, 2020 Note: this was originally posted on the RoboWiki Understanding DrussGT (3.1.4) This is an attempt to explain the internal mechanics of DrussGT. As far as possible, no references to actual code will be made. Instead, I will attempt to explain everything in terms of concepts and ideas, so that this turns into a learning exercise instead of one of copy-pasting code. The following expects some understanding of Visit Count Stats , KNN , Guess Factors, Wave Surfing and Robocode Game Physics, so if you aren’t up to scratch with those, this might be a bit confusing. ...