Reality is that companies that are not desperate will be picky, take their time, drag you through a bunch of bullshit interviews, etc. Just like every other developer I get pestered by recruiters on regular basis and I often see identical job descriptions that I saw two years ago, so after short interrogation of the recruiter it becomes obvious that those are the kind of companies that are forever looking and never really giving anyone a chance.
I suppose my advice would be: start with the desperate ones, build up your experience and credibility that way and climb higher.
I got my current job simply because a friend worked there. I had practically zero experience in the field.
Or they have some bad attrition.
I had connected with this young startup through my budding network. I was young, they were young, and we were both involved in TeensInTech (formerly a community of teens interested in startups). I had done a couple rounds of UI/UX feedback for them, that they had requested via TinT. The company made a password & bookmark manager (not one of the ones that is available today. They want out of business).
One day they launched a major website overhaul. Excitedly, I went to their website to play around with it. Purely by chance, I fat fingered my password as I was entering it in. The login failed, obviously, but I was surprised to see that the password input on the failed login page was now filled with a mysterious looking hash. My assumption was that was my hashed password.
This spurred me to open my dev tools and look at the network requests to figure out what was going on. It turned out that their new website was powered by a new API which hadn't really been hardened at all. Within about an hour I was able to find an endpoint that allowed me to enumerate all of the users on their site, and another endpoint that returned a user's stored authentication details (hashed passwords, full usernames & URLs). I wrote a few lines of javascript that looped through all of the users, and fearfully received a dump of their entire credentials table. Obviously that is bad bad bad.
I sent them an email explaining the issue. Their website was promptly taken offline, hardened, and then I received a job offer.
tl;dr; I hacked my first employer's website, and they offered me a job for it.
That's extremely bizarre.
It basically skyrocketed from there to what you can see in https://francisco.io/resume/ , with basically all experiences afterwards building on top of that (either directly, by reference or just as credentials for the next ones). People (including Google) also seem to love https://picnicss.com/ and I normally use it for showing my front-end skills.
Something I found surprising is that I got a really high quality contacts from my public projects. I would say about 50% of the job offers I get through my developer persona are high quality which I consider (even if many don't work in the end) vs what I used to get through Linkedin or even Facebook (both closed now) which were exactly 100% low quality/SPAM.
Feel free to reuse any of the code under the MIT.
I am going to play with that lib this weekend. Could be good for small Eletron/NW.JS apps.
I prefer superdom syntax and I consider it the last and best iteration I could make following jQuery's philosophy (there are a bunch of dead jsfiddles from Umbrella to Superdom). It feels a bit hacky but it's quite legible and intuitive. It is not so compatible (no IE/old Android) and the main thing missing from Umbrella is the whole AJAX side, but for that I mostly use the new standard fetch().
I keep telling myself I gotta make superdom's website worth of the code, but I never get around to do it :)
Edit: fixed + added the favicon
Hola de Madrid ;)
Software hiring is stupidly broken. Google has done much research on hiring and a code sample+cognitive ability are the two most important predictors of job performance.
Tell that to anyone that hired me ever.... The first time you'll even talk to another dev is your on-site.
When I was in charge of hiring once we made a huge deal of user repos and probably spent more time looking at them than resumes. Got some damn good engineers from that. But almost nobody does it that way
Vince Fulco, CFA, CAIA vfulco[@]weisisheng.cn
Your choices are: only stay at jobs that let you greenfield the most cutting edge, experimental technology in production, constantly develop yourself by working on your own on the side, or expect to be outmatched the next time you look for a job (when those experimental technologies have had the kinks worked out and are now suitable for production. Then the cycle starts again).
Or you can do what my father's generation of programmers did: stay with the same company doing the same thing for so long that you are no longer in the game.
Learned some cool stuff, but also how terribly behind my company was
I'm involved in interview processes and hiring decisions at my current company - and rest assured that any code versioning accounts will be checked out.
It helped me get my first job at OpenedHand, working on free and open source software full time. I didn't have any previous experience nor a degree in CS.
Getting a job in that sector was as simple as having some general development experience and being moderately familiar with the platform.
I imagine that in time, someone will look at that code and use it as a consideration for his employment and be just as disappointed in his output as I was. You may hate it but I love white-boarding with candidates. It's not a binary pass/fail exercise but a look into how a person approaches solving a problem and handling on-the-spot pressure. Sometimes things break in prod and the pressure is on, I want to work people that do well under that pressure.
- I found AngularJS a few weeks before AngularJS 1.0 came out in 2012. I started using it for pet projects and became a serial user and answerer on the AngularJS google group for a few months. I spent 1-2 hours every day answering questions.
- A few people from that group started a library making AngularJS UI components for Bootstrap CSS, and I helped: https://angular-ui.github.io/bootstrap/. This was what really got me "slightly known" in open source.
- I moved on to making other AngularJS libraries: most known were angular-promise-tracker and angular-mobile-nav (slide transitions for mobile AngularJS apps). And then eventually, because of my experience, I landed my first job on the Ionic Framework team.
I quickly moved up to consultant (since I was with a consulting firm) within a year and ended up getting some real experience on my resume. :-)
http://www.ticalc.org/archives/files/authors/107/10786.html
Landed me a job in a small game studio. I'll never understand.
One of my users said "Anyone who can write a BBS for a Vic-20 can program!" and hired me to write code for MSI portable data terminals. That same guy now wants me to work with him at Google.
Truth. Out of curiosity, have you watched any "Halt and Catch Fire" (the tv show)? I'm curious to know if it's similar to what you remember in the mid-80's. Info from Wikipedia: https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(TV_series...
A Dark Age of Camelot (MMORPG) chat log file analyzer written in Perl in 2003-2005 helped me land my first dev job.
I switched careers (due to lack of job openings) from becoming a protestant pastor to being a full time developer. I had almost no proof of having programmed in Perl for close to 6 years as a hobby, but the company desperately needed another coder and their senior programmer at that time had taken a look at my SF page. The boss was impressed when I said that my code had been downloaded by over a 1000 users, and so I got my first job, rewriting an SMS-messaging platform.
Now, over 10 years later, my GitHub profile only rarely comes up when recruiters try to reach me - some, I think, use web scraping to match profiles with LinkedIn / Xing to say nice things as a conversation starter in generic emails.
A PHP endpoint that received a POST request of some sort, and then I would return something based on that, a very primitive REST service and a C# application would act accordingly, and it would log the data to a MySQL database. It was meant to allow us at my old job to keep track of who used our computer lab, it wasn't meant to be overly secure on the front-end, if they figure out how to break behind the application we weren't worried about those cases, only the case where our database was compromised.
I think the more important bits of my interview were just our overall conversation, the code just showed I wasn't all talk really. He liked the answers I gave and the rest is history. That was 1 year and 1 day ago. Still working at my "first real job" as most people call it. My previous job was part time and at a school so I didn't do many programming projects.
One local blog from my city in argentina picked it up and wrote an article about it and got a call from a big local company that they wanted to talk to me. Thats how I landed my first job as a javascript developer.
A year later my app got removed from the store because "it did not comply with their policies or terms of service".
After a few long discussions technically of Wordpress development they deemed me capable enough to handle the workload. I persisted with my intentions to help and break into web development, and it blossomed wildly from there.
By the time I started my second job, I had a real portfolio of Fortune 500 brands live and in the flesh and never looked back from there.
Honestly, it was stupid how easy it was to break into this niche. It took a lot of sleepless nights and long work weeks, but seriously anyone could do this. I'm a big proponent of that. I was a meat cutter before this.
That (and a few other factors) got me a role at Headquarters, on a networking team. But I kept writing tools in software and ended up getting snaffled for a web-development team. And have been doing web-applications ever since.
Been coding since I was 12 though, had a good grasp of HTML/CSS, jQuery (but not really of javascript), VBScript, C#, SQL. All stuff I picked up either while making plugins/themes for a BBS I operated, or writing scripts for bots for MMORPGs. My code quality sucked, but I made stuff that people (other BBS operators or bot users) kinda liked and got hooked on the accolades. Sadly that was all in middle school and I didn't know enough to keep backups.
A few weeks after exams ended, and a few months before I would graduate with my Bachelor of Commerce degree (Finance Specialist), I went to my first interview for a developer position at my University. After talking with the manager/team-lead, I was handed a page of 12 questions ranging from logic, sorting, jQuery and databases, and given 30 minutes to complete them. I aced most of it (hiccuped on the sorting). Got the job. Made this: http://m.map.utoronto.ca (just the mobile version, which was a ground-up rewrite SPA)
Been 5 years now. Have worked on projects for Facebook and Google (although not employed by them, but via agency vendors), went through Intermediate Developer, Developer, Senior Developer, now an Architect at a cancer research place.
Still no portfolio (never got around to it), but here's my Github: http://github.com/cheapsteak/
My "break" was when I was at the time freelancing for an agency/ production studio (about 3 years ago). All the project managers and other developers I've worked with said really nice things about me to the tech director and the person in charge of staffing projects, and when they had a project that they didn't have a tech lead for, they decided to take a chance on me, even though I'd never really lead a project before, wasn't even sure myself if I could, and I've only worked with them for about 3-4 months at the time.
That first project came dangerously close to flustercluck territory (partially my fault, partially because we were understaffed), but everything actually turned out pretty great. The projects afterwards went much smoother - always delivered on time, usually ahead of schedule without having to crunch, and they liked how I mentored the other devs; so when a a client pulled a project (through no fault of ours, they had some internal restructuring) and I started looking for contracts elsewhere, they offered me a senior developer position instead.
It's a really cool place with amazing people (still hang out with them), atmosphere, and some breathtaking projects. Leaving it was one of the hardest things I've done, but I couldn't say no when a cancer research place asked me to be the architect for their front end projects. The story about how I got that offer is actually even more random. Maybe I'll write a post about it one day :p
Most recent job boss asked what I wanted written in on my contract, I was tempted to have "<code-monkey>" but I had that on my business cards at the previous place so I just went for "Senior Software Engineer".
I'm the only software engineer so I am simultaneously the most senior and most junior software engineer ;).
Thing is if I go for a new job in the future I can legitimately put "Senior Software Engineer" on my CV (and Systems Administrator and Systems Architect (previous jobs)).
The reality is that if you work for a small tech company as the sole/part of small team developer you'll effectively do multiple roles (sometimes less than brilliantly) that would earn you most of the way towards those titles in large orgs.
I've worked with big companies where their 'senior' programmers where less capable than me (and I'm by no means fantastic, just experienced, diligent and patient), outsourced IT firms with "years of linux experience" where the solution to permissions issues was chmod 777 everything etc etc.
Some of it I wouldn't believe if I hadn't actually seen it (I'm actually preparing a tech talk on the subject since all the talks I go to locally are "Look at this fabulous tech/architecture" and never "Putting out the dumpster fire").
To paraphrase Louis CK "Think the most average developer you know, half of them are worse than that".
Also soft-skills, they matter, I know it's tempting to think that technology/software is a meritocracy and parts of it might be, hiring/promotions near universally aren't.
The next job I just applied and did exceptionally well on the interview. The one after that was through a friend that I worked with before, he was starting a company and hired me.
So to answer your question I guess, it depends on your area of expertise. It's easier in my opinion if you're a front-end guy because you'll have "something to show". If you're a backend developer you can always cook up a library in whatever language you use and share it with the community, that along with a blog can go a long way in helping you landing a job.
Hope this helps
I just started working on a simple Django cms called Amy[0] and that has also gotte me work. Weird.
[0] https://github.com/yelluw/amy
See Amy live at yelluw.com (https incoming!)
[1] http://modernperlbooks.com/books/modern_perl_2016/ - not my book, mine was more specialised, and I'm not going to transparently disclose my identity here :).
Technically I had one other dev job before that (not in games, making websites and apps in ASP and VBA), although I got that job from a friend who knew I could code due to indie game dev meetups, convinced me to move upstate to the Chicago suburbs and be his roommate, then bugged his boss until he hired me. I barely knew him, but it ended up being a good decision because I ended up really fitting in here and I'm still in the area 12 years later.
I did a code challenge as application, so I believe this was the most important code. But this is my portfolio page (untouched since I got the job): http://rodrigo-pontes.glitch.me
I believe the most important project in it was this To Do app because it shows I can ship things that work:
http://www.dediddo.com/ https://github.com/deltasoneca/Dediddo-to-do-list
This project is closer to my heart and I would still be happy if I had not gotten a job because of this.
* https://github.com/douglascrockford/jslint
The repository that taught me about parsers, code style, and algorithms was writing PrettyDiff.
Highlighted some insights based on the way Tweets were made. Got an offer from one of those brands' Data Science team and finally found out that my Analysis became benchmark in the company for Social Media Analytics of Twitter.
Edit: Though the job wasn't my first one!
Mostly people contact me for web scraping and automation related work after viewing my site[0] or blog posts[1]
[0] - http://adnansiddiqi.me [1] - http://blog.adnansiddiqi.me/tag/scraping
It showed I could create a proper project which follows best practices like CI ect. It also helped that it was pretty relevant to the type of business and something that they themselves could potentially find useful.
very short video: https://i.imgur.com/4zDAQe7.mp4
Was hoping to publish this app but could not find an appropriate service provider for the images.
This was for a junior full stack dev position in SF
Second job: Knew some people from IRC, still had to show some code. I chose a signature generator (for use in MMO forums) that showed your characters. (PHP, MySQL, gd, reading APIs)
Somebody drove me home when I attended a local event, and a few years later, that person hired me (and is now my direct supervisor).
It was the only interview I've ever had where someone actually did that.
I had done a few website before, but nothing significant.
I think it does not matter what's in your portfolio as long as you've released a few things and did everything to make to them look good. Not necessarily design but presentation, documentation, testing and function.
I'd grown up futzing with code in the 80's (AppleBASIC, a bit of assembler). Turbo Pascal, ANSI C, in the early 90's. I'd started crunching through Ivor Horton's book on Visual C++ in 2000.
My girlfriend's (now my wife's) employer had an ecommerce website that was written in this thing called PHP and it kept throwing errors, something about MySQL. Figure out it was hosted on this "Apache" thing.
Bought a SAM's Teach Yourself in 24 Hours on LAMP, spent a month digesting it, fixing the issues with the site in the meantime. When I was done with the book I wrote my own ecommerce platform to replace the one they had (I did all this for no compensation, I just wanted to learn).
Took programming gigs off of what was then called "rentacoder.com" working for almost nothing to get experience and built a portfolio.
The next year, 2004, a big auto parts company in town was looking for a "webmaster." I leveraged having built an ecommerce platform from scratch into that job. I was all things internet for them (except graphic design). Wrote code for their ecomm website (old school ASP.NET), did SEO/PPC marketing, came up with email campaigns, integrated with their ancient PICK-based inventory system, used NLP to detect tone in customer support emails before that was something you could farm out to Google, etc.
So...the replicable aspects of that path, excepting luck and right place right time:
1) Dive deeply into a challenging language. C++ wasn't for the faint of heart then and although it's been years since I wrote any I'm sure that hasn't changed. I'm a much better coder for having had to deal with the obtuseness of C++. Pointer pointers, anyone?
2) Do work until your skillset and portfolio represents enough value to someone that they're willing to pay for it. So much of my early work was garbage anyway...hell my SAMS book on LAMP hadn't covered SQL JOINs, so I was doing queries and iterating through the results and running more queries!
3) Build something that non-developer can understand and connect to. I was able to talk about the ecommerce site I'd built, how I'd integrated with PayPal, demonstrate the UI, etc, to the people that hired me. Had I been presenting something more esoteric, like the time I had to figure out endianness to decode a data file and get it into a MySQL database, I'd have completely lost them and likely not have gotten the job.
Put together working projects and deploy them, make it easy for someone to see what you've built. Provide evidence that you are capable of working with external APIs and common frameworks.
I am self taught and landed my first job pretty easy with just a basic portfolio site, and a few FreeCodeCamp projects that were deployed on digital ocean.
I am now involved in hiring with my company and very rarely do I see an impressive repo let alone an active github, but whenever I see someone consistently committing they always end up with an interview and more often than not end up with a position.
Was rejected for an interview until a senior Dev found my github account.
I had a bunch of app tutorials that I had built and then extended quite a bit, as well as some pet projects that I built from scratch.
It told a story of my progress (and the speed of that progress) in learning and the development of my capabilities as a programmer.
Just build stuff, follow good coding practices, and put your github on your resume.