10 ms·
If you're hiring, be forthcoming about the dev experience
- globular-toast 6y agoI've been to companies that outright lie about their development environments. I only enjoy using GNU/Linux so one of my first questions is whether I can use Linux and if I would be forced to use Windows for certain things. One company told me yes for the first one, but when I got there I found Linux was completely unsupported by the draconian IT department. Many companies simply don't know the answer to the second but it usually turns out they use Exchange or email some important document in a doc file that only Word will display properly. These details are often forgotten, especially by some people who don't seem to mind following stupid corporate protocols.
- AmericanChopper 6y agoStandardizing a set of supported tools inside an organisation isn’t exactly a stupid corporate protocol, especially if it’s a very large organisation.
- xenonite 6y agoA hammer is not always the best tool. Edit: what did you mean by "a set" of standardized toosl? Like the set {Windows 10, Linux of some distribution, macOS 10.15, iOS, Android}? Even then, what if some app does not work on Windows 10? Or what if you need a 32 bit app running on macOS?
- AmericanChopper 6y agoBut if your 10,000 employees each need a hammer, getting them all the same one, from the same vendor, with the same support contract might just make sense. Edit to your edit: whatever particular sets of tools the business needs. Whether it’s laptops, thin clients, operating systems, IDEs, ticketing systems... > Even then, what if some app does not work on Windows 10? If your business had standardized on Windows 10, then you’d hope checking whether things worked on Windows 10 would be part of their procurement process. > Or what if you need a 32 bit app running on macOS? You choose something else. Like any business running MacOS would have to do.
- xenonite 6y agoAnd then there are some with very small or very big hands. Would you give them a different hammer, or would you criticize their subpar performance?
- AmericanChopper 6y agoI’d probably just pick a better analogy. If the job can be done on the operating system provided, then it can be done equally well by anybody using that operating system. No need to grow bigger hands.
- xenonite 6y agoThe analogy is perfect in my opinion. Like the body, everyone's brain is different.
- AmericanChopper 6y agoIf you’re working from the premise that your brain is only suited to work with one operating system, then you’re really only harming yourself, by shutting down any opportunities you may otherwise have open to you. Small organisations have the luxury of letting people choose their tools more freely. As they grow, they tend to have to restrict this more. Not just because they might have to support the tools you choose to use, but because they absolutely will have to support how your choices work with all the other tools they have in the organisation. At scale, this starts to get out of hand pretty quickly, and the only way you can provide a good working experience is by adding constraints to the tools used. On top of that, some organisations have regulations and compliance requirements to meet that make it even harder. If your basic procurement pipeline includes $10,000 of vendor due diligence, then you don’t want to just give everybody free reign to use anything they feel like. If those choices introduce additional ongoing compliance costs, then you want to control that even more so. You could ignore all of that, and focus only on how it affects you. But there’s good reasons that organisations do that sort of thing.
- krapht 6y ago
- closeparen 6y agoMature IT departments tailor solutions to different classes of users with different needs. If they don’t do that for engineering, that tells you everything you need to know about engineering’s stature in the company.
- AmericanChopper 6y agoTo an extent, and as allowed by whatever particular constraints exist for that business. Letting you run whatever IDE you want, usually OK. Letting you install whatever operating system you want, well... there’s lots of reasons you may choose to not support that choice, that have nothing at all to do with maturity. If your jobs was improving developer experience, there’s only so many times you can come up with solutions that work great for everybody except that one guy on Arch, before you give up.
- loopz 6y agoThis is more related to how organizations work. That larger organizations tend to need to streamline more in order to scale up number of employees, and do more to maintain acceptable security simply because there's that many more people on board. If policy is install whatever you want, and if you get hacked, you're fired! This just won't stand in court. So policy is that IT department is responsible for installations, IT department gets the blame. Infrastructure is sort of "outsourced" within the company. If you were accountable for those younger first-timers running I2P and Tor within security perimeter, what would you do?
- AmericanChopper 6y agoLower down the tread I mentioned vendor due diligence, specifically because I’ve done so many vendor security reviews. But there’s more to it than that. You might also need to be threat modelling it, legal will need to review the ToS and privacy policy. You probably need to figure out the impact on other services too. If you’re in a regulated organisation, there could be any number of other things you have to do, and on going compliance costs. If you work in a bank, and somebody wants to install Gentoo, you’d have to figure out how to run anti-virus on it, how to centralise patches for it, how to install endpoint DLP, make sure it has the correct web proxy configuration... the costs can easily stack up.
- globular-toast 6y agoIt is stupid. There's no room for growth if you standardise tools. What they should be doing is standardising protocols. There's a big difference.
- AmericanChopper 6y agoThey already did. They settled on NTLM. I hope your chosen thing supports it, or you’ll have to pick something else.
- Karupan 6y ago> One company told me yes for the first one, but when I got there I found Linux was completely unsupported by the draconian IT department Happened with me as well (but I use a macbook). I won’t call it draconian. The IT department usually has to deal with a large number of hardware/software support requests on a daily basis. It’s quite understandable that they won’t have all the answers for a platform they’ve never used/supported before.
- codeisawesome 6y agoI completely understand that that IT department sounds draconian and lazy.
- globular-toast 6y agoI didn't say it was draconian for not supporting Linux, just that it was draconian. It was widely recognised in the part of the business I was in that the IT department was holding the company back when it came to technology. And, in any case, I wasn't asking any questions about Linux, I just wanted to connect to the network. My current company lets me use whatever weird distro I want (even Arch, btw), but they won't officially support it. That's fine. I can, however, ask them to support standards that I need (rather than specific support for some distro).
- wrnr 6y agoYes this a 1000 times and also candidates should stop lying on their resume.
- falcolas 6y agoWhen the company lies about its requirements of a candidate, what else should they expect from the candidate?
- erhk 6y agoC is Google, what are the others?
- kevsim 6y agoI was guessing A was FB due to the one-time mega download (though I've not worked there so I'm not sure if there's a linux VM in that picture)
- saagarjha 6y agoConsidering that Rachel has worked there previously, it’s probably not a bad guess.
- keegancsmith 6y agoFB is company D or E. FB you could have a linux laptop though, and could install linux on the mac. Not officially supported, but lots of people installed linux.
- fossuser 6y agoYeah it'd be a lot more interesting to know the actual companies that have the dev environments (since that's kind of the point of the article?).
- closeparen 6y agoThe proxy thing really is the way to go. Maintaining production is hard enough; mini-me services for developer convenience to are a lost cause.
- Jugurtha 6y agoThe moment after I signed the contract to join a startup, the CTO said "OK, then... Here's your laptop, install Windows and we'll talk later..". My heart sank and felt I took a bad turn in life. I really wanted to work there but I had stopped using Windows for health reasons a long time ago. I wondered if it were rude to resign the same day because there was no way I would use Windows. I thought it was more honest, but at the same time I thought I may be too radical. Maybe I could be spared and still work there. My brain went into overdrive. The CTO then said "Uh, I mean Linux.", he noticed my face and continued "Don't panic, there are no Windows machines here". The whole thing lasted a few seconds.. I heaved a sigh of relief. We try to be brutally honest with applicants, not only with the hardware but on the specifics of the job. It disappoints many who imagine they'll be doing "data science/AI" with screens that blink and computers that beep.
- rsify 6y agoDo you think that companies like G are going to be able to hire literally anyone if they start advertising all the mess that they are working around? Why would you write this article from an engineer's standpoint with arguments that will only benefit other engineer's but for some reason is directed at companies? Why not just call it "I'm upset with the dev experience" and be honest about your intentions?
- saagarjha 6y agoBecause presumably Rachel would like companies to look at their policies and change them if the match the poor qualities mentioned here.
- bryanrasmussen 6y agobut she says > This way, if it sucks, people can see it as a warning and stay far away. which implies she thinks companies should tell potential hires you won't like working here and should run away, which I doubt many companies will listen to that advice and think "sounds good". That said what you said would be a good thing for companies who are afraid to tell what their dev experience is like to consider.
- saagarjha 6y agoCompanies don't have to tell you whether you'd like it or not, because they really can't know. However, they should describe the environment they provide.
- bryanrasmussen 6y agoI thought I had worked at some stupid companies over the years, but as a general rule all of them knew, at least in a broad overview, how the employees felt about the place. Often they even knew what things people disliked, but they didn't want to change these things or somehow found themselves incapable of changing them. So again, I don't think relying on companies to tell you the things they know their employees don't like about them when they are trying to get you on board will be seen as a winning strategy.
- smadge 6y agoI think I work at C...
- ThePowerOfFuet 6y agoSo you work at Google?
- dbetteridge 6y agoHave to say that the company I work for has improved this leaps and bounds in the last 5 years but still has a ways to go. Macs can be requested for devs but Windows is still the default for users. lots of services being migrated into azure/office365 means no longer needing the VPN for everything but sharing large files is still primarily done via mapped network drives, which requires the VPN. Security team unfortunately MITM SSL which means breaking random things like raw files on github (thanks Cisco). Most of us have the freedom to spin up local vms/docker for dev environments and easy access to AWS and Azure for spinning up test/prod servers. No real standouts, but the team is great and the work is interesting EDIT: I should also note, this is an old school engineering firm, not a tech firm. Change is slow but it does happen
- RangerScience 6y agoI recently switched from mac to windows (nice desktop gaming rig) - and although I ran into a day's worth of issues getting WSL2 setup so I could use Docker - it's been smooth sailing with VSCode otherwise.
- dbetteridge 6y agoYeah, admittedly wsl has helped on that front. My main pain points were related to filesystem access, primarily its speed for things like npm install and running test suites. Though if you're just using a docker image through wsl2, does that alleviate those issues?
- RangerScience 6y agoDunno. I also upgraded to those new M2 "hard drives". Right now the docker images are the dependencies (redis, sunspot, PG) and the test suite isn't particularly large, but also isn't particularly optimized (ex: there were a bunch of tests that looked like they were VCR'd, but weren't), so I suspect any speed differences from the file system would be swamped by all that. I can appreciate wanting a fast NPM install, but how often are you doing that that it's any kind of significant?
- 6y ago
- downerending 6y agoAccepting a tech offer is surprisingly similar to bomb disposal, except that bomb guys have a better idea of what they're actually walking into. When I was young, I considered this to be exciting. These days, it makes me never want to switch jobs again.
- Plyphon_ 6y agoI've been lucky enough to work for two 'fairly progressive' organisations in a row (by UK standards in terms of work/life balance, working from home, flexi time, general attitudes around 'how to do good work' (outcomes vs outputs, etc) and all that jazz.) I figure after 2 in a row, the next place has got to be step backward a good 5-10 years. I'm putting it off as long as possible. Though saying that the first place I worked was firmly stuck in the 1970s so maybe I got it all out the way in those first 3 years.
- Nursie 6y agoI take the opposite approach and switch every few months, so I know that each and every nightmarish organisation (which is most of them) is only a temporary client.
- my_usernam3 6y agoI find it hypocritical that developers preach "languages don't matter, a good engineer is a good engineer", while also being very specific to work environments. Personally, I want the environment thats most similar to my coworkers to create the least amount of friction during on-boarding and documentation based learning. Don't get me wrong, there are bad dev experiences that can be had. However, from my experience its definitely not mac vs linux vs pc, but rather intricacies that are unlikely to be able to be explained during the recruitment process. And if they can, why would they? It's not like applicants are being super truthful on their resumes.
- DoofusOfDeath 6y agoIt never even occured to me to lie on my resume. Surely I can't be the only one.
- DrScump 6y agoSame here. One problem with building upon a framework of falsehoods is that to be a consistently effective liar, you have to have a fantastic memory to keep your falsehoods referentially consistent. When I was on the proverbial other side of the table helping to evaluate candidates, I became flabbergasted with the frequent false skills claims of candidates, especially those sent by job shops. To me, it would be exhausting to be phony. I'd rather save that mental bandwidth for stuff I can feel good about doing.
- hrktb 6y agoPeople can be very good at constructing “facts” that are not correct but desirable to them, and not completely devoid of anchoring. Like that time they were at a book signing event, asked the author for a two-shot, got a smile for a last joke thrown before leaving for the next in line, and now proudly declare themselves “good friends” with that author.
- hrktb 6y agoIt’s seldom straight lying and more often omission of critical facts or misrepresentation of their roles on projects. Which sadly is the common advice given to people writing resumes, and it becomes a prisonner’s dilemma. I assisted at whole interviews where “tech leads’ craftily avoid recognizing they code at most half an hour a day. Or a dev listing super hard stuff on their resume but never mentioning until thoroughly asked that they pair programmed all of these.
- jan_g 6y agoI once joined a company of couple of thousand employees (as software engineer). The interviewer assured me that employees can pick whichever laptop or PC they want. Ok, great, I thought, then asked for a Thinkpad. A funny thing happened after I started to work - IT department was unable to procure me that laptop. After ~3 weeks they said that the company they order hardware from can't provide Thinkpads for the foreseeable future. So I've asked to just order from Amazon or similar. Nope, can't be done. My manager just shrugged and told me to ask for standard Dell laptop like everyone else in the company. Yeah, it arrived on my desk the next day. Later I found out that company works like that in many different areas. Lots of freedom and choices on a first glance, but once actually needing something, there was always only one way to have it done. Usually the most annoying and time consuming way. So, the interviewer wasn't wrong in telling me that I can choose what I want, but the company makes sure everyone ends up with the same setup. Somewhat similar to Henry Ford's "you can pick any color as long as it's black".
- GordonS 6y agoMost enterprise-scale companies are like that, only using a single source for procurement of laptops, desktops and monitors, and making it impossible to buy IT yourself and expense it.
- chaosite 6y agoSure, that's common. But they also don't lie about it.
- koheripbal 6y agoI'd just like to comment as someone who's done sysadmin work - the nightmare security scenario for us definitely includes employees bringing their own unsecured hardware to the office and connecting it to the corporate network. So many security issues with that - that it was never a reasonable request on your part. Moreover, having also helped with support and procurement. BY FAR, the most efficient thing to do is get the exact same laptop model for everyone. Otherwise, the IT support team is constantly fighting with driver and support issues on different brands, models, bloatware-in-drivers - a new battle for each configuration. One-size-fits-all laptops for the company makes 100% sense for a company.
- _Donny 6y agoNot being able to select your own hardware for a job is perhaps one of my worst experiences to date. At one company, I was handed laptop with an older version of Windows, preinstalled bloatware, 3rd party encryption software, anti-virus, VPNs, etc. Even worse, the laptop was about more than 16 inches and weighted over 3 kg because the company crammed in as much expensive hardware in it as possible -- so that the computer would fit everyones needs. I understand the need for company IT policies, but global companies have such complicated policies it basically hindered all my work. You won't believe the sigh of relief when I started at a small start-up company, and I was able to choose all of my hardware. The CTO ensured my SSH keys would grant me access to all the servers I would need.
- koheripbal 6y agoThat just sounds like shitty procurement, not bad IT. There's nothing wrong with standardization as long as the standard laptop isn't crap.
- Balgair 6y ago> ... 16 inches and weighted over 3 kg Where are you from? Thats a heck of a mix between imperial and metric.
- indentit 6y agoPretty sure screen sizes are still universally measured in inches for some reason - maybe because it is what people are used to, or maybe for the American market as it is one of the biggest?
- mercer 6y agoI live in one of those sane metric-system countries, but I don't have a clue how to describe my MacBook's screen size in anything but inches...
- deleted 6y ago[deleted]
- 6y ago
- itronitron 6y agoI used to think tech adopted/co-opted the term production because that is 'where the real stuff happens' but now I think it refers more to it's theatrical aspects.
- sdflhasjd 6y agoI've seen what happened to a company (X) after it was acquired by another (Y) that dealt primarily with banks. Company X did well to preserve their own culture after the acquision, but despite that they didn't deal with sensitive information in the same capacity as Company Y, Company Y's IT security policies took over and made life miserable for devs. When every task you do is wading through a slog of VPN and RDP mollasses, it's no surprise that so many devs quit. The only reason the project I worked on got anywhere was due to some insidious tricks to punch through firewalls and basically hack into our own dev environment.
- alex_young 6y agoMy personal favorite was: Company supplies horrible laptop locked down in ways that prevent any real work from being accomplished, but allows unfettered VM use because they don't understand or care about security outside of the environment they designed. Some developers use an underground system of sneaker net and whisper doc hodgepodge to get real work done, but that largely isn't a problem since productivity is measured on a political basis rather than getting anything accomplished. Thinking you'll improve the situation for you and your group, you obtain permission from management to procure and install a workstation on your desk and replace its OS with Linux. IT drops the machine, you install the OS and enjoy much better productivity for a few months until a security flag is raised in a distant location and you're hauled in for an interview with HR and your boss, who now claims never to have given such approval. Back to the VM no one cares about. You get a writeup and final warning, and because the economy is going to hell anyway, you stick it out, and things unexpectedly change for the better. Your boss quits, and everyone forgets about the writeup. Years later, someone decides it's time for a Linux server push. You get tapped for that effort and can now set some policies. Its too late to help much though, since this is 2008 and this company is named Lehman Brothers. It was fun while it it lasted.
- koheripbal 6y agoCorporate IT security is always a juggling act - and it's not easy. I think developers assume those choices are made for political reasons "hey, I did something", but in reality we are often countering known mechanisms of infection propagation. Remember what happened to Sony? So we disabled SMBv1 and PowerShell - devs complain. Then we see someone in accounting installed a fake version of Adobe something - so we prevent software installs in that department. Then a VP forces us to give him a "dev-mode" OS without restriction and subsequently gets a virus that brings down his department. ...so we have to then role those restrictions to everyone. ...and, you're right, we don't pay much attention to devs setting up VMs and tunneling around firewalls, because the vast majority of risks we combat don't use those methods. But once they do, yes, we'll lock them down too. (and VMs are becoming more common in malware space, fyi).
- Redoubts 6y ago
- mb_72 6y agoOne place I worked - the main electricity supply and management company for a certain state and certain country - I didn't have admin rights to my own machine, and had to put in a (paper) request for any software that I needed to install to do my job (as the image started as the same image used by someone who would only need Word, email etc). I didn't know exactly what tools I needed, so it took - seriously! - some few weeks before I could actually do any work. My job was supporting, enhancing and debugging internal tools used by engineers. Upon arrival I was handed a USB key with ZIP files of the source. There was no source control. I initiated a request and the political process necessary to 'allow' me to use source control and setup an SVN (this was quite a while ago) server. I quit in disgust a year later, and the first meeting to discuss whether I should be allowed to use SVN or not was scheduled for the day after my departure. My last work action there was to leave a note on my desk advising my replacement where the most recent ZIP files of source were stored. None of the above was explained to me before I was employed, and I've since learned not to assume, and explicitly ask "Do you use source code control?" and other basic questions at interview / contract negotiation stages.
- Viliam1234 6y ago> I've since learned not to assume, and explicitly ask "Do you use source code control?" So did I, but when they told me "Yes", it often turned out to mean "Yes, but only in a few departments; not the one you will be working at", and in one case "Yes, but we only use it as a backup system for the completed project, not during development". Asking the right questions is important, but it's only half of success; the other half is getting truthful and non-misleading answers.
- mattbillenstein 6y agoThe problem with this whole thing is that nobody really embraces the zen of devops (really the zen of everything) -- there should be one way to do things. Prod is something that runs in the cloud, staging is something sorta like that, but the data is garbage and nobody maintains it, and dev is whatever someone could cobble together in a bash script to get something running using homebrew dependencies -- if you're lucky. Or everyone hopes to docker-ify everything, but that's its own pile of garbage.
- raghava 6y ago> everyone hopes to docker-ify everything It's actually k8s-ifying everything (docker-ifying was 2015-2018). > nobody really embraces the zen of devops I know exactly what you mean, as am struggling to get people around me understand the value of tooling, developer delight but to no avail. Management, other non-tech teams (sales, product, Ops etc) that have learn/worked mostly in regimented setups have a long long way to go before they even start to understand what DevOps really was supposed to be - all about actionable faster feedback loops. But, faster, actionable feedback loops also bring out the the orgs's / dept's systemic rot/muck in policies/deficiencies/politics and make it visible in-the-face. That's very threatening to many who put up a make-believe fakeshow that "our stuff's all cool, that other team/dept has all the problems". Hence, all that pushback against the new or throwing the tool in (docker/k8s/cloud) and claim that it would act as deep magic to fix the fuckery happening all over. I learnt it over my exp at big, small, medium sized firms - over last 15+ yrs. Only way to get to achieve DevOps (yeah, not "adopt"; one can't just 'adopt' that) is to get CTO/COO/CFO to really really understand the value. Else, lost causes!
- pdubs1 6y ago>" there should be one way to do things." hey, nice opinion bud! it's not mine, but that's ok. I am personally open to other opinions, and open to more than one way of doing things :)
- jerome-jh 6y ago> If you're hiring, be forthcoming about the dev experience Now there are so many applicants for one job, I am sure they will. Especially if the dev experience is miserable.
- invisible 6y agoI'd love to hear if anyone has an example of a great dev experience/environment/workflow? It seems like they are all hacky or bad in one way or another. Some general things I'd quantify as making a "good" environment: - The time from saving a file and seeing the change should be low - Running the environment is complete, just like production/staging - Database schemas are reproducible and in a single location - Intermittently issues due to differences between machines are nonexistent - A debugger can be hooked up to the process or otherwise remotely debugged via network - Very little configuration necessary - Ability to use third-party APIs for integrations and infrastructure dependencies - Any crons or async tasks are easy to run - No other arbitrary limitation on access that get in the way (it is just audited if necessary) - [If allowed] production data can be pulled in for testing
- mattbillenstein 6y agoI've built it a few times for smallish startups. 1. Build tools/dependencies from source on macOS and Linux 2. Use an OS agnostic init (supervisord) 3. Automate machine setup and deployment in something like Ansible or Saltstack This allows you to bootstrap a bare macOS or Linux system with a smallish shell script and run all the necessary services in the same way they'd run on production. You have very little specialization between production and dev -- like in the cloud you just run Postgres, you don't use RDS on Amazon. Coincidentally this makes supporting multi-cloud or bare metal very easy since you don't use anything that's really special in any cloud. Like I would run our main thing on ec2, but CI/dev workloads on Linode where I can get cheap VMs. Most of the piecemeal automation - migrations, cron were just tools written in python - some were daemons, others just scripts that ran during a deploy.
- phyzome 6y ago« This way, if it sucks, people can see it as a warning and stay far away. » aaaaand that's why they're not forthcoming, yes. -.-
- bonfire 6y agoWould you seriously leave an interview process if the company develops differently than what you are accustomed to?? can't you, say, adapt?
- alexeiz 6y agoCompany M: you're given a machine. In fact, multiple machines. It's your job to setup them properly, install the OSes that the company provides (sometimes they are betas). You've got full admin access to your machines, of course. You sync the source code repo. It takes half a day, but you get all the dev tools with it. You run a full build. It takes another several hours. Hooray! By the next day, you're ready to do development work, run tests, commit code.
- 8589934591 6y agoMy company isn't that big. I work for one which is a vendor for a bigger one. I was a fresh grad when I joined. The clients complained about echo during skype calls. We didn't use headphones at the time and we'd have to constantly switch between mute and unmute. Some (senior) people didn't bother muting themselves unless someone superior to them was present on the call. I talk to my manager, get an approval for a headphone and email IT. IT refuses. Since I persisted it got raised to the IT head. IT head calls me in for a quick chat and told me we cannot cater to the whims of every employee. I got told off that I should know my place as a new grad. I offered to use my own headphones, but requested an adapter since the mic/audio were on separate ports. Adapter costs Rs.300 ($4) on amazon. Headphones cost Rs.1000 ($14). Now my keyboard and touchpad sucks too. Overall I have invested more from my own pocket to work with this brick. What I learned from talking to others was that they just recycle laptops and give to employees. Say Emp N and Emp N+1 complain about laptops, they give them laptops which belonged to N-1, N-2. Basically the last laptop they received goes to the next person. And yes I am stuck with a 4GB i3 Windows 7 (no budget to update windows) with an Ubuntu VM. Good luck running docker on windows. Not to mention the daily rite of passage (BSOD) after 10 mins of booting up.