How to navigate a switch to web development?
November 23, 2015 2:50 PM   Subscribe

How does a Python developer position themselves to move into web development? Specific questions about resume writing, job description/skills, and salary negotiation below the fold.

I'm currently a Python developer working on a contract basis with a small startup doing programming for control systems. I'm considering moving into web development (front-end/maybe full-stack, using Django, JS, html, etc) after my project is complete.

1. I'm the only programmer for my project and cover coding, unit tests, project reports, some systems analysis, and report to the company's (non-programmer) owner. How should I describe/spin my current job on my resume? In previous jobs I was always part of a mid-size team under a project lead, so this is new for me and I don't really know how to best highlight this/which skills are the most "valuable".

2. Any tips on salary/negotiation? Especially the dreaded "What's your current/expected salary range" question. I know WHY HR asks, but I usually try to tactfully dodge this one out of fear of low-balling myself, but sometimes they've insisted on an answer. How should I handle this?

3. What salary range is realistic for a programmer with a BS in engineering and a couple years work experience when moving over to web development? I'm looking in the Cleveland or Pittsburgh area if that helps narrow down cost-of-living.
posted by Chicoreus to Work & Money (5 answers total) 6 users marked this as a favorite
1. Emphasize things you have created/initiated/designed and use of best practices e.g. unit testing. I Interview (Python) programmers on a regular basis and what I look out for in sole programmers are indications that they worked in ways that would apply if they are working in a group: did they write unit tests, docs etc even if they did not need to, or did they let that kind of thing slip.

2 & 3. I don't handle the salary negotiations though I get asked my opinion. I think you answer to this one is partly going to depend on the the of job. If I interviewed someone with your background for a full stack position I would look at their programming skill in Python if they are good and the candidate had a basic understanding of front-end work I would assume they could learn what they need as they go. In that case for salary we would look at the going rate for the job and the persons previous salary. If these fall within the same range then present salary + a realistic increase for a new job is fine if it doesn't push out of the range, otherwise we would probably aim at the midpoint, noting we won't likely pay over the odds except for an exceptional candidate, or high demand (if we had the budget).

If you were going for a purely front-end, without a front end background, I would look at your existing experience as useful, but would consider you more like a starter and salary expectations would be adjusted accordingly (albeit at the higher end).
posted by tallus at 3:48 PM on November 23, 2015

Ex web/tech/media hiring guy here.

1. Definitely develop and promote yourself as a full-stack developer with an emphasis on Python and other 'real' programming rather than any kind of front-end, JS or HTML developer. There are something like 40-50x as many HTML/js people out there as Python developers, who are worth much, much more as a result, especially if they're any good at real workflows like unit testing and version control, rather than self-made hacks. So either promote yourself as full-stack developer with a strong emphasis on fundamental back-end Python and other programming or as a Python specialist who, by the way, of course is also comfortable in HTML and JavaScript because, you know, who isn't? To make up for your lack of different jobs in the field, speak about specific projects in detail and how you managed the complexity of the projects, problems and challenges therein. This is half strategy, half posturing.

2. In general, the best answers to this sound like "Well, as you know the average salary for a blahblah in this market is $X, $Y, something like that, so I'd expect this to be in the same ballpark, though when it comes right down to it, the (benefits/environment/coworkers/passion/whatever) is probably more important to me in the big picture." You want to sound non-naive about money but not solely motivated by it. Ideally you can craft a version of this answer that is not a lie, but if necessary, lie hard about the second part.

3. I don't know Pittsburgh or Cleveland or the market in the last four or five years, but as above I truly would not discount the lack of web-specific experience especially in a team environment where everyone else is likely to have that, and only that, in spades. Personal experience also tells me that computer engineers make better long-term development employees than computer science grads, both of which are better than any web-programming course type people. So I would find the high-end of the salary range for python/back-end/programming in those markets and shoot for that, trying not to pre-discount your lack of experience in the finer, front-ier arts.*

And mostly, hit the books and tech demos and build some simple web apps and websites of your own, starting today and not stopping... well, ever. You need to get the lingo and most common architectural approaches down so you're at least ready to work on such projects; I suspect you can learn individual commands, operators, languages etc as necessary when the need presents itself, as most good technical people can and do.

* Flamesuit: before moving into the management and hiring side of the world, I spent a decade as a well-trained and legit front-end person myself, and have in my post-career days become what is very definitely a self-taught hobbiest back-end hack rather than a real programmer, so I speak from a good or at least humble place when I market-marginalize the former, elevate the latter, and pontificate from a few perspectives on which skills in a full-stack career are most scarce, valuable and valued.
posted by rokusan at 3:55 PM on November 23, 2015 [1 favorite]

I assume you've self-taught yourself the web technology bits while you've been gainfully employed doing the Python non-web stuff? If so, that's going to limit what you can ask for salary-wise a bit, since employers may rightly want someone who's done the front-end or full-stack thing professionally. I hate this aspect of how employers over-specify what tech they want instead of looking for good programmers who can learn the tech, but it does exist, and might be a problem.

If you've done or could do some side/freelance projects that have UI components that you could point employers at, that will help bridge the gap. Try to find something that aligns with your interests / hobbies so it won't seem like work. Data science kinda-sorta fits into the space between Python hacking and frontend stuff, so even if you don't have the full stats / data science chops, maybe play around with pandas dataframes on some kind of data you'd like to explore some data that interests you and develop some simple Flask app to make a clicky/zoomy data browsing thingie.

I live in Pittsburgh now, and have been looking at developer job postings lately for myself, though I'm a bit more senior than you are (Masters + 16 yrs exp) and am trying to avoid positions with too much web UI work if I can help it. Still, my sense from following the postings would put my ballpark estimate for a beginner-level web developer with a couple years non-web dev experience somewhere in the $55-$65k range here, but it might be lower if they think you'll need to grow into the web dev space.

One thing to consider might be to get a foot in the door with your current skillset at a place that also does webby stuff, then try to angle for a position on the web team over time. Get hired for what you've proven you know, but with an eye on the position you really want.
posted by tonycpsu at 5:35 PM on November 23, 2015 [1 favorite]

(Note that in seven hundred years of doing this, I have never met a single truly full-stack developer who can do more than tread water in some of their weaker areas, anyway, so don't beat yourself up about your smaller pancakes. Everyone, human nature being what it is, will always be much better at some parts of the job than others. It's just a conceit that we all play along with: employers will expect you to be a 'specialist at everything', so you just nod and say 'yes, of course, and I'm especially good at these parts...')
posted by rokusan at 6:26 PM on November 23, 2015 [1 favorite]

Don't underestimate the value of listing personal projects on your resume. Mark them as personal projects, list what tech you used, put the code up on a public repo if you want, and make sure the code is the best you can make it: modular, self-documenting, using current features, nothing deprecated, better a smaller scope than a bug.
posted by JawnBigboote at 7:03 AM on November 24, 2015

« Older What can we in the U.S. do to help the Syrian...   |   Quick Jump-in Multiplayer Online Web-Based Games Newer »
This thread is closed to new comments.