Why I Want to Live in Silicon Valley

  • 1768 words
  • 7 minutes to read
  • comments

You remember my blog post about Why I Don’t Want to Live in Silicon Valley, don’t you? Read it first if you haven’t already. The gist of it is that Silicon Valley is a place with a lot of troubles. No one should want to live there, according to that previous post, right? That is what many of my readers concluded, but they were wrong. Despite the problems, the place is definitely unique and there are a lot of reasons why you may want to consider it as a great place to live, for a few years at least, especially if you are in the tech business.

Zache: A Simple Ruby In-Memory Cache

  • 200 words
  • a minute to read
  • comments

A month ago I stumbled upon a problem: I wasn’t able to find a Ruby gem which would do in-memory caching with the capability to expire on timeout. After some quick research I decided to implement my own and called it Zache (as in “zero cache,” since there is no back end). Here is how it works:

How to Deploy Maven Artifacts to CloudRepo via Rultor

  • 653 words
  • three minutes to read
  • comments
badge

In my previous article, I described how to set up a private Maven repository in Amazon S3 and deploy there via Rultor. This is a great solution if you’re familiar with managing Amazon Web Services (AWS), S3, and AWS Identity and Access Management (IAM). However, if you’re not comfortable administering an AWS account and all the related permissions, you may want to store your Apache Maven Artifacts in some cloud based repository manager instead. Here is how you make Rultor deploy your Maven dependencies to CloudRepo. I wrote this blog post together with Chris Shellenbarger, their founder.

My Recipe Against Dependency Hell

  • 651 words
  • three minutes to read
  • comments

Do you specify exact versions of your dependencies? I mean, when your software package depends on another one, do you write down, in your pom.xml, Gruntfile, Gemfile, or what have you, its version as 1.13.5 or just 1.+? I always thought that it was better to use exact version numbers, to avoid the so called dependency hell, and I was not alone. However, very soon I realized that dynamic versions, like 1.+, give more flexibility. Just a few weeks ago I realized that neither approach is right and found myself a hybrid formula. No suprise, I again saw that I wasn’t alone.

10x Paychecks for 10x Programmers

  • 801 words
  • three minutes to read
  • comments

You most definitely have heard about 10x programmers. The gist of this folklore is that some of us coders are very effective (10 or even 100 times more so than others), while the rest are just “normal.” It is definitely not a myth though.

What if the Architect is Wrong?

  • 1063 words
  • four minutes to read
  • comments

You most probably know what I think about the architect role on a software project—it’s that of a dictator who makes all technical decisions and who bears the entire responsibility for the final result. I wrote about it and even gave a talk Who is a Software Architect? at BuildStuff in 2016. However, the obvious question you may ask is: What happens if the architect is wrong? Does it mean the entire project is at risk of failure? And isn’t it better to make the whole team responsible for the result, instead of having one single point of failure?

Hazardous Enthusiasm

  • 693 words
  • three minutes to read
  • comments

On a daily basis I deal with many programmers who contribute to my open source projects, either as volunteers or for money via Zerocracy (and my software projects are all open source). Over the years I have realized that there is a pattern in their behavior, which I need to be scared aware of. I call it “hazardous enthusiasm.” Here are the symptoms.

Speaker Cheat Sheet

  • 2085 words
  • 8 minutes to read
  • comments

I speak at software conferences regularly. Over the last three years I spoke in 30 cities and 10 countries. I recorded almost all of them, you can see them here and on my YouTube channel. My principal rule is that I never give the same speech more than once. Every time it’s a new deck of slides and a new flow of thoughts. Of course, they all dance around the ideas I preach about, like Elegant Objects or rebellion against office slavery. I guess it’s time to share some of my secrets, mostly learned the hard way.

Why I Don't Want to Live in Silicon Valley

  • 1887 words
  • 7 minutes to read
  • comments

Silicon Valley is a great place to be … or maybe not. I’ve spent five years there, from 2011 till 2016. I did enjoy some parts of it, but others were not enjoyable at all. Here is a quick summary of what’s wrong with this territory. I can’t speak about the rest of the United States since, even though I’ve seen some other places, I’ve never lived there for more than a month. Long story short, the territory between San Francisco and San Jose, also known as Silicon Valley, is not the thing you see in the famous TV Series. It is absolutely different…

Unit Testing Anti-Patterns, Full List

  • 1011 words
  • four minutes to read
  • comments

I wrote some time ago about anti-patterns in OOP. Now it’s time to write about unit testing anti-patterns—because they also exist, and there are many. I will try to include every example I know in this list. If you know any others, please add them via a pull request or post a comment below. For each anti-pattern I will try to mention where it was found, if it’s not mine. Keep in mind that if I found it somewhere, that doesn’t necessarily mean it was invented there. If you spot an error, please comment.

You Can Do Better

  • 1669 words
  • 7 minutes to read
  • comments

OK, it’s time to publish this piece. I’ve been dancing around it for quite a while, telling you how to make more per hour, how to manage those stupid managers that don’t let you grow, how to boost your career and how to deal with office slavery. Now here is a simple, plain list of recommendations for you: what you should do if you want to be a more successful programmer. Not a better algorithm designer, even though that’s important. Not a funnier clown team player, even though that’s also important. But a more successful software engineer, both financially and socially.

Tech Journalism Sucks

  • 544 words
  • three minutes to read
  • comments

This July, just four months ago, I submitted an article to InfoQ, a popular online tech magazine. In the article I suggested that in order to improve our projects we must not make programmers worry about the quality of code they write, but instead let them focus mostly on the speed of delivery. The quality, I argued in the article, must be the concern of the delivery pipeline. You have most probably already read the blog posts where I mention this idea, especially this one: Don’t Aim for Quality, Aim for Speed.

Beware of Bigotry

  • 921 words
  • four minutes to read
  • comments

Bobby Fischer, the eleventh World Chess Champion, was one of the best chess players of the last century. Did you know that, along with anti-Semitic statements, he also said that women chess players “aren’t creative and are all fish”? Did you also know that he publicly described the 9/11 events as “wonderful news”?

Do You Test Ruby Code for Thread Safety?

  • 609 words
  • three minutes to read
  • comments

Are you a Ruby developer? If you are, I’m pretty sure you have a very vague idea of what concurrency and thread safety are. No offense, but this is what I’ve figured out after dealing with Ruby code and speaking with Ruby programmers over the last half a year. I’ve been writing in Ruby pretty actively recently and I do like the language and the ecosystem around it. Zold, the experimental cryptocurrency we are creating, is written almost entirely in Ruby. What does that tell you? I like Ruby. But when it comes to concurrency, there are blank spots. Big time.

Mailanes.com Helps Manage Newsletters and Mailing Lists

  • 630 words
  • three minutes to read
  • comments

There are other products doing something similar, including MailChimp, AWeber, and many others. They are great. Maybe. I don’t really know. I tried some of them, some time ago. And I was frustrated. They are expensive, clumsy, and heavy. That’s my experience. I wanted something lightweight, where I can upload a list of emails, create a simple HTML/text letter, configure my SMTP outbound server, and call it a day. I spent a few days and created Mailanes. It’s free (for all of you), it’s simple, and it’s open source.

Don't Make Me Guess

  • 801 words
  • three minutes to read
  • comments

It’s Sunday. I’m at home, drinking tea and writing a new document for one of our future investors. One of my contacts in Telegram all of a sudden shoots me a message. I haven’t talked to this guy for at least two months. He is a software developer. I know him because he works at Zerocracy. His name is Paul.

sixnines availability badge