4,724 karma · joined November 10, 2011
http://andrewritchie.info
ritchiea@gmail.com
And if you do use agencies ask for advice/coaching through interviews from day 0.
EDIT: based on the first reply I got I want to revise this slightly. Don't go into too much detail about who rejected you or how many times. In fact keep the details short but make it clear you think interviewing is a weakness they should coach you with
Sadly the UK are not the only European country with these types of aspirations. My best guess is that there are tightening relationships between the tops of the political and business classes in many countries. And they are beginning to realize they can engage in unmonitored corruption while running disinformation campaigns to cover their tracks. And then running for re-election on populist rhetoric to maintain the appearance that they are the opposite of their actual policies.
This happening on both the left and the right. Though I would say on the right the problem is considerably worse (this may just be my personal political bias, take it for what you will). The few people that are paying attention to this kind of misbehavior are the extremely informed. Who of course are a minority. Society is stratified across the globe and the very poor and poorly educated are being taken advantage of.
Most politicians don't believe they are engaging in corruption. But there are a limited number of government contracts to go around, the contracts are increasingly valuable, and on the demand side there are a growing number of humans and companies. At some point you might have half a dozen or even dozens of "qualified" looking applications for a government contract. And the procurement people within any given government usually end up picking between the many possible qualified looking applicants by the fact that someone has a social tie to the inside.
The only possible solution I can think of is accepting some type of randomization in the assignment of government contracts. Because proximity to power is way too important right now. And the politicians don't feel like they are engaging in corruptions they believe they are giving their friends who have risen through the meritocracy a deserved opportunity. There is some truth to this but the problem is their friends aren't the only people who have earned similar opportunities.
And Heroku was never a great solution once you reached a reasonable level of scale because it became expensive and your Heroku infrastructure became subject to unexpected issues in resource sharing within shared instances. Shared instances are a problem across all cloud providers but pure-AWS-sans-Heroku is easier and has more options to switch to private instances.
It helps a lot to have an affluent background when you start a tech company because, like a lot of other risky endeavors, even though the potential rewards are enormous it's a lot less initial earnings than just joining a company as an employee. And you worry whether if your company doesn't take off and get its next round of funding in a few months if it'll be harder to get that first job. And you may be poorer than you were pre-startup.
Not to mention that poorer kids might not ever see starting a tech startup as an option. Both because of the biases in which founders get funding and because they may culturally never have the option floated to them.
The problem usually isn’t the library itself and that’s true of GraohQL. It’s the cargo culting of GraphQL & other new tech that might be unnecessary or overengineering for your specific use case.
I loved learning Haskell in university. It's an interesting language. I came into intro CS class thinking I could already program & the class would just be about sharpening my axe. Then my intro CS class started with Haskell which threw my brain for a loop and made me think about programming completely differently. That was a great intellectual experience and good for my long term thinking.
Haskell also seems like an incredibly impractical choice for a production language that only a stubborn purist would make. Of course the last bit is purely opinion, your experience may vary.
And I'm not really arguing against vetting your dependencies or improving dependency management. I'm just saying in the real world, that if I made this particular imperfection in software development practices my hill to die on at work, there's a 99% chance it is not good for me or my career. So my options are, swim with the tide knowing we're doing things imperfectly, or fight an uphill battle for a more perfect world knowing that unless we avoid some major vulnerability every other Javascript developer falls victim to, there will be many eyes in my office staring over at me wondering if my extra caution is really worth the company's investment. If I keep my job at all.
I want to write great software, but to do that, I need to actually have a job writing software. And until I get a job at Google or Facebook or Amazon (none of those being places I've ever actually applied to) I am generally working in conditions without the resources to do the kind of dependency vetting we're talking about in this thread.
Do you actually get to do this wherever you work? Honestly it would be great to have the luxury of that kind of patience and time to invest in my work. But it's universally unrealistic in my experience.
This is not at all a question of "what would be the ideal or perfect scenario." This is a question of what's pragmatic and politically accomplishable in most work environments.
No one gets fired for using npm, you might get fired for insisting you build your own dependency management system because npm is insecure rather than working on your team's domain problem.
As for the first company, they paid the invoices, just were incredibly unprofessional about it. Including insulting me for "daring" to invoice them for full time work at the agreed up on rates. I got my money but they irreparably damaged the relationship.
Thanks for the advice.
The 2nd company was definitely more of a calculated risk, where I knew they had zero product & zero dev talent but thought it would be interesting to be the manager and put together a team of my own. I just didn't anticipate that after actually delivering, shipping and hiring a high performing team member (and unfortunately hiring one other team member we had to let go for performance reasons). I would then be let go rather than my contributions appreciated. Despite hearing from all sides we were on a great trajectory.
No one serious thinks Gamestop stock is worth $400+. Robinhood cut off buying at the point when unsophisticated investors were caught up in a stampede to "stick it to the man." Seems like they did the right thing.
That said, I was once a single page app skeptic but I now think React and Vue are great alternatives to HTML/templates that compile to HTML if you have a reasonably complex front end. Pre-React and Vue, in the Angular.js/Ember.js/Backbone era, SPAs were not in a stage of maturity that made it simple or optimal to use them as a primary front end. Today I'd say for a complex FE go ahead with React or Vue, if you have a very simple FE, definitely consider HTML/template-to-HTML as a serious option.
I wouldn't say adding a service, framework or external library to your stack is as divisive for code readability as being a big fan of utilizing design patterns.
In my experience there is at least a faction of developers, myself among them that have a disdain for "design patterns thinking." Which I would describe as: spending a lot of focus learning various design patterns, then while coding actively looking for places where those patterns could be put to use.
In my opinion this is an anti-pattern similar to overuse of abstraction in simple cases before an abstraction adds to the understanding of the code itself, rather than makes the code more complex.
I've seen lists of common design patterns dozens of times, and occasionally recognize several of them as useful examples of things I've actually done in the past or my colleagues have done in the past. But it seems to me "learning design patterns" as an end is encouraging the destructive side of design patterns where you learn something and eagerly look for a use for it.
When are design patterns useful? And how are they useful?