Skip to main content

Posts

Advice to young web developers

I’ve been making websites in some form or another since 2008. After 12 years of experience I think I’ve accumulated enough knowledge to know a few things. Here’s some things I’d like younger developers to think about, in no particular order: Sometimes a website is just a website. The browser is already a client; HTML is its language. The web is built around server-side rendering. You can provide your data in more than one way; consider HTML to be one of several possible data representations. Scaling your server helps everyone. Expecting client-side scaling only helps people with the fastest computers and Internet connections. Not everyone has (or can use) a mouse. Not everyone has (or can use) a keyboard. Not everyone has (or can use) a touchscreen. Not everyone can see colors or pictures the same way you can. Not everyone can process information the same way you do. It is inhumane to move things around on people. The browser’s native HTML parsing is far faster than anything you can wr...

The ultimate guide to debugging in Python

Even if you write clear and readable code, even if you cover your code with tests, even if you are very experienced developer, weird bugs will inevitably appear and you will need to debug them in some way. Lots of people resort to just using bunch of print statements to see what's happening in their code. This approach is far from ideal and there are much better ways to find out what's wrong with your code, some of which we will explore in this article. Logging is a Must If you write application without some sort of logging setup you will eventually come to regret it. Not having any logs from your application can make it very difficult to troubleshoot any bugs. Luckily - in Python - setting up basic logger is very simple: import logging logging.basicConfig(     filename='application.log',     level=logging.WARNING,     format= '[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s',     datefmt='%H:%M:%S' ) logging.error("Some seriou...

On Mental Models for Great Product Managers

A problem comes up and you—a PM—think that you know how to deal with it. You throw on your usual sauce and step back. You do the same for the next problem, and the next. But the thing is—you're not getting the results you want. Your shortcuts are actually cutting important corners. What you're doing here is relying on a mental model. Mental models are frameworks for making decisions. Humans have lots of mental models for navigating the world—they determine how we make sense of things and how we make decisions. But when you're building and scaling a product, you need to carefully select your mental models to make sure you're incorporating the  most important  factors into your decisions. Product managers have to navigate an unpredictable variety of problems all the time. You work at the intersection of many different aspects of a company: product design,  user experience , technical feasibility, and business concerns.  Source:  Intercom Instead of falling back on...