- This topic has 10 replies, 1 voice, and was last updated 3 weeks, 5 days ago by zmitic.
- October 27, 2020 at 11:04 pm #936dbawesomeParticipant
Hello there, throwaway account here (I’d rather stay anonymous on this one).
Recently I’ve been interviewing with a company (which I obviously won’t name, but it’s a former startup which has grown to be quite sizeable) for a PHP developer role, and I was quite excited at the prospect because from the outside, they have a cool product and work with cool customers. I consider myself to be a senior (perhaps early senior, if you’ll allow me) as a PHP developer. By no means am I perfect but I believe I can get by and produce decent and maintainable software.
I’m at a point in my career where technologies are almost secondary to company values and processes, so that’s what I was trying to figure out during the interview, that’s when I started noticing some red flags. I would expect from a mature company to have solid(ish?) processes like testing culture, mandatory code reviews, and reliance on up-to-date and mature technologies, instead I found none of the above. I had a strong “amateur” vibe, people whose job is to hack things together instead of properly designing software.
After the interview I was given an assignment, and that made the company outlook even worse. Instead of asking me to design something where you can actually understand one’s skills, they asked me to basically implement from scratch something in the security problem space, specifically doing a ton of work which in normal circumstances I would consider borderline wrong doing. I consider the specific assignment to be a bunch of solved problems which you should know on a high level but realistically you should not know so much to be able to build something from scratch–unless that’s the job description, and in this scenario it isn’t. To be honest I would never dream of asking a candidate something like that, as it thoroughly misses the mark in trying to understand a candidate’s skills.
I perceive a mix of NIH syndrome and lack of established quality processes and guidelines. I’m really struggling with this, because I can clearly feel a need for someone to establish good practices and I could see myself becoming that person (also advancing my career in a meaningful way), but on the other hand I’m extremely worried that stuff like all of this might be intrinsic to the company, so my time there would be hell and I wouldn’t be able to make any significan contributions.
To be honest I’m quite tempted to tell them I won’t be working on their assignment as I don’t believe it to be an accurate representation of what software development should be like. I’m aware that sounds quite cocky, but I feel like I need to start clearing up my doubts surrounding the company, and their reaction to such bold claim would probably be a good indicator either way.
What’s your opinion on the topic? Have you ever seen obvious red flags from a company during the interview process but decided to go forward and take the job anyway?October 27, 2020 at 11:04 pm #937pfsalterGuest
Ok so I’ve been in situations where I’ve seen red flags and just walked away. There was one company that I interviewed with in 2016 who were still using ZF1. When I asked them what their strategy was to move off ZF1 as it’s no longer actively developed or supported they looked blank. Major red flag.
As long as you can work out that the company wants to improve, take the job. If it’s going to be your job to convince the company that they need to spend time on testing/observability, that’s not the job of a Senior Developer, that’s the job of a CTO or another Managerial position.
I’d suggest for you to be honest, point out the problem with their project they’re giving you and tell them exactly what you would push for if they hired you. If they accept this, take the job, otherwise run. There’s always the risk that they’ll say ‘yes’ but turn around in 3 months and you realise they never had any intention of letting you move the company forward, but you should be able to work this out before the probationary period runs out. A few months of taking a salary which you can explain on your CV as ‘they lied to me in the interview’ isn’t too much of a problem.October 27, 2020 at 11:04 pm #9382013-11-01Guest
[libel disclaimer] Everything I state is factual and does not have the intent on demeaning the corporation, only three people in the company: The CTO, CIO and CEO who allows it.
When I joined US LawShield (40 miles from most Houston web devs and 26 miles from Downtown) as their Chief Technology Analyst / Team Lead in February 2019, the following conditions were there:
1. 9 PHP developers, 7 with 10+ years experience, 1 with 3 but 10 years C++, and 1 with 2 years, hereby known as “The Junior”. Plus me, 21 years of PHP at the time, 24 total (started at 14). Total 10.
2. As of Feb 2019, everyone coded on `master` directly and there were consistent and persistent problems of people overwriting other’s code and not realizing it until something blew up in QA or Production.
3. The CTO had intense antipathy towards issue tracking and very often publicly and privately criticized me for maintaining developer issues in GitLab. The entire IT org kept track of issues solely by a) MEMORY and B) a daily, 1 hour long “stand-up/sit-down” where everyone painstakingly orally reiterated what they were going to do and needed to get done.
4. The CTO almost weekly publicly/privately berated me for logging BUG reports in GitLab and even for fixing critial Production issues (such as order flow problems) because, in his words, “It makes IT look bad.”
3. **No one [but The Junior] knew what NPM was. No one had ever heard of it.**
4. **No one [but the Junior] knew what Composer was and some guy said, “We don’t use Docker here. and another guy said, “What? like a music composer?”**
5. Mr. I-Have-15-Years-PHP-Experience did not know what an Interface or Abstract class was. In fact, none of the team did.
6. No one except The Junior had ever before heard of the concepts of 1) automated testing, 2) Code Review, or 3) Git Feature Branches.
One guy felt completely overwhelmed and quit the first day.
On Day 3, The previous Team Lead told me “You’ve done more positive change here in 3 days than I’ve done in 7 years” and proceeded to walk out the door and he never came back. He never even told anyone that he had quit.
Unfortunately, 30 minutes before, he had deployed over 40 Stored and other SQL changes Procedures to the Production Database (many hundreds of tables) and Production was crashing. It was a Thursday and I worked all night and weekend trying to understand and diff the schema because literally the entire team except The Junior, the AWS guy and QA bailed on me.
Within 3 months, I had implemented mandatory code reviews, feature branches, micro services for all new development using Laravel/Lumen, PHPUnit, Codeception. Within 6 months, I had automated their Zuora workload, dockerized their apps, and greatly shaped up the code.
Mr. Pragmatic, the guy who started a lot of the code base, quit the very day I started implementing code reviews, stating that he’d been a developer for 13 years and had no intention of allowing someone to critique his code every day. He made his speech and walked right out the door.
The developers fought me every bit of the way. Over 3 months of my time was dedicated solely to rewriting the code of Mr. I-Have-15-Years-PHP-Experience, who had a quite beligerent attitude.
In August 2019, he had spent over 4 weeks trying to build a NeverBounce API client. I got extremely exasperated at reviewing his pieces of shit, so I made a NeverBounce API client in about 45 minutes and recorded + timelapsed it for proof.
I asked him how long he thought it should take “a highly skilled engineer” to make the simple NeverBounce API client and he said, “2 weeks”. I then showed him how I did it in 45 minutes and that this was “your come-to-Jesus moment”, and from that day forward, at least he never showed me extreme arrogance and combativeness.
By August 2019, The Junior (who was, as you can imagine, by far and away the 2nd best coder there) left for a much better job elsewhere.
The job changed my mental state, particularly due to me having to hand-hold Mr. I-Have-15-Years-Experience virtually every day. From June through October 2019, I had done literally 95% (all but 1 PR) of his work. I had lodged 3 formal complaints to my boss (the CIO) and the CTO.
Myself and 2 of the devs (5 total at the time) approached the CEO in late October 2019 and expressed our grievances, particularly over persistent delivery death marches, primarily due to overaggressive promises by the CTO and the three of us having to spend > 50% of the time rewriting the code of the other 2.
On 4 November 2019, they called me into the meeting room, immediately following the daily 1-hour-long standup. When the woman who I found out was the new HR woman told me I was being let go, I just started smiling so big, even laughing.
The CIO, whom I considered a friend, hung his head low and wouldn’t look at me.
I told her, “This is fantastic!! This job has literally changed my personality, in terrible ways! I had started to dread working here for an ENTIRE YEAR, and that’d just be in 3 months, but I’m not a quitter so I probably would have stuck through it all. Thank you so much for forcing my hand -and- letting me go before Thanksgiving!”
In fact, that was the best day I’ve ever worked there. The one where I only spent an hour there and knew I’d never be back.
Well, I immediately warned all the competent people there that their days were numbered. My apprentice found a job relatively straight away somewhere else and bounced before December.
In January 2020, they had a major purge that removed, I believe, 33% of IT and took with it every single person I respect except the CIO and the H1b sysops guy (who’s awesome). They were down to 2 devs.
In early February 2020, the only guy with seniority (C++ guy) quit for greener pastures. Only Mr. I-Have-15-Years-Experience remained. He’s still there. He has somehow managed to get his wish of, once again, being the sole developer at a corporation.
Here’s a [great review](https://www.indeed.com/cmp/U.S.-&-Texas-Lawshield-1/reviews/extremely-unprofessional?id=409b28b352ed6936) of their’s on indeed.com:
> So I was sitting at my desk, and I realized, ever since I started working at Texas Lawshield, every single day of my life has been worse than the day before it. So that means that every single day that people saw me, that was the worst day of my life.
That’s how I felt, too, and it’s word for word verbatim from [Office Space (1999)](https://youtu.be/Q9eSOMWRmAw?t=73).October 27, 2020 at 11:04 pm #939warren_streetGuest
If you’re lucky, this will be the sort of job where you get to teach them how to do things properly. You’ll get the credit you deserve. However, there’s a real risk that they simply won’t want to listen, because they don’t want the upheaval and expense of retraining all their devs and redoing all their processes. It depends on how receptive the management are.
I’d be tempted to have a confidential chat with whoever’s recruiting you, and tell them your concerns. You’ve got notthing to lose, frankly, because there’s a high chance that if you take the job as it currently stands you’ll hate every minute of it.October 27, 2020 at 11:04 pm #940superdav42Guest
I’d recommend share your experience on the company’s Glassdoor page. Most recruiters monitor the reviews there so they will likely take your feedback into consideration. Glassdoor is also a great resource to see what a company’s culture is like.
I’ve learned recently that one should look at much more than salary when choosing a place to work so it’s good to be asking these questions.October 27, 2020 at 11:04 pm #941greenville008Guest
I have had plenty of interviews of companies that didn’t meet my standards. Just politely decline them and continue searching, no big deal. There are lots of companies that don’t value quality, many developers are okay with that. Just avoid them.October 27, 2020 at 11:04 pm #942oojacobooGuest
It’s a two way street, treat it like that. Your intuition sounds good to me, just be honest, calm, cool and collected.October 27, 2020 at 11:04 pm #943lordelphGuest
I’m interviewing at the moment, and while I’ve set small assignments in the past, this time I’ve asked each candidate to work on their own pet project while I watch and ask questions. It didn’t have to be php – the point was to see how well they could communicate ideas and explain their decisions. At the same time, I’m seeing how well they use tools, how adept they are at troubleshooting / bug fixing. The candidates feel comfortable (well, as comfortable as you can in an interview situation!) because they working on something they have some familiarity with. I’ve learned far more about each candidate this way than I ever have with assignments I’ve set myself.October 27, 2020 at 11:04 pm #944MattBDGuest
I once interviewed with a company and it quickly became apparent that I didn’t want to work for them.
They’d built their entire system using offshore developers, which immediately struck me as potentially problematic. The code quality was more likely to be bad, but it also meant they saw the developers as an easily replaceable resource.
Also, I didn’t like their business model. They were essentially payday lenders to businesses.
The recruiter asked me to phone him afterwards, and when I did I told him unequivocally that if they offered me the job I wouldn’t accept it. Didn’t stop him keeping on phoning me up to try and offer me more money or different terms even after I’d accepted and started another role.October 27, 2020 at 11:04 pm #945Flibbertygibbety22Guest
From your description, it sounds like there could be a cultural or quality problem. Perhaps this is why they’re looking to hire a more senior person like you, although they might not admit to that, or even consciously realise it. Sherbie’s First Law of Consulting is very relevant to the hiring process – “There is always a problem, whatever your future employer says.” It’s why you’re they’re hiring in the first place.
Assuming your fears are correct, would you want to try to fix the problems? Do you get on with your prospective manager and team such that you can imagine having difficult conversations productively? If not, then walk away.
If you do want to have a go, then perhaps you could mention your concerns with the technical test, and ask if you can prove your abilities in a more productive way.October 27, 2020 at 11:04 pm #946zmiticGuest
>What’s your opinion on the topic?
I have seen **tons** of incompetent CTOs, some deliberately sabotaging my interview once they figure I know more. I would submit my open-source code, static analysis, 100 million rows in <10ms… and the guy would ask idiotic questions like “what is the difference between interface and abstract class”.
Or to write some FizzBuzz or similar thing, do actual work for free… Yeah, right; it ain’t gonna happen.
>but decided to go forward and take the job anyway?
And to answer you: no. I have strict standards, never was happy with quick&dirty solutions, magic accessors… I would always feel guilty if something breaks and have fingers pointed at me, even thought it wasn’t my mistake. And with their NIH syndrome, you would have that.
>I’m aware that sounds quite cocky
Actually, if I was to hire someone, I would never even consider a person willing to do some stupid assignments.
But that again, I am kinda jerk 😄
- You must be logged in to reply to this topic.