Archives for April 2019
Why Is Software Development Such a Fulfilling Career?
How I Learned to Code at 34 and How You Can Do The Same Regardless Of Age
Here’s my story of learning to code at 34 and a blueprint on how you can do the same.
Related Links
A Resume Template for Software Developers to Help You Land the Job
There are hundreds of resume templates out there to download, from fancy to basic.
Whatever you choose, you want your words to count. You want to fit the most relevant info you can muster onto one page.
When I went through my recent job search I came up with a pretty basic template for a resume that I used for all applications.
On one page I was able to summarize:
- Who I was and what I am passionate about
- What value I could bring to the company
- My past education
- Contact details (including my Github repo)
- My online presence
- Hard Skills
- Soft Skills
- A professional photo
- My location
I felt this was sufficient to create a well-rounded, yet brief, resume template for Software Developers to land the job, including myself.
Here’s an overview of what it looked like (and yes I’ve made some of the data fictititous):

Below I’ll provide a link to my resume template so you can open it up and replace it with your own data, but let me briefly explain what each section aims to do:
Main Section
About Me
This section should only be about 2-3 paragraphs and should include:
- Who you are and what you do
- What value you would bring to the company
- A desire for further discussion about the job
Work History
Only post relevant jobs. If you were a developer in a past or current role, then put that at the top. If you worked a non-developer job, but there are skills there that apply positively to this job, include it.
If you worked a job that is totally unrelated and not valuable in landing this job, don’t include it.
Education
Be sure to include relevant education. If you graduated from college, no matter the degree, include it. Also be sure to include “unaccredited” online coding bootcamps, certificates, and pursuits as these are almost equally important these days.
Online
Be sure to provide a Twitter and LinkedIn feed if you have them, especially if you are active in the coding community. If you don’t include it, they will find it anyway. Better to save them some time.
Sidebar Section
Contact Details
Include your:
- Primary phone number (probably your cell phone)
- Some type of video-conferencing platform like Skype
- A primary email address
- Your GitHub repo
Hard Skills
Here’s where you dish out your coding abilities, the languages you know, and coding related talents.
Be sure to only list skills you can back up.
Soft Skills
This is where you can shine in “non-coding but job-related” soft skills. Many of us are trying to land that first developer job and have had only non-developer jobs in the past.
Well, the skills you picked up there are still very valuable. Skills like problem-solving, teamwork, leadership, punctuality, etc. can all be listed here. But try to tie them into the position you are pursuing.
Conclusion
And that’s the gist of it: A resume template for Software Developers.
Don’t overthink it. Make your point. Send it out by the dozens.
Here’s the template (I use Open Office, which is a free open source knock-off of Microsoft Word):
Why I Stopped Freelancing and Became an Employee Again
Be sure to subscribe to the channel to stay updated!!
What are WordPress Transients and How Can I Use Them?
Before I took the software job I’m currently at, I underwent a number of interviews. In doing so, I had this question asked:
“If you had multiple queries being called on the homepage in WordPress, and it was causing a slow load time, how would you go about speeding this up?”
I really didn’t have a strong answer, so I said the magic words, “I don’t know what I would do, yet, without actually seeing the issue in person. What’s the answer?”
He replied, “Transients.”
Caching the queries with transients!
Okay. Honestly…..never heard of them.
So I went and learned all about WordPress transients.
What are WordPress Transients?
WordPress transients are simply a way to cache information temporarily in the database. There are three components: A key ( a string representing the name of the transient ), value ( the content you are storing in the cache ), expiration ( the lifespan of the transient ).
These are stored, for their lifespan, in the wp_options table.
There are three main functions involved:
- set_transient(). To save a transient you use: set_transient( $transient, $value, $expiration ); $transient is a string representing the name of your transient. This can be anything, but choose a helpful name. $value is going to be a variable representing your data. $expiration will be the time before your transient expires. See below for helpful constants.
- get_transient(). To retrieve a transient you use: get_transient( $transient );
- delete_transient(). To delete a transient, you use delete_transient( $transient );
And that’s it!
Give me an example
WordPress transients are really useful for resource-heavy database queries, and can significantly help to cut this number down. You can use the Query Monitor plugin to see this number before and after the transient is set.
But here’s a simple example of how it can be used (note the comments):
// Check if the transient exists $recipes = get_transient( 'my_recipes' ); // If the transient does not exist, then run the query and set the transient for the $recipes query. The next time this query is run, $recipes will exist as a transient and will not run a new query, but use the cached query instead. if ( false === $recipes ) { $args = array( 'post_type' => 'recipe', 'post_status' => 'publish' ); $recipes = new WP_Query( $args ); // Sets transient for one day duration set_transient( 'my_recipes', $recipes, DAY_IN_SECONDS ); } // Note how only the query above is set as a transient. We want to cache the query. No need to cache the loop. if( $recipes->have_posts() ) { echo '<ul>'; while( $recipes->have_posts() ) { echo '<li><a href="' . get_permalink() . '">' . the_title( '', '', false ) . '</a></li>'; } echo '</ul>'; }
Expiration Constants for WordPress Transients
Here are some “WordPress native” constants that you can use for expiration times:
MINUTE_IN_SECONDS = 60 (seconds) HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS MONTH_IN_SECONDS = 30 * DAY_IN_SECONDS YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS
An Important Note
Always have a fallback to the transient. The Codex states “it is possible for the transient to not be available before the expiration time. Much like what is done with caching, your code should have a fallback method to re-generate the data should the transient not be available.” This is why we check to see if it exists first. If for some reason it is not available, it will run the query again. No prob.
Delete WordPress Transients When Saving/Updating/Deleting a Post
When you make a change in a post that is using a transient, you want to see that change, right? Thus, you should delete the transient (it will set again) when making changes so those changes reflect.
WordPress has a few hooks we can use for this. Using our my_recipe transient example, we can delete when saving a post or deleting a post (and wherever else you’d want to use this).
function delete_my_recipes_transient() { delete_transient('my_recipes'); } add_action( 'save_post', 'delete_my_recipes_transient' ); add_action( 'delete_post', 'delete_my_recipes_transient' );
Manage your transients
There is also a nice plugin to see all the transients on your site and data about them (such as expiration, etc), called Transients Manager.
Conclusion
If you have multiple queries on a page or have some intensive queries that are causing performance issues for your site, then definitely look into implementing transients on your WordPress site.