Friday, January 6, 2017

Seattle Slack communities

How you can connect with like-minded folks in the Seattle area:

Saturday, September 17, 2016

Q&A - Recent grad desperately needs a job

Q:
I recently graduated with a computer science degree and desperately need a job to bring in money.

I have little experience or showcase projects outside of school, and need advice on best approach to landing work quickly.

I think Android is my best route, since my capstone was in Android development and I know Java best, Do you think focusing on Android jobs is my best bet or should I focus on other types of jobs? 

A:
First, these recent articles might help you optimize your resume and ramp up quickly on key skills to increase your chances of landing work.


It's probably a good idea to target Android roles, if that's your strongest area. 

A few other tips:
  • You should definitely have a working example in your area of focus. Doesn't have to be polished or complex, but employers want to see that you have practical skill carrying something across the finish line. 
The key is to start super simple with something you can push to the Google Play store in a few days. Maybe just one activity with a few UI elements. Once you've worked through the full development cycle, you can add complexity incrementally, focusing on a specific skill that improves your jobs chances (e.g. multiple activities, JSON feed parsing, async tasks & services, unit tests, local data storage, push notifications, etc.)
  • I see a lot of listings for Hybrid Android (HTML5 in a native wrapper) developers . Getting a basic familiarity with Cordova/Phonegap, HTML5, CSS, JavaScript, & AngularJS (or React) could help your chances a lot and also give you a shot at front-end web dev jobs.
  • The hiring bar is generally lower for contract jobs than for full-time, and contracts can be a great opportunity to get experience quickly. Be open to both arrangements. 
  • Don't shy from roles that ask for 3-5 yrs exp. if the other requirements aren't too steep. I've seen a number of positions listed as 'senior' but with a clearly 'junior' pay rate. So the employer will likely settle for a junior person eventually.
  • Companies farther outside the Seattle core (Everett, Tacoma, Renton, Kent, Olympia, etc.) are struggling to compete with name-brand tech companies in SLU. This can be to your advantage if you're willing to do a long commute.
  • Companies outside the tech hubs, esp. in areas w/ little dev talent are also struggling to hire developers with current skills. Most people can't relocate for 6-12 months, so if you can, this might get you a job and experience quickly. 

Friday, August 26, 2016

On Bad Advice - part. 1

Whether you're just starting out, or changing tracks, you have many questions about your tech career.
  • Should I pursue Development? Design? Project management? IT? QA? 
  • Should I learn to code?
  • What programming language(s) should I learn? 
  • Should I do a coding bootcamp? Which one?
  • Should I get a certification? Advanced degree?
  • How do I land a job? How about at [super-hot tech company]?
There's no lack of people with answers to your questions, but if I may be honest - much of the career advice you'll get is bad (or at least misplaced).

And following it can set you back through lost time and money. Sort of like buying a used car quickly, only to find it's a lemon.

So here are some not-so-easy steps for telling good advice from bad.

Part 1 - Know Yourself

Any advice, career or otherwise, is worthless without context - consideration of your goals, strengths, and weaknesses. Would you accept dating advice from someone who knows nothing about you?

Consider possible answers to the question - Should I learn to code?
  • Yes - if you want to be a software developer,
  • No - (at least not as a first step) if you're an aspiring creative designer, project manager, entrepreneur, etc.
So before seeking advice, answer key questions about yourself with brutal honesty. The questions below are just a sampling - feel free to expand on them.
  • What's your personality?
Some tech roles require strong social skills and frequent context switching (project/product management, creative design), while others are more contemplative (development). Some require high degree of structure and organization (project management, IT, QA), while others require creativity and experimentation (design, development).
  • What sort of work do you most enjoy?
You'll perform best at work you enjoy and probably suck at work you hate, even if it pays well. Do you like gaming, art, news, sports, solving problems, organizing, directing, data crunching?

Are you jazzed by making something beautiful? Making lots of money? Solving really hard problems? Working with really smart people?

[note - these don't have to be exclusive, but you may have to prioritize]
  • What are you good at? - Let's hope the answers are the same as previous question.
  • Where do you want to work? 
As above, you'll do best in a workplace culture that matches your interests. This can vary quite a lot according to factors such as:
    • org. size (large, medium, small, startup)
    • domain (e.g. entertainment, tech, finance, healthcare, manufacturing, etc.)
    • team distribution
    • profit -v- non-profit -v- government
Consider what preferences you have, if any.
  • What's your education?
Sure, you can break cleanly from your previous education or career. But choosing a complementary path can save you considerable time, money, and heartache.

For example - a natural sciences degree can lead naturally into a high-paying data-science role that involves math, statistics, and domain-specific knowledge. That same degree offers little advantage in creative design. 
  • What's your runway?
How soon do you need work? Retraining can be very useful, if you have time. If you need to land a job asap advice on certifications, bootcamps, or building a portfolio may be pointless.
  • What's your money situation?
Related to runway. Degrees, certifications, and bootcamps aren't an option if you can't afford the tuition and lost income (in case of full-time study).

That's a lot to consider for now.

In Part 2 we'll review how to vet all that generous career advice against your well-defined preferences.

Tuesday, August 16, 2016

Stop with the humble brag

A recent LinkedIn thread prompted me to chime in.

I get that you're a senior dev and recruiters contact you ALL.THE.TIME. with clearly inappropriate job opportunities. I get the snarky comments about how they:

  • don't know the difference between Java & Javascript,
  • don't understand there's no way you'll move across the country for a 3 month contract in flyover country,
  • expect a Hadoop developer to also do UX design & front-end web UI development
  • expect a 'junior developer' to have 3-5 years professional experience,
But I have no sympathy for your humble brag.

First, recruiters are doing a job like everyone else, and acting on the req's a client gave them. If they knew what Hadoop developers do, they wouldn't be cold-calling developers anywhere in the country. If they second-guessed the client, they'd be out of work. 

Be polite and grateful they called because some day they won't.

Second, there are lots of smart, hard-working people who need that job you're laughing at. They don't have job security, a 4-yr CS degree, and 3-5 years professional experience. But for some of those jobs they know enough to do the work if given a chance. Instead of late-night comedy 'Aren't they stupid' comments, how about helping someone in need to land that job? Readers in the Seattle area can donate that recruiter contact here - https://www.meetup.com/Seattle-Tech-Mentors/messages/boards/forum/20075740

And while we're at it, stop complaining about the free food! Seriously, as someone who's lived on food stamps, it's offensive to hear folks complaining the free food at tech hiring events is 'just pizza' (and gourmet at that). That too will end some day.

Friday, July 15, 2016

My Resume Tips

I get asked for resume feedback frequently, so would like to share a few recurring suggestions:
  • Summarize yourself
  • Focus on your goal
  • Surface your skills upfront
  • Include all your relevant skills
  • Don't assume your audience knows details
  • Don't undersell yourself
  • Be aspirational ... and honest
  • Be visible where recruiters look
All of which boil down to - make the recruiter/employer's job easy.

I'll use examples for a full-stack web dev role, but the same ideas apply for other roles and disciplines.

Summarize & Focus

This section can be particularly hard for people with lots of work experience, or those with varied interests. You may think - "I need work - any work". But most employers need someone who can perform specific work, not a jack-of-all-trades. A resume that clearly targets an identifiable role reduces possible confusion about whether you are a fit.

It's ok to have multiple resumes if you want to target multiple roles.

So first, your resume should let employers know what you bring in a few very general sentences. For example:

Full­-stack software engineer with N years experience delivering high-­traffic web applications. Versed in all phases of the software development lifecycle and engineering best practices. 
Specifics on skills or experience will come later. Also, you can leave out personal aspirations or interests unrelated to the general role.

Next, a concise summary of your capabilities, relevant to the target role. The first person reviewing your resume likely has little understanding of the position they're filling, other than the job description (JD).  The JD will typically have a bulleted list of desired experience & skills, and I find it's useful if you can roughly match those.

First, 4-6 bullets hitting the key requirements for positions of this type. For example:

  • N years exp. full-stack web development,
  • Hands-on experience developing scalable, cloud-hosted applications
  • Strong understanding of computer-science fundamentals,
  • Familiar with MVC patterns & object-oriented design
  • Familiar with test-driven development (TDD)
  • Comfortable working with non-technical stakeholders
Again, no need for technical details, or even specifics on depth of expertise. Obviously, everyone's choice of wording will differ, but a review of typical JD's in your target role will help identify key skill areas and phrasing.

Surface Your Skills

Next, include all skills directly or indirectly relevant to your target role. Look at 10-20 relevant job listings on https://indeed.com to get a sense of what's relevant.

A recruiter only sees resumes that match their search terms (e.g. web developer with REST, JSON, and angular). Your goal with this section is to make sure you're findable by whatever search terms make sense for the recruiter.

This section should be separate from your work experience, explicit, and easily scanned. Don't assume readers will look derive these skills from your work experience - they won't.


Include all your skills 

Candidates often forget to include many of their skills. If you took a class, compare the curriculum with your resume and surface any relevant terms. Did your class cover MVC design? Object-oriented programming? XML? Why aren't those on your resume?

Don't assume

Candidates often assume recruiters will derive meaning from general terms ("obviously I know REST and JSON if I built web services"). But they won't, so be explicit and verbose.

Don't undersell

Candidates often undersell their capabilities ("I learned SQL in college, but that was just one class a couple of years ago"), worrying that interviewers will fault them for claiming expertise they lack. But you're not making claims here about depth of expertise, and can always have an honest conversation about that if you reach the point of an interview. 

In fact, including information about depth of expertise can be counter-productive. It may lead a recruiter to exclude your resume, and has to be updated frequently as you acquire experience.

Be aspirational!

Maybe you've worked mostly with mature technologies (e.g. HTML5 & JQuery), but really want to follow the market where AngularJS or React are popular. It's OK to spend a weekend running through an AngularJS tutorial and then include this on your resume. If and when a recruiter asks, be honest about the depth of your experience. Maybe they need someone with more depth, or maybe you have more than other candidates with no depth.

Be findable

Make sure recruiters can find you wherever they may look by posting on all major job sites - indeed.com, monster.com, dice.com, careerbuilder.com, stackoverflow.com/jobs, etc. Also, touch your resume periodically, since recruiters focus on those that signal a person is looking for work.






Thursday, July 14, 2016

Seattle Tech Events Calendar

My take on interesting events in the next few weeks:

http://brisksoft.us/calendar.html

(to be fair, other excellent resources noted there)

Saturday, June 4, 2016

Tips for new Android devs in Seattle

Slides from my recent talk on getting started as an Android developer:

http://www.slideshare.net/BrendenWest/getting-started-as-an-android-developer