Professional portfolio style guide

This page provides an outline of requirements for a useful, professional looking portfolio site using TechFolios.

GitHub username

Keep your username professional and close to your real name: “the3Gr8est” might seem super clever to you right now, but will be awkward and embarrassing to you during an interview next year. Restrict yourself to lowercase characters, numbers, and hyphens to make it simple to remember. Uppercase adds unnecessary confusion. Don’t make your username location-specific: “philip-at-manoa” will be confounding if you move next year to San Francisco.

If you decide your username isn’t as good as it could be, it is easy to change your GitHub username to something more professional.

Home page

Concise summary statement: The summary should provide a concise statement of your ICS degree program, when you expect to graduate, and your general professional direction.

Minimum three interests: You should have a minimum of three interests.

Minimum three icons: Your professional network icons should include, at a minimum, LinkedIn, GitHub, and Email. Other networks, such as Twitter, Instagram, Medium, Pinterest, etc. are appropriate to include if you use them for professional purposes.

Appropriate photo: It is tempting to find any old photo of yourself and stick it on your home page. Resist this impulse. Instead, take the time to find a decent photo of yourself and/or get a friend to take a photo of you. The home page photo will be the most influential image at your site. It is the first impression visitors will form about you. Think carefully about the impression you want to convey. You probably don’t want to appear dressed in a suit and tie. On the other hand, you probably don’t want a picture of you dancing at a rave and holding an adult beverage that was taken by a so-called friend and posted to Facebook.

Your photo should be square, not a rectangle. That enables the front page image to be a circle, not an oval.


Minimum three projects: Your portfolio should have at least three projects.  Each project page should contain at least 2-3 paragraphs of description, along with links to further information about the project. You will want to discuss what you contributed to the project (if the project involved multiple people) as well as what you learned (about software development, team communication, leadership, etc.)

Do not link directly to a github project page. This is because the reader will not learn what you contributed to the project, nor what you learned. Write a description and then link to the repo at the end.

As an undergraduate computer science student, you might jump to the conclusion that “Projects” means “Software Projects”, and that since you don’t appear to have three software projects in your background, you won’t be able to satisfy this requirement.

Instead, think of Projects as descriptions of “Significant Endeavors”, some of which will (ideally) involve hardware or software design and development, but which might involve other things as well.

In some cases, your three best “significant endeavors” so far might all be school projects. That’s not automatically bad: some school projects can be very complex, require innovation and ingenuity, and provide a good showcase for your skills.

In other cases, you might decide to reach outside your school experiences. Perhaps you worked for a non-profit for a summer building low-income housing. That might constitute an excellent “project” even though there’s no code associated with it, if you acquired significant project management or “maker” skills or whatever from the experience.

Game play can potentially yield a project (but be careful with this one!). For example, if you built some kind of substantial environment in Minecraft, that could certainly qualify as a project if it demonstrates your artistic and/or other kinds of skills.

If you worked on an art project or a music project or a video project that took a substantial amount of time and that helped you develop a technical or aesthetic capability, then that might be a good subject for a project.

Note that when you first develop a professional portfolio, you are bootstrapping with the three best projects you can find from your background. Part of your ongoing professional development will be to “cultivate” your project page: adding new projects, and maybe removing others as you decide they are no longer “over threshold” as representations of your accomplishments. You don’t have to limit yourself to three—there’s no reason you can’t graduate with a dozen or more significant projects in your portfolio. Ultimately, I hope that you will look at each class and extracurricular experience as an opportunity to gain a project, and try to invest your time and energy into it in such a way that a project comes out of it.

Source code included: If at all possible, you should include a link to source code for your projects, such as a GitHub repository, or a SourceForge or Google Project Hosting site. You can even upload code from past courses to one of these sites to make it more easily accessible to employers. When you worked on a project with others, be sure to include the role that you played in the project and what artifacts you were responsible for producing. It’s usually good to describe “lessons learned” and skills acquired from each project.

Appropriate description: Your project description should provide at least 3 paragraphs that describe: (1) what the project was about; (2) what your role was and how much of the work you were responsible for; and (3) what did you learn from the experience?

You will use GitHub Flavored Markdown to compose your project descriptions. More details on formatting are available in the Formatting chapter of the TechFolios User Guide.

At least one image: Each project page should include at least one image.

No template projects: Your portfolio must not include the project descriptions from the template. Those are for demonstration purposes only.


At least one essay: You should start with at least one essay. Don’t worry, you’ll have written plenty more by the end of this class.

Satisfies technical essay style guide: Each essay should satisfy the Technical Essay Style Guide.

No template essays: Your portfolio must not include essays from the template.


Your resume is produced from the bio.json fields. Here are some tips for how to fill out those fields:

Reverse chronological order: Be sure to list your work and other experiences in reverse chronological order.