• Which of my PostgreSQL indexes are getting used most heavily?

    Ever since we got the fast new database server with SSDs, I’ve been monitoring which tables are getting heavy traffic and should go live on the SSDs. We have two tablespaces, “fast” which is faster but smaller, and “slow” which is bigger but slower. I’ve been using this query to determine which indexes should live in which tablespace. There are different forms of this query around the web, but I needed to see the tablespaces, too.

    Read on →

  • You're not a genius? Says who?

    Who says you’re not a genius?  Who are any of us to say?  And why would anyone bother telling someone that?

    Read on →

  • There's only one useful way to handle your detractors

    Here’s a Reddit/Slashdot/whatever thread that never happened:

    Internet crank on Reddit: "Hey, Steve Jobs, I guess that new iPad looks cool, but I think iPad is a stupid name, it makes me think of sanitary napkins."

    Read on →

  • "The only way to do great work is to love what you do."

    As most everyone who knows me knows, I wrote a book called Land the Tech Job You Love. The word "love" is in the title very specifically. As I discussed with my editors at Pragmatic what we'd title the book, the one point on which I was adamant was that "love" had to be in the title. I didn't want you to find a job you liked, or tolerated, but one that you loved. I wanted "job you love" to be a constant reminder to the reader.

    Read on →

  • Trying to get your boss fired means you're looking at the wrong problem

    I found a thread a few days ago where someone asked "I want to get my boss fired, because he's incompetent and is ruining the department, so how can I do this?" This idea is broken at many levels, and the stuff of delusional daydreams.

    If you're ever in a situation like this, stop and take a breath and consider a few facts.

    First and foremost, you're not a superhero, and you're not smarter than everyone else. It is not your job to come in and single-handedly save the IT department from ruin. That level of hubris is self-delusional and dangerous to your career. And if you ARE smarter than everyone else in the company, then you're in the wrong company.

    Second, you can't "get your boss fired" by yourself. If you imagine that you can walk into your grandboss's office with a list of the boss's stupid moves, you're fooling yourself. That's not how things work. Do you think your grandboss is going to look at your well-documented list of the boss's sins, say "Thank you, Johnson" and then can the boss? That's fantasy. What's more likely to happen is that you'll get fired for insubordination. At the very least, you'll piss off your boss because he'll find out about it.

    Note that I'm not talking about times when the boss is doing something illegal or unethical. In times like that, it's your responsibility to take these issues up with upper management. I'm talking about when the boss makes bad decisions (or more likely, decisions you don't agree with and have dubbed "bad"), or is a jerk, or is just somehow a bad boss.

    Finally, what do you think is going to happen when you "get the boss fired"? Do you imagine that a better boss will be hired in his place? Why do think that upper management will get it right the second time? They screwed up once, and they're not fixing the problem, so what will change the second time around?

    Realistically, when you're in a situation like this, one of two things will happen. Either upper management is aware of what a loser your boss is and he'll be gone soon enough, or they can't tell he's ineffective, and no amount of your documentation of his bad decisions is going to change that.

    So the question is, which situation are you in? Do you trust upper management to take care of things and get rid of your bad boss? If so, sit tight and do your job. And if you think upper management is as dumb as your boss himself, then you are in a crappy company and need to get out.

    The bad boss is not the problem. The company that allows him to be a bad boss is the problem.

  • What I learned hanging out at the vascular surgery conference

    I spent a couple of days this month at Postgres Open in Chicago.  It was a fantastic conference with a ton of good technical information. (Here are my notes from the Postgres Open sessions). However, my favorite part, by far, was going to check out the vascular surgery conference at the other end of the hotel.

    Read on →

  • Watch for the surprises

    Look for and act on the surprises around you ever day.  That's where we have the most opportunity to make changes for the better.

    Read on →

  • Notes and comments from Postgres Open 2011

    Like I posted my Notes and comments from OSCON 2011, here are my notes and comments from Postgres Open 2011. Some of it is narrative, and some of it is just barely-formatted notes. The target here is my own use of what was most interesting and useful for me at work, but I make them public here for anyone who’s interested.

    Read on →

  • Keep seldom-used settings handy in your configuration files

    PostgreSQL 9.0 High Performance, by Greg Smith

    Read on →

  • Notes and comments from OSCON 2011

    Finally, two months after OSCON 2011, here's a dump of my notes from the more tech-heavy sessions I attended. Some of it is narrative, and some of it is just barely-formatted notes. The target here is my own use of what was most interesting and useful for me at work, but I make them public here for anyone who's interested.

    Read on →

  • Objective: "Obtain job where I commute by zipline"

    I spent an hour last night reading freelance writer Julieanne Smolinski's Twitter feed.  She's funny in a Jack Handey kind of way, and I retweeted this Tweet:

    I know you're not supposed to lie on a resume, so I suppose my "Objective" has to be "obtain job where I commute by zipline."

    Thing is, that's as good an objective to put on your résumé as any other.  Objectives say nothing and waste the attention of your reader.

    Read on →

  • Your github account is not your portfolio, but it's a start

    Gina Trapani started a Google+ thread about using Github as a portfolio of your work to show potential employers. This in turn was prompted by a blog post by PyDanny titled "Github is my resume." It's a great idea, but it's only a start. Your portfolio should be more curated than that to be effective.

    I shouldn't complain too much. Far too few job seekers consider the power of showing existing work products to hiring managers. That's probably because so few employers ask to see any. In my book Land the Tech Job You Love, I cite Ilya Talman, one of the top tech recruiters in Chicago, estimating that only 15% of hiring managers ask to see samples of work.

    Consider the manager looking to hire a computer programmer. She has hundred résumés from respondents, all claiming to know Ruby and Rails. She knows that anyone can put Ruby, Rails, or any other technologies into a résumé without knowing them. Even well-meaning candidates might think "I read a book on Ruby once, and Rails can't be too tough, so I'll put them on my résumé." Looking at sample code is a great way to separate the good programmers from the fakers.

    Since creating a repository of someone else's good code is only slightly more involved than putting "Ruby on Rails" in a résumé document, a good hiring manager will ask in the interview about the code. When I interview candidates, I ask for printed code samples of their best work for us to discuss. Pointing at a given section on the paper, I'll say "Tell me about your choice to write your own Perl function here instead of using a module from CPAN", or "I see your variables seem to be named using a certain convention; why did you use that method?" In a few minutes, I can easily find out more about the candidate's thought process and coding style than a mile-long résumé. This method also exposes potentially faked code.

    So as much as I applaud candidates having a body of work to which they can point employers, simply saying "Here's my Github repo" is not enough. The hiring manager doesn't want to see everything you've written. Although everyone is different, she probably wants to see three things:

    • quality of work
    • breadth of work
    • applicability to her specific needs

    Most important, she doesn't want to go digging through all your code to find the answers to these questions.

    Consider my github repository as an example. There are 28 repositories in it. Of these, nine are forks of other repos for me to modify, so clearly do not count as code I've written. Three repos are version control for websites I manage. Some are incubators of ideas for future projects that have yet to blossom. My scraps repository is a junk drawer where I put code I've written and might have use for later. How will an interested employer know what to look at? It's arrogant and foolish to tell someone looking to hire you "here's all my public code, you figure it out." It's the RTFM method of portfolio presentation, and it doesn't put you in the best light possible.

    For an effective portfolio, choose three to five projects that show your best work, and then provide a paragraph or two about each, describing the project in English and your involvement with it. There is literally no project or repository, on Github or elsewhere, about which I can say "This work is 100% mine." Everything I've ever worked on has had work contributed from others, and the nature of those contributions needs to be disclosed upfront and honestly.

    None of this is special to Github. There are plenty of online code repositories out there, such as Perl's CPAN, which can act as a showcase for your work. Of course, you can also create your own online portfolio on your website as well. The keys are to highlight your best work and accurately describe your involvement.

    A common complaint I hear when I discuss code portfolios goes like this: "Most of my work is private or under NDA, so I can't have a portfolio." Hogwash. You can go write your own code specifically to show your skills. If your area of expertise is with web apps, then go write a web app that does something fairly useful and publish that as your portfolio. Assign it an open source license so that others can take advantage of it, too. You'll be helping your community while you help your job prospects.

    Do you have an online code portfolio? Let me know in the comments, and include the URL for others to see.

  • Should I put ____ on my résumé?

    I read Reddit’s résumé subreddit regularly, and it’s one of the most common questions asked: "Should I put such-and-such item on my résumé, or leave it off?" The variations are endless:

    Read on →

  • Distracting examples ruin your presentation

    At OSCON today, I went to a talk called “Why Know Algorithms” by Andrew Aksynoff. I was pleasantly surprised to see that the speaker was the author of Sphinx, a powerful full text indexing engine that I’m considering adopting for a project.

    Read on →

  • 401 passwords Twitter won't let you use

    Twitter has a list of 401 passwords that they disallow, not because of content, but because of how commonly used they are. A common password is easier for a bad guy to guess. None of these are passwords you'd want to use anyway, because they're so easily guessable by a simple dictionary attack. Bad guys have lists like this anyway, and Twitter is trying to make the most common and unsafe passwords unusable. I wonder how many people would use "111111" as a Twitter password if allowed.

    Read on →

  • Six tips for preparing to attend a technical conference

    I've been going to technical conferences since YAPC::NA 2002, and next week I'll be at OSCON 2011 talking about community and Github. Preparation is important to getting the most out of the conference with the least amount of hassle. Here are some tips I've learned along the way.

    Read on →

  • Toward ending RTFM marketing in open source

    Too many times I've seen a conference announced once, and then never heard about it again. It's what I call the RTFM method of marketing: Either you happen to know about the event, or you lose out. This year for YAPC::NA, the annual North American grassroots Perl conference, lead organizer JT Smith isn't going to let that happen.

    Read on →

  • The touch command does more than just create empty files

    Beginners to Unix/Linux learn about the touch command as a way to create an empty file.

    $ ls -l /tmp/foo
    ls: /tmp/foo: No such file or directory
    
    

    Read on →

  • Don't try to make things on your résumé sound more interesting than they are.

    Did you work a cash register at one of your jobs? Then say that in your résumé and move on. Don’t try to make it sound more exciting than it really is.

    Read on →

  • Toot your own horn at work

    Do you think it’s bad to talk about what you’ve done? Do you have an aversion to self-promotion? Learn to get over that for the sake of your career. Remember the first rule of career management: Your awesomeness is not self-evident.

    Read on →