

Ask HN: What can I do to be a viable developer? - jobsearch

I returned from a year-long trip around the world a few months back. I worked as a lead developer for just over 4 years before leaving. I&#x27;ve spent the past 3 months applying for jobs primarily posted here but also from recruiters.<p>All that said, after many phone interviews and a few final interviews, nothing has panned out. I can recognize at this point that I&#x27;m not at the entry or mid-career level of working for the Googles and Dropboxes of the industry.<p>My question is what can I do to improve myself and get to that level? When given an assignment, I can accomplish it, but during an interview technical questions are my folly. I&#x27;m willing to put in the work, and if I must aim for companies that aren&#x27;t as technically strong I will do so. I just need to know where to set my sights.
======
qodeninja
I always used to tell people I'm an artist impersonating an engineer. I've
never really felt like an engineer - let alone a good engineer. But I will
never call myself a developer -- more on that in a minute.

Over the years, I must have had some daemon process running in my head that
somehow managed to piece together the seemingly unrelated bits of engineering
knowledge together without me really paying attention, because lowe and
behold, one day I started to "get it". I am an engineer, first from what I
know, and second from what I've learned and burned.

So let's talk about how to "get it" and get a job getting it.

Usually the first gate of high salaried engineering positions is good old
fashion algorithm analysis. Get the basic data structures/types and
complexities memorized to impress the desk jockies. Next pick a language,
laser focus on the APIs, and try to implement the algorithm structures without
using libraries.

I've interviewed dozens and dozens of engineers, and we always like to see
that you know CS.

Next up -- we expect you to have some battle scars that only being in the
trenches of engineering can give you. Learning the lessons on why and how you
do things a certain way --- the common problems engineers face -- and the
conclusions and solutions that have arisen out of them.

Also, have a narrative -- a story about your engineering background.

And stop calling yourself a developer! -- in some ways this simple word
exposes your mentality -- let me explain why:

Developer in engineering land is another word for "hacker" \-- e.g. someone
who doesnt understand the nuances of programming, the finesse of refactoring,
and the triumph of code that scales.

Dont be a hacker -- someone who brunt forces their way through a problem
without the knowledge, wisdom and experience of doing things "more better".

The flipside is that most engineers start their careers as hackers... that is
until we are not.

Once you begin to understand how chemistry, physics, math, number theory,
language, and algorithms all tie in together to make this fantastical yet
painful world of computing, you will know that you have gone down the right
path.

Next??

Do you know what happens in memory when you execute a compiled program vs a
high-level script? Do you know how code compiles, do you know what compilation
is, do you know what an assembler is? Do you know what language theory is,
regular expressions, turing machine, Alan Turing, finite state machine? Do you
know what computation is, or how to manipulate bits and bytes to encode
anything under the sun? Do you know the tenets of a solid API contract? What
REST is? What HTTP is, TCP? DO YOU KNOW WHAT A POINTER IS?? Do you know what
garbage collection is, do you know, do you know, the difference between ISAM
and InnoDB?

There is a huge chasm between developer and engineer and you have to show that
you've bridged the gap. It's like the difference between a jock and an
athlete. One is faking it, the other one is making it.

All of this fundamental knowledge says nothing about the soft skills you'll
need for success -- collaborative development, sharing code, translating
business objects into engineering tasks, communicating effectively, etc. etc.

There is so much to KNOW and EXPERIENCE, but it's not impossible.

Learn all the things. Get your hands grubby, have some battles, tell a story.
Above all else show that you can code, that you play nicely with others, and
you make good engineering decisions.

This is all from the hearth of my engineering home. Others may have a
different perspective, but this is mine, and if you sit in front of me and I
interview you, this is all in my head and I'm 10 steps ahead of you when you
need to be one step ahead of me. What does Potassium have to do with any of
this? You tell me.

Finally, don't be a hacker (longer than you have to)

All else fails, fake it til you break it.

Bye, and Good Luck.

~~~
jobsearch
Thanks! This is incredibly helpful and I wasn't aware of the distinction
between developer and engineer in engineering land. I can see the first major
steps you've listed is algorithms, algorithms, algorithms. I think you
described me to a T in that I'm closer to a hacker than an engineer. I know a
handful of what you've listed (e.g., REST, HTTP, pointers), but I've got my
work cut out for me.

It's time to get out of the developer world. Thanks again!

~~~
qodeninja
I wrote this almost subconsciously with my mind vomitting words. I'm glad it
makes sense to you, but take another look I added stuffs.

Algorithms is a big part of it because it alone forms the major basis of why
you write code a certain way. Is this code more performant, optimized, simple?

Get up to speed on engineering principles (Abstraction, Modularity,
Simplicity, Scalability, etc) and object oriented programming (or if youre a
JS lover like me the prototype chain) too!

~~~
jobsearch
I've re-read it, and I would say I have the soft skills down for sure. I like
to think I did well at translating business to engineering, collaboration
intra- and interdepartmentally, sharing and explaining code. I do at least the
engineering principles you've listed. It still stands I have a lot of things
to check off your list. Thanks!

~~~
qodeninja
It sounds like you're on track to be a very excellent project manager. Instead
of engineering, you might consider being a technical project leader.

Looking back I'm shocked at how much I've learned, and if I had to do it all
over again I might cry.

------
MalcolmDiggs
In my experience, it's kinda like dating. Nobody seems to want me unless I
already have a girlfriend (so to speak). In that respect I think it's a
framing issue, I would recommend just taking any old job (lower your
standards), this lets other companies know that you're at least worth taking
seriously.

Additionally, this would get you back into the rhythm of coding everyday. By
my math you haven't been coding regularly in 15 months. _Anybody_ would be
rusty after that time off. Anybody would struggle over the technical questions
in an interview. Once you start coding everyday you'll get that part of your
brain back in shape, and things should go better.

~~~
jobsearch
Okay, I more than willing to take any old job. You're right on the timeline
and rust. I've dusted off a fair bit by the _end_ of these round of
interviews, but I have a lot more to go. I think going this route makes a lot
of sense. I just need to comb the market. Thanks!

------
penguinlinux
What do you think is making you not attractive to these companies? What do you
think are your strengths and some of your weak spots?

~~~
jobsearch
I think 'qodeninja nailed it on the head as for what I'm lacking. At this
point I'm more of a hacker, someone who can put pieces together, rather than
elegantly construct solutions. This comes quite quickly during the algorithm
portion.

My strengths would be my quickness to adapt, and my ability to put together a
myriad of technologies together. At my previous job I was able to switch
between different development teams and get up to speed in short order. I
created APIs, designed interfaces along with usability testing.

My weaknesses lie in the finesse. More algorithmic complex situations are
tricky for me. Once I understand it, I can piece it together with existing
solutions, but I would say my algorithm toolbox is pretty small.

------
eddflrs
Are you going to meetups? Do you have any projects you can demo and talk
through?

~~~
jobsearch
I haven't joined any meetups. I have work projects I can talk through, but
nothing public-facing.

