HN user

jayhuang

738 karma

[ my public key: https://keybase.io/jayhuang; my proof: https://keybase.io/jayhuang/sigs/3v2V7An1ycGi_HxmcRZR8fJjQ0RhgS25iZEyxVHLUZI ]

Full stack web developer and consultant based in Vancouver, B.C. Co-founded Windows7Center.com and Windows8Center.com (2008~2011). You may know me from Blackhat, DefCon, and other conferences. Worked at/with a couple companies you may have heard of...

Most recently worked on satellite imagery.

http://jayhuang.org

Posts11
Comments122
View on HN

Location: Vancouver, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: Javascript (React.js, React Native, jQuery, Backbone.js, Angular.js), HTML/CSS, LESS/SASS, Git/SVN, Yarn/Bower, Gulp/Grunt, Jest/Enzyme/Selenium, RESTful APIs

Resume: https://www.dropbox.com/s/7f1ecrevl9ylob7/Jay%20Huang%20-%20...

Email: See resume

Focus on building web/mobile applications, with experience on both the front and back-end. More recently focusing on front-end work, namely working with React Native; having users happy to interact with something I've built is what keeps me motivated.

I've worked in a bunch of industries and led a bunch of fairly successful teams including: leading a team to build a major government satellite project (RADARSAT Constellation Mission), further developing an asset management system and other tools for the movie industry, attempting to build a real estate/housing application more successful than my first from a couple years back, and more.

Looking for a great team focused on building a product (or products) users love, with minimal red tape. A team that works well with each other with little in the way of workplace politics, is passionate about what they're building, alongside management and PMs that do their best to help the team and product succeed.

Location: Vancouver, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: Javascript (React.js, React Native, jQuery, Backbone.js, Angular.js), HTML/CSS, LESS/SASS, Git/SVN, Yarn/Bower, Gulp/Grunt, Jest/Enzyme/Selenium, RESTful APIs

Resume: https://www.dropbox.com/s/7f1ecrevl9ylob7/Jay%20Huang%20-%20...

Email: See resume

Focus on building web/mobile applications, with experience on both the front and back-end. More recently focusing on front-end work, namely working with React Native; having users happy to interact with something I've built is what keeps me motivated.

I've worked in a bunch of industries and led a bunch of fairly successful teams including: leading a team to build a major government satellite project (RADARSAT Constellation Mission), further developing an asset management system and other tools for the movie industry, attempting to build a real estate/housing application more successful than my first from a couple years back, and more.

Looking for a great team focused on building a product (or products) users love, with minimal red tape. A team that works well with each other with little in the way of workplace politics, is passionate about what they're building, alongside management and PMs that do their best to help the team and product succeed.

Developer on Call 8 years ago

While I agree developers should be responsible for their work, I'm very wary of "Why Developers Should Be On Call" going the way of the whole "open-office layout". Fast spreading, but abused by many companies to optimize for the bottom line without much care for anything else.

I recently had an incredibly dystopian experience around being on-call as a developer, and while I know for a fact that's not the norm, it's enough cause for concern to share my experience with others in hopes companies that choose this are held to higher standards and processes.

I joined a company in Vancouver early this year, that I will call company X. Company X is a well known name in the U.S for real estate/property search/etc. I was hired onboard to help transition a good chunk of their dated front-end code and help champion the direction of the front-end for various product teams in the company. Turns out the front-end was a giant amalgamation of a couple things: Dust.js, jQuery, bits of really poorly written React.js, all hooked up with and plugged into Node.js rendered server-side pages. An immense amount of UI bugs and regressions would appear whenever anyone haphazardly made a change to a seemingly unrelated component/page. Multiple efforts over the years were made by various people to "take the lead" on coming up with a shared UI/component library that was to be used across the various teams and products, but the components themselves were very buggy and lacked clear, consistent design patterns or input from UX/UI designers. This caused most of the teams to resort to building their own variations of similar components, with little effort to contribute back. This would continue over a couple iterations until someone else came up with the genius idea to build a share UI/component library...you get the idea. To actually develop and make changes on the front-end was even more archaic. The various products owned by the teams occupied a portion of the site, and were all hooked up by a build harness that someone had created. Only one person really knew how the harness worked, you needed to be able to connect to a specific machine to even just load the site navigation or anything, for that matter. There was a whole week or two where this wasn't possible, and productivity slowed to a crawl. Interestingly enough, the version of the harness that various teams were running were also different and out of sync. So you'd run the harness and wait some 3 minutes to test any little change, but no other pages nor products worked, so if your feature required integration with various other products, you were in for one hell of a ride. On top of this, a lot of the front-end code was written by developers that weren't well versed in building front-ends for web applications. Needless to say, the codebase was largely an entangled mess of different ideas, state management strategies, polluting of the global namespace, front-end libraries, duplicate code, hacks, and nuances. Some 2~3 years prior to my joining, the company had a mass exodus of developers -- apparently the place is rife with political turmoil amongst various directors and departments, too.

Prior to joining, I was explicitly told there was no on-call. Some 3 or so weeks after, there was talk about "testing Pagerduty". Very quickly, every developer on the product teams were required to be hooked up to Pagerduty and be on a recurring schedule. This is what that looked like for my team: 2 developers would be on-call on any given week, for 2 straight weeks. The intern, contractor, and Principal were excluded. This meant that as 1 of the 4 other people on the team, you'd be on-call 24/7 for 2 weeks every 4 weeks. How were the escalation and notification policies setup? When any error occurred, you'd get an app notification from Pagerduty, immediately followed by a text message, and a phone call. If you did not acknowledge within 3 minutes, it would text, phone, and notify again every minute until 5 minutes. At the 5 minute mark it would call the other 2 developers. No ack in 15 minutes -> Principal + Manager, next 15 minutes -> Director. My manager had 2 teams under him, and at one point he got an escalation from his other team. Saying he was unhappy would be an understatement -- a large number of hours and meetings over the next couple weeks were put in place to come up with a plan to make sure it never happened again and to keep people accountable.

Frequency of on-call rotation and overly aggressive escalation policies aside, there were other major issues. Traditionally, the products/services were all part of one large monolithic application. At some point in the past 2 years, there was a big push towards microservices. However, there was no API versioning, no proper logging or much ability at all to track where an error originated from. Despite using microservices, deployments were a coordinated effort every Thursday, along with code freeze and multiple rungs of approval from PMs to Directors/VP. Unfortunately, the team I was on was in charge of the CRM portion of the product, which was the most commonly used feature and had many integrations with other teams. This meant that for many teams, their errors would only bubble up through our front-end, where Pagerduty would be triggered for our team. In order to make the alerts stop, there were a number of hurdles. Firstly, there was no way to snooze some of these alerts as they weren't identified as identical errors even though they were. Secondly, locating the root of the issue was often extremely difficult, between the broken build processes and fragmentation. Thirdly, as APIs weren't versioned and deployments were done once a week as a concerted effort, fixes would not land until at least the next week, at best.

There were multiple times when I was on-call that I'd be woken up multiple times at incredibly inconvenient times: 2am, 4am, 5am, any day, didn't matter. Pagerduty bombardment came frequently. One day in particular I was at my desk trying to get work done and my phone went off some 13 times in 1 hour, all first alerts, and for the same issue. The cause? One of the teams was in charge of maintaining a set of APIs around Twilio, and pushed an update that caused constant errors everytime someone made a call. Obviously, this surfaced through our team instead of theirs. There was no rollback or anything to address this immediately. After tracking down the root cause and making the team aware, they had to prioritize the issue so it could get a resolution. The fix took just over 3 weeks, during which time all our team could do was put up with the pages and dismiss them.

I'd expressed concerns around how Pagerduty would be put into place prior to all this happening, and during. Throughout, the response from management was very clear: tough luck, deal with it or get out (in more words). Multiple members on both my manager's teams (amongst other teams) expressed discontent and frustration, many talks were had, and all fell on deaf ears. To top it all off, there was zero compensation, both monetary and time off. Myself and another colleague left, yet another transferred to a different part of the company without Pagerduty, and now another mass exodus is in full swing. Even the new contractor decided to get out well before his 8 months was up.

Overall it was a horrid experience, an incredible waste of everyone's time, productivity, health, and money. I'd hate to see this type of paradigm proliferate in the industry without due diligence and care around the whole practice. All I have left to show for it is my body in a constant state of anxiety, as if I'm still on 24/7 Pagerduty.

Front-end Developer

Location: Vancouver, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: Javascript (React.js, React Native, jQuery, Backbone.js, Angular.js), HTML/CSS, LESS/SASS, Git/SVN, Yarn/Bower, Gulp/Grunt, Jest/Enzyme/Selenium, RESTful APIs

Focus on building web/mobile applications, with experience on both the front and back-end. More recently focusing on front-end work, namely working with React; having users happy to interact with something I've built is what keeps me motivated.

I've worked in a bunch of industries and led a bunch of fairly successful teams including: leading a team to build a major government satellite project (RADARSAT Constellation Mission), further developing an asset management system and other tools for the movie industry, attempting to build a real estate/housing application more successful than my first from a couple years back, and more.

Looking for a great team focused on building a product (or products) users love, with minimal red tape. A team that works well with each other with little in the way of workplace politics, is passionate about what they're building, alongside management and PMs that do their best to help the team and product succeed.

Resume: https://www.dropbox.com/s/n68ufzc8wxv937o/Jay%20Huang%20-%20...

Email: See resume

Location: Vancouver, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: HTML(5), CSS(3), Javascript (React.js, React Native, jQuery, Backbone.js, Angular.js), LESS/SASS, Git/SVN, Bower, Grunt, Protractor/Selenium, PHP (CakePHP, CodeIgniter, SlimPHP), Java, RESTful APIs, MongoDB, MySQL, MSSQL, Oracle, HANA

Focus on web development technologies, with experience on both the front and back-end. More recently focusing on front-end work; having users happy to interact with something I've built is what keeps me motivated.

Recently, I've led a team to build a major government satellite project (RADARSAT Constellation Mission), further developed an asset management system and other tools for the movie industry, and am now attempting to build a real estate/housing application more successful than my first from a couple years back.

Looking for a great team focused on building a product (or products) users love, with minimal red tape.

Resume: https://www.dropbox.com/s/n68ufzc8wxv937o/Jay%20Huang%20-%20...

Email: See resume

Location: Vancouver, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: HTML(5), CSS(3), Javascript (React.js, React Native, jQuery, Backbone.js, Angular.js), LESS/SASS, Git/SVN, Bower, Grunt, Protractor/Selenium, PHP (CakePHP, CodeIgniter, SlimPHP), Java, RESTful APIs, MongoDB, MySQL, MSSQL, Oracle, HANA

Focus on web development technologies, with experience on both the front and back-end. More recently focusing on front-end work; having users happy to interact with something I've built is what keeps me motivated.

Recently, I've led a team to build a major government satellite project (RADARSAT Constellation Mission), further developed an asset management system and other tools for the movie industry, and am now attempting to build a real estate/housing application more successful than my first from a couple years back.

Looking for a great team focused on building a product (or products) users love, with minimal red tape.

Resume: https://www.dropbox.com/s/ndnyqdr6phpoda4/Jay%20Huang%20-%20...

Email: See resume

I'm actually of mixed origin (half Caucasian/Asian) (:

I was born in Taiwan, so I assume the exposure was there, at least from the staff at the clinic if not anything else. That said, my first language was English as we came to Canada immediately after my birth. English was the language at home, and while I had a few Asian classmates, all of us only spoke English, and there weren't many immigrants from Asia (mostly Taiwan/Hong Kong) at all. So despite exposure at birth, hearing Mandarin for me at the time was much like hearing someone speak Spanish or Russian now.

In fact, I had no interest in relocating to Taiwan and losing contact with my friends. I'd be lying if I said it was not hell; the school administration strongly suggested I be put in kindergarten so I could learn the language from the beginning just like the locals, but my mother insisted I be put in 5th grade, where I belonged. It was a major hit to my ego, to go from top of the class throughout my young life, to a bottom feeder. It was also a culture shock to many kids to see someone "white", so bullying was a huge part of my life there, but I digress.

Being forced into an environment like that is incredibly stressful, but I can't say it doesn't work. I'd say it took about 6 or 7 months before I was consistently not the bottom performer in class, and another year or so till I was consistently top 3.

So while there was technically some exposure, and probably some learning going on in my infant brain, none of it was apparent to me.

The easiest way to learn a language is simply to put a child in that environment, an environment where they have no other option but to learn. Granted, it's can be immensely stressful, but having been in a similar situation, I can attest that it works.

I grew up in Canada my whole life, but was taken to Taiwan towards the end of my elementary years and enrolled in the normal school system there without so much as knowing the alphabet. Spending 3.5 years there allowed me to pick up the language fluently, at a fluent, accent-less level (reading, writing, speaking, listening). While there I also learned "Taiwanese" at a fluent, accent-less level while visiting produce and night markets.

Now when I interact with Mandarin speakers in Mandarin, they assume I grew up in Asia, and vice versa with English.

On the flip side, many Asian friends who grew up here attended Saturday Chinese schools, and although it helps allow you to communicate on a basic level, most hate learning Mandarin, and thus fight it. Speak with classmates in English the second the teacher isn't hounding them, speak in English during breaks, etc. Many end up not even being capable of conversing

It's really quite unfortunate. But while true in most cases, it's also not always the case. Having done contract work/consulting for many years, I actually say no quite often. It's surprisingly common for business, especially small and medium sized ones, to make changes that do not improve their business, or even hurt it.

Some read an article online saying "big red buttons increase conversion", and want that along with a full revamp of their system, even though it may not improve anything for their business. I believe that any consultant worth their salt should be cognizant of this, and look out for their client's interests. There is often a gap between what a client says they want and what they really want. Being able to identify that difference is key in delivering value and having leads come in without additional effort.

Everyone can mash together a solution, but it's incredibly rare for a business owner to find a contractor who looks out for them and prevents them from throwing cash at a non-issue. Most business owners have worked with many contractors, and when they find someone who truly cares, most reciprocate.

Interesting idea, and I'm not sure what your goal is with this page but a couple problems:

Your HN title is "Amazon, EBay, Shopify Images Scaling", which in and of itself isn't terribly descriptive, but on top of that, your page does not communicate even that. It is not clear what the purpose or intent is.

As for the functionality itself, I'm given the option to place 4 objects on a page along with image uploads, and do a few rudimentary actions to the objects, and "Save" it as a new tab with the frame exported in Base64. Couple issues on this front:

First of all, the items are not to scale relative to each other, there's a giant forearm and a giant banana, but a tiny human.

Second of all, there is no option to adjust the order of the layers of these objects. I cannot place an arm atop an uploaded image when the arm was previously lower.

Third of all, "save" isn't actually saving. The exported image is not served as a download to the user, what the text suggested will happen did not happen.

Perhaps this solves a genuine need that I am struggling very hard to see. Maybe you built this to solve an issue you have, and maybe I'm not your target audience. Regardless, it is wholly unclear what the intent or purpose of this is, and your page fails communicate its value proposition to a visitor/user. Even if it provides value to me or solves a pain point, I am not aware of it.

As someone who started very early in his teenage years doing something similar to provide for his family and pay off family debt, I'd like to think my advice is at least somewhat relevant.

software companies are not willing to hire people my age for good reason

First of all, many people have not been through this and are unable to relate. I'll tell you now, yes, as a teen, it will be incredibly difficult regardless of your capability, to have buy-in from the wallet holders of these companies. However, there are ways to mitigate this while not lying:

- Differentiate yourself from your competition. Sure, everyone can code, sure everyone can talk and say they can deliver, that they're meticulous and detailed-oriented. Everyone sounds the same, so how do you sound different? Think about what's important to the business owner. Truly understand why they are pursuing a certain project. Most likely, someone didn't just dream up a project and decide to dump money into it; it's an investment, they want to gain something from this effort. Speak to their hopes, address their fears, and demonstrate an understanding of their business. This insight is sorely lacking in our industry, especially amongst developers who are often too stuck in the mental map of their software architecture, and miss the bigger picture.

- Do not draw attention to your age. I don't want to get in your head that older people, business people have a prejudice against you simply because of age. But it's there, it's incredibly noticeable, and invites questions. Sure, most people will not take issue with your age, but subconsciously, all sorts of questions arrive in their heads. Trust me when I say there is little you can do to ease most of these concerns, no matter how reputable you are, how amazing your past work has been, or how mature you seem. The answer is simple: don't make mention of your age or anything that may indicate you're a teenager. If possible, avoid phone calls and in-person meets; be sure to mention early on that email communication is preferred, and that you are more accessible via email. Over time, if people notice you are more responsive via email, that's how they will reach out to you.

- If they're not going to buy, they're not going to buy, learn to accept it. You will invariably face a lot of rejections, and it may be because of your age, it may not. Either way, accept it and move on. If someone tries to lowball you "because you lack experience", "you're too young", you do not need to beg and chase them to "give you a chance". Don't start off on the wrong foot, it'll cause more headaches than it's worth.

- Avoid bidding sites. It's a rat race to the bottom. You're at the whim of these sites, and whenever they feel like it, they'll increase their cut while offering you nothing more of value (see: Upwork changing their fees from 10% to 20%). If you absolutely have/want to, charge your standard rate, don't lowball just so you can get contracts.

That said, all of this is assuming that you have a lot to offer and are good at what you do. Focus on your personal growth and learning, try to take projects that further that mission, and focus on providing value.

Good luck!

This is merely my opinion: but yes, and no.

It HAS gotten harder to gain the same amount of traffic you've gotten years ago. No doubt. Back when I ran Windows7Center and Windows8Center (now defunct), we were able to serve 50 million pageviews, gain an Alexa traffic ranking around ~2000 while sustaining a decent passive income from (eventually) doing next to nothing aside from staffing/occasional maintenance/UI updates. Yes, there was luck involved, but there was also much less noise in the whole ecosystem. Less blog-spam, less "Top 7 reasons", less social media presence, etc. However, many of the same issues back then are still relevant now, and the formula for attracting any audience is still largely unchanged.

You'll often hear people say "write original/novel content". But what does that really mean? And is everyone capable of creating such content?

Here are a few things that has always worked quite naturally for me (in the format of "top 4 tips" because why not?):

1) Share something that interests you. Similar to work, side projects, and other ventures, if something truly interests you, you will always do a better job communicating it, have the drive to do it well, and to continue working on it

2) Identify and establish a relation to an experience you have. Tell a story. Humans are largely social creatures, and storytelling has been a part of our history for ages. Stories and experiences are more relatable, not mere fact-dropping.

3) Use your own voice (yes, yes, I know, cliche). I've found what works for me is writing as if I'm speaking directly to my audience. If you were at a dinner table chatting with friends, would you constantly be using arcane, seldom used/big words? Probably not. So what makes blogging any different?

4) Be genuine. Similar to the point above, so much of what we see now is sensationalized, exaggerated to the point where it's so hard to find any truth. Personally, I appreciate honesty, and there are so many people with so many stories to tell, that if people actually spoke up and shared fearlessly, we wouldn't need to have all this BS to keep us "entertained". So I try to share things I wish someone else would have shared to me, things that I'd appreciate.

I've taken a break from running online communities, and been on a 2-year hiatus from blogging on my own blog, which I've never monetized in any way. My last post was October 4, 2014, but I have visitors in the low hundreds, everyday. The total pageviews on this blog has exceeded the low hundred thousands. I do not engage in crossposting, and never on social media, except posting twice or so here on HN, no one in my friend circles or colleagues know I blog except those who actively sought out information on me. I still get very kind and heartwarming emails from all sorts of people for content I put out that I didn't think would help anyone in particular. I still get people who reach out to me and ask about some of the experiences I've shared. Pageviews mean nothing to me, but these simple gestures do.

Sidenote: If you're not simply looking to blog and share with others, but are also intent on your pageview count, along with perhaps selling a product...all of the above still applies, but drip campaigns are also still extremely effective. Collect emails of interested parties and DO NOT betray their trust.

TL;DR: Focus on content, not pageviews. Be genuine and write what interests you, people will come, I promise.

Not a "Show HN"/product, but a blog. Figured I'd share to provide more data points on HN traffic numbers.

I had two posts hit front page, top 3 and top 5 respectively.

359 points, ~55,000 pageviews, ~23,000 sessions

141 points, ~31,000 pageviews, ~12,500 sessions

Running on simple shared hosting, I didn't see any downtime or at any point experience/hear reports of slowness. Obviously there's less room for aggressive caching when it comes to a product/service but my blog chugged along fine.

Worth noting these stats are approximate as I've taken out the average pageviews of my site on a day to day basis. This was also back in late 2013/early 2014 so traffic numbers may be different.

Face blindness is really quite frightening. I'm not sure if it includes not being able to imagine one's face as opposed to not recognizing them in person, but there's a documentary on face blindness somewhere that show people waking up everyday unable to recognize their children, husband, etc.

As much as it's frightening for the family members, I can't imagine how much more so it is for the victim.

Funny how the title made me instantly think: SAP HANA. After not seeing it for the first 5 paragraphs or so, Ctrl+F, ah yes.

Not too surprising given how close SAP and Amazon AWS have been ever since SAP started offering cloud solutions. Going back a couple years when SAP HANA was still in its infancy; trying it on servers with 20~100+ TB of memory, this seems like an obvious progression.

Of course there's always the barrier of AWS pricing.

This exactly.

Back when I first started taking client work, I had plenty of trouble securing contracts because owners/execs saw a kid at the table, not someone who was going to solve their problems for a respectable amount of money. This was always the result of prospective clients insisting to have a video call/meet prior to any work being done.

Quickly after, I strongly refused any situation that would give away my age. I'd be lying to say I didn't receive a lot of opposition but when your chance of securing a deal is sub 10% and tons more time wasted, it's easy to just drop the prospect.

By now, my age is (for the most part), no longer a deal-killer, but I still usually do the same thing unless they're referred by an existing client. It's a huge timesaver.

To this day, I still have "SSSS" (Secondary Security Screening Selection) printed on my boarding pass and have to go through advanced screening every time I go to the U.S (relatively frequently) as a Canadian.

Swab my clothing, dump my backpack, open my laptop up and mess around with it, rub up and down my arms and legs, rough up my privates, the whole shebang.

I can imagine I'm probably on some list somewhere so I have to go through this "random" and time consuming screening every time.

I was once asked why I had a laptop with me, and why such a device was justifiable and necessary for a young male who works in this industry.

Seriously though, it's common knowledge that "SSSS" on your boarding pass means you're going through advanced security screening. What's the point of this if a malicious person can simply see the label and decide not to go through with the flight afterall?

I must have heard their story from the full hotels, to the cereal boxes, to the cockroach analogy 10 times now, and it never ceases to impress.

Especially where Brian tells his mom he's a cockroach. Love it.

Many entrepreneurial successes seem to come from people who have their backs against the wall and nowhere to run, or ones that simply refuse to take no as an answer. The small successes that I've been most proud of were also under similar circumstances. Also: Brian's a great story teller.

A bit late to this discussion (understatement I know), but running this type of private game server was partially what got me in this industry. In my case, I was running relatively successful Maplestory private servers back in 2008, on the order of 12,000~15,000 concurrent users.

Hundreds, probably thousands of these servers cropped up overnight after the first "core" was created, and many many variations of that core quickly followed. At some point, many of us in the private server community caught wind of Nexon (creators of Maplestory) going after certain kids for their private servers. This was an everyday occurrence. Almost always, it was in the form of a Cease and Desist letter.

Many of these servers had < 10~50 users concurrently and were run on home computers as many of us had non-existent budgets. Most servers were merely carbon copies of each other, as the owner would be able to create the server by using some reputable core and a setup guide. As with anything, a lot of traction was gained by servers that put development effort into adding their own touch into the game (alternative currencies like chickens, alternative bosses like Sonic the Hedgehog, and rebirth systems that let you utilize the skills of multiple character classes at once), and ones who were frequently engaging with their community and hosting in game events/contests.

There were private server rankings. Everyone would be vying for votes to get to the top 3 and gain visibility, which invariably resulted in them receiving letters. Those of us that became significantly more popular and had players actively going out and advertising for us quickly came under the spotlight and received letters with the threat of legal action if not promptly shutdown.

In fact, these shutdown letters were such a big part of the scene at the time, that some popular servers got shutdown by competitors sending fake Cease and Desist letters (don't ask how I know)...the response would typically be a quick and simple shutdown, waving goodbye to the community. Some owners with more skin in the game would deviously "shutdown" their server, then "re-birth" it as a different, smaller server since any communication sent in game was unlikely to be seen by Nexon. Few brave souls would post the Cease and Desist on their website while taunting and berating Nexon, though I never found out what happened to those guys.

Seeing this post brings back so many memories -- Honestly, a lot of time was wasted on that game but I would not be doing what I do today if it weren't for the people I met while doing it (my next major project was with a friend of a dedicated player on my server). It was also lots of fun.

Retaining local talent may be difficult enough as-is without even thinking about attracting foreign talent. I'm not too familiar with the situation in Ottawa (as seems to be the main focus of this article), but as a Vancouverite, it's no secret that tech salaries here are lagging behind from our American neighbours, even as close as Seattle. Despite the gap in wages, our CoL is more or less comparable (yes yes, I'm aware of > $3k/month rentals in SF, but unlike SF, $100k in Vancouver isn't considered low). That coupled with a significant drop in the Canadian dollar...

Well let's just say it hurts.

As someone who has, and still is struggling a lot with mental health issues, it’s immediately obvious how big the gap is between the impact of mental health, and the amount of attention it gets in the media/social circles. The social stigma of mental illnesses are so strong that you rarely hear sufferers of depression, anxiety, bipolar, etc speak out about it, which is exactly the opposite of what needs to happen.

Making it known that you have a mental illness is simply not the same as having a physical handicap (please note I am not trying to downplay the pains of physical handicap or any other illnesses). People simply do not know how to react to mental illness. Or they’re incapable of understanding. Many people would like to help their friends in these situations but without proper understanding, it’s arguably worse than being a bystander. Comments like “cheer up!”, “just get over it!”, “it’s not that bad” often are not that helpful at all. Even if their struggles seem reasonable to an outsider, the pain that the sufferer feels is very real, and to them, insurmountable. Never mind the fact that the social stigma often means speaking up about these issues means social or professional suicide, resulting in most of us not speaking out about it and feeling hopeless.

Posts about mental health show up on the HN frontpage every once in a while (or more frequently, in /ask), which is a step forward because there is simply not enough awareness on these issues that are so prevalent, especially among the HN demographics. But we still have a lot of work to do.

Side note: Greg Baugues started a community called devpressed[1] for developers struggling with mental illness a while back, and also gave a talk on the topic[2]

[1] http://devpressed.com/

[2] https://www.youtube.com/watch?v=yFIa-Mc2KSk

Interesting data, added my own to the list.

Not sure why I imagined there wouldn't be any blatant trolls/ads on an anonymous Google Doc survey, but most of this info is still incredibly insightful!

As a sidenote: results may be incredibly skewed as there is no currency indicator, I'd imagine lots of fellow Canadians would be putting down CAD which is currently down 24 cents...

Great points, though out of curiosity, could you expand on the last point?

As someone who has always topped performance ratings, gotten along well with colleagues (many of my past co-workers are close friends now), and provided meaningful to significant contributions to all the projects I've worked on AND has a reputation for having a poker face, I'm a bit concerned that it would be as bad as an "instant do not hire"

Surprised there are so few comments after this many upvotes. It's always great seeing companies share their work, such as MapReduce, BigTable, TensorFlow, etc from Google (Netflix's ops tools also are very interesting, not to discount the contributions of Facebook, Microsoft et al).

Would love to see the HN community's opinion on this, as someone who is not an expert in ops/infrastructure.

Honestly it's a bit disheartening to see a community with so much insight readily jump to bashing every single "hip new thing" in the browser/JS world, heck, even npm/bower.

I think part of it is because of the proliferation of JS in recent years, whereas many people still have this notion of copy/paste Javascript "skiddies". Even among new grads with significantly less experience, I often hear some voicing concerns that "web developers are not real programmers", or there's "nothing hard about front-end work", "CSS is only for designers", or "only people who can't do CS become web developers".

On the other hand, yes, new frameworks are appearing every day, and it's obvious this is a huge source of frustration; but we do we need to chase every new framework? Is it actually true that an application written in X framework HAS to be re-written every 2 years instead of a pure jQuery-based application? What is preventing you from continuing to use Angular v1, that you have no choice but to port everything to v2? (also worth noting that you can port only parts of your app to v2 and run them in tandem but I digress)

I don't want to start another flame war here (which seems to be a common trend these few days), but how many people do you know that has a deep understanding of the costs of DOM reflows and how to mitigate/minimize them? As a full stack developer who has done quite a bit of front-end work the past few years, I can tell you: not many.

Okay, so maybe you say: "For X and Y application that knowledge isn't important." That very well may be the case, but how about those that build richer and more complex interfaces that (maybe) involves thousands or even hundreds of thousands of elements on the page? What then? Has no one ever seen the absolutely abysmal jank and (lack of) performance some JS apps have?

Is it really so horrible that we have to bash and nitpick on every single thing someone makes in the web community? Is it wrong for your kid to come home one day, exclaim "look what I drew today!", and show you a horrific picture of you looking like a gorilla? Or maybe it's okay that a lot of people are very working hard to do away with the hairy pain points we have currently, make it harder for you to shoot yourself in the foot, and maybe introduce some (small) pain points of their own inadvertently? Maybe it's possible that we're not all perfect humans with perfect ideas?

I'll give a quick example of what it's been like for my experience/or the experience of people I've worked with with jQuery/Angular/React.

jQuery: I want to update this element, okay I'll add a class or id as an identifier and query the DOM. Then I'll change the text in here. Oh but now I want to add another element to this list here (but I haven't cached the selector because I haven't learned that yet), let me query that element, create a new element, then append it.

Angular: I want to update the text on this element, okay, I'll change it in $scope, or the template directly. I also need to add a list item, okay, let's just .push() the new record in our $scope variable and it'll appear since we already told Angular to iterate on this model.

As for DOM updates? Well, I may or may not know it, but Angular is going to update it for me on the next $digest cycle which happens in intervals or can be triggered manually, after doing a dirty check for $scope/$watch.

React:

Similar to my thought process with Angular, I update the list item in our model with setState, and React will do its virtual DOM diffs and update for me, or maybe it doesn't update because shouldComponentUpdate told it not to. And it only touches the elements necessary on the actual DOM.

Perhaps it doesn't seem like a big difference, but after working with all 3, speaking from personal experience: once you have to return to doing pure jQuery, you realize how forced and unnatural everything now feels.

Give it five minutes: https://signalvnoise.com/posts/3124-give-it-five-minutes

Terra Bella 10 years ago

Having worked in this area, I can say you are on the right track. Not only the US, there are many countries/powers that will get very upset if certain people see certain areas.

As for who gets to see what, there are extremely stringent rules set by many of these governments; even within government organizations themselves, there is huge variation in access constraints.