Resume revamped

How do you write your resume?

Most people I know use MS Word and try to maintain the look of a template that they like. I used to use Word as well, and I have a template that I thought was reasonably pleasing to look at.

My old resumes are done in Word. Some lines are starting to get misaligned. With careful adjustment, this can become presentable.

However, there are some obvious problems with using a word processor to edit resumes, due to some inherent characteristics in a resume. Namely, resumes:

  1. Need a moderately complex but highly stable layout to look good. Resumes usually have section headings, job titles, time frame, location, company name, and job description, among other things. They are usually laid out using left, right, and center alignments, bold or italic fonts, and/or varying font sizes. But to look good, the entire resume should have a consistent format. Even if a date is offset by 0.5cm, the resume will start to look sloppy. You can do so by copying and pasting sections to try to preserve a consistent format, but when you edit the text, there is a good chance that the format will be thrown off, leaving you to struggle for ages to make the dates aligned on the right hand side again.
  2. Are constantly updated. You need to add new job items, new volunteer experiences, update the time frames on previous job descriptions, etc. to your resume. You may find yourself in the situation where the delicately designed resumes on Word that you built a few summers ago fall apart like a weathered antique that cannot be tempered with.
  3. Should be tailored. Every time you apply to a job, you should tailor a version of your resume. With Word, you may have to cut and paste items suitable for a specific job from any number of previous resumes, thus creating a mess of slightly different versions that gets more and more cumbersome to keep track.

So I wanted to switch to a system where I can achieve the above with maximal ease. I want to deal with formatting less, and focus on content more. I want to be able to update any section I want without worrying which word should be bolded and which word should have a 11pt font rather than 12pt. I also want to be able to “comment out” unwanted items for any particular job without removing it from my resume, so that while it won’t show up on the finished product, it is still easily accessible on the if I need it in the future. In fact, I want a “Master Resume” where everything I could put on a resume lives, and I just need to pick and choose which items to show up for a particular version and click print.

I explored two options: first is XML/HTML + CSS, which is an improvement over Word but still a bit messy on the content side with all the HTML tags, and the output is a webpage, not an easily printable copy.

So I settled on my old friend: LaTeX.

After a few iterations, I designed a new resume system that I feel very proud of.

1. Content backend. All of my job titles, descriptions, dates, etc, live on an easily readable spreadsheet, on which I can make edits effortlessly. And since this is LaTeX, I can comment out any job item by simply putting “%” in a left column, and that item will not show up in the finished product but it is still available for future use. In fact, I can create a different column of %’s for each version of resume, so that I take one glance and know which job items have been shown in which application.

The columns with content are interlaced with minimal LaTeX syntax, made possible by item 2 below.

For added awesomeness, do this part on Google Docs and edit your resume anywhere!

2. Centralized formatting. I pulled all the formatting up into a method, which means there is only 1 line of code determining which words should be on the left, which ones on the right, and which ones to be indented by how much space. If I want to make all the job titles italic instead of bolded, I only need to change one word. I built on top of the format template found here.

This part I don’t have to edit often, but if I wanted to change how each job item looks, I just need to edit this piece of code and the changes will apply to all resumes.

3. Integration. Now, I just need to copy the spreadsheet with the appropriate selector %’s, paste it onto LaTeX in the appropriate location, and click on generate PDF.

Copied and pasted from the spreadsheet. The coloring is automatic syntax coloring, to help visualize the code.

And then check out the final product for any final touches.

Finished product looks so awesome that I can’t wait to show it to people. Good start for any job application if you ask me.

I would be happy to share the code and spreadsheet I shared the TeX code and spreadsheet in this follow-up post, although this is a highly breakable system because there are countless ways to break it. You just need to miss one tag on the spreadsheet to be entirely stuck.

And of course there is the intimidation factor. All these code-looking things can make those with faint of heart hesitate.

Therefore, if there is market, I think it would be wise to make a more robust and less flexible software that allows the user to enter values in a spreadsheet, and spits out PDF files on the other end, and save everyone from the code.

You said there are lots of software like that?

Well, not exactly the way I made it, I’d bet 🙂


GMail officially sucks

Ok, GMail has done many things to piss me off, including delaying my sent messages several days so that the other end didn’t receive my emails until after the deadlines and said “er, better luck next year.”

But today I officially declare that GMail sucks. Here’s the reason: I’ve been writing a huge email regarding logistics for a trip, complete with section headings, lists, budgets, everything.

After 1.5 hours of labor, this is what the draft looks like in the mailbox:


Yes, it says (2) Drafts (2), and who the hell has seen that!?

And when I clicked it open, knowing I faced my doom, I still wept:


COMPLETE BLANK, ladies and gentlemen. This is a JOKE, right, GMail?

Oh, we’re so cool we auto-save your emails.”

“What? This one’s important? Trust us with our auto-save!”

“Boo! Blank auto-save, that is!”

“Hey, don’t complain. At least you can still see 5 words and the subject line.”

How to resize photos fast

If you’ve taken pictures with a high definition, chances are they are too big to do anything (upload to a blog, send to friends, etc).

I found a light-weight, Microsoft add-on tool that lets users quickly resize photos to their liking:

  1. Visit this MS webpage, and decide whether you like this program or not.
  2. Download ImageResizer.exe, or if you don’t trust me, download it from this MS webpage. You can find it by searching “Image Resizer” on the right hand panel.

Hm, there’s not much else for me to say, because MS has done all the explaining here.

Basically, you right click on your photo(s):

and click on “Resize Pictures”

and tada!

You can also click on “Advanced” if you want customize the size of your pictures, among other things.

Hot keys I think everyone should know

Study has shown (or someone should should study and show) that good use of hot keys will reduce time waste, avoid frustration, and prolong user’s life span. Below are a few hot keys that I use most often which are not trivial (I think everyone knows how to cut and paste? Ctrl X, Ctrl V?)


For Windows:

Windows + R = run a program, eg: ‘notepad’, ‘firefox’ , ‘mspaint’ for Paint

Windows + M = minimize all windows

Alt + Tab (+Shift) = cycle through opened windows (reverse)

Alt + F4 = close the opened window


For text editing:

Ctrl + ‘=’ = subscript (in Word 2007)

Ctrl + left or right = move cursor by word

Ctrl + backspace (delete) = delete previous (next) word



Tab = move to next input box (great for entering email -> password)

Shift + Tab = move to previous input box (great for entering email again cuz you typed it wrong the first time)

Ctrl + end = go to end of document/window (cuz you got tired of reading)

Ctrl + home = go to start of document/window


Good programs usually have its own hot keys built in.

For example, let’s say you like to create new tabs in Firefox, but you don’t like using the mouse to click around looking dumb. So you opened “File” (if you did that by using Alt+F, good for you, geek), and see that next to the “New Tab” item, it says “Ctrl+T“. That’s not decoration ladies and gentlemen. That means you can use Ctrl + T to create a new tab the right way.

If you really want to know more, some real geek prepared a comprehensive list of windows hotkeys.

Enjoy the computer like you’ve never enjoyed it before! 🙂

Confused by wordpress’ category and tags? You’re not the only one.

It turned out that enough people found this blog by searching “wordpress tags vs category” for me to add this post, in hope to remedy the inadequate rant before.


  • used to describe multiple blog entries that share a common attribute (theme, style, genre, or topic)
  • People generally use at most 2 or 3 categories to describe their posts.
    • For example, I blog in both English and Chinese, so they are the two biggest distinctions for my entrie.
    • Within each language category, I have several sub-categories (diary, fiction, announcement, etc). I expect I will write many more entries that would go under “diary”, for instance.


  • any keyword that can be used to describe a post.
  • It’s not uncommon to see people using a dozen tags to describe a post.
    • For example, I may not necessarily write another entry that talks about “confused”, so this is a tag, not a category.

A good test that I use:

What does this post talk about? These are its tags.

What other posts have you written or you might write that are similar to this post? They can be grouped into the same categories.

More technically, categories can be heretical, so it’s easier to organize and present your blog in a logical manner. Tags are random, scattered, and is used to capture what’s going on in a blog entry or the entire blog at a particular instance.