Keep pushing through

Dear new developer,

One time I was working with an application framework that had poor documentation. I was trying to figure out how to use it to support a client’s project. But it wasn’t working.

I was less experienced and so had no idea why we’d chosen this application framework. I was simply tasked with making this particular feature work. Frankly, I don’t even remember what the feature was!

But I had to make it work. No one could help me (it was new to everyone). There was little documentation, I don’t recall if I filed a support ticket with the vendor, but I certainly should have. I searched the internet intensely. I ended up downloading a java decompiler to learn what I could about the framework and the class in question.

I finally solved the problem by decompiling a few classes. I found a bug in the application framework that I was able to work around. I did my job, even though I had to approach the problem from a non traditional angle.

Note what I didn’t do: I didn’t give up.

Sometimes you just have to keep pushing. Software development is hard.

By definition, the easy stuff is easy to do and therefore gets done relatively quickly. So you’ll send a lot of time on difficult things. Prepare for this and plan to work through it.

Tips for working through hard things:

  • Take breaks
  • Talk to others, whether in person or online
  • Keep thinking of different approaches
  • Remember the end goal

There are going to get hard. In technology there are ways to work smart and hard. Make sure you do both.

Sincerely,

Dan

How to get a job faster

This is a guest post from Taylor Desseyn. Enjoy.

Dear new developer,

Finding a job was hard for a new developer pre-pandemic…now during a pandemic it is just as hard but add in the fact that you can’t meet anyone! It can be daunting.

Here are my thoughts on how to find a job FASTER than most other job seekers.

Put out content

Put out content (especially on LinkedIn). You’re probably asking yourself. Taylor, I’m an introvert and not a marketer, what does putting out content have to do with finding a job? The answer? Everything. The fact we all are at home and cannot network has everyone on all major social platforms more than ever.

LinkedIn especially. LinkedIn is like tik tok. You can have zero followers and still gain a ton of traction. I know a handful of developers that have documented their journey finding their first job over LinkedIn and actually have landed their job because of putting out content.

Post at least once a day. This could be about an interview you bombed, or a question you missed on an interview and ask for help, or learning a new piece of tech and asking about one part of it. You should also be liking and commenting on other peoples posts as well!

Interview yourself

Video Interviews…Selfie style. This is a big one for me and only a few developers have done it. But guess what, the few that have, landed a job and one specifically because of this tactic.

Hear me out, every first-round interview is the same. Tell me about yourself, tell me your weakness (which we all turn into a positive), and tell me your greatest strength.

Why don’t you just video it up and answer these questions yourself and put it on LinkedIn and ‘pin’ it under the featured section on LinkedIn. So, every manager that visits your profile can see you! Here’s an example.

You need real world experience; get it

Capstone/code school projects aren’t enough. Long gone are the days of having a capstone project and it being enough to land a job. You need real world work experience so, if you can afford it, start asking around if you can help build small things for people. Every church needs help with their website, a lot of entrepeneurs need help with building stuff for free.

I get it, this area is such a divisive topic but for me, the only way to separate yourself is to get real world work experience and what better way to do that then volunteer your time?

Network, but don’t ask for anything

Now you probably are asking yourself, Taylor you said “put out content”, AND I have to now network?

Yes…yes you do. You need to make sure you are having one intentional video/phone call a day with someone in your network at a company that you want to work at or someone who does what you want to do.

You shouldn’t go into any networking call with a stranger asking for something. Be interested in what they do and how they got to where they are. Then ask for another connection but don’t ask for a job. Because when you don’t ask, you immediately endear yourself to that person so down the road if they get a job opportunity they will think of you first because you were different.

The big thing is at the end of every call, ask for a referral. Try to get another connection out of every call. My 55 year old dad did this in the restaurant industry and found a job in 6 months.

It works.

Leverage a recruiter

Most recruiters don’t place junior talent but the good recruiters can give you market intel, help your resume, help your LinkedIn, and can be just a general sounding board for you as you start searching for that first job.

— Taylor

Taylor Desseyn has been recruiting for over nine years and while he recruits on every skillset within technology, his main focus is on software engineers and developers. He has met over 4,000 engineers and helped place over 450+ people in their dream jobs.

Taylor has been very active in the community – he’s been elected VP of the .NET User Group (the second largest user group in Nashville) for 3 years. He has also presented at multiple other user groups within Nashville. Taylor has also been fortunate enough to get on the speaker circuit across the southeast, having presented at code conferences such as Code on the Beach (Jacksonville), Music City Code (Nashville), and Codestock (Knoxville).

Taylor has a knack for scaling teams as well. He has helped scale teams internally at Vaco up to 3x their initial size every stop he has been. He also was chosen to present at Vaco’s Global Conference on branding/marketing. Taylor is currently leading a team of 9 recruiters and has helped scale his currently technology team from $2 million in revenue to $6+ million in revenue.

Use the clipboard from the command line

Dear new developer,

I’ve already written about the power of copy/paste to save effort. And had a guest blogger write about how you should be focus on inspiration rather than imitation.

This letter is going to be extremely tactical and reveal to you two commands that I didn’t know until a year or so ago.

But they changed my life. Well, they at least made my work copy/paste routine better. And reduced my mouse usage.

I spend a lot of time in a terminal, on the command line, but often want to copy between a terminal and a browser.

I might want to do this to paste an error message into a search engine. Or copy and paste a config file into a stack overflow question. Or even just type up something in a text file and copy and paste it into slack so that I can write something thoughtful without dealing with slack’s horrendous editing interface.

To do so, you can use these commands:

On macos, pbcopy. On Windows, clip.

Before I discovered these commands, I used to select text with my mouse and copy it, then paste it. It worked, but was inefficient.

Now, if I’m writing that aforementioned thoughtful response to a slack message, I might do the following:

vi a
# write thoughtful response
cat a | pbcopy
# cmd tab
# paste to slack
rm a

I use the temporary filename a because as soon as I finish writing it, I’ll be copying it to slack, which is where the thought will live permanently. But I still get to use my text editor.

Again, you can use this for any kind of text that you want to copy from the command line into the system clipboard. Error logs, sample commands, text files, configuration, anything. Copy it all!

Hope this helps,

Dan

Take a tour with a different department

Dear new developer,

If you are totally thrilled with your job right now, stop reading. This letter isn’t for you.

Okay. So you may be unhappy with some aspect of your current job. I have some advice for you.

Take a tour with a different department at your current employer.

This won’t work for everyone. If you work in a company with only three devs in the department, there probably isn’t a lot of scope for switching things up. But if you work in a company with 20 or more developers, there probably are focused teams. And if you work for a company with 100s of developers, there are all kinds of specialized teams.

I worked at a consultancy with a couple of hundred people years ago. They had a dedicated database development group. I was not even unhappy with my software position, but I was really curious about the database folks. I talked to my boss and we arranged a tour of a couple of months where I worked exclusively with the database department.

I gained a deeper understanding of relational databases. The database group got a trusted helper who was happy to do whatever grunt tasks they handed me. My boss was able to let an employee explore something new and gain new skills, while being assured I would return in a reasonable period of time.

If this interests you at all, discuss the possibility with your manager at your one to one. Also, reach out to the team that seems interesting and learn more about their work. Just ask what they do day to day and you’d be surprised what they’ll tell you; people love to talk about themselves.

Now, some managers won’t want to let you go, even temporarily. I’ve been lucky enough to never have that happen, but if it does, well, that’s a good piece of data to know.

Doing a tour with a different department is a great way for you to spread your wings and try something new in a relatively safe environment. You’ll be a known, trusted quantity and there’ll be far less risk than if you were to take a leap to a different company and a different role.

Sincerely,

Dan

Ask for great hardware

This is a guest post from Perry Tiu. Enjoy.

Dear New Developer,

Ask for great hardware.

Ask for that latest MacBook. Ask for that extra built-in 2TB of flash storage. Ask for that 32-inch monitor. Ask for that additional vertical monitor. Ask for that standing desk. Ask for that Aeron chair. Ask for that expensive USB-C hub. Ask for that ergonomic keyboard.

Now you may be thinking that you don’t want to be perceived as a burden to the company, or that you’re coming off as greedy and needy. I get it. If you had to purchase all of this yourself, it would surely be an unpleasant hole in your pocket. We all get it.

Fortunately in the bigger picture, this amount is actually minimal for companies compared to all the other costs related to hiring a new developer (salary, staff hours spent on interviewing individuals, etc). Most well-run companies regularly take into account these costs as they grow and there are many reasons why they are willing to invest in their staff’s developer experience.

One of the more obvious reasons is improving efficiency and productivity: having a laptop with an additional monitor setup is generally better than without. Interestingly, there are also indirect, not exactly tech-related, benefits. For example, being able to satisfy a developer’s needs improves work satisfaction, which contributes to employee retention. As long as you justify using the amazing hardware at your disposal, the return of investment in the long run far outweighs the cost of the hardware.

So ask away, treat yourself and embrace what modern technology has to offer. Your company should be there to help you grow in your role so don’t be shy. But more importantly: share your experience. Let people know what works for you, what doesn’t. Countless times have I learned new quality-of-life improvements just from hearing or seeing someone else live it. Not only will your peers and friends appreciate the discussion, it is also a collective push to improve each other’s developer experience.

Oh and it is harder to ask for upgrades down the road than when you just joined.

Sincerely written on an outdated machine,

Perry

Perry is a Software Engineer and host of a podcast ruined by a software engineer.