I have been working in web tech for 10 years.
I prefer spending more time on programming design than coding. I start by dividing the application into components and describing the interaction protocols between them. Then I write the documentation for an API and all of the project’s complex parts. I define "narrow" places and construct ways to shard and replicate.
I apply the most effective frameworks, databases and programming languages for each task. I also choose the right platforms and monitoring systems for the project.
I define the scope of work, communicate objectives, and set goals. I then monitor the performance and review the code. I prefer small, flexible teams of 5–10 people.
I use programming to solve problems—not for the sake of process. Whenever possible, I use ready-made solutions instead of wasting time and resources reinventing the wheel. The ideal application is the one that can be intelligently assembled from ready-made components.
I focus on the client’s goals and understanding his or her challenges. I then suggest solutions based on my expertise. I ensure the client understands the solution by translating complex concepts into accessible language.
I have launched two dozen of my own startups. The most interesting of them are:
Checked domain availability in real time, showed prices of hundreds of registrars, offered alternatives.
Online music player with unique functions for its time. 2.6M monthly users.
Popular anonymous chat. 0.5M monthly users.
First Russian Twitter clone.
Collects job vacancies from freelance sites. Displays desktop notifications in real time.