I don't necessarily want to work for one of the FAANGs, even though they do seem to occasionally look for this type of engineer. This is partially due to location, plus I've done the megacorp thing and am not a huge fan. While I get fairly regular inquiries from recruiters, those don't seem to be roles that are a good match for my experience and skillset. A lot of them seem to equate "senior developer" with ~5-8 years experience and can't get their head around someone who's in his third decade as a professional developer.
Is there a job board for grizzled software veterans out there somewhere that I don't know about, or is it 100% network at this point?
- What percentage of time do you want to spend coding vs doing other things like helping/guiding other devs, project management etc. 80 20 ? 60 40 ?
- Are you willing to come in to a team/company and use what they have versus redoing everything ? Do you have a preference for language/stack ? If there is a team that does PHP, would you be interested or only want to work in <latest_hottest_language> ?
- How do you expect to grow further as an Individual Contributor ? What could you do to make yourself more valuable to the company/team every 12 months ? I ask because you want to grow further and you have to define what that is exactly. One of the reasons senior devs start managing because that is easier to measure in terms of growth and impact. If you are a great developer, how can you keep justifying growth (salary etc) every year ? What should be metrics for it ?
So what I expect from a role that's commensurate with my experience (trying to avoid "senior" as that's usually a pigeonhole):
- You tell me what you need to have built, I'll figure out the how (architecture, design, technology) and when it'll be done, based on the usual cost/velocity/quality constraints.
- I'll work with, guide, mentor and lead a team of developers if the size of the project needs it. However, I'm technical first, so I'm not interested in roles that are management only. This generally seems to be the crux of the matter - not a lot of companies seem to have these roles.
- If you give me the responsibility to deliver X, I also need to have the authority to make it happen. Don't ask me how I figured that out ;)
I can usually find roles that fit two out of three, but I don't seem to be able to find something that matches all three. My current role probably rates as 2 1/4 out of three, and is definitely a good fit, but with very limited growth potential (aka I'm close taking as far as I can take it).
3 is likely to be a sticking point however. Once you have responsibility for large projects you are often in a certain amount of resource contention, the chance of avoiding political battles there is small unless you are a known superstar within the company.
If you're ok with that, I'd prepare for a whiteboard interview at one of the big well-paying tech companies.
I've been where you are. One tip I have is to spend a little bit of time (an hour or two) and work out exactly how to explain it concisely. What's your elevator pitch? If you ran into the CTO of your dream tech company at a friend's party, and they asked what kind of work you would like to do, what would you explain in 60 seconds?
For what it's worth, I think what you have above is pretty close. If you can tweak it slightly, you can likely get to a "Here's what I want to be doing and this is why you should hire me" in the same sort of pitch.
I know it's difficult to explain sometimes, but it's worth your time to figure out how to frame it concisely. Good luck!
All the best to you all,
Just an idea you probably have thought about... Have you considered opening a boutique consultancy and doing business through it? It won't be the megacorp, and the person in charge, you, will actually be capable of wrapping their head around someone like yourselves? I say "yourselves" because there may be people in your situation who'll find it interesting. Name it "Cache", a pun on "cash" and invalidated grizzled software veterans to pool in their networks and save the day.
Mom & pop shops are best served by Shopify or Wix.
Large corps with work with other large consulting companies or hire.
Mid size corps maybe. What would be your strategy to market to them?
We've worked with large organizations and the large consulting companies these organizations hire as well.
Tectonic cracks are big enough for a tiny human to get in there.
When a large organization wants something done fast for $100,000-$200,000, it's not really a job for a huge consulting company, because it's basically pocket change. But for a smaller consultancy? That's a nice amount and these are projects that can actually be done by a couple of individuals.
What's important is introductions and getting a foot in the door. Some large organizations are difficult to get in, but once you're in and you deliver, they'll come back with a bag of problems for you to solve.
We work with large organizations and solve one problem for them in one segment. Then they'll come back and say "Oh, we also have that problem in that other segment? Can you help?". Again, and again. Repeat business.
We also work with large consulting companies who'll come and say "We have this client and they have this problem, can you help?". We deliver. They come back and say "We have that other problem with that other client, can you help us?". We deliver. Then they come and say "Remember that client? They have that other problem, can you help?". We deliver again.
They aren't in the business of changing partners. When you deliver and they trust you, they'll want more. They'll want even to invest. They'll want to set up a joint venture. They'll want to make a product. This is of course a biased opinion as we've dealt with people who are good at what they do, honest about what they want, and respect your time.
Two success parameters in that heavily survivor biased perspective:
1. Introductions and networking: our CEO is a tireless specimen. When we align six meetings, I've seen him pitch at the 19:00 meeting with the same enthusiasm, energy, panache, and humor as the 09:00 meeting. Tireless networking and selling and a sharp mind for business. He dares to sell, but he doesn't sell what the team is not making, and he doesn't shy away from correcting a mistake. We were once in a conference where he made a presentation on something we were making and there was an inaccuracy in one sentence he said to an audience of state officials, high ranking armed forces officers, "serious" people. He got back to his place and I told him about it. He stood up in the middle of the amphitheater of around 500 people, whistled with his fingers to get the attention of everyone, and then proceeded to say "I said ZYX during the presentation. I was wrong. Just to clarify: it's XYZ, not ZYX like I said".
3. Board members and advisors who have been around the block: they ran large companies and have a network as well. They make things easier.
2. A team that can deliver and manage expectations. They say this will take time. This we cannot do right now. This we can do. This we already have. This client we won't work with for ethical reasons. This is not ready. This is almost ready. This we can also do for another client.
Most of the business comes from networking. However, it used to take us time to satisfy inbound requests for machine learning projects. There were more projects and clients in the pipeline than we could execute on, which is why we started building our internal machine learning platform[0] to be able to do it faster. Way faster. Then turn that into a revenue stream for companies like ours to be able to do machine learning projects. We couldn't build this platform if we didn't have experience actually doing the work, which is the case of many startups in that space who jump right in and build a general platform/tool without having dealt with the specifics first.
I wrote a tiny bit about this in a twitter thread[1].
- [0]: https://iko.ai
- [1]: https://twitter.com/jugurthahadjar/status/131066829330549965...
I have worked for one of those giants as a senior engineer with almost as much experience as yours, I don't remember many engineers actively developing beyond the senior level (level 63/64 at MS for reference) but we did have quite a few old guys (and a bit less girls) at those levels.
It's not "principle", it's "principal".
Other examples of this exist, "your", "you are" or "you're", etc.
As someone who has hired many engineers, let me tell you (plural) why I think accuracy in written communications is important. It's quite simple, really:
Software development is about minute attention to detail. Syntax, spelling, formatting, data structures, algorithms, etc.
When someone makes one of these mistakes in emails or a resume, they risk raising a question in the mind of the person evaluating them for a position. As the saying goes, these things stick out like a sore thumb.
Of course, none of this matters in the context of writing comments on an online community. It is utterly irrelevant. Even worse, sometimes autocorrect will easily do us in while writing comments on a phone or tablet. Again, this is not criticism of the comment I am responding to. Not at all.
Since we are talking about how to find a job, I am using the opportunity to highlight a variable a number of people might not recognize as potentially important.
English not your first language? Fantastic! Nor is it mine. Nor is Python, JS, C, C++, Forth, APL or assembler my first language. If it is important, you take the time to learn and write it correctly.
Here's a simple example:
I've been coaching a good friend who has been trying to land a sales engineering job that required understanding HTML, CSS and JS. This would not be a developer job, yet being able to understand API's and generally work with customers requires comfort with these technologies.
I had him enroll in a few online courses. He made a huge effort, learned a lot and was able to go from virtually nothing to being comfortable with the technology within a few weeks. That was fantastic to watch.
The other thing that was very interesting was watching what problems he had along the way. We ran daily zoom meetings where I would coach him, ask questions, have him write and explain code, etc. When one has been coding for over 30 years you tend to forget that some of these concepts can be very strange to people coming up from nothing.
One of the most important things I tried to correct was consistency in the way he wrote code. It's about the proverbial sore thumb I mentioned above.
Some can have great comprehension of coding, and yet, if they write something like this they almost guarantee not getting the job:
function doSomething (){
let myvar1=23;
let myVar2 = 56;
let MYvar3= "1234";
//...etc
}
function do_something_else(){
if (some_condition)
dothis();
else{ do_Somethign_else() }
// ...
}
In other words, mostly code that will run just fine but looks absolutely terrible, is difficult to read, is filled with inconsistent formatting, inconsistent variable and function naming conventions, etc.Fair or not, to me --and I am sure others-- lack of attention to detail in written language tells me I might need to be concerned about similar errors in coding that might lead to wasting time or, worse, potentially serious bugs and issues. Three years later this person leaves the company and you discover the code they wrote is a rotten stinking mess nobody wants to touch.
It is better to avoid raising that question in the first place.
I think anyone looking for a job, developer or not, needs to understand that every word they put down on an email, resume or letter is an opportunity to either make a good impression or cast doubts. Be sure to take the time to create a favorable image on paper and not create questions that might deny you being considered for the job.