228 karma · joined August 6, 2012
[ my public key: https://keybase.io/w0rddriven; my proof: https://keybase.io/w0rddriven/sigs/UYULSVOXnPzWFBuzmdbJrVZDyVzQoyMiOrSDHtVXx8A ]
I'm more of a fan of the Ruby syntax and the Phoenix framework is definitely a breath of fresh air. My next web project wants to be with Elixir but for a generic cross platform cli program, I'm eager to learn Go.
As I've dived into the nitty gritty of both, I find it seems you can get more out of git because it just exposes those internal structures unabashedly. I believe it's those guts that make git as powerful or as hard as it currently is on UX. To use a loose analogy, git feels like man pages: rocket science speak but incredibly dense whereas Mercurial is like a very lightweight howto site. It's easier to transition to Mercurial but once you find you need to dive deep, it's just about as complex as git. Git seems to throw you in the deep end immediately which I do think is more of a blessing than a curse but there are times when it doesn't quite feel that way.
I feel like Atom or Visual Studio Code are good pseudo IDEs but a lot of people hate the Electron tax. I spend most of my day in PHPStorm (ugh php) but I have both Atom and VSC installed primarily to understand the life in between a seemingly more 'dedicated' IDE like PHPStorm over this in between both editors seem to fill. They're primarily editors with IDE layers on top and for the price of $0 it's a good place to cut your teeth if you can stomach the tax. The JetBrains IDEs do have generous evaluation periods but I don't think you would be in an extremely comfortable place at the end. It took me a little more than 30 days to become as intimately familiar as I am now but like the bigger Visual Studio at my last gig, there's parts of PHPStorm I just don't touch and maybe never will.
This is probably not the best answer but there really isn't a one-size-fits-all kind of transition either. I think the most rudimentary concept that sold me on a proper IDE over an editor was syntax checking. Editors like emacs or vi may have better support for that than Coda or Notepad++ but knowing the script won't compile immediately vs deploying broken code and finding it there has more than paid for the difference. The most powerful feature of PHPStorm for me is setting breakpoints and having the Xdebug integration give me a peek at everything visually. There are still cases where I debug with echo/var_dump statements but if I can attach the debugger, I can do so much more. The likely biggest draw for a JetBrains product is the refactoring capabilities. Again, some editors likely do refactorings really well but when my refactoring in Notepad++ involved just find/replace it really isn't comparable in the slightest.
I think at the end of the day productivity gains through workflow changes are something I'm constantly looking to adjust. Even though I'm very happy with PHPStorm, I have VSCode and Atom primarily as a means to reevaluate my understanding on an ongoing basis. I realize for a lot of people "if it ain't broke, don't fix it" is perfectly acceptable though and if you feel really productive, chances are you are.
This echoes my response when I feel undervalued. The first year I give at least 100% to assess my impact compared to my peers. If I'm leaps and bounds ahead I dial it back _significantly_ until I just barely exceed the expectations set for other people. If they can be there for x years working at such a slow pace, I don't need to make them look considerably worse, especially if my compensation below market rate. Just for reference, so far I've yet to make market rate for a base salary. Things like working from home on Fridays are a perk that does have a monetary and mental value but perks rarely put food on the table by themselves.
In an ideal situation, companies would be able to spot your max performance, watch it decline and immediately work with you to rectify it. Maybe you picked up a new meth habit but chances are if you're like us, you're merely adjusting your output to match their perceived monetary input (however truthful that may be).
This is not to say that I don't work with my peers to try to enhance their productivity levels. I don't feel I'm a unicorn by any means, I'm just really good at being really lazy and awkwardly enough using proper tooling means I can be both lazy and extremely productive at the same time.
I set out on a mission to recreate the production environment as closely and as primitively as possible. Instead of the full 16gb legacy database for instance, I only dumped the structure and added rudimentary test data. Now my primary workflow involved local, manual testing but the feedback loop was orders of a magnitude faster than waiting for subversion changes to get deployed. Recreating the production environment 1:1 was wrought with large annoying challenges.
Barring full conversion there's various techniques that required less effort. Using scratch scripts and running the local server in phpstorm helps but stripping code down to run locally can be cumbersome. Another option I took was getting lightweight functions working in an environment like http://sandbox.onlinephpfunctions.com/ and slowly integrating them into local scratch scripts or production.
Fortunately, the future at the company involved selling Laravel as a viable option, which makes everything so much easier. I'm a big proponent of frameworks or packages over custom code or NiH as they often soften edge cases or work around quirks in the language.
The existing ISP infrastructure is not something I opted in, even though I fortunately get to enjoy gigabit speeds via AT&T. I already have "buyer's remorse" but can I be given a clause, a lot like our "lemon laws" that state that if they, free from the shackles of regulation, make things arguably worse for everyone involved, that we can get some of that money back? I feel like there needs to be some sort of "upper bounds" to deregulation that to use a metaphor says something like "We'll give you the Wild West but it's still illegal to murder people." in whatever highly damaging thing "murder people" turns out to actually be.
While 3 weeks sounds like a very short evaluation period, there very much could've been an arrangement like this. I hesitate to use the word 'unethical' primarily due to how pervasive Hanlon's razor really is. She gave them 3 weeks of seemingly extremely productive work and gave them a taste of the caliber of developer they could hire if they just threw enough money at the problem but it sounds like they didn't learn. Every experience like this is a chance to learn something but some companies just fold churn into the equation without properly evaluating what they could do to prevent it. Usually its those companies that think developers are just equal cogs capable of performing all the same tasks at the same magically high productivity level. They rarely learn that you sometimes actually do get what you pay for.
There about 7 packages listed there. Each github repo has at least one closed issue about this change, likely spurring the article. Knowing the fix of 'pinning' my platform to 5.6 is such an easy fix but what I had to Google to get there absolutely was not.
I feel in this instance that the concept of a platform dependency like PHP is or say the underlying Node.js engine is wildly different than an upstream library. The solace I get with node is often the jump from say 4 to 8 breaks a ton of shit. The jump from PHP 5.x to 7.x breaks exactly none of my code. I believe if it had I wouldn't have jumped to it so eagerly, even though PHPStorm does a wonderful job at keeping me from using 7.x things when I specify a project is 5.6.
I ultimately recognize now that I am the one that put myself in this situation but I feel like library maintainers could do a better job to prevent me from shooting myself in the foot. I know now to pin to very specific major.minor numbers at the very least and proposed that Laravel add the platform config flag to save other similar developers from making the mistake. The problem wasn't that just Laravel pinned to 1.* but that doctrine's own common package did it as well. If the platform config option didn't work another choice was to pin the specific version of upstream packages in Laravel's composer.json. That version of the fix feels like I'm ignoring most of the benefits composer was supposed to give me in the first place. I know the node ecosystem can suffer a similar fate just as easily but it feels really dirty to be in that situation. I start to wonder if I shouldn't be using those packages at all.
It's hard to look this up for me, so forgive me, but my assumption is Disney is not one of the big companies that can control the internet. I don't believe BAMtech has peering such as Netflix has caching servers like Youtube so I think this would be very interesting to watch closely.
My personal feeling is that if net neutrality is completely abandoned, Disney has more than enough money to print its way to making this work. I don't know if it'll be good or bad for them to be beholden to the same restrictions as other streaming services or if they'll magically become exempt. With all the properties in Disney's possession now I'm very much reminded of the phrase "too big to fail" but I'm very interested to see how this plays out. I'm hoping for a net positive for everyone involved but lessons of the past have me expecting the worst.
I'm currently employed at a place that is relatively completely opposite of requiring a log to be submitted to management. Even so, there is still passive-aggressive chats about being to work on time and the total number of hours per week.
Whenever I make myself feel shitty for having a rough time making it into the office I have to remind myself that this isn't a factory position where working 30 more minutes means I produce 5 more widgets. Every single day is a unique work experience where I may work well beyond the time I should leave or I'm hit with all manner of distraction that makes it rough to accomplish anything other than surfing HN. Having (project) management types that have a similar work experience likely should produce a little more empathy than I feel is conveyed by my peers. I have to assume that being primarily driven by meetings and time-delimited tasks makes it difficult to see my perspective, even if there is some venturing into the nebulous side of things.
Having something like an animated gif or screencast that walks through the process would be invaluable. It would also likely be good to have a privacy policy. I've been evaluating things like this and if I can figure out it isn't the right fit without jumping through the hoops or sharing personal information it would definitely be preferred.
I find myself in this even in a salaried position. If I'm constantly solving problems that brings the company I work for millions in revenue, my paltry salary that is lower than market rate starts to seem like a liability. I know there's a risk I'm not taking but in an ideal world I would be adequately compensated for any increase I'm directly involved with. I know we don't live in that ideal world but it would be nice to be somewhere close to it.
This is all anecdotal but at work we recently switched from marketing sites/blogs on internal infrastructure to farming them out to DO. The biggest concern with the person who manages our fleet is the security implications of handling multiple machines outside our network. In just a very minimal amount of Google fu I found a plethora of management services that do the work you're talking about on your VPS infrastructure. Some specialize in just DO but a large number are relatively cloud agnostic.
We have also just recently invested in using Laravel Forge for provisioning and it's relatively trivial to write a script that will run 'sudo apt-get update' but proper security usually requires a bit more than that. Package upgrades to major versions can sometimes cause quite a bit of havok. Having a service or team of individuals that can keep this brain power to handle your case properly is often more than worth the price to someone like me. Finding the right one is its own chore but from my limited search there's quite a lot out there to cover just how hands off you want to be.
I feel like there are a few good ideas. I personally love the idea of work related assignments but only if the result is actually measured. If I don't get the job I know I've wasted my time and I can handle that. What I can't handle is giving me a task and completely ignoring the results. What will that signal to me about day to day operations? That you'll likely ignore the very real value I bring to your organization on a consistent basis. That's a big enough red flag for me to stop everything and walk right out the door. If I'm supposed to extend the courtesy of not wasting the interviewers time I expect at least some attempt at that same courtesy.
I struggled with the right way to word it in a concise manner so "level playing field" seems more correct.
In being privy to hiring decisions for other developers, I believe your assessment is correct. I feel like everything becomes a stab in the dark to some degree. That my assessment of my worth and their assessment of what they're looking for rarely match up as developers by and large seem to never quite fit inside the job description box. I see that as a good thing but the pattern of seemingly properly understanding your worth as you're walking out the door becomes tiresome the third or seventh time it happens.
I do feel like this becomes almost an artform. Small but concise PRs aren't that easy in some situations and smaller PRs that address large refactoring in pieces seem to win over one large PR that is difficult to parse mentally. What that looks like varies by project or organization and I feel like one size definitely doesn't fit all.
My understanding may be seriously flawed because I view salary negotiations as nowhere close to a zero sum game it should at least attempt to aspire to be. From the get go, everything is entirely skewed in the employer's favor and this just feels like more ammunition.
My close friend and I shared the train of thought that if a company based in SF has $x for developers, while they can likely get more remote developers for the total at their COL decrease, splitting some of the difference with those employees would go quite a long way. Employees likely wouldn't see that total compensation range anywhere else in their current location and that difference becomes its own motivator, at least for someone like me who has struggled to reach market rate. It becomes a double edged sword when that offer is vastly above market rate as finding another job in that range would be increasingly difficult. Employees would likely be way more tempted to stay well after burn out sets in because what should be closer to the norm becomes more of a golden ticket.
If the test was updated for the web and native in a single set of data points, some companies would incorrectly score low because they focus on one or the other. I think it could use some kind of polish after 16 years but only to remove very narrow interpretations that derail discussions like this.