Security Guidelines for Congressional Campaigns - <AUTHOR> https://techsolidarity.org/resources/congressional_howto.html <comment><USER2> On the off chance this heads off any super-unproductive debates:

When you're advising/training at-risk end users, it's not enough that it be possible to achieve some kind of security with a given load-out. It needs to be secure without trying hard.

So for the purposes of this document, we don't really need to litigate this phone or that browser. We just have to note that for non-specialist end-users in high-stakes environments:

* It has to work.

* It has to stand a good chance of retaining secure without trying.

* It has to be incredibly simple to get everyone set up the same way.

<comment><USER3> A casual read says the safest easiest setup is everyone doing all their work on a recent iPhone model. Good news is, assuming the budget requirement can be met, this is pretty close to what is already happening for most people.

<comment><USER4> Indeed; most Washington types who used to live on Blackberry (excluding those who haven't yet had to give their precious up) moved to iPhones over Android, in my anecdotal experience. Outlook is the name of the game, and that runs quite well on iOS. Though it sounds like this training would push people toward the Gmail app, which is just fine.

One point I would make is that it's rather easy to make Siri only respond after unlocking, but that's probably out of scope of this training — and not something staffers are going to remember. For added security, disable Hey Siri, too, because that's a hot mic. (But again, scope.)

<comment><USER2> Can we just all be clear that these aren't "Washington types" we're talking about? These are random businesspeople in random Congressional districts scattered throughout the US.

<comment><USER4> I don't follow what you're correcting or why you're using my comment to launch off on that correction to everyone, because I was agreeing with Jeff on the broader motion to iOS based on my anecdotal experience with Washington staffers in general, not limited to a Congressional campaign. That being said, the senior ranks of any successful national campaign are _always_ Washington types (one notable, recent outlier notwithstanding), and they benefit dramatically from this training, so it's not even an unfair observation in the context you're asserting.

(Unless you're saying a gaggle of Chamber of Commerce suits from Topeka can navigate party politics, secure funding, get attention, get nominated, then somehow win without DC experience and connections in leadership.)

Edit: 'idlewords — I tried to reply to you before you deleted; _Congress_ or a _Congressional campaign_ means a national race, and toned my replies here. You and Thomas are talking about state legislature races, apparently, which was not obvious until your deleted comment. We don't identify state-level legislative bodies as Congress, which is a term that means the entire national legislative body, not just the House. It'd be half appropriate to say _congressional_ without a capital C, but still weird. Gotta enunciate state.

I genuinely thought you were training early campaigns for next national, the way you worded it. You should, honestly. They don't get awesome advice.

</comment></comment></comment></comment></comment><comment><USER5> I want to give a little bit of context to this guide. So far I've done this training with six congressional campaigns, and a very similar one with about two dozen journalists.

Everyone has a limited mental budget for security hassle, and it's a challenge to fit the most important bits of advice into that budget. The hardest bits are those things that are relatively easy to use, but a beast to set up—password managers and security keys.

There's a lot more that could be in this guide, but I've found that it's the most material that I can fit into an hour, and even then the people running for office find it intimidating. However, they are also very glad to get actionable advice, and in a format that is not too technical.

By far the most surprising thing to people on this list is the admonition to turn off anti-virus software.

<comment><USER6> Can you briefly explain about turning off anti-virus? I see that but nothing about why, or why Windows Defender is still ok and how that differs from the general category of anti virus?

Maybe its in your course so you don't want to spill the beans, but all of your other advice seems consistently good, this one could use some more explanation for the uninitiated who have heard the exact opposite for, like, ever. :-)

<comment><USER7> The problem is that many AVs are not tested well, and prone to actually making you more vulnerable by bugs in their analysis code.

Basically, think of receiving an email with a malware attachment. If you have good hygiene, you won't open it yourself. But your AV will open it to 'scan' it, and that gives it an opportunity to compromise it.

Add the fact that most AV runs with high privileges and is not sandboxes, and this is a pretty bad state.

</comment></comment></comment><comment><USER8> The grugq (Nov 20) on campaign information security: [https://medium.com/@thegrugq/campaign-information- security-f...](https://medium.com/@thegrugq/campaign-information-security- ff6ac49966e1)

<comment><USER2> The Grugq's post is strong. The Harvard campaign security report he links to is _not_ ; it's actually pretty bad.

<comment><USER9> I didn't like their report which is why I wrote my guide.

</comment></comment></comment><comment><USER10> It would be worth adding to the article registering your Google account for the Advanced Protection Program: [https://landing.google.com/advancedprotection/](https://landing.google.com/advancedprotection/)

</comment><comment><USER11> The guide suggests gmail and two factor, but why not also [https://landing.google.com/advancedprotection/](https://landing.google.com/advancedprotection/) ?

</comment><comment><USER12> > Under no circumstances use the Tor browser (it's okay to use Tor, but do it > with Chrome, and seek additional training on how to set it up).

Is this just because Tor Browser prompts the user to update while Chrome updates silently on restart, or something else?

<comment><USER2> No, it's because Tor Browser is the worst possible combination of attributes: a lagged fork of what is currently (despite heroic efforts from Mozillians) the least secure mainstream browser, packaged in a way that disproportionate numbers of high-value targets use it.

<comment><USER9> Fully laid out and explained here: [https://medium.com/@thegrugq/tor-and-its- discontents-ef51648...](https://medium.com/@thegrugq/tor-and-its-discontents- ef5164845908)

</comment></comment></comment><comment><USER13> Does anyone have insight as to why they recommend only using Chrome, including using Tor with Chrome and not the Tor browser (fork of Firefox)? Is this just to keep things consistent or are there privacy/security concerns over using Firefox?

<comment><USER14> Chrome has a process-sandbox architecture that is significantly protective against new exploits; Firefox's equivalent, Electrolysis, isn't ready yet. In the 2017 Pwn2Own competition, Firefox was cracked and Chrome wasn't.

The Tor browser is almost certainly better at avoiding accidental disclosure of your IP address, but worse at general exploit-resistance. Making use of Tor in a way that fully protects their identity is probably beyond the capabilities of a Congressional candidate anyways, so it would at best create a sense of anonymity that was false.

<comment><USER2> If we're really nerding out about browser security, it's important to understand that while Firefox's sandboxing is not as sophisticated as Chrome's, it's not a lack of sandboxing that puts Firefox behind Chrome (and probably Edge), but also _all the other stuff_ that goes into browser security, most notably runtime hardening and ancillary vulnerability research.

People tend to look for a simple explanation for these kinds of differences, like, "iPhones are more secure because they have a Secure Enclave", or "Chrome is more secure because it has better sandboxing". But the real answers are rarely that simple. There's a lot more that goes into both iPhone and Chrome security than those simple things.

<comment><USER15> Can you elaborate as to what you mean by Chrome having better "runtime hardening"?

For what it's worth, I tend to think the biggest issues are the weaker sandbox (the GPU driver is exposed in Firefox, which WebRender is taking a big step toward fixing) and, in the future, Site Isolation (which I think is oversold, but it would help sites like Gmail).

</comment></comment></comment></comment><comment><USER16> @tptacek and @idlewords can you share how you are teaching these non-tech people how to use a password manager?

In my experience it's far from intuitive even if you're using 1Password. Just the first step of explaining how to create a master password that is strong enough to protect all the other secrets is a challenge. I try and describe the diceware process because it will yield a better result than what the user will come up with.

Anything you can share would be appreciated.

</comment><comment><USER17> > You must use an iPhone, model SE or later. Android phones are not safe to > use.

> If possible, consider getting a Chromebook. This is a simplified computer, > far more secure than an ordinary laptop, that can only run the Chrome > browser.

Reducing attack vectors in this way seems very sensible to be honest. It's crazy to expect users to understand the ins and outs of computers to remain secure. I remember it being common that people would comment that you can't drive a car without a license so you should have something similar for being allowed to use a computer.

</comment><comment><USER18> > Siri can reveal information about your contacts even when the phone is > locked.

So can swiping to the right on iOS 11... or just getting a message notification from Signal with its default settings. For that matter, shouldn't this guide contain some guidelines about where your contacts should be stored if that's considered sensitive?

</comment><comment><USER19> This is the same advice I give to my mom. Especially opening everything she receives, in particular from her students, through Google Drive/Docs.

However, do you really trust Google to be the safekeeper of important data for elections? This is at most a temporarily valid advice for democrats.

</comment><comment><USER20> Without teaching folks what a password manager is and how to use it, it's useless advice. I've seen folks use 1Password with their old password for everything... A 2min demo and an explanation why they should use unique passwords is needed for most.

<comment><USER5> That's one of the reasons a text guide isn't enough, you need a briefing. Also, the installation procedure for 1password is an absolute nightmare. Ideally people shouldn't even see it.

</comment></comment><comment><USER21> To me, "if you can remember your password, it is likely not strong enough" — conflicts with suggesting it is okay for a user to use "a six-digit key code" on their iPhone.

Any thoughts or clarifications?

<comment><USER2> Yes: your six-digit PIN is physically secured in ways your online passwords aren't.

<comment><USER22> To expand on that, the iPhone hardware (secure encalve) limits the number and rate of PIN attempts. Depending on configuration, after a number of incorrect attempts, it either takes an increasingly long time to make a guess or just wipes the device (by destroying the encryption key).

</comment></comment></comment><comment><USER23> Very good advice.

Couple thoughts:

First, Google's Password Alert extension should be added to the list of extensions. Best protection against spear phishing.

Secondly, "Assume that anything you say on Slack or in Twitter direct messages will one day be public. It's fine to use Slack for coordinating and organizing, but be mindful of the conversations you have there. Move private discussions to Signal."

This "eventually public" argument they say is the best framing of the benefit of end-to-end encryption I've seen so far. It's not about "hackers could hack Slack and own your data now!" as much as "eventually any interesting cloud data that's unencrypted will be made public."

</comment><comment><USER3> Android: unsafe at any speed, apparently.

<comment><USER2> Specialists with carefully chosen phones can achieve security that is asymptotically as good as a recent iPhone.

We can spare ourselves the world's dumbest HN thread if we stipulate that by far the largest problem with Android is that it means a zillion different things. Campaign workers (or NGO employees) with "Android phones" are people that have every conceivable random phone that happens to be running some variant of Android.

<comment><USER24> > _Specialists with carefully chosen phones can achieve security that is > asymptotically as good as a recent iPhone._

Who cares? Security conditional on expertise, extraordinary caution, and time investment is WORTHLESS.

Security is more about guiding (or forcing) human beings to the right behavior than it is about making technical mechanisms available for the willing and able. Your security model should assume that the user is stupid, grossly negligent, and in the case they are the employee or other agent of an organization, somewhat hostile to the interests of the organization.

<comment><USER5> I believe tqbf is just trying to head off unproductive Android vs. iOS arguments, and agrees with you.

</comment></comment></comment></comment><comment><USER25> Is this written by the Russians? The Chinese? Are you kidding? iPhone or Android? They are both highly porous and highly perforated. Gmail? Chrome?

Here is some on secure browsers: [https://www.techworld.com/security/best-8-secure- browsers-32...](https://www.techworld.com/security/best-8-secure- browsers-3246550/)

Boeing Black? [https://economictimes.indiatimes.com/slideshows/tech- life/5-...](https://economictimes.indiatimes.com/slideshows/tech-life/5-most- secure-smartphones-in-the-world/boeing-black/slideshow/53883006.cms)

... just a little work would give something actually secure. This is like playing charades with guns.

<comment><USER26> In the secure-browser article cited in the parent comment, number eight is the Yandex Browser. Quoting from the article: "Yandex, which is based on Chromium, uses the 'Blink' engine which runs checks through downloads and even uses Kaspersky's antivirus to scan for malicious content." I find this recommendation a bit surprising.

</comment></comment><comment><USER27> Sorry. I don't even know where to start here but so much of it is really bad advice that doesn't accurately make assessment of user workflows and effective threat modelling.

<comment><USER5> I'm open to criticism, so maybe pick the worst piece of advice and tell me what it should be instead?

<comment><USER28> The fact that you don't have a line item that says "Don't feed the trolls" seems problematic.

<comment><USER5> Trolls gotta eat

</comment></comment></comment></comment><comment><USER29> I found this to have a lot of holes at best. If this is for end-users working with a campaign some of this might be appropriate, but really the campaign should have people in charge of security and a lot of things should be funneled through them. If this is for end-users then the advice about antivirus, etc. should be removed because that should NOT be an end-user decision.

First thing: How is the campaign going to be operating and handling documents? Security for the scenarios is going to be different.

* If it's going to be in one or more offices with tightly restricted access from outside those offices that's probably the best for security but may be less convenient. Primary approach: restrict access to a limited pool of "trusted" devices and keep those secure.

* Entirely cloud-based (e.g. GMail, Google Docs, etc. or perhaps the business/enterprise Office365 and OneDrive). Primary approach: Tightly control document access at the storage side, probably primarily based on user accounts, while allowing many devices.

* Using online storage but traditional desktop programs, etc. is a second option, but may be harder to control. Primary approach: None, this is a hybrid and I think it has all the weaknesses of both other approaches.

Second, be aware of the kinds of threats you need to be ready for. Big areas of concern that jump out at me:

* Data theft/exfiltration of sensitive campaign documents.

* Data loss/destruction - via malicious trashing by an intruder or via failure of key systems.

* Loss of access at key times - are there times where temporary loss of access to systems has a major impact? (I'm used to thinking in terms of electronic medical records for doctors' offices, where at the least a down EMR puts a huge crimp in ability to see patients.)

* Possibly addressing of faked documents, but I'm not sure that's an internal security matter that can be addressed beyond being able to say with confidence "Our network has not been breached and we have access/audit logs to prove it."

Focusing on what I'd recommend as the best option from a security standpoint (documents, etc. are stored within the network, documents can be accessed only from within the network, network access is tightly controlled, document storage is appropriately partitioned with security groups to limit access) some thoughts. This is also the kind of network I'm most familiar with - I'd never consider having any medical client using any kind of cloud storage for practice documents that could contain PHI/PII (Protected Health Information/Personally Identifiable Information).

 _Re: Updates_ , absolutely, everything should be kept up-to-date. Ideally patch status, etc. should be monitored for all systems. This includes network equipment as well, most notably routers and any wireless equipment.

 _Re: Anti-virus_ , I disagree - Choose a good managed AV product, use it, have someone whose job includes getting alerts from it and reviewing logs it generates. I'm partial to Bitdefender, but Emsisoft may also be a good choice and also uses Bitdefender's virus definitions as one component. I'd avoid Kaspersky these days. I say this because I see the logs for managed Bitdefender blocking of known and suspected phishing and malware sites and I get alerts when malware is blocked. A good AV product should also help protect against both hacked websites visited by campaign staff and spearphishing.

 _Re: Email_ , why is this document talking about personal email? Do not use personal email for campaign work. Do not use personal email on campaign systems (assuming the "closed network" approach). If staff need to deal with personal email because their sister-in-law just sent them the newest Elf Bowling, they can do it on their phones and/or their own time.

 _Re: Email_ , if using an email system that supports 2-factor auth, use it.

 _Re: Email Attachments_ , assume malice. The advice to open documents on a phone instead is not unreasonable since the phone viewer is unlikely to have the same vulnerabilities as a desktop program. Viewing documents in a different program may also be a viable option, particularly if your internal use of that program isn't well known (e.g. Word-based attacks are unlikely to impact LibreOffice).

 _Re: Email_ , Inbound email should be going through all sorts of filtering which may not stop all attacks but should at least be able to cut down on possible noise. As an example with Office365 Exchange, there are a bunch of options (under "International Spam") to block messages based on the language encoding, the country/region it was sent from, etc.

 _Re: Passwords_ , 1Password is a good option. 1Password Teams is probably a better one.

 _Re: Phones_ , the advice to use iPhones is probably good, particularly because current-enough iPhones all get software updates where Android phones from different vendors are all over the map. Possible exception: If you're using the all-cloud approach on Google services, the Pixel phones should be a viable choice. If feasible, something that can be remotely wiped (at least email) by a mail administrator is probably not a bad idea.

 _Re: Laptops_ , yep, full disk encryption, etc. and never plug in USB devices, but on a management side assume that laptops are a weak point and take steps to ensure that the damage from a compromised laptop can be limited.

 _Re: Wireless access for Phones, Laptops, Tablets, etc._ : Consider not using Wifi AT ALL. If Wifi is used, lock it down to recognized devices, which should not include ANY personally owned devices, particularly including phones, tablets, etc. Any device that end-users are allowed to install software on is a device that should not be connecting directly to your network. If you're unfortunate enough to have a campaign office in the basement of a steel building, set up a separate "Devices" network (still with authentication) that those devices can connect to.

 _Re: Messaging_ , yep, Signal. Regard just about anything else particularly including SMS as being plain-text that a skilled attacker could read. Also be wary of apps like Join, MightyText, etc. that allow handling of messages and device notifications from desktops.

 _Re: Browser_ , I'm not sure I agree with a Chrome-only approach (why no Firefox?), but I don't have a big problem with it. One advantage particularly for individual installations is that it will auto-update in the background, and with process-per-tab I believe new tabs will get created on updated versions (can anyone who's read this wall of text confirm?). I agree with the use of uBlock Origin and HTTPS Everywhere - compromised ad networks particularly with targeted ads could be a real risk.

 _Re: Mobile Browser_ , Even more than incognito mode, Firefox Focus may be a good choice as a default for browsing that doesn't require logins to sites.

Did I leave any gaping holes? This is kind of off the top of my head.

<comment><USER5> I'm not sure you understand what a Congressional campaign is like. Outside a few really rich districts, you'll have the candidate, a campaign manager, a media person, someone in charge of fundraising, and people to manage volunteers. Using social media is routine, and everything that doesn't involve money is connected to people's regular accounts.

If you're lucky, the campaign staff will have an analytics person, and they (or the most technically adept member of the campaign) become de facto tech support for everyone else.

Many of the people the campaign staff need to work with will be volunteers who are already task saturated on campaigning, and have no capacity to learn whatever security processes you have in place.

The overriding priorities of the campaign will be fundraising and outreach. Everything else will be subordinate, and anything that makes those two things harder will be ignored.

I don't know what situation your comments are appropriate for, but they will not work for the people we are trying to protect.

<comment><USER29> Thanks, I didn't realize how small most campaigns were, and I can see why it wouldn't be something where a third-party could set up to provide the services - way too cyclical.

<comment><USER5> The Democratic party apparatus steps in to some extent, but only after the primaries, and they're not too clueful, either.

The guide here is an attempt to see how much we can bring up the level of security on a campaign without IT infrastructure. It's meant to be the "wash hands, boil water" of security advice, not an ultimate security guide. So thanks for understanding the context!</comment></comment></comment></comment>


Get Notified When Someone Posts an Article from Your Domain on Hacker News - <AUTHOR> https://www.twilio.com/blog/2015/04/get-notified-when-someone-posts-an-article-from-your-domain-on-hacker-news-using-node-js-firebase-and-twilio.html <comment><USER2> This reminded me of this [http://hnalerts.com/](http://hnalerts.com/). I think it still works. Mind you it's been a long time since I've submitted anything that made it to the front page. ;)

<comment><USER3> Also see [http://hnnotify.com/](http://hnnotify.com/), which shoots you an email when someone replies to one of your comments. It's been chugging a long for a number of years now and definitely still works.

<comment><USER4> Heh, I use [https://www.hnwatcher.com/](https://www.hnwatcher.com/)

</comment></comment></comment><comment><USER5> If you'd rather not have to code to make this happen: [https://zapier.com/zapbook/zaps/675/post-message-slack- when-...](https://zapier.com/zapbook/zaps/675/post-message-slack-when-your- company-name-mentioned-hacker-news/)

(works for comment mentions, too)

<comment><USER6> Similarly, has anyone used [http://notify.ly/](http://notify.ly/)

I can't tell if you can create custom hooks (similar to zapier's zaps) without signing up.

<comment><USER7> Thanks for mentioning notify.ly, Simply, u can use notify with slack to get notifed if your name, domain, or any other topics get mentioned in key sites like HN posts and replies that how I found this reply ;)

Also we recently introduced source settings by which you can tailor your notifications for example follow a certain product on PH and so on.

We do support Twitter, tumbler, HN, PH, reddit and much more.

It's 100% free

cheers ^^

</comment></comment></comment><comment><USER8> You can also get notified over mail not just for your links but also for something of your interest -- here is the ifttt recipe

[https://ifttt.com/recipes/280297-hackernews-to- mail](https://ifttt.com/recipes/280297-hackernews-to-mail)

<comment><USER9> This is based on the main page RSS, so you wouldn't get notified by an IFTTT recipe unless you got on the main page. Also IFTTT doesn't seem to support SMS outside US, so not sure how this could be done there.

</comment></comment><comment><USER10> Pretty amazing that it's 2015 and we're still building custom code to make links go both ways.

EDIT: Just realized that HN is going to be sensitive to this comment due to the "middlebrow criticism" issue. I have absolutely no problem with Twilio's blog post or this project. Hacky fixes have their place -- just know what you're doing and don't abandon hope of getting good infrastructure some day.

<comment><USER11> I agree. In 2000 or so when I first started blogging, pingbacks [1] (or its variation, trackbacks) seemed like it would take off as a popular mechanism for link notification. Unfortunately, for various reasons, it doesn't seem to have really taken off.

[1] [http://en.wikipedia.org/wiki/Pingback](http://en.wikipedia.org/wiki/Pingback)

</comment></comment><comment><USER12> If you like this sort of thing, it is worth looking a Yahoo Pipes.

E.g. I created a pipe today to give me an RSS feed of HN submissions about Haskell.

<comment><USER13> I built [http://hnapp.com](http://hnapp.com) specifically to generate custom RSS & JSON feeds for HN. It's opensource on github too.

For example: [http://hnapp.com/?q=haskell%20type%3Astory%20score%3E20](http://hnapp.com/?q=haskell%20type%3Astory%20score%3E20)

<comment><USER12> Thanks that is what I was really looking for. I will now use it.

</comment></comment></comment><comment><USER14> They mean "posts an article _about_ your domain". It's a feed watcher, not a firewall.

</comment><comment><USER15> I am really not too familiar with Google Alerts, but doesn't Google Alerts encompass this?

<comment><USER16> I don't think it allows you to filter the source of the comment. Personally I can't fathom what role Twilio is serving in this mix. Just use the API.

<comment><USER17> Even if Twilio were simply providing a proxy for accessing the Google Alerts API, I would use Twilio's proxy over Google's.

Twilio consistently provides excellent documentation and developer support, whereas Google's results on that front are very mixed (varies widely by product).

<comment><USER16> You don't need to use Google at all. This would be a 20-minute project using the HN API.

Twilio is a whole extra level of cruft. Any machine can send an email, so unless you want a voice call to tell you someone mentioned you on HN it makes absolutely no sense.

<comment><USER18> The new HN API? Which one do you mean? Please post the link.</comment></comment></comment></comment></comment>


Ask YC: Are there any promising non-web startups? - <AUTHOR>

I'm graduating soon and the job search has began.  Unfortunately, it seems like there's not a whole lot of opportunities for somebody like me in companies that aren't huge corporations.  I can do javascript, and web applications.  I find doing C, C++, and python much more fun, especially when dealing with concurrency, optimization, 2D/3D graphics, image manipulation, etc.
So I guess my question is:  Is there a place in the start-up world for programmers like myself? or should I just suck it up and sell myself to a large corporation or spend my time concentrating on becoming proficient at web stuff? <comment><USER2> Some smart robotics startups:

MekaRobotics (by Aaron Edsinger, MIT star behind Domo) <http://mekabot.com/> <http://people.csail.mit.edu/edsinger/domo.htm>

Willow Garage (former early Google employee founder) <http://www.willowgarage.com/>

AnyBots (Trevor of YC's company) <http://anybots.com/>

Q Robotics (early stars from iRobot that liked startups so much, they needed to leave and start another once iRobot went public) <http://qrobotics.com/>

You don't really need to know anything about robots to work on them. The best groups are made up of specialists that understand a bit of everything, but are essentially software|hardware|electrical|systems engineers at their core.

</comment><comment><USER3> One thing you could do is follow the VC money. Do some VC research. Look for VCs that invest in whatever non-web stuff you think makes sense (you must have some ideas there). Then look into what startups they've funded and consider contacting them or their recruiters.

If you're more ambitious you could research the kinds of problems you think those startups will have and look for an application you can build that they might need but isn't something they would want to develop themselves.

</comment><comment><USER4> The web is just the most convenient place to deliver software.

Justin.tv has a huge* amount of highly concurrent, high performance Python code that delivers our video. That video is still delivered via the web, though.

Speaking of which, we're hiring...

* It's not actually that many lines of code, but it's comparable to our web codebase.

<comment><USER5> Thanks for pointing that out, Emmett, we are indeed hiring! Both our chat server and Video cluster are written in Python's Twisted framework. We're always looking for smart hackers who want to help us make our systems better. Everyone at JTV is tossed in the deep end (Bill, who found us through news.yc, learned Twisted, wrote and deployed our chat server in his first two weeks here). Find out more here: <http://blog.justin.tv/2007/07/justintv-is- hiring.html>

Or email justin at justin.tv

</comment></comment><comment><USER6> I would think that there are a decent number of non-web tech startups, but not as many straight-up software startups. Oftentimes, small non-web software companies will get acquired as soon as they come out with something useful, and their ideas are integrated into the larger companies' products. My suggestion would be to do the big company thing for a few years, and then once you have the experience/contacts, you'll be in more of a position to find a fledgling startup or form your own.

</comment><comment><USER7> Not all _internet_ startups are _web_ startups. In my case, I'm working on online backup, and every single line of code I've written for it has been in C.

I'm not going to suggest that you should get into the same field and start competing with me, but there are many options under the umbrella of "infrastructure services" which all require highly efficient coding.

<comment><USER8> Certainly. Although most internet startups will include a strong web presence, that is often a small part of the equation. I got pretty heavily flamed for suggesting to not write your own framework, but I think the whole point was different business genres. For an internet startup, you probably don't want to write your own framework. For a web based startup, where that is the core of your product, you might have a huge competitive advantage writing your own.

Best of luck!

</comment></comment><comment><USER9> There is _lots_ of promising non-web startups -- the fact that this question even needs to be asked is evidence of how insular the YC news community can be at times.

The field I know best is database systems -- there are a number of interesting startups in this area. There's an emerging market for "complex event processing" (essentially database systems that operate on live streams of data as well as static historical data), which has applications to algorithmic trading, network monitoring, real-time business intelligence, military applications, etc. I work for one startup in this field (<http://www.truviso.com> \-- we're hiring!), but there are several others (Corel8, StreamBase, Aleri, etc.)

There's also data warehousing, in which there are a lot of startups challenging the existing players: GreenPlum, ParAccel, Vertica, DATAllegro, C2 Appliance, etc.

More broadly, I think non-web startups are typically trying to solve harder and more interesting problems than the web guys. The time-to-market is often longer than with a typical consumer-oriented web startup, and if you're trying to sell to enterprises, that brings a very different set of sales challenges than selling ads on a website, for example. That often means you need a founding team with a deep technical background, and you've often got to take the traditional VC route (rather than bootstrapping). So I can understand why it's not a good fit for the traditional YC model. Still, there are a ton of startups out there, and many (most?) of them aren't developing web apps.

</comment><comment><USER10> I'm in the same situation - but its more of a psychological hurdle to apply to places that want X years of experience, when all I have under my belt as a soon-to-be new college grad is summer internship experience. Just be vigilant on craigslist and sites like SimplyHired and Indeed. There are tons of opportunities available and your net may simply have to be cast wider.

Oh, also - check out <http://www.ventureloop.com> for culling startups. I've found that these small companies have a ridiculously fast callback rate.

</comment><comment><USER11> If you're thinking about C code, you're probably looking at drivers or unix programming. I'm sure there's database companies that are looking for decent C or C++ programmers. You'd be programming for concurrency and optimization there. Granted, databases aren't really a sexy field, but... where there's muck there's brass as they say.

From what I understand, a lot of the C++ programming is windows stuff. But a lot of the Windows programming at small companies is going over to C# stuff. But, there are some ISV's around that are probably looking for programmers. Joel Spolsky is always hiring. I don't know how much concurrency work you'll be doing at an ISV, though.

As far as 2D/3D graphics are concerned, there's always work for programmers in the special FX industry. Those tend to be smaller companies, and they tend to do more C++, C, and python stuff working with graphics. You don't have the upside potential that you do with startups, though. If you're interested, by a copy of CineFX at Borders, go through an look up the company names and see if they're hiring programmers. Or, Goiogle companies like Pixar, Dreamworks, ILM, Tippet studios, Blue Sky and see if they're hiring programmers.

The VFX world does a lot of C++, Python and works a lot with distribued computing, render farms, graphics, optimization, image manipulation, etc... It might be your cup of tea.

</comment><comment><USER12> No. The only startups that exist are JavaScript hacks that take up 90 MB of RAM.

</comment><comment><USER13> Didn't you think in applying for research in places like <http://www.merl.com/>, <http://groups.csail.mit.edu/vision/>, or in companies such as <http://www.gesturetekhealth.com/>, <http://www.tandentvision.com/>, etc? There is lot of interesting research in computer vision in usa, both in large and in small companies and companies and laboratories if you are interested in that. Maybe some of these companies are small enough to categorize as "startups", I don't know. You could check the always growing robotic field too.

This site could be useful for you, too: <http://www.cs.ubc.ca/spider/lowe/vision.html>

</comment><comment><USER14> There are a lot of cool computationally intensive problems in drug design/discovery and trading/investing. There is also the possibility of a substantial upside in both fields.

</comment><comment><USER15> We're starting a startup in computer vision. We're deploying across the web, but that's just because it's the cheapest distribution mechanism.

You describe interests that might imply you'd enjoy game development. Have you thought about giving that a go?

<comment><USER16> Computer vision, neat. You guys need a good developer? If so, you can find my email in my profile.

<comment><USER15> I'm sorry to say, but we're not hiring at the moment. We try to bring people on only when they can do something that we can't.

</comment></comment></comment><comment><USER17> <http://www.neuric.com>

These guys are in Austin and they're building some cool AI technology. I have seen the demo and it was very, very impressive (their AI has emotions, so it can be pissed at you, etc). I suppose I cannot disclose much more, even though I do not work for them, but they do not use JavaScript for that.

BTW: There are other startup hubs, besides SV, in US. Austin is one of them, and I would say that most companies here do not do dot-coms, often it's hardware+software combos. Recently I bumped into another local startup that does some cool stuff with visualization - they've been hiring some C/Linux hackers (don't recall their name).

I suggest you burn a custom RSS feed for jobs@craigslist with certain keywords, like "startup", "software", etc.

</comment><comment><USER18> Coming from the consulting angle, it is much easier to get work doing web related stuff, and that work pays better I am finding. Even the desktop stuff I am doing either has a web component, communicates with the web or a website in some way or has a version that is a website. Learn your Javascript and have a decent working knowledge of HTML and CSS.

I do think that you should know probably PHP (for consulting most web projects are in this or are extensions of projects written in it) and one of either Ruby or Python.

There are opportunities out there, just not nearly as many. Also keep in mind as a recent graduate you are competing with all the people who never made the web transition because they already had 3-5 years experience on the desktop that now have 10-12 years experience there.

</comment><comment><USER19> You might check out cilk: <http://www.cilk.com>

</comment><comment><USER20> there are tons of startup video game companies that you would probably be interested in

<comment><AUTHOR> Maybe I'm not good at finding startups.

<comment><USER13> If you are interested in game development, go to the GDC in February this year: <http://www.gdconf.com/> There'll be job boots and all that, and also you can get to know people who's doing game startups at the event place itself. If you find the expo to be too expensive, you can volunteer for helping in some simple tasks, and in such case you get a full access to all the event (<http://www.gdconf.com/volunteers/caregistration.php>).

</comment></comment></comment><comment><USER21> video games, hedge funds

</comment><comment><USER22> Xobni.</comment>


How can I get more impressions for facebook ad campaigns? - <AUTHOR>

Under a certain demographic, is it the higher the bid (for CPM), the more impressions you would get? <comment><USER2> Test ! Test ! Test! In your copy & image, a minute variation can drastically change the result. Play around.

Really no other way than testing stuff out.</comment>


Killing the C++ Modules Technical Specification - <AUTHOR> https://izzys.casa/posts/millennials-are-killing-the-modules-ts.html <comment><USER2> > Effectively, without support for build tools, modules are effectively dead > in the water.

...

> "We'll make the build systems understand".

This seems to be a critical point that I agree with: you can't divorce these two, their fates must be bound to one another. Hopefully the build systems can be easily modified to accommodate.

Rust community folks might be wrong about c++ but they're right about Rust. Rust had the luxury of not being bound to any legacy specifications and it wasn't unreasonable for them to write their own build+dependency/package management tool. The net effect of them having done that means that independent of all the other great things Rust brings, much of the tedium of developing with C/C++ is gone.

Make no mistake, C++ standard committee: the bar is high and Rust has set the bar.

<comment><USER3> > the bar is high and Rust has set the bar.

Modules were introduced in the 70's as concept, Mesa being one of the first languages to use them, followed by CLU and ML....

The issue with lack of modules in C++, was that Bjarne had the compromise C++ should fit into C toolchains used by AT&T, and later all C shops.

EDIT: I get Rust is quite cool, but maybe a bit of programming language research is also welcomed.

<comment><USER4> I think "the bar" is talking about languages a developer might write her next application in. Mesa and CLU aren't on the list. OCaml _might_ be, depending.

<comment><USER3> Except Rust modules (which are the subject here) are anything but innovative, there are plenty of languages since Mesa, CLU and ML came to the world with equally or better module systems.

<comment><USER4> Who invented modules first is moot when you're picking the language to write your next project in. Just like who invented the assembly line is moot when you are shopping for your next car. "The bar" for a car isn't Ford because Henry Ford was innovative. People don't really care about any of that when evaluating their next choice.

<comment><USER3> So what has Rust brought into modules to set the bar that isn't already available in other systems programming languages, with exception of C and C++?

<comment><USER5> Ok, I am bit harsh here, but for me there ARE no other systems languages except C, C++ and recently maybe Rust. I am also told, that in distant lands with strange and foreign customs, Ada is a systems language. (I don't know - no Ada missionaries have yet set foot on our shares and preached it to us.)

<comment><USER6> >no Ada missionaries have yet set foot on our shares

I'm not sure if 'shares' is a typo or not, but it fits great with my impression of why companies choose the languages they do sometimes: everyone else uses it (it's the local culture/custom), and nothing/no one has forced them to change (by lowering their profits/share value).

<comment><USER5> It was a typo, should have been "shores". However, it was a brilliant typo - the powers that be have decided on Greenhill and ClearCase. And the people who decide these things seem to be closer to the share holders than they are to us coders, so Ada missionaries on shares is maybe what it takes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm very familiar with C++, passingly familiar with the modules proposal and unfamiliar with Rust and this article leaves me puzzled exactly what the author expects / wants a modules proposal to do instead.

My perspective as a C++ developer has been that modules have one primary purpose, which is to improve build times by eliminating the need to parse huge amounts of C++ in recursively included header files when compiling a compilation unit. If that's all a modules proposal accomplishes I'm fine with that. A modules proposal that doesn't accomplish that is useless.

Build tools generally already parse .cpp files for includes to figure out header file dependencies for a .cpp file and have to combine the filenames extracted with information from the build system on include search paths to turn those into dependencies on specific concrete files. That involves information that lives in the build system and not in the code. Modules will require something similar from build tools but as with parsing includes the rules about imports (must be before actual code, must be alone on a line) parsing out the imports is trivial and cheap compared to recursively parsing the full code in header dependencies.

So I guess I don't quite understand the problem. Modules are an improvement over headers for build times but they are not going to do everything that module systems perhaps do in some other languages because they have to be adopted incrementally into the many different existing build systems used in C++ code bases (which live outside the standard). Perhaps my ignorance of Rust means I'm missing what the author wants in C++ that's different from the current proposal.

<comment><USER8> I'm not very familiar with C++ build tools which parse source code for header dependencies, but I know that C++ compilers (the preprocessor specifically) does this. From what I know of cmake and gmake, neither of these build tools automatically parse C++ files to find dependent header files, but both require manual specification of the include directories and include paths.

<comment><USER9> They require manual specification of include paths, but not of what .cpp files depend on what .h files. However, at least on Unix, this is _not_ typically done by having the build tool parse C++ files. Rather, while compiling a given .cpp file, the compiler is instructed (using -MD or other variants starting with -M) to output a .d file listing all the header files it encounters as it goes, which are then treated as dependencies. The output format is a subset of the Makefile language with just file dependencies (like "a.cpp : b.h") rather than compilation rules; thus, anything that uses make as a backend (including autotools, cmake in that mode, etc.) can just have the Makefile 'include' all .d files, and make will do the right thing. (Alternative backend build tools, such as ninja, have to parse the .d files themselves, typically supporting only that subset rather than reimplementing all of make!) You don't have them for the first compile, but that's okay: the dependencies are only used to skip recompiling files if none of their dependencies changed.

This design replaced an earlier one where the user had to manually run 'make depend', which _would_ pre-scan for dependencies using a separate tool, makedepend(1). First 'gcc -M' was added as a straight replacement of makedepend, then -MD and variants were added to write dependency files while compiling each object file rather than requiring a separate invocation (which is slower).

But it sounds like modules will complicate things, since it could be mandatory to gather dependency info upfront in order to compile modules before files that depend on them...

</comment></comment></comment><comment><USER10> "The compiler must not become a build system" does not prevent the compiler generating local dependency info. In fact this is already possible today as many compilers (preprocessors really) are capable of generating header dependency info.

You will need a similar mode were the compiler does only minimal parsing of the source file and generate a dep file containing the list of modules defined in this file and the list of modules imported by this file.

The build system can then collet all these dep files and reconstruct the full dependency graph. Given the right format, you could probably feed them directly to make.

<comment><USER11> (Hi, author of the article)

The issue is, "how do you find these dependent modules?". As of right now, there is no way to find a module. It is not tied to a location in a subdirectory, nor is the name of a module tied to the file itself. I'm fine if we can get the dependency information, but how can we do that if there is no guarantee for finding the actual dependencies? Leaving these decisions unspecified by the C++ standard is dangerous. Having an important thing such as "how does the name of a module map to the name of the translation unit it contains?" be none of "undefined", "ill-formed", or "implementation defined" is asking for trouble. And to be quite honest, I don't see how running the compiler in a minimal parsing mode (once for each module), followed by running the compiler a second time for its full IFC (or whatever file format is used) and possible object file generation can be a good idea.

<comment><USER10> Running the compiler twice (first in preprocessor mode), then in actual compilation mode is exactly what is done now for many build systems. The first pass, in addition to building dependencies also generates the mapping from files to modules. You will need to list all the files you need to 'preprocess' in your build script, to generate the dependencies, but that's what it is done today already and I don't see a way out nor even a need to change. Modules are not supposed to enforce a specific build strategy, nor they should.

The standard currently imposes very little requirements on the actual build process, headers and source files do not even need to exist as actual files on a system, so it would be a lot of work to actually introduce these concepts in the standard and risk delaying modules further.

That doesn't mean that there might not valuable to standardize that, but it is another battle and many (I, for example) will argue that a strict mapping from file names to module names is wrong.

<comment><USER11> Forgive me, but I can't think of a single build system where the compiler is run on a source file twice. All of the ones I've seen support either parsing the .d file generated by a compiler, or parse /showIncludes if using MSVC. If you have any examples of build systems doing this, I'd love to see them so I can avoid them.

<comment><USER12> I've seen at least one, but it's proprietary and internal to my bigco. I'm willing to bet there's quite a few more at other bigcos. So lucky for you if you can avoid them, but I'm pretty sure there's many of us who don't get that choice.

</comment></comment></comment></comment></comment><comment><USER4> > Granted, the Rust community is typically wrong about nearly everything when > comparing their language to C++...

What percentage of the Rust community is a professional C++ developer, either now or recently in the past? I was under the impression that "nearly all" was a fair estimate.

If that's true, does that mean that the C++ community itself is "typically wrong" about their language?

<comment><USER13> It seems most Rust programmers are switching over from Python (but C and C++ are next, followed by Java and Javascript, look near the end): [https://blog.rust-lang.org/2016/06/30/State-of-Rust- Survey-2...](https://blog.rust-lang.org/2016/06/30/State-of-Rust- Survey-2016.html)

There is no "right" or "wrong" C++, there's also no single "C++ community". I'd say that C++ isn't even a programming language, it's more like a meta- language to build your own language.

Whether that's good or bad is up for discussion, but (a) it gives a lot of freedom, (b) it invites tinkering, (c) it wastes a massive amount of time when trying to communicate with C++ coders from other confessions, and (c) it makes it hard to integrate C++ libraries into C++ projects.

edit: confession => 'denomination' seems to be the correct English term

<comment><USER14> > _a meta-language to build your own language_

All (good) programming languages are like that. In general, any API, any library that you develop _is_ a language. I agree that C++ provides powerful tools of abstraction that make these languages easier to use (compared to what can be accomplished in C or Go, for example).

<comment><USER15> My feeling has been that C++ has a special degree of complexity beyond most languages. Many terms come up in the "day-to-day" that wouldn't come up in other languages (lvalue/rvalue, move semantics), and so much can be overwritten through operators.

I think the only other language with a similar feel is Scala. It's the programming language equivalent to Magic The Gathering: half the fun is just in the mechanics of it all

<comment><USER14> > _complexity beyond most languages_

I think complexity of C++ is merely a (partial) reflection of complexity of programming. For example, move semantics that you have mentioned is not specific to C++, and I find it nice when a language offers an explicit formalism for it.

</comment></comment></comment></comment></comment><comment><USER16> I wonder if C++ is headed for COBOL-ification. This article is very interesting but doesn't really give any hope for success in implementing a modern module system in C++.

I feel like the only way to have truly useful, simple and intuitive modules in C++ would involve breaking a certain amount of backward compatibility and force a few constraints (project layout, file naming scheme, build system, ...) on the user. But clearly that's not really in C++'s DNA and you risk ending up with something that's not quite C++ while at the same time not having the simplicity and elegance of modern languages that have been designed from scratch without all the baggage C++ carries.

C++ won't go away any time soon, that's for sure. But when I read articles like TFA or for instance [https://bitbashing.io/std- visit.html](https://bitbashing.io/std-visit.html) my gut reaction is always that maybe if you get frustrated with C++'s extreme complexity, historical baggage and user-unfriendliness you should consider moving to something else instead of trying to bolt on even more exotic features on a language which is already crumbling under the weight of all the features and programing styles it already supports. I know I did.

As an example I stumbled upon this std::visit link by perusing the top posts of reddit's /c/cpp (linked by TFA), here's the discussion: [https://www.reddit.com/r/cpp/comments/703k9k/stdvisit_is_eve...](https://www.reddit.com/r/cpp/comments/703k9k/stdvisit_is_everything_wrong_with_modern_c/)

There's an interesting thread about how:

        variant<string, int, bool> mySetting = "Hello!";

Doesn't do what one might thing it should do. The variant ends up holding a `true` boolean instead of a string. Why?

>char const* to bool is a standard conversion, but to std::string is a user- defined conversion. Standard conversion wins.

If you know C++'s history and its C heritage it makes sense but it sure as hell doesn't make me want to use C++ for my next project.

<comment><USER4> C++ is pretty close to treating unqualified string literals the same as native pointers. That is, there for backwards compatibility and for rare edge cases, but generally discouraged. I predict that, given a few years, we'll start adding checks to linters and static analyzers to warn about using them because of the ambiguity and implicit conversion issues.

There is already a std::string liberal. Better:

        MyVariant mySetting = "Hello!"s;

But std::string_view more closely models a string literal. std::string is more of a string buffer. So even better:

        MyVariant mySetting = "Hello!"sv;

<comment><USER16> That's good to know but it kind of proves my point, doesn't it? Do you know many languages where literal strings come with a big warning sign saying "probably not what you want, use this (rather opaque) alternative syntax instead"?

The fact that pointers automatically coerce into bools makes some sense in C but is an aberration for modern C++. It's just an example of a legacy "feature" pointing its ugly head to sabotage a modern C++ construct.

If you look at C++ guidelines out there a lot of it is about what par of C++ _not_ to use. Don't use raw pointers, don't use raw arrays, use exceptions, don't use exceptions, maybe use exceptions but only in some cases...

And a lot of the time the most intuitive notation, the one that goes all the way back to C, is also the one you don't want to use. Don't use "Hello, world!", use "Hello, world!"sv. What does the sv do exactly? Uh, we'll talk about that in chapter 27 when we talk about user-defined literals. This is right between the chapter about suffix return types and the one about variadic templates.

<comment><USER17> _> The fact that pointers automatically coerce into bools makes some sense in C but is an aberration for modern C++. It's just an example of a legacy "feature" pointing its ugly head to sabotage a modern C++ construct._

This is a rather odd complaint; I can't think of any programming language which has first-class support for nullable types, and where they aren't truthy/falsy, at least in conditional contexts. It's a pretty straightforward boilerplate-reducing idiom.

Did you mean to say builtin arrays coercing to pointers? (I'd agree that's probably the biggest problem with C and, by extension, C++).

Or did you mean `NULL` being an `intptr_t` in C++? That's the very rare C++ misfeature that _doesn 't_ come from C (where it's a `void*`), but at least C++11 `nullptr` fixes that.

<comment><USER18> Java is a language where nullable types aren't truthy/falsy. The following code won't compile:

      String foo = null;
      if (foo) {  // error: incompatible types: String cannot be converted to boolean
          System.out.println("was true");
      } else {
          System.out.println("was false");
      }

If one changes `if (foo)` to `if (foo != null)`, then the code will compile.

<comment><USER17> Right. I haven't written any Java in a while so it slipped my mind.

<comment><USER3> Same applies to any language derived from Algol linage.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> I love strongly worded technical arguments.

I am not deeply familiar with the Modules TS, but couldn't each environment solve the module name <-> translation unit mapping problem in its own way? For systems that can't keep reliable track of changes to the underlying representation (i.e., files) that would mean a fairly strict naming scheme.

The mapping doesn't have to be maintained by the compiler. C/C++ already depend on a suite of more-or-less independent tools to produce runnable software. I don't see how this problem conceptually is much worse than what a linker has to do.

<comment><USER4> > I don't see how this problem conceptually is much worse...

I'm asking the same question to myself. There's a bit in the article about it being _slower_ than the status quo, but I'd like to see actual benchmarks before making pronouncements. If that hypothesis is true, then surely the TS will fail before it makes it into C++20 proper.

</comment></comment><comment><USER20> All I know is that C++ build times are painfully slow for large projects. Even if you spend a lot of time and effort on making them as fast as possible, they're still not good.

#include just results in a tremendous amount of code in each and every source file. Even looking at a 6 line program, we see that after the preprocessor runs, the compiler is given 18,162 lines to process.

        $ cat > main.cpp <<EOF
        #include <iostream>
        int main() {
          std::cout << "Hello World!" << std::endl;
          return 0;
        }
        EOF
        $ gcc -E main.cpp | wc -l
        18162

That is still nearly instantaneous, but it only gets worse from there and it happens to every source file in the project. I just took at look at a 1,848 line source file I'm working with, and it expands out to 147,054 lines after preprocessing. The current state of things is awful and modules are by far the most important feature for the future of C++. We _need_ module support in our build tools and we need them to be _fast_.

Should the TS be delayed to see if the Clang idea is better? I'm curious to know what they're doing, but that's a lot to ask for. The TS is effectively a beta, and pushing back its start means less time in beta before the C++20 standard is finalized. There's a lot of work that's ultimately going to be built on top of this so getting it right is vital, but the clock is ticking.

<comment><USER3> CppCon 2016 has some Google presentations about how they use clang modules (aka module maps).

"Deploying C++ modules to 100s of millions of lines of code"

[https://www.youtube.com/watch?v=dHFNpBfemDI](https://www.youtube.com/watch?v=dHFNpBfemDI)

"There and Back Again: An Incremental C++ Modules Design"

[https://www.youtube.com/watch?v=h1E-XyxqJRE&t=922s](https://www.youtube.com/watch?v=h1E-XyxqJRE&t=922s)

</comment></comment><comment><USER21> Perhaps it's made complex by searching for perfection when really you just need something that makes a high percentage of builds better.

You'd be crazy to create a final release of something without starting from a "clean" state, which means they DO NOT need a module implementation with 100% accuracy in all of C++'s asinine corner cases. I wouldn't trust that accuracy even if they claimed it, I'd "clean" anyway.

This means that compilation speedup just has to ensure that _MOST_ incremental rebuilds perform better without adding insane development overhead (such as having to respecify things).

If 60% of the time my incremental rebuilds are faster, I'd say that is more than enough to justify a C++1x release. They need to just move forward.

</comment><comment><USER22> Forget C++ for a moment. In your dream language, if one source file uses functionality from another, where should that fact be specified?

1) In the source file

2) In the makefile

3) In both

It seems to me that the only sane option is (1) with a project-wide or system- wide set of "roots". Why is anyone in favor of (2) or (3)?

<comment><USER14> > _dream language... source file... makefile..._

I am dreaming of a programming system that takes advantage of the modern developer workstations which are very powerful and thus can support more sophisticated design and build tools than a text editor and a make. (IDEs provide only an incremental improvement on top of these.)

<comment><USER23> Please _do_ design it. Whenever someone does "visual programming" or something like that, it usually fails for anything beyond toy examples.

The only counterexample that I can think of is LabVIEW, which is pretty successful with (or rather, despite) its visual editing. (Its main selling point is device compatibility, AFAIK.)

So if you have a design for a visual (or, more generally, "beyond-text") programming system in your head that's any good, please let it out. I'd like to see it. (And until then, I'm sticking to vim.)

<comment><USER14> No, I am not a huge believer in visual programming, either. Text is (still) a better medium for formal specifications, which is evident from the wide use of HDLs rather than visual tools in hardware design.

That said, nothing prevents anyone from having (admittedly rather vague) ideas about using a computer as something more than a glorified typewriter.

</comment></comment></comment></comment><comment><USER24> They should really look at how OCaml modules work, since they solve all the same problems already, with desirable properties like separate compilation and easily discoverable mapping of module name to source file.

The drawback of OCaml modules is that all dependencies must form an acyclic graph, which can be a pain sometimes although there are well understood workarounds.

<comment><USER25> > The drawback of OCaml modules is that all dependencies must form an acyclic > graph, which can be a pain sometimes although there are well understood > workarounds.

Can you elaborate on that?

It's hard to imagine a sane build system where the dependency graph contains cycles.

<comment><USER26> Usually, you just declare the module interface separately from the implementation. I don't recall there being any to "work around" e.g. declaring mutually recursive _types_ in two different modules[1]. (And I don't think that's in any way sane, FWIW.)

[1] Of course you can parametrize one of the modules with a signature declared elsewhere and the other module implement that signature, but that's really just regular old dependency-breaking, so I'm not sure that counts.

</comment></comment></comment><comment><USER27> This seems reminiscent of export templates, which were a resounding success: [http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n142...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2003/n1426.pdf)

</comment><comment><USER28> I'm glad to see this point being made because it covers exactly what worried me when I first saw this C++ modules specification. At work, I maintain the build system for some mixed C++ and Fortran 90 code and prepocessor includes really are a case of worse is better in my view. Generating build dependencies for Fortran 90 modules is a horrible mess and can easily get broken. And I can't really see that modules solve many real problems.

</comment><comment> Const-me I'm unaware about the recent development, but MS has very module-like features in their version of C++ for decades already.

For classic C++ they have #import directive (1) Recently, for windows store/UWP platforms, C++ can consume windows runtime components (2)

Two things that allow these features to work are standardized ABI, and standardized type info format.

I don't think high-level modules are possible in C++ before ABI and type info are both standardized in a compiler-neutral way. Better yet, in a language neutral way, like MS did that: you can implement a COM object in a script language as a WSC file, and consume it from C++ using #import.

[1] [https://msdn.microsoft.com/en- us/library/8etzzkb6.aspx](https://msdn.microsoft.com/en- us/library/8etzzkb6.aspx)

[2] [https://docs.microsoft.com/en-us/cpp/windows/how-to- activate...](https://docs.microsoft.com/en-us/cpp/windows/how-to-activate-and- use-a-windows-runtime-component-using-wrl)

</comment><comment><USER29> I'm confused; isn't the solution to this problem "gcc -M"?

</comment><comment><USER30> > Build tools will parse source files over time and keep track of which > modules are where and which translation unit needs what.

Isn't this is what cmake does? IIRC it already parses the headers.

<comment><USER4> In vanilla cmake, you declare an ordered list of include directories.

But the point about "how does it work now?" is fair. I'm confused why a module search path is any worse than an include search path.

<comment><USER31> This is not related to the search path, but to determining which files need to be rebuilt when a file changes.

The idea is that when you change a module, you might need to recompile all the modules that include it, since its interface might have changed.

What I don't get in this criticism is that you have this exact problem right now with headers, and it has been solved by the preprocessor outputting dependency information (based on #include directives) for the build system to read. Why can't the same be done with modules (of course it might not be the preprocessor that does it, but the compiler or a specific tool)?

<comment><USER4> I think I'm catching on. With a '#include', you give a file name. With an 'import', you give a module name, which doesn't necessarily map to a file name.

So the problem could be solved by saying 'import foobar;' maps to a file (on a search path, maybe) named exactly "foobar". But then we need to work out how subdirectories and module names map to each other. How do you import "foo/bar.ixx"? "foo.bar"? "<foo/bar>"?

Though all that seems technically solvable to me. Maybe there's just difficulty in designing this in the context of a committee.

</comment></comment></comment></comment><comment><USER32> I admit I know nothing about C++ modules proposals, but the post talks about an "acyclic graph of translation units". Does this imply that modules can't import one another?

What happens when two .cpp files want to do the equivalent of including each other's header files?

</comment><comment><USER33> dumb title.

nitpicking.

equating innocent, if terse, comments with threats.

Why am I reading what this person has to say?

</comment><comment><USER34> Why do C++ developers make it so, so, so, so hard on themselves and the unfortunate poor souls like me who have to interact with their products?

<comment><USER14> Perhaps, they just want to share with everyone their experience interacting with the language of their choice?

(I am joking, but the complexity of the language may, in fact, reflect in the relative complexity of the APIs, say.)</comment></comment>


Ask HN: What do you wish you started learning 10 years earlier? - <AUTHOR> <comment><USER3> Nutrition and fitness (actually biology and physiology). Especially keto/carnivore WOE and intermittent fasting. Tens of problems I thought it was me were just the poorly way I've been eating all my life.

<comment><USER4> What kind of problems did you have that weren't obviously nutrition/health related? Curious what your diet is and what we're the benefits that you saw.

<comment><USER3> The most intriguing one I'd say is baldness. My hair stop falling and is actually regrowing in most parts of my head. I changed my diet to keto and then carnivore, also stopped eating 4, 5 times a day and try to do OMAD (one meal a day).

</comment></comment></comment><comment><USER5>
        - Learning how to learn (Barbara Oakley).
        - Keeping track of my reading
        - <USER2>
        - Jim Rohn's philosophy (any book, or 7 Strategies For Wealth)
        - Osho's philosophy (any book)

<comment><USER4> What does keeping track of reading mean? Like note taking for novels, non- fiction books, etc?

</comment></comment><comment><USER6> Mantaining/Building relationships, time management, self care

<comment><USER4> What do you wish you learned about maintaining/building relationships? What self-care routines do you wish you started earlier?

<comment><USER6> When you're younger you are usually raised in a leveled community of people trying to learn these things. Eventually you can age out of a like-struggling population. Learning requires experimentation in any discipline. Having a cohort allows for leniency.

Things like prioritizing physical health activities. Things like establishing work-life balance that includes hobbies, personal, and group activities. Things like starting friendships without a social broker (like work or other friends).

</comment></comment></comment><comment><USER7> Biology, math, physics, paychology

</comment><comment><USER8> film editing, math, and coding

</comment><comment><USER9> Chinese.

</comment><comment><USER10> Computers.</comment>


Snapchat acquires social map app Zenly - <AUTHOR> https://techcrunch.com/2017/06/21/snapchat-buys-zenly <comment><USER2> Snap also debuted "Snap Map" location sharing feature today: [https://www.snap.com/en-US/news/post/introducing-the-snap- ma...](https://www.snap.com/en-US/news/post/introducing-the-snap-map/)

<comment><USER3> > It's easy to get started — just pinch to zoom out and view the Map

Snapchat is one of my absolute "I'm getting old" triggers.

I absolutely cannot use it.

The app may have a notification-bubble on it, but when I start I have to swipe left and right randomly for a given period of time, until I finally, -for whatever reason-, land on a page where I can click the thing which caused the notification.

Why swiping left or right should "logically" lead to whatever it leads, I cannot tell. Often I find myself wanting to go -back- from some deeply nested screen, and to do that I have to swipe from right to left (as in "drag" the app -forwards-). WTF?

And now this. You can zoom out from a screen you never zoomed in to. Because that's clearly obvious.

This whole app is a UX disaster of proportions. I absolutely cannot see the appeal, nor how this app gained such a wide user-base.

Every time I accidentally side-swipe when trying to scroll (about one on five times or so) and land on some obscure functionality I have no reason why I'm being lead into, I'm getting one inch closer to just deleting the app and using whatever dumbed down web-version exists instead.

Can't we please have the big clicky buttons back? Anything except these "magical" swipes and gestures, seemingly only introduced by some weird cargo- cult "gestures are intuitive" following.

At least none of those web-versions has stupid "intuitive" gesture-based navigation and random side-swiping bullshit. And that makes them 100x more usable IMO.

<comment><USER4> >The whole app is a UX disaster of proportions.

As a UX designer, I think that Snapchat did this on purpose. They know that "the olds" will grow frustrated with the UI and won't use it, but they know that the younger crowd who have grown up with mobile interfaces and their accompanying interaction patterns (tap, swipe to reveal hidden items, long press to reveal hidden items, etc) will know how to navigate around the app and are willing to put up with the UI flaws.

This has two valuable results (at least from Snapchat's point of view):

1) Older people won't use it, which makes the younger generation perceive it as a safe space from their elders.

2) Advertisers are guaranteed a pool of younger users who have disposable income.

As for the appeal of Snapchat, it really lowers the cognitive barrier for updating people about your life. Personally, I spend more time curating items that I post on Facebook as it feels more permanent, but on Snapchat there isn't that pressure as the picture will disappear in 10 seconds or less.

</comment></comment></comment><comment><USER5> Location based ads are a really tough nut to crack. If Snap wants to exist in the ad tech business going this route they will have to become bigger than Facebook or they will just fail. There is no interest in driving 3 persons to a store and no one will want to do it, especially agencies, because it's an enormous pain to setup and micro manage. Also, far less spend than video views or other les restrictive objectives. So if this is Snap strategy, good luck to them especially outside of the US and big Snapchat cities like London or Paris.

Zenly has definitely an amazing team, but I don't think their tech is that valuable, at least it's not a valid shield against what Facebook could come up with if they feel they should.

</comment><comment><USER6> Based on the generally good approximation of 10% ownership for series B investors, this wasn't a great return (if any) for Benchmark.

Pretty nice for the founders though, and likely nice for the users too - Zenly's product requires all/most of your friends to use it for it to be good, which is really hard to do, but Snapchat already has a lot of users, so it'll take Zenly's tech and turn it into something valuable.

Seems like a nice outcome overall!

<comment><USER7> at the upper bounds (350 million) (10% is 35 million) with 22.5 million invested in 9/2016 and the sale shortly after that is a nice flip and a gain of 10+ million

<comment><USER8> They definitely got their money back, but venture economics dictate that the fund is paid for by the outlier returns (10 to 100 to 1000x or more) rather than a nice 1.5x.

<comment><USER9> With those amounts, everything adds up. $10 million probably pays for a couple years rent for a fancy VC office on sand hill road.

</comment></comment></comment></comment><comment><USER10> I just can't get my head around this.

1\. Why don't they just build it themselves? That would cost probably low single-digit millions and maybe 1 year of time. I don't mean to downplay the work that went into Zenly but it's not like we're talking about self-driving car tech where there's a real technological entry barrier.

2\. If, for some strange reason, they can't build it themselves and need to acquire, why do they go for the expensive VC-pumped startup instead of picking one or several of the hundreds of other less expensive options?

Can someone please enlighten me?

<comment><USER11> Answer to #2: They both have backing from Benchmark?

<comment><USER12> This is the right answer. VCs helped Snapchat out, so it's time for Snapchat to help their VCs out and balance their books.

</comment></comment></comment><comment><USER13> They have acquired recently another location based app called Placed. It is become pretty clear that they want focus in construct the best platform for Ads and content based on location. Maybe more than age, gender and education. That could be a shift in their started sttrategy when they only talked to Big world companies like Coke, Nike and Unilever.

</comment><comment><USER14> Heh, I guess Loopt was just a decade too early.

<comment><USER15> Not to mention that Apple has natively included Find iPhone and Find My Friends. I imagine Android has a lot of similar applications too.

<comment><USER16> Think something like this is built into Google Maps today.

</comment></comment></comment><comment><USER17> Useful as Macron pushes France as a startup centre to have a large exit like this. Zenly are based in Paris.

</comment><comment><USER18> What exactly does Zenly do and why is it worth millions? It just looks like bitmoji on google maps.

<comment><USER19> Snapchat just update for me today and they rolled a new feature that I'm assuming incorporates what Zenly did. You can now share your location with friends and see public/shared locations and stories. I can now zoom around the map looking at snap stories of specific locations without waiting for Snapchat to show it to me. It also shows a heatmap over your map so you can see areas with heavy activity. You can't click on the "hot" areas, it's just info.

Edit: Official Snapchat post: [https://www.snap.com/en- US/news/post/introducing-the-snap-ma...](https://www.snap.com/en- US/news/post/introducing-the-snap-map/)

<comment><USER20> Interesting, I totally can tap any "hotzone" I want and Snapchat will serve me random videos from that approximate location. It's very interesting to watch sporting events.

<comment><USER19> I'll have to try that again. I thought I had tapped on a couple and it didn't work but maybe I just didn't hit the right spot.

</comment></comment></comment></comment><comment><USER21> Every time I see a company I've never ever heard of get acquired for hundreds of millions of dollars, I have to step back and wonder what an interesting world we live in.

<comment><USER22> To be fair, there are probably dozens of such deals every day in traditional non-tech industries.

<comment><USER23> Yup. For example, did you know that CK Infrastructure is buying Ista? Ista builds energy meters, and is worth... $4.5B.

[http://www.reuters.com/article/deals-day- idUSL3N1JI3AN](http://www.reuters.com/article/deals-day-idUSL3N1JI3AN)

<comment><USER24> Is this a fair analogy when considering Ista's history ("Clorius is taken over by ista. -1974")? [https://www.ista.com/uk/company/facts- figures/history/](https://www.ista.com/uk/company/facts-figures/history/)

<comment><USER25> They also have a billion dollars in revenue, and generate cash.

</comment></comment></comment></comment></comment><comment><USER26> Zenly has one of the best teams here in Paris (and there are _lots_ of great teams).

They also have awesome tech, AFAIK they're the first to leverage gomobile to create a cross platform (iOS/Android + backend) "transport" code based on grpc.

It's still weird to see the founders exit now since they should still have a lot of runway after last year's round. But it's probably safer given the company doesn't make any money yet.

<comment><USER27> Last time i saw a codebase with gomobile, it wasn't a pretty sight... especially on android. Not sure this is the reason they got bought.

<comment><USER26> No, and I didn't say it was, I was just commenting on a very interesting piece of tech that I haven't seen use at this scale elsewhere.

It most probably is a combination of factors. The crown is supposedly their tech to get constant location with minimal battery impact.

</comment></comment></comment><comment><USER28> 2 million _downloads_.

$125 - $175 paid per download.

Jesus.

<comment><USER29> I mean FB paid $1b for Instagram's 30m users. $33/user

<comment><USER30> Ok so... a much better deal then?

<comment><USER31> Instagram was financially a steal for FB, in retrospect. And no, you can't just say "they paid this much for download, that is dumb". There is a lot of nuance, for example:

\- Does the company need it to survive or succeed?

\- Can the acquiring company better monetize or grow the asset?

\- Are the growth trends exponential, such that a huge amount of other people may soon be using the product?

\- Is there some strategic advantage to the team - or product category expertise?

\- Is the product easily defensible? (e.g., strong network effects)

I can't speak to this particular acquisition, but there are a number of examples where heavily "overpaying" may actually be a steal in the long term (and of course, the opposite).

</comment></comment></comment></comment><comment><USER32> Great win for European startup scene. Congrats to Zenly team.

</comment><comment><USER6> How do people think Snap will monetize the map?

Brand bitmojis? Location ads - e.g. like Waze where you see McDonalds logos on the map?

Local events seems like too much logistics/not enough money.

<comment><USER33> Snapchat already has custom event filters that you can pay for.

<comment><USER34> Yeah, weddings and graduations are a big hit for them. Definitely a new must have for event planners that just gets folded into the cost of the event.

</comment></comment></comment><comment><USER35> How long before Facebook adds this to all of it's apps?

</comment><comment><USER36> I wonder if Snapchat will manage to get this money back in one way or another. Instagram is a massively popular app, while Zenly - it is HN where I first heard it. Also, 2 million downloads mainly from teens seem to be not so massive. There are bigger and more unique apps.

I wonder how often deals like that comes from pressure from VC's rather than actual strategy.

<comment><USER37> They're probably going to integrate elements from Zenly into the main Snapchat app is my guess.

<comment><USER38> Yeah, but what I don't get about this, is that building that tech (if it's just a map and pin tracking your friends) is not hard. And certainly wouldn't be hard for Snap.

I can't see how 2 million users are worth it either. It really isn't even that many anyways because I'm sure many were already snap users)

Unless it's because they really wanted to do Snap map and are basically paying to have a fast implementation and have that many people with it enabled from day one. This way when Instagram copies them it will take a few months.

</comment></comment></comment><comment><USER39> More than their entire R&D budget for 2016....I sure hope they have something up their sleeves...

<comment><USER40> M&A is the new R&D.

</comment></comment><comment><USER41> Never heard of it

</comment><comment><USER42> So who wants to create a location based messaging app with me?

Email me [serious].</comment>


Ask HN:  Is pseudocode copyrightable? - <AUTHOR>

Can you for example implement an algorithm from pseudocode in a Wikipedia article without worrying about copyright issues?
What exactly is pseudocode in this context?  Is English text combined with math formulas considered pseudocode?  What if it is highly suggestive of how it would be implemented?
And what if the pseudocode looks a lot like a real implementation (e.g., say in python)? <comment><USER2> IANAL, but nearly any recorded/written down is copyrightable. However ideas are not. If you implement from pseuso-code, it is another expression of the same idea. Different forms of expression have different rules on how different the new work must be to be unique. If you copied a function and just changed the variable names, it could be argued that it was an infringement.

If you copy a compilable function and give attribution, probably no one will care. If you copy a whole enterprise system, they might. If the original author cares, there should be a rights notification in the code. In particular Wikipedia articles have the GNU Free Documentation license, so you are pretty safe there.

<comment><AUTHOR> The Wikipedia license is a copyleft license, which may present problems for software that is not open source.

I would also rather not credit a Wikipedia article in my closed source software unless it's really necessary.

<comment><USER3> Somehow I don't think Wikipedia would sue you for implementing their pseudocode.

</comment></comment></comment><comment><USER4> Copyrights protect original works of authorship fixed in any tangible medium of expression. Copyright protection also extends to derivative works. If a new work is transformative when compared to a parent work, the child work is not considered derivative. In that case copyright doesn't extend to the child work. In the opposite case the opposite would be true.

So the issue is whether an algorithm implementation is transformative when compared to the pseudocode.

The answer to your main question is fact specific. Each case is different and a court of law will look at the specific facts and make a ruling.

Talk to a lawyer for counsel that relates to your specific facts.

</comment><comment><USER5> Pseudocode is an informal representation of an algorithm using informal language. Not only is that copyrightable since it is an original work, but I would also argue that it could be patentable because the underlying algorithm is patentable.

</comment><comment><USER6> Scribbles are copyrightable.</comment>


Ask HN: Best performing app on Hacker News? (survey) - <AUTHOR> https://docs.google.com/forms/d/12wwu2Vz7UAiLmbWE3rlvOvXpn0cnUyD4XP22gOCbGvk/viewform?usp=send_form

<comment><USER2> Will there be a score to go with the results, or just a ranking? It would be nice to know _why_ someone is a winner. It would also be cool to know the tech stacks involved, especially to those of us making evaluation decisions right now. :)

<comment><AUTHOR> Absolutely! When I write up the winners, I'll explain how they were chosen. And hopefully with pretty graphs if permission is granted.

As for tech stack, sometimes that's actually difficult to tell from within New Relic. If people answer the question to "better understand their app" and tell me their stack, I'll definitely report back on those results! I just wanted as few questions required as possible.

</comment></comment><comment><USER3> Looks like the Key has to be a whole number? If you're asking about the Data Access Key, it is not a number but a string.

<comment><AUTHOR> Ack, I don't know how that happened. Thank you!!!

</comment></comment><comment><AUTHOR> Happy to answer any questions</comment>


Ask HN: Where do you hire developers? Where do developers go to get hired? - <AUTHOR> We're in a hiring phase at the moment and have had really mixed results on the job market. We're based in London, but I'm interested to hear from all over. Where do you go to get hired? and if you're hiring, where do you see the best results? <comment><USER2> We had good results meeting candidates face-to-face on the [https://www.siliconmilkroundabout.com/](https://www.siliconmilkroundabout.com/) London job fair. Next one is end of November.</comment>


Coderpath podcast: Interview with David Heinemeier Hansson  - <AUTHOR> http://coderpath.com/posts/1 Inaugural relaunch of coderpath as a podcast, with guest David Heinemeier Hansson. Hosts Miles Forrest and Curtis McHale. <comment><AUTHOR> Did an interview with DHH a few weeks ago. We talk about Rework, Rails3, and some personal stuff like his passion for racing Porsches.</comment>


All-Time Top iPhone App Sales Figures and Estimates - <AUTHOR> http://www.macrumors.com/2009/04/13/all-time-top-iphone-app-sales-figures-and-estimates/ <comment><USER2> Where's the discussion for this? This is the story I was waiting for ... except there is little hard #'s in the article. So maybe insightful members can share data + numbers.

Thanks!

</comment><comment><USER2> Where's the discussion for this? This is the story I was waiting for ... except there is little hard #'s in the article. So maybe insightful members can share data + numbers.

Thanks!</comment>


Why I am launching a programming school - <AUTHOR> https://medium.com/@constructorlabs/why-i-am-launching-a-programming-school-e466b0edc01c <comment><USER2> Sorry - Friend - but I think the industry has passed you by.

It's a bad time to launch a for profit code school, partly because online resources - like EdX - have become so good.

That's me trying to be helpful.

<comment><USER3> I think, friend, you'll find that there is ample opportunity for code schools that aren't based in the US.

London (where this school is based) is extremely receptive to code school graduates and resources like EdX don't even scratch the surface from the perspective of an employer.

<comment><USER2> That's great!

I said nothing about the US? No worries!

I recently read this article: [http://hackeducation.com/2017/07/22/bootcamp- bust](http://hackeducation.com/2017/07/22/bootcamp-bust)

I know quite a few people that went through boot camps personally. Some did great and some really struggled.

It sounds like you have it sorted, so I hope it's successful and I wish you the best!</comment></comment></comment>


Mistakes You Apparently Just Have to Make Yourself - <AUTHOR> https://medium.com/@mcfunley/mistakes-you-apparently-just-have-to-make-yourself-cc2dd2bfc25c <comment><AUTHOR> I can vouch for at least 9 of these personally. The list is worth reading, if only to self-evaluate how many you've already gone through, and recognize if you're diving headlong into another one.</comment>


Ask HN: Transition from Dev to Manager - <AUTHOR>

About a year and a half ago, I said to my boss in a 1:1, "Hypothetically, if I wanted your job, what should I do?" He didn't have any good non-snarky answers for me. We've worked on it over the last 18 months, which has led to my transition from a senior dev to lead dev of a major project.
So that's cool. I'm super grateful to my boss for doing what he can to help me. Unfortunately, it doesn't look like I'll move much further up here. This project is about as big as it's gonna get. If my boss leaves, I don't have enough political capital at this company to move up into his position. It seems that my next step is to find another position elsewhere.
As I've mentioned in other HN threads, I get recruiter emails all the time, as I'm sure many of you do. Most are for front-end developer positions, despite the fact that I'm primarily a back-end (albeit full-stack) dev. (Sound familiar, guys and gals?) However, I never get anything that even remotely looks like a leadership role or something that could potentially turn into a manager-style role.
My question is this: What do I need to do with my resume, LinkedIn profile, and other job search efforts to best put myself out there for something that's more of a Software Engineering Manager role and less of a code monkey role?
When I respond to a recruiter and suggest this, I get "I don't have any positions like that. With your background in Java, though, it sounds like you would be a perfect fit for this Javascript Engineer role" instead. Sigh.
Are there even jobs out there in the Bay Area like this? How do I seek them out and apply? How do I convince them that even though I've never had a role like this that I can do the job?
Thoughts? Suggestions? Comments? Bad jokes? <comment><USER2> Recruiter here. Part of the problem with recruiters is that they are going to reduce you only to what you are and now what you can be. If they are looking for managers, they typically are looking for experienced managers and aren't necessarily trying to identify someone who is prime to move into that role.

You should emphasize any leadership experience on your resume and LinkedIn. If you list yourself as a "Full-stack Dev", that is probably all you will get calls about. Call yourself "Lead Dev".

It could be risky to mention something like "Interest in management positions" on LinkedIn - depends on who is paying attention to your profile. You could also do some SEO type work on your profile, adding words that recruiters might use to find managers. As an example, recruiters might get a request for a manager that knows about Agile or Scrum. Sneaking in methodology buzzwords could help you appear in those searches, though I'm not sure how likely someone would be to contact you if you didn't give the appearance of someone interested in or capable of managing.

You might be better off being proactive and contacting a recruiter directly to get their suggestions and help you market your background to those types of positions. The resume is a much easier item to tackle since it's private.

If you are looking for a recruiter, I just released part 2 of a 3 part series on working with recruiters. Find part I here [http://jobtipsforgeeks.com/2014/06/20/find/](http://jobtipsforgeeks.com/2014/06/20/find/) .

</comment><comment><USER3> My two suggestions are: learn everything you can about being a good manager and leader where you are now. Use the time you have as a "new (manager|lead)" in a company that knows you're a "new (manager|lead)" to be the eager newbie (just like you probably did when you were a newbie dev). Find the managers and leaders who you think are good and who have traits that you aspire to have and learn them while you can. Being a good technical manager and leader takes some of the skills of being a good dev, but a whole other set of skills that you generally don't need when being a dev. Finding a good mentor (even if they don't know they're mentoring you) is something you can more easily do at your current company.

When you do look for another job, be up front with the company you're talking to. You may want to interview for a Senior dev position, but tell the recruiter that you want to parlay your experience into being a manager or lead. At my last company, we hired a couple of folks like this, and they almost all turned out to be good managers and leaders.

<comment><USER3> On that second point...if the recruiter or hiring manager balks at the request to position yourself to be a manager or lead in the future, pack your bags and keep on looking.</comment></comment>


Are Brain Signals the Ultimate Biometric? - <AUTHOR> https://www.braindecoder.com/you-could-sign-into-high-security-technology-with-brainprint-1264142527.html <comment><USER2> No. To this day, they have all been thwarted.</comment>