Ask HN: Have you successfully done a career do-over, and how did you do it?
I'm not talking about switching professions at some point in your life. More specifically, doing your career over again in the same profession, in order to redeem your past failing career.
Either you got "too comfy" in your job, didn't learn much, then found a very tough time being a good fit for other jobs. Or you simply have stopped being a good hire for other reasons. What did you do to redeem yourself in the eyes of your respective industry?
179 comments
[ 3.4 ms ] story [ 221 ms ] threadHere's why: The technologies have become simpler and the barriers to entry have become low. Once upon a time, if you knew the mainstream languages (C++ and Java) it meant you paid your dues learning the hard stuff. Today, with nodejs becoming mainstream, and the cloud at the backend, developers who come from an "html programming" background can now build scalable and enterprise grade applications without breaking a sweat.
That leaves the "hard core" dev in a little bit of a fix. "Where do I go from here?" The front end is where the complexity is today. Its hard to compete in the AI and machine learning roles when there are phds doing this for ten years who are on the same table. Devops is also simple enough for someone with 3 years of experience of be on top of the game.
Now add to that the fact that the number of devs with 8 years of experience (what I consider the senior dev) grows bigger and bigger each year..
The next slow down I believe will be brutal to our industry.
Your post does a pretty good job hitting all the points. The bar has become so low. I guess this is generally a good thing, but definitely stings.
I've started to reach what I perceive to be ceiling salary and difficulty wise. I'm genuinely unsure of what's next in my life. I'm certainly not perfect and have tons to learn, but the gradient is not as steep as it once was.
This is a popular misconception but inaccurate nonetheless. It may appear that way at first glance, but there is still more to building "scalable and enterprise grade" stuff than just cobbling together a bunch of off the shelf components.
Give it five years or so as the business needs of those companies change and the codebases become more and more expensive to maintain. :)
Focusing on the technological complexity is a bit of a red herring, at least as many problems come from having to keep up with the complexity inherent in dealing with an ever-changing "real world." Usually you can't just flip a switch from A to B, you have to support old workflows/clients, new workflows/clients, transitional modes, etc.
We don't have any real sort of "engineering standards" for software development. Unless/until we find those, it's very hard to claim that the workers will be reduced to interchangeable cogs. We don't really even know what those cogs need to do to make sure a codebase doesn't become a big mess, today, based on the codebases I've seen.
Without that, developing meta-/organizational-/design- skills, instincts, and creativity can be very powerful. Being able to sell that effectively without necessarily having to aim for management positions might be a bigger trick, but it's hardly impossible.
But even if you try to make your calling card something like e.g. a "node.js+AWS stack" expert, you've probably got a significant amount of future work at least in maintenance for all the companies that build themselves on that stack today. Maybe that's not what you want - in that case stay on the new-tech treadmill if you don't want to do more design/architectural/organizational stuff - but it's something that will be needed, at least.
The ability to quickly learn and adapt is in my opinion an important part.
If anything threatens software engineers, it's probably the rise of automation capable of making the "basic web app" people obsolete. I snigger at myself when I contemplate some kind of AI which could do this, although the idea seems less crazy when viewed in the context of many companies and individuals who have attempted to create a "build anything fast" framework/service/ecosystem/etc. Perhaps it does take an AI.
Otherwise we're pretty safe, methinks. Carry on, no need to try for a career change, unless you're really sick of the job itself, in which case the world is your oyster.
The supply of human software developers is increasing at an incredible rate. You don't need a degree in software to do software. I would say roughly 40% of software devs now have an actual software engineering degree. Heck, I'm working with a guy who has a degree accounting and went to a freaking bootcamp for six months. He got lucky and was able to pass the hiring managers' little software puzzle (DFS problem) and he's now a full-time developer.
That's complete nonsense. As a system grows, so does its complexity. And no amount of libraries and fancy languages can turn a complex distributed stack into a simple straightforward thing. If you you have deep knowledge of whatever you're working on (be it the deepest ins & outs of C++ or nodejs), you're worth your weight in gold.
If you look at an embedded project using a micro controller the embedded environment is still space constrained by available onboard flash and RAM.
If you want to move up the stack and look at a raspberry pi/beaglebone type project, the development environment is very much 'DOS/Unix' command line application based with minimal requirements for browser stack development.
An example might be the drive control for a self driving car or battery management for an EV car.
Same companies complain how it’s not possible to find local talent, and hence need to be able to hire cheaply from overseas.
You make some good points, but I want to drill down on the above. What do you define as "devops" in the above statement?
The barrier of entry will become even more low to a point where building apps is no longer fun. I am looking for something which is a bit more complex and has high barrier of entry. I don't know where to go from here honestly.
No it is not significantly easier to build a fully-fledged software business.
What is expected and required has also scaled up immensely. You can't just drop a Java SWING GUI on a simple tool and put it on a website with a PayPal link and wait for search to bring you business anymore.
What may well have become easier is maintaining an edge as a business in the industry provided you have reached enough scale to leverage low interest rates, tax engineering, global aligned trade frameworks and low cost labor.
Nowadays, programming for the web can involve:
* HTML
* CSS
* JavaScript, client-side
* JS framework(s)
* server-side language (possibly JS / Node)
* SQL
What's really messed up is you can choose PHP for the server-side (say) and end up with a single file that contains _all_of_those_languages_.
(Yes, you don't need to use them all at once, but even if you do the classic HTML+JS w/ document.write()'s your students are going to push you for the cool stuff they actually see 'in the wild')
This is not to say that you can't get started (and there's a lot of material out there to help motivated people) but depending on where you start the stuff you need to learn can be surprisingly voluminous.
So NodeJS is easier than previous server technologies, well the role of a pure back-end developer has evolved to include dev-ops, db administration, security, Q.A., automated deploy/testing. Front-end development is also more complex than ever before, if you only have an "html programming" background, you are going to have a pretty difficult time setting up a modern transpiled web app using on of the JS frameworks.
Adapt over time. Don't just jump. Take on new responsibilities. You will find experience crosses many fields. It's a lot about domain knowledge (e.g. financial industry) and we carry a lot of stuff over with us. Never undersell yourself, experience is king. Always be keen on learning, asking questions to younger self. Cross pollinate, experiment and be curious. Too many old devs just corner themselves. They shouldn't, they have a gezillion experiences and it always comes down to a race condition ;)
Stay flexible and keep learning. I like the 4% rule: keep increasing the difficulty of a daily challenge by 4%, i.e. keep pushing your self to reach higher and higher.
I've transitioned across various technical roles by understanding software architecture, business process mapping, master data management, manufacturing, and a slew of other relatively niche areas of domain expertise. I don't think my work was anything unique, I was just aware of the niche components of the projects I worked on and did a good job marketing that knowledge.
If you had been able to read my un-revised resume, it would probably read like a story that feels the same in the beginning as it is in the end, with no clear conclusion. So I am working on a new version with a different spin.
Are you talking about someone who screwed up enough times that the mean free distance to a negative referral is essentially 1.0 ? I don't see industries as having 'eyes' but I have known industries that are relatively small communities.
I have known, and hired, a number of people who have 'redone' their career when the thing they started with didn't pan out, a chemist into a QA person, a semiconductor process engineer into a UNIX developer, a mom into a product manager. That sort of 'do over'.
And I've met folks who 'grew up' in a company doing one thing for 15 to 20 years and then failed to find an opportunity to continue doing that thing. Only to switch into a different career all together. Most commonly that is, "Hey you weren't you 20 years at BigCorp? What are you doing these days, 'mostly consulting'" sorts of conversations.
Career paths just tend to end, somewhere somehow. Might flame out. Might get a bad rep. Might be doing just fine but that tech & corp might just be leading to "going nowhere", coasting or the path vanishing. Be on a road long enough, you eventually discover it ends, be it accumulated choices or "just does".
At some point you need a change of direction. Might even be the same direction, you just have to get on a different road that actually continues that way. I'm still doing what I always liked doing, I just swapped out the technology & clients for something more modern.
And I think that re-doing careers by switching professions (as you say, chemist -> QA) is different than re-doing career in the same profession. Something like the former is different because it's easier for companies to treat you as a clean slate if you switch to something that has little overlap with your former profession. But I want that clean slate treatement just re-attempting my profession.
For instance, maybe I want to re-do my entry level years because I never got into Computer Science, and would like to get an internship at a leading tech company, because that is a better start than my reality, which was just graduate with no internships, no support group of professionals, nor recommendations for good companies. It was just me going solo and blindly applying to local jobs at Craiglist for low-budget clients.
So yeah, I'm not talking about career switching into another profession, but more like hitting the reset button on one, to do it better the second time around.
I am reasonably certain there are other explanations/causes but the three cases I can recall easily were all that the person got into a career in computer programming because someone one else told them they should. And they stayed employed but they didn't have any idea about what they wanted to do so they changed jobs for all sorts of reasons, a girlfriend, a pay raise, a manager that kept bugging them at the old job. All of the change reasons were external to their career path.
One really wanted to be a musician. They could talk on and on about different styles and influences. They lit up and were on fire. One was lost, they had always had their life planned out for them by others and they followed that plan until it ran out (just after graduate college and get a job). And they never previously had been required to create their own plan. I didn't get to talk with the third person I can remember because they moved on to a new position before I had that chance.
If that resonates with you then my advice is to work on figuring out what you really care about. And I recognize that isn't an easy task, it was simple for me I was fascinated by computers and the systems you could build with them, so much so I build stuff just for fun. But a good way to search for the things that you care about are to explore different things (very hard to do as a single breadwinner in a family). As I told my musician friend, even if you're not an artist with a signed label contract, you have a understanding of what they are going through and you can write code. Can you find ways to help other musicians that way? Or music lovers? Or screenwriters trying to match music to scenes? or hospitality businesses wanting to influence the mood with music? You can get quite meta and still exploit the experience you've developed in an area you care about.
Without an amnesia treatment there is only so much you can reset :-) Mostly folks learn basics about work (its not always fun, how you work can be as important as what you get done, your boss may be an idiot but it doesn't change the fact that they are your boss, etc). So instead of 'resetting' it's more like vectoring. Now that you've been in the career for a while, if you know what you'd like to be then imagine you have reached that point and and then try to imagine plausible steps that you would have had to take to get there.
If you're not getting any offers that's one thing I guess, but imposter syndrome is real in the industry. We all worry about being up to some rockstar level and all the grueling interview processes out there. Then we brush up for a couple of weeks, hit the market, and field multiple offers again.
When I was 20 I decided over coffee to move to the other side of the world. Had some savings, not a lot but just did it.
Now, at 37, there’s a mortgage to pay and a family to support.
I don’t have the runway to do two or three years of low pay again to switch to another field.
I am aggressive paying that down though, so that I have this option in my 40s.
So I took the leap and tried something different - became a Product Architect focusing on a specific technology. Now I'm a Mobile Product Manager, something that pays (probably) less than an Enterprise Architect, but tests out new skills like investment proposals.
My ultimate end goal is CTO. I think having an end goal in mind helps me focus on what do I need to do in this job or the next that gets me closer to that goal.
I haven’t necessarily switched careers, but it’s still not easy. If I could go back and give myself one piece of advice, it would be to knuckle down and learn differential equations and linear algebra. That’s the difference between understanding how machine learning works and tinkering around with TensorFlow.
It was very good pay at the beginning but it hasn't keep up and now it's not that good (to bad either).
A few years ago I started playing with electronics (Arduinos, Raspberry PIs and stuff like that). After a while I started looking and picked up a few easy jobs related to that in Upwork as a way to do something different as doing the same thing for 15years can take it's toll.
Shortly after I was picking more and more advanced jobs. I picked a few big clients and moved them off Upwork. I'm now doing advanced embedded system programming and electronic design as a side gig on weekends and afternoons and making more money than my main programming job (which I can't seem to be able to leave).
And that's the story of how I found an alternative to my comfortable job. If I ever leave it I will never go to an office again, I will just expand my embedded freelancing.
People wanting to make gadgets using Bluetooth is a big one and I have been using Nordic Semi line of BLE SoCs very succefully.
Most of the business lately has been coming from a couple of companies that I made some work for and keep requesting changes or more features. I had to disable my Upwork profile as I didnt had the rrsources to keep up with the projects coming from there, even after upping my rates a few times.
looks like a few other skills have depreciated too
I've spent the last year coming up with fun projects of my own, based around ESP8266 devices, and while I don't think I'd ever want to make a career out of it there is something very refreshing about developing in such constrained environments.
It always reminds me of writing code in Z80 assembly on my home computer back in the 80s.
I am now in another good software company (similar to FANG, probably a level lower in terms of core compsci ability). The big change I have done is to accept that not everyone is learning all the time and not to try to do the same (its software engineering not research). I learnt this throughout the interview process by talking to lot of good college friends (who also work in tech in Bay Area) and acquaintainces recommended by friends.
My change isn't complete yet, hoping that this change will lead to better collaboration with team members and work output. Job title might improve too at some point in the future, though I am not too worried about it.
What do you mean by this?
You have to do a short business course—From memory it was one hour a week for 10 weeks or something like that—and then you can collect unemployment while working on your startup for I think a year.
The bar to get in is pretty low. I'm sure that a lot of my class/group were intentionally unemployed and just looking for an easier alternative to pretending to look for work, and they didn't get kicked out. That said the metrics they were tracking to make sure you were progressing were more regular small business focused rather than trying to create the next Google focused. Revenue, customers, etc. That fit what I was doing but might not for you the reader.
I was a great C++/OO dev for 10 years before I got bored, starting doing management, business focussed roles and more high level devops style work. After 10 years of that I wanted to move back into pure coding. With great experience should be easy right? Wrong.
I got a mid-level java/python dev job and it was difficult, I was out of touch and everything was different or new. Languages, styles, CI/CD, DI, git, containers, unit testing its a huge amount to learn. After a year I got laid off because I was getting paid like a senior but not keeping up with the grads.
A few years later I'm productive and useful in this new world but I dont really like it. I'm enjoying Scala and functional programming but with so many libraries and tools I feel like everything is so difficult and complicated. It takes a lot of study effort to keep up. Also I'm never sure if its because the applications I work on are badly designed, or I just dont really understand modern design. I have a business specialty which keeps me employable but I miss the old days when things were simpler.
Being "old" at 40+ really isn't so easy - I'm not sure you can ever redeem yourself in the eyes of the industry. Best you can hope for is get a non-tech domain specialty and find a big stable company that values experience and try to keep working on interesting projects. Once you're laid off or fired once its really hard to be the super confident hacker you were at 25.
EDIT - thinking about if you want advice. Get a business specialty or technical niche. Dont get too lazy, if you aren't learning on the job for a few years in a row, change the tech in the project or leave. It should be easy to keep employed but you have to keep working at it. Best career money-wise is to move to management, but its difficult to move back. Dont take the high paying job on a dead end project without a plan to get out.
Mastered Objective-C and Mac & iOS development 10 years ago, now it's all Swift and nobody's really hiring for iOS devs in my area (Chicago suburbs), and nobody's hiring for native Mac developers anywhere, period. And all the best practices in iOS have changed drastically since then, too, in terms of both coding and UX.
Learned Ruby on Rails 8 years ago, but it changed so fast that most of what I knew about it has become irrelevant, and I never was very good at Rails in the first place.
All the best practices I've learned in HTML/CSS/JS/jQuery/Less/Sass are becoming outdated pretty quickly.
Spent 5 years mastering Clojure but it's obviously very niche and I don't have any experience with big data or anything else Clojure is usually used for, only traditional web apps.
It feels like there's no way to keep up with the industry while staying relevant and employable.
Went all in with building single page applications in JavaScript and Node, front end, back end, and database administration, and haven’t looked back.
Fuck iOS now, native mobile development benefited from a craze where everyone thought mobile apps were the new web apps, but the truth is, most mobile apps only make sense in the context of a larger application ecosystem, usually supporting a web app.
Who cares if what I do today is obsolete in a few years, by then I’ll be doing something different.
The iOS devs I know are either in marketing or work freelance though. So I'm not sure how much like "a normal job" it is for them.
I'm sure your got the bugs, but the gp ain't got the time
I feel that a key trend in modern development is often needlessly focused on the mastering the complexity behind the coding infrastructure/deployment pipeline and ignores the actual business needs. Not suggesting these practices are useless by any means, but that for most startups it's putting the cart before the horse.
FWIW, I think there's a lot of people out there who would claim that Scala is a bit of a step backwards for the professional community. It's a fine language, but not a (socially) scalable one due to it's immense expressiveness.
There are so many impedance mismatches between them and so many diamond dependency conflicts that it's impossible to get any moderate size project done without going to microservices so that e.g. your Redis client and your HTTP server aren't complaining about different subtly incompatible versions of Netty.
func addOp(a, b, op){ return op(a) + op(b); }
Here op is a function being injected into another function. Nobody uses the term in functional/procedural programming because this pattern is obvious and ubiquitous in Higher order functions like map, reduce or filter.
When people use DI though it's used in the context of OOP, where a dependency is an object getting injected into another object through a constructor. People using this pattern tend to create programs that are littered with very abstract objects that can only work when injected with dependencies. Also the injected objects themselves may be DI dependent as well leading to crazy dependency chains (reminds me of inheritance ugh). All of this is done in the name of "modularity" and "unit testing." As you can imagine this pattern produces a sort of False composability where your code is littered with very abstract objects that are rarely ever reusable. If you want to compose object A and object B, you have to specifically design/code object A so that it can handle object B or vice versa. Because all object composition involves custom modifications to the code of an object it is a sort of broken implementation of modularity and reusability.
In a function, the only requirement for composability is matching types. All functions that return ints can be composed with one another without additional modifications. This is true composability and true modularity. The above example doesn't need dependency injection the same result can be achieved with this:
func add(a, b){ return a + b; }
add(op(a),op(b));
So you can see why the OP listed DI as one of his complaints. He must be dealing with a highly Object Oriented code base that employs this pattern extensively.
Yes, but...
The objective of most business-oriented programs is to create the One True Function(tm), usually known to developers as a the "application." For everyone's sanity, this should be composed of smaller functions, which are sometimes called "objects." An object is just a function that was created using a specific creation template, usually called a "constructor."
For a pretty moderately sized application, the One True Function might be a tree of sub-functions which has hundreds or thousands of branches. Sometimes you might want to write the straightforward boilerplate code to attach items to this tree, but that could get tedious to maintain.
Other times, you might find a library that will automatically assemble your tree for you, as long as you specify up front in configuration that all of your fruits are apples and all of your leaves are green. This program is usually called a "DI framework."
Hopefully, this saves you a lot of typing, which you can then use to type up HN comments.
I'm not sure what you mean by "true business application" but there is a transient form of mutable state that an object possesses in between processing a request and returning a response that is seperate from the state that the database holds. It is up to you whether you want that transient state to be mutable or not.
An object itself cannot be evaluated. Methods can be evaluated but not the object itself. Is your example referring to a specific language?... because in general objects are not functions.
Python would disagree.
In standard programming vernacular and practice, objects and functions are two different primitives. They are not the same thing. An object is a noun, a function is a verb, and just like their english grammar counter parts functions and objects are primitives because a Noun is not really a special kind of verb nor is a verb a special case of a noun.
Edit: added more detail, grammar editing.
Implementing a __call__ function is indeed what I was referring to.
A Python class without DI:
A Python class WITH DI: ...That's it. DI is just explicitly passing ("injecting") a dependent object into an object, rather than requiring the object to call a function to get a reference/pointer to the dependency or make one.
Also, due to the uncertainty inherent in ML, I find there's a much lower prevalence of dogmatic know-it-all zealots who insist you must(!!!!) do something a certain way, because <a whole bunch of reasons that don't make any sense>, who inevitably will have moved on by the time the entire thing starts to collapse on top of itself.
YMMV of course, but worth looking into.
This is the point of all those self-help books about grit and things like that. Their point isn't really to accelerate your progress when you're feeling good and confident. Their purpose is to help you regain the confidence once you lose it, to make you robust to setbacks.
Here's a manager-y question for you: how could you have done things differently when you went back to being an IC, to have had a better transition? Maybe doing more prep work before you left the manager track? Maybe going back to C++ instead, or an area that was closer to what you used to work on? Maybe doing open source work in that new java/python target area, to get experience, build a portfolio, and be sure you liked it, before you bet your livelihood and reputation on it?
In the old times one could argue that being a good engineer (i.e. finding simple solutions to tough problems) makes a difference, but I'm not sure how much this holds anymore for software engineers, since the complexity isn't in about fitting your business processes into the SQL/backend/frontend bounds, but rather in defining those processes and making proper assumptions about the market.
The hardest part was getting that second chance, if you had a more senior job and you're applying for a lower one it's obvious to people there's something going on there. Your best bet is going to be honesty, and convey very clearly you've learned from your mistakes and that you want to improve, your open to feedback, etc.
Good luck.
Where is the engineer that just chucked it all and opened a donut shop? That's the level I want to know about. Most of these are just stories of people making lateral moves in the same industry.
My story doesn't feel unique. I learned what was necessary to then acquire skills used to create experiences by building lots of software every day for years. I gave back as I grew. This process continues today.
I've done this over and over, across disciplines. However, tech has captured my focus entirely for the time being.
Im not sure why it took so long as it never did before, but it's either there is more supply then before for UI/UX Designer & Developers roles, I'm getting old(42), I do both design & development which the UX side ppl say Im not experienced in the study testing where this button should go(let's talk about that for hours) to developers saying I dont know React. Also, I thought ppl in my field might have been talking about how I just up and left my last job without mentioning the harassment(after Me Too movement started to roll i reached out to the heads of this big company reminding them that I reported a female colleague's harassment was ignored then harassed myself .. im a dude).
Overall I am glad that's behind me/working now and it just took time and potentially making ppl shut up about me when they dont know the whole story.
At the time Rails 2.X was current and Clojure was pretty new. Both looked pretty neat. I learned Rails and Clojure on my free time, went through Michael Hartl's Twitter knockoff to learn, and applied for jobs.
Nobody really loved how little I knew about modern web dev, but several told me they could see I was bright-ish and sufficiently motivated that they'd take the chance. It was hard and stressful at first, because I didn't know anything (JavaScript, jQuery, what's a "callback" function?, etc.) but I picked it up fairly quickly.
Made $80K my first year (pretty good junior dev salary in Texas) and it's been better every year since.
I know I am a very qualified candidate for any of these positions, and I have lots of GitHub contributions where people can actually see my work. That doesn't seem to be enough, however. Can't I just talk to a real person? My communication skills are excellent, and whenever I have gotten in front of the hiring manager, it nearly always leads to an offer. Am I the victim of algorithm-driven hiring?
To plug myself a bit: If anyone is looking for an experienced .NET architect who's done a bit of everything (including my own startup), drop me a line. I favor working remotely but I'll relocate to a desirable area for the right position. [nathan] at aldenfamily |dot| net.
Oh, and OP, you didn't mention if your question applies to you, but if it does, hang in there. We don't have much control over the ridiculous state of hiring in IT, so there's not much we can do except plug along.
I have talked to a couple of real people, one over the phone and one over email. In both cases I feel like I had a good rapport built. The first guy turned me down because his company only had the budget for a junior programmer. The second guy hasn't yet responded to my reply to him, but I'm hopeful.
Overall, I've probably applied to 100 different places (mostly remote jobs) and haven't even received rejections--let alone a reply--from the vast majority.
It pains me to no end that I am seemingly not allowed to simply talk to a real person. I understand why; I'm not naive. It still sucks.
If I can give some unsolicited advice, I would recommend
1. Put your resume on Monster. Hordes of recruiters here will give you a lot of phone calls. 50% will be for bad fit jobs, oh well, sucks for the recruiter, take the call and use it as practice. Maybe they'll get you an interview, boom, interview practice. You might even get an offer this way which you can use as leverage against other positions (or just to add urgency to other applications).
2. Indeed jobs, in my experience, are absolute garbage. I don't waste my time on that site anymore.
3. LinkedIn and Angel.co have the highest quality positions that I could find.
4. Connect to as many people a day on LinkedIn as you are capable of - this will allow you to make more 1st level connections which will then allow you to send more "hey, do you know anything more about this position? I'm looking to apply and want to know what your experience at x company is" type messages.
5. Stack Overflow jobs is a great portal for remote jobs.
6. Those code-test-find-you-job sites I've heard good stories from, can't remember names off the top of my head, sorry.
7. Took me 250 resume sends to get my last job, which led to 30 phone calls which led to 10 code tests / interviews which led to 3 offers. Food for thought.
In this instance, it might just be a matter of not finding a good remote match. That can be tricky. I was job hunting for a few months last year and was solely focused on obtaining a remote job but couldn't find one that fit. The only people who seemed very interested enough to take it to a final round interview were paying ~10-15k market rate for my area. And so I'm not working remote. Happy at my current job, but still. I got summarily rejected from a lot of remote gigs I felt I was absolutely very qualified for.
Pair it up with the fact that I never look for jobs until I am let go from a job, and I have a double whammy for "hard sell". Something I didn't know that is a bad idea to do until much later in my career. But hey, it's not like we all know about all the things you should and should not do about careers. I just assumed that the only drawback of not having a job is that you have no income stream coming in.
I am able to get through interview rounds with Amazon, and also have gotten the attention of a few interesting companies from my Github projects. But somehow I do not get a good perception with local companies on my resume. Others have helped me out on fixing my resume and they've told me, it's too aimless. It does not have a clear sense of growth and direction, so I am trying out a new resume hoping that my job-searching experience will improve.
As you progress, make a name for yourself as someone that delivers and build relationships with people. It's amazing how willing people are down the line to bring them on to their team/company in different roles if they already know you to be good and enjoyable to work with.
I'm already 33, and this is something I haven't been the best at, so definitely a wake up call for me.