Scoping for Clients in a COVID-19 Summer

Time for some unsolicited advice from my world of independent contracting. 

The recruiter noise gets really loud near Kafka and near-deafening at AWS. Apart from that, I thought it was interesting that not much has changed with companies seeking talented developers. The ones that matter, in my opinion, still prefer talent over skill. But still, skills help.

Note this teeny list does not include any frameworks as most of the firms I’ve scoped so far had the broader understanding that a framework is only as good as the developer using it.

Java Streams

One embarrassing coding assessment is all it took for me to refamiliarise myself with the Streams API. This should be fun and should not take more than a weekend for you to realign. If, however, you’re new to streams as a concept, then definitely read up on it. While you’re at it, get comfortable with parallel streams as well. And wade into stream theory sufficiently so you can speak to the “why” along with the “how”.

Java 8 in Action is my go-to reference for Streams. Beautifully written.

https://www.manning.com/books/java-8-in-action

The real challenge in programming with streams lies not just in knowing the API inside out, but understanding how to apply that knowledge. That comes from day-to-day use. 

Concurrent Programming

Threads. Reentrant locks. Semaphores. 

Practice! Practice! Practice!

Design Patterns

Two firms were particular that senior developers be familiar enough with common design patterns so as to be able to articulate them in abstract as well as concrete terms. Get a copy of Design Patterns: Elements of Reusable Object-Oriented Software. It is such a great book. Be prepared for a slow, yet rewarding, read :-). Do not skip the introductory chapters prefacing the actual patterns. Those pages are loaded with the overarching themes and best practices.

https://www.oreilly.com/library/view/design-patterns-elements/0201633612

The real skill with patterns is in being able to identify them. Most frameworks (such as Spring) implement patterns in a way that may not be immediately obvious to developers. 

So why do these firms care about your knowledge design patterns? Because if you don’t understand the patterns underlying a framework, you won’t be able to articulate the issues that arise from using it, which in turn makes you a deficient mentor for the junior developers on your team. Think @Scope annotation in Spring in terms of the Prototype and Singleton patterns, or the way Hibernate implements the Proxy pattern.

Communication Skills

Companies want folks who can communicate well. Passable English language skills are acceptable here. In addition, some firms are also looking for lucid communicators: folks who speak substance and think before they formulate answers to questions. 

I once found myself tongue-tied answering a question. The interviewer was nice enough to step back and change the topic to ease the mood. But others are not so forgiving. I found this being important for senior level engineering positions where mentoring was important. 

But interviews are weird little beasts and they don’t always bring about the best in you. Get a good night’s rest and try to empty your mind for the hours leading to the interview. Too much noise in your head often makes it easy to step into your mouth. 

Also for those with impostor syndrome, I recommend watching this talk. Body language matters.

Honesty

Be forthright about what you know and what you don’t. Companies value that. 

You know why? 

Because honesty is an indicator of courage and fearlessness. And history bears testimony that courageous people accomplish more. 

Be honest on your resume. Be honest during the interview process.

Conclusion

In conclusion, try to be as strong as you can in foundational concepts, communicate clearly, and be fearlessly honest. Learning is a continuum – be on it. 

For the firms that really matter and are looking for it, your real worth will shine through the gaps between Kafka, Struts 2, Spring Boot, Flink, Hadoop, Spark, Swagger, AWS, Azure, Sql or Nosql. I’m counting on it myself.

Stay with it. #GRIT

Published by Javeed

Java/JEE solution provider. Liferay Portal enthusiast. I am a Software Engineer with a focus on highly maintainable solutions that lie at the sweet spot intersection of modularity, extensibility and development team productivity. I enjoy experimenting with innovative documentation ideas.

Leave a comment