hacker news with inline top comments    .. more ..    31 Aug 2016 Ask
home   ask   best   2 years ago   
1
Ask HN: How are credentials managed at your company?
42 points by shubhamjain  3 ago   35 comments top 21
1
lucaspiller 1 ago 1 reply      
Our authority for authentication is Active Directory, it may sound very enterprise and not-hip but it's great because basically everything supports it. A user just needs one password for all our systems - email, servers, laptops, internal applications.

For servers we use LDAP, so you just SSH to a machine and it creates an account if one doesn't exist. It authenticates against AD every time, so if an account is disabled there, their access to all servers is instantly revoked. You can still use SSH keys so you don't need your password every time.

Internal web applications (mainly Rails) are backed by LDAP too, but also support NTLM SSO for Windows uses (so they only need to enter their password once when they log-in to their machine). Not everyone uses Windows (or is part of the domain), so we use CAS on top of that to make switching between applications transparent for everyone.

We don't really use any external services that we need to share passwords for.

2
m0nty 2 ago 2 replies      
We just use "c0mp4nyn4m3" everywhere, unless we just use "companyname". Or the same passwords on multiple servers, or a few well-known passwords which are used again and again.

I've tried and failed to change this culture. Why have full-disk encryption if it's secured with companyname/companyname? Why encrypt backups if the password is 12345? Apparently, it's so we can show we've fulfilled our data-protection obligations.

I've seen this at every company, large and small, including a defence contractor, I've ever worked at. It's an unwinnable battle.

3
cdevs 19 ago 0 replies      
I'm a system admin with about 40 passwords for work I need to remember so this year I've been using keeweb to keep a encrypted password file/searchable file. This year I started throwing the dreaded htaccess passwords around company only sites we control incase a old employee wants to jump back in until we can decide on a better system/ clean up how we do things.
4
asher_ 1 ago 1 reply      
This is still a hard problem.

I use Google Apps OAuth for everything possible. This makes it pretty easy. You can also use SAML or any other SSO mechanism.

You should absolutely create new users when that is an option. Then, when someone leaves, it's easy to remove access without having to worry about things.

We use Lastpass to store all company passwords, and there are some shares done through it as well, but we don't share unless we have to.

If you are sharing an account with someone you should change the password for that account when they leave the company. If you're using something like Lastpass or similar this is easier to do than distributing the password another way.

5
Jaruzel 2 ago 2 replies      
My primary role (these days) is as an Identity Architect. What that means is, I look at all the disparate systems in an organisation and design a better way to manage credentials.

My main client base is Blue Chip, so that means a majority of Windows based services, and a smattering of Linux, and even mainframe. Most companies have totally disconnected systems requiring manual user creation on multiple systems, with the user having to remember several sets of credentials just to do their daily job. This may be archaic compared to the proliferation of oAuth across the web, but large Corporates are rarely up to the curve, and in many cases are completely unaware the curve even exists. This is where I come in.

The main component of any credential management is an identity hub; I mostly work with Microsoft Identity Manager, but there are other options, such as IBM Tivoli Identity Manager and Cisco Identity Services Engine (to name but two). The identity hub takes data from [multiple] Authoritative Sources (HR, SAP etc.) and compiles a meta-identity of each user which is then forwarded as user attributes onto target systems. If the target system doesnt need or care about Job Title for example, that can be excluded from the forwarded data. Any user changes in the Authoritative Source are then replicated automatically to any target system on a regular schedule.

Once you have a Single Identity, it is then a case of leveraging SAML, oAuth, or plain old Kerberos/NTLM for login authentication. In an ideal scenario all systems will be able to support a compatible logon provider service but that isnt always the case. Getting users down to a single id/password is always the end goal though.

Of course this also all scales out to the Cloud, with direct support for AWS, Azure etc.

If you want to know more, hit me up with some questions!

6
DaiPlusPlus 1 ago 0 replies      
When I was at Microsoft (DevDiv) we used AD, Forefront Identity Manager and an internal webapp called RAMweb to request to join controlled groups.

Them being Microsoft everything was in-house, though I did work on a team that did use some external resources - we traded passwords on an ad-hoc basis - "trusted" SharePoint pages or shared OneNote documents mostly - but this was never anything sensitive - think: accounts for sites like HackerRank or Lynda.

All of the startups I've been at use LastPass Enterprise, it works well.

7
neelkadia 41 ago 0 replies      
In my previous company which I left just in half day/ during lunch break.

They were having 'admin123@companyName'in case that password doesn't work they generate SHA and then put in the database field 'password'

8
dijit 2 ago 1 reply      
Thycotic Secret server.[0]

it costs a lot and hasn't got functionality that couldn't be replicated by something open source, but for now it's that.

https://thycotic.com/products/secret-server/

Additionally:

A centrally managed daily rotating EFS (windows) volume which gets called by some powershell scripts when you want to look up the daily rotated admin password for a machine.

For when machines inevitably get knocked off the domain.

I think it's custom.

EDIT: it's from SANS.org

http://cyber-defense.sans.org/blog/2013/08/01/reset-local-ad...

9
schrodinger 40 ago 1 reply      
1Password for teams. Works great
10
quantumhobbit 38 ago 0 replies      
Active Directory. Except for those services guarded by an owner who is always on vacation or too busy processing other requests when you need him. Typically shared passwords for nonprod.
11
UK-AL 47 ago 0 replies      
Active Directory for internal + Azure Active Directory(With sync) for SAAS/Web products.
12
afloatboat 2 ago 1 reply      
We're a small company, but we have a lot of credentials that go around and we generally use Lastpass with a shared folder because it's supported on all platforms and free.

The only thing that bothers me (and can't be circumvented because of browserdesign) is the ability to get plaintext passwords from autocompleted forms. So if an employee wants to write down a password, there's nothing stopping them.

For access to our servers we require everyone to use SSH keys.

13
methyl 47 ago 0 replies      
We have all the passwords managed through Meldium, I find it pretty convenient although it's security is as strong as your google account.
14
creshal 2 ago 0 replies      
Internal auth strictly over LDAP or SSH keys, so we don't have to worry about that.

For external things we can't integrate into that we use a password manager (self-made). People get dropped into the categories they're supposed to access, and done.

15
stephenr 3 ago 0 replies      
In most cases I've seen: not well.
16
Annatar 20 ago 0 replies      
We use SmartCards which contain our private certificates.

The certificate on the SmartCard is encrypted by a passphrase.

The OS has been modified to support the SmartCard reader and use our individual certificates to authenticate and authorize us.

All our applications have been modified to authenticate and authorize us based on the decrypted SmartCard certificate and the roles we are in.

We can order roles through a centralized self-service web application. When a request is created, we get an automated e-mail with the request identifier, which acts as a file handle in the C programming language. The request then goes into the local security officer's queue, where it is either rejected or approved; if approved, it then moves into the role owner's approval queue. The outcome of the decision process is e-mailed to us automatically by the system. If approved, the access to the system or application in question is instantaneous.

Even SSH has been modified to use the SmartCards or soft token certificates for technical user accounts. It took us years working with Oracle to get their PKI fixed, since their in-house experts never saw a SmartCard reader, but eventually we got to the point where even the Oracle database uses the certificate on the SmartCard for authentication and authorization. Authorization from the web self-service application is translated into Oracle roles inside of the databases.

Even our source code management system uses SmartCards.

We run our own certificate authority. All of our relevant software is preloaded with the certificate authority's certificate by the respective engineering teams (component owners), so that the entire chain of trust can be verified. Our certificates use 4096-bit keys.

We do not use logins or passwords anywhere.

17
SnaKeZ 2 ago 1 reply      
Keepass in shared folder
18
lowry 36 ago 0 replies      
git-encrypt
19
tummybug 3 ago 0 replies      
in github :(
20
_delirium 2 ago 0 replies      
post-it notes
21
thinkMOAR 2 ago 2 replies      
I really like your approach, just ask people to share sensitive information on a public website. Anybody sharing their company credential storing policy here should be up for an early performance review by their managers, boss.

Here we start with not writing our policy on public websites.

2
Ask HN: How do you manage per-service emails with aliases?
2 points by lnalx  23 ago   3 comments top 2
1
celticninja 17 ago 1 reply      
The most convenient option is to use gmail and to preface the email address with service name and "+".

So if your email is example@gmail.com, it becomes

dropbox+example@gmail.com

If you dont like gmail, just use it for signups, but as you can have 2FA on GMAIL it is reasonably safe for this sort of stuff.

2
detaro 15 ago 0 replies      
I have my own domain. Many providers offer wildcard aliases (as in, all addresses not otherwise defined end up in one mailbox) and they then get sorted into folders (or blocked if the address has end up in spam lists)
3
Ask HN: Best way to start and master Hadoop?
42 points by hubatrix  23 ago   30 comments top 13
1
burgerdev 22 ago 4 replies      
Reconsider whether you really need to: https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html

(although it might look good on your CV)

2
acangiano 21 ago 1 reply      
Big Data University has several relevant courses and learning paths. They are all free, give you certificates upon completion, and open badges backed by IBM: https://bigdatauniversity.com/courses/

In general, after you get some Hadoop fundamentals, I would recommend focusing on Apache Spark instead.

Disclaimer: I'm part of the Big Data University team.

3
heartsucker 22 ago 1 reply      
I started with Hive and worked backwards. It gives you a nice SQL interface and allows you to do M/R operations on CSV files easily. Once you get the hang of it, going back towards raw M/R or even something like Cascading/Scalding might be less of a shock.

If you know Cassandra or other NoSQL, you can try your hand at Hbase. To do anything with it beyond adding or removing data from a key, you'll need to write an application of some sort. Cataloging tweets is a decently simple exercise.

In my work, the only time I accessed the HDFS directly was doing a put/delete of a flat file CSV that I was going to load into Hive. I'm not saying there's not use cases for using HDFS, just that in the set ups I've used, I've never seen it.

4
eranation 22 ago 0 replies      
Hadoop ecosystem is ptetty vast. I used the book "Haddop the definite guide" and "Hadoop Security". But I see more and more organizations moving to solutions that augment Hadoop (or even replace it) such as Apache Spark.I've never seen a customer yet that would prefer a classic map reduce job over a spark app after understanding the performance and developer productivity benefits. But I might just be lucky.AWS EMR is as others said a great place to get started and you can get Hadoop, Hive, Spark, Presto and other great projects easily installed and ready to go.
5
lifebeyondfife 21 ago 2 replies      
First I'd ask what's the skill you want to gain?

Do you want to learn how to setup Hadoop clusters and Zookeeper etc. on bare metal and understand all the maintenance of such a system. Or do you want to learn how to use the tool for enabling data science projects?

If it's the former, companies like Databricks are becoming popular because they abstract a lot of that complexity away: https://databricks.com/try-databricks

Because you're coming at it from scratch I'd strongly advise you look at the future trend and start straight with Spark. It is also made by Apache and is the next generation solution. https://spark.apache.org/

To give an idea of the difference, Hadoop uses Map (transform) and Reduce (action) higher order functions to solve distributed data queries and aggregations. Spark can do the same but it has access to so many additional higher order functions as well. This makes the problem solving much more expressive. See the list of http://spark.apache.org/docs/latest/programming-guide.html#t... and http://spark.apache.org/docs/latest/programming-guide.html#a...

The Spark documentation and interpreter are good places to start.

https://github.com/apache/spark/tree/master/examples/src/mai... (Scala) and https://github.com/apache/spark/tree/master/examples/src/mai... (Python)

6
lmm 21 ago 1 reply      
Start with a real problem that you need to solve. That's the only way to learn something in a way that's actually effective.
7
thorin 17 ago 0 replies      
I was thinking about this today and stumbled across hortonworks sandbox which is a whole bunch of big data stuff including hadoop set up to run on a vm with a load of tutorials built in. Seems like it would be worth checking out!

http://hortonworks.com/products/sandbox/

8
binalpatel 22 ago 1 reply      
Start with a higher level interface and work backwards? Possibly something like Hive/PIG/MRJob, get familiar with them to wrap your head around MapReduce.

Past the scope of your question - but I'd also recommend learning Spark as well, it's probably more relevant and marketable at this point than learning pure Hadoop.

9
mastratton3 22 ago 0 replies      
That answer could go a number of directions depending on your level of experience. I would say find a problem you need a distributed system before and then as said previously, use AWS EMR. If you're more interested in the infrastructure side of things than its always a good experience to setup a cluster from scratch.
10
master_yoda_1 22 ago 0 replies      
Hadoop is mostly used for processing large dataset. Also AWS EMR is the best place to play with large cluster. So start here:https://aws.amazon.com/articles/Elastic-MapReduce/2273
11
opendomain 22 ago 0 replies      
I started an open source project for NoSQL training in all Big Data and machine learning technologies [1]

We have not done Hadoop yet - is there anyone that would like to help? We are considering crowdfunding to pay for all trainers so that the videos and book would be free - or should we charge per course?

[1] http://NoSQL.Org

12
codepie 19 ago 0 replies      
Hadoop's source code has been on my reading list for a long time now. I have tried it before, but couldn't go through all the bits and pieces. Is there any strategy you should follow while reading any source code? Are there any code walkthroughs of hadoop's source code?
13
mping 21 ago 1 reply      
I would recommend first of all that you get familiar with the names and versioning. Hadoop is a mess, and its basically a family of big data projects.

You have two/three main components in hadoop:

- Data nodes that constitute HDFS. HDFS is Hadoop's distributed file system, which is basically a replicated fs that stores a bunch of bytes. You can have really dumb data (lets say a bunch of bytes), compressed data (which saves space but depending on the codec you may need to uncompress the whole file just to read a segment), arrange data in columns, etc. HDFS is agnostic of this. This is where you hear names like gzip, snappy, lza, parquet, ORC, etc.

- Compute nodes which run tasks, jobs, etc depending on the framework. Normally you submit a job which is composed of tasks that run on compute nodes that get data from hdfs nodes. A compute node can also be an hdfs node. There are alot of frameworks on top of hadoop, what is important is that you know the stack (ex: https://zekeriyabesiroglu.files.wordpress.com/2015/04/ekran-...). So you have HDFS, and on top of that you (now) have YARN which handles resource negotiation within a cluster

- Scheduler/Job runner. This is kinda what YARN does (please someone correct me). Actually its a little more complicated https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yar...

Since hadoop jobs are normally a JAR, there are several ways of creating a jar ready to be submitted to an hadoop cluster:

- Coding it in java (nobody does it anymore)- Writing in a quirky language called Pig- Writing in an SQL-like language called HiveQL (you first need to create "tables" that map to files on HDFS)- Writing generic Java framework called Cascading- Writing jobs in scala in a framework on top of cascading called Scalding- Writing in clojure that either maps to pig or to cascading (Netflix PigPen)- ...

As you can imagine, since HDFs is just an fs, there are other frameworks that appeard that do distributed processing and that can connect to hdfs in someway:- Apache Spark- Facebook's Presto- ...

And since there are so moving parts, there's alot of components to put and get data on hdfs, or nicer job schedulers, etc. This is part of the hadoop ecosystem: http://3.bp.blogspot.com/-3A_goHpmt1E/VGdwuFh0XwI/AAAAAAAAE2...

Back to your question, I suggest you spin your own cluster (this one was the best I found: https://blog.insightdatascience.com/spinning-up-a-free-hadoo...) and run some examples. There's alot of details about hadoop such as how to store the data, how to schedule and run jobs, etc but most of the time you are just connecting new components and fine-tuning jobs to run as fast as possible.

Make sure you don't get scared by lots of project names!

4
Ask HN: How do you deal with performance anxiety during interviews?
10 points by wavesounds  9 ago   7 comments top 5
1
c0110 8 ago 1 reply      
I found that mock interviews helped me to some degree with this. It's hard for me to talk and write code simultaneously, so practicing in front of someone who is an experienced interviewer helped me gain some confidence in whiteboard coding.
2
EnderMB 3 ago 0 replies      
It sounds like a really shitty thing to do, but one thing that really helped me in interviews is basically going to more of them. If a company sounds you out, and you're not entirely sure that you want to join them, why not go to the interview anyway?

Obviously, don't go to an interview every month, but don't wait until you absolutely must have a new job. Get the feel of a few places, and if you turn them down then there's no harm done.

3
jaytaylor 9 ago 1 reply      
Practice. I bought a whiteboard, mounted it on the wall, and practice questions from interviewcake as if I were in front of a live audience. It feels kind of silly, but definitely helped me improve recall under the pressure of an interview. Putting yourself in an environment that most closely resembles the stress of the real thing to induce some or all of the anxiety is paramount!

Repeating this exercise at least once daily has produced real results for me, and helped me get comfortable thinking and speaking about algorithms outside of my normal operating environment (i.e. in front of a keyboard ;).

4
chrisked 4 ago 0 replies      
I'd say practice practice practice. Try to create a testing environment which is close to reality. Also if you currently applying and interviewing for jobs, I'd prioritize then and start with the ones I find less interesting.

Another idea: Find a local meetup group or something similar where you can give a talk about performance anxiety during interviews.

Just tell your story to others and you'll get invaluable feedback. That said I know you asked here for advice, but discussing on a forum is too asynchronous. More like a take home test as you already described.

5
wavesounds 8 ago 0 replies      
I just found this other Ask HN thread on the topic that has some good thoughts https://news.ycombinator.com/item?id=1618500
6
Ask HN: Small town lots of FiOS infra. no residential FiOS keep pushing?
8 points by jordanbaucke  15 ago   5 comments top 5
1
wsh 7 ago 0 replies      
As another commenter has noted, FiOS is Verizons trademark for service delivered using what is known generically as a fiber-to-the-premises (FTTP) network.

A typical network of conduits and fiber optic cabling installed along major streets for traffic signal synchronization and similar municipal purposes is unlikely to reach or pass many homes directly. Extensive last mile construction may be required between the existing network and each location to be served, and the cost of this is often a major factor limiting broadband deployment, especially in suburban and rural areas.

Your citys network could be useful to businesses or telecommunications companies that need point-to-point dark fiber connections, and many local governments and electric utilities with fiber optic networks find it attractive to lease some of their excess capacity. The economics of this--a few sophisticated customers, willing to pay, in advance, the full cost of connecting their buildings to the nearest conduit--are completely different from those of mass-market consumer offerings, which generally need a very high take rate to keep the prices reasonable. Achieving this can be difficult, especially in overbuild situations with established competitors.

You might be interested in these two studies, both prepared by the same consulting firm, discussing the costs and opportunities of municipal FTTP development:

City of Palo Alto Fiber-to-the-Premises Master Plan

https://www.cityofpaloalto.org/civicax/filebank/documents/48...

City of Seattle Fiber-to-the-Premises Feasibility Study

http://www.seattle.gov/Documents/Departments/Broadband/2016-...

2
supertrope 9 ago 0 replies      
"FiOS" is a Verizon trademark, not a general term. Fiber to the home is an entirely different matter from commercial and municipal fiber optic links, mainly in that they do not have to reach almost every single address. They connect only businesses, government buildings such as town hall, schools and a community center, cellular base stations, etc. The most expensive portion of the physical manifestation of the Internet is the "last mile" between neighborhood hubs and residential modems. Hence why ISPs re-use existing cabling such as copper twisted pair and coaxial cable originally laid for telephony and television respectively. Large capital expenditures are required to get in the game and barriers to entry such as pole access regulations, customers expectation of a bundled TV service, telephone service regulations, customer support staffing, etc. make it hard for plucky startups to get a foothold. Some states have even banned publicly owned ISPs! Of course once an ISP is big enough and is one of the duopoly it can raise rates annually and cap, throttle and assess overage fees.
3
sfrailsdev 14 ago 0 replies      
See I'd see if I could tease a local reporter into writing a story. A system administrator that said it would or at least could be complete in two years. The benefits of Google Fiber, etc.

Feasibility only matters if people are interested. Get people interested.

4
smellf 14 ago 0 replies      
Sorry I can't help you, but I do have a question - how did you find out that your town has the existing fiber infrastructure?
5
jlgaddis 15 ago 0 replies      
There's been similar interest in my City and we've recently "got the ball rolling", just barely.

Here's an article that'll give you some background: https://muninetworks.org/content/bloomington-indiana-may-blo...

7
Ask HN: What are the tax advantages of incorporating vs. an LLC?
8 points by bsbechtel  16 ago   7 comments top 7
1
brudgers 9 ago 0 replies      
To me, the reason to form a Delaware C Corporation is to facilitate investment from the type of investors who normally invest in Delaware C Corporations, such as the well known investors from Silicon Valley. A Delaware C Corporation structures a company for a particular life cycle and a particular financial structure that is attractive to particular types of investors...including founders with particular goals.

Roughly speaking, those investors are seeking returns via compounded growth in the value of their equity over a period of several years.

Likewise, an LLC may also be attractive to a different particular classes of founders and investors. In general these will be investors who are seeking return on equity via periodic cash flows. Structuring an LLC as a pass through tax vehicle facilitates returns via cash flow at the expense of compounding equity growth.

To me, tax strategy is a bit of a red herring. A higher tax on a more money often is better than a lower rate on less money for the same reasons that less equity in a big company is often worth more than more equity in a small one.

Of course, in the end it all depends on the company and the founder's objectives.

Good luck.

2
leepowers 12 ago 0 replies      
Partnerships, S-Corps, LLCs are pass-through entities - meaning profits are treated as self-employed/contractor income, and excluded from corporate taxes (though you can elect to have an LLC taxed as a corporation, which may be advantageous in certain situations). However, pass-through income is subject to self-employment taxes, which currently sit at about 15%.

S-Corp - if your business is earning a lot of profit it can make sense to pay yourself a salary and the remainder of profit as a distribution, which is not subject to the 15% self-employment tax: https://turbotax.intuit.com/tax-tools/tax-tips/Small-Busines...

C-Corp - For a company you founded a QSBS or Qualified Small Business Stock can be excluded (in whole or in part) from capital gain taxes. So, as your company grows year after year, and it's valuation rises year over year, this can save a lot of money when selling: http://www.lexology.com/library/detail.aspx?g=dde20f35-2d5e-...

3
PaulHoule 16 ago 0 replies      
Delaware is a relatively expensive place to incorporate.

The advantages of Delaware corporations are (1) convenience, (2) privacy, and (3) a legal ecosystem that meets the need of big public companies.

If you want to form a corporation in New York, for instance, you have to form a board of directors, have an annual board meeting, etc. It is a lot of bother and paperwork and most states make you do it. Not Delaware. You don't need to have a board of directors or file very much paperwork at all to be incorporated in Delaware.

Since there is no board of directors, their names are not on the public record, in fact nobody's name is on the public record. You have to have some agent that will accept documents in your name in case a process server shows up. If you fail to respond in court, they can shut down your company and take its assets, but they can't do anything to you because they don't know who you are.

Finally a lot of big companies are there because there are laws that are good for management and lots of lawyers and other corporate services people who serve Delaware corporations. Unlike most states, the bar is not transferable from other states to Delaware.

4
jeffmould 16 ago 0 replies      
IANAL and I am not an accountant. The short answer is that a corporation (assuming C-Corp) is subject to double taxation. Meaning that you pay personal taxes and corporate taxes. With an LLC (or S-Corp) you only pay personal taxes.

The second part of your question, why an LLC over a Corporation. Well, a corporation has shareholders, where a LLC has members. Two completely different structures. Shareholders own stock which is easily (or easier to) transferable.

Finally, Delaware is preferable because it has specific courts for handling business law. The judges tend to be well-versed and the laws are "business friendly".

The decision really comes down to what you intend to do with the business (if you plan to raise funds through equity you will need to sell shares which, for basic purposes, require a corporation), who is going to be involved in the business, and what your long-term goals. You should consult with an attorney or accountant prior to making a decision.

5
codegeek 14 ago 0 replies      
"Based on corporate and llc/individual tax rates, I don't really see the advantage."

Yes, correct. Incorporating in Delaware is not so much about saving taxes. Delaware is considered to be friendly towards corporations and the legal system actually understands the challenges a business goes through. For example, Delaware has a Court of chancery that focusses specifically on business law and uses judges instead of juries [0]. Things like that.

[0] http://www.bizfilings.com/learn/incorporate-delaware-nevada....

6
phodo 14 ago 0 replies      
A c corporation also gives you the ability to claim QSBS. Qualified small business stock. If u are a c corp (not s corp) and under 50 million in assets and some other conditions... all (used to be less but I believe it is now 100% permanently) issued stock can now be free of federal long term capital gains if u hold on to it for more than 5 years. I am not a lawyer but if you have goals to grow the business you should consider this as it can save u a lot of money in the future.
7
tmaly 15 ago 0 replies      
I spoke to a lawyer and the recommendation I got was to go with a Delaware LLC.

The lawyer stated that the business law is more concrete and predictable in Delaware. If you have to go to court, it is going to be easier on your company.

If you plan on raising funding for your startup, go with a C corp instead as it is easier to deal with things. You can always convert an LLC to a C corp but that is more hassle later.

If you do not plan on taking funding, and you want a lower accountant bill, go with the LLC. The pass through income on your schedule C is a lot cheaper to deal with.

8
Ask HN: What should I ask Elon Musk for HTBTF?
23 points by sama  15 ago   25 comments top 16
1
rman666 15 ago 3 replies      
What does he do to keep his energy level to the point that he can do all he's doing. From a distance it seems like he must have superman levels of energy.
2
atroyn 2 ago 0 replies      
How does he balance the skepticism that comes with an analytical mind, with the optimism necessary to pull off something new?

Put another way, how do you build something cool without succumbing to bullshit?

3
taf2 7 ago 0 replies      
Does he worry that the low gravity of Mars may not be sufficient to sustain life? We know we can survive in zero g for a few years but the damage to the body can include vision impairment, bone lose, etc... Does this maybe make Venus a better target?
4
ryao 13 ago 0 replies      
Is the work in making rechargeable lithium ion cells that retain their capacity over hundreds of thousands of charge cycles going to be commercialized in batteries and if so, what is the timeframe for that?

http://www.computerworld.com/article/3060005/mobile-wireless...

The same goes for the aluminium ion cell:

http://blogs.scientificamerican.com/plugged-in/stanford-rese...

Also, why did Tesla call the Model S 100D the first electric car to surpass 300 miles on a single charge when the Tesla Roadster 3.0 already hit that milestone?

5
Rainymood 4 ago 0 replies      
My girlfriend wants to ask: do you have any ideas for an upcoming space engineering thesis (2 years till graduating)
6
Rainymood 4 ago 0 replies      
Is there any mantra you repeat in your head to keep yourself going or guide your way through difficult decisions?
7
fitzwatermellow 12 ago 1 reply      
The other day I pulled up behind a Tesla Model X with a SpaceX license plate frame. The driver looked to be no more than 22 years old. The Hyperloop competition drew more team designs than the last DARPA Grand Challenge. How much of doing what you do is about inspiring the next generation to take moon shots?

Follow up: how the blazes do you keep the SpaceX factory floor so pristine? I've been inside clean rooms that look worse ;)

8
Calist0 6 ago 0 replies      
Question for Elon:

What do think humanity's purpose is? You believe that colonizing space will protect us from extinction-- what purpose do we have to as a species to go on?

9
tlack 15 ago 0 replies      
Tesla's self-driving technology is much of America's first real interaction with coming autonomous vehicle technology. Let's say he's stopped on the street by my grandmother. How does he explain to an older person the ways in which this revolution will be controllable, compatible with humans, and not destructive to much of our labor-driven society?
10
chrisked 14 ago 0 replies      
Would be interested to know what his biggest regret is and how he dealt with it.
11
alex_hirner 14 ago 0 replies      
If there is one thing you can change in the process of battery R&D, what would it be?

And likely a related question: Which scientific data is not readily available but would help battery R&D?

12
machtesh 14 ago 1 reply      
What other companies would he be starting if he had the time
13
DrNuke 13 ago 0 replies      
Is he really going to attempt terraforming / colonisation of Mars any soon?
14
meagher 14 ago 1 reply      
How does he assess risks?
15
funkju 15 ago 0 replies      
What could NASA learn from SpaceX and vice-versa?
16
endswapper 14 ago 0 replies      
How long until a solar powered spacecraft?
9
Ask HN: How did you launch your product?
18 points by palakz  1 ago   7 comments top 4
1
csallen 20 ago 1 reply      
I launched Indie Hackers (https://www.indiehackers.com) a few weeks ago on HN. To make the site, I worked with about 12 different founders to decide on formatting; come up with questions; and ultimately conduct, edit, and publish interviews.

I waited to post on a Thursday morning, partly because I didn't want to compete with tons of new stories on a Monday/Tuesday, and partly because I wanted to launch as early as possible and I knew the MVP was basically done.

I let the founders I worked with know I'd be posting on HN, and they were eager to jump in the thread and answer questions that people had about their companies. I think this made the thread a lot more engaging. I also think the interviews themselves really resonated with people on HN, because they have a very "Ask HN" feel to them.

The thread ended up being on the front page of HN for about 36 hours, and stayed in the top 1-3 spots for most of that, finishing with 971 upvotes. (link to HN comments: https://news.ycombinator.com/item?id=12269425) I got about 100,000 pageviews on Thursday and 60,000 on Friday. Someone submitted it to ProductHunt on Sunday morning, where it stayed at #1 all day and got about 20,000 pageviews.

That was 3 weeks ago. Today the site has gotten 283,000 pageviews total. Daily traffic is around 2-3k pageviews (30-50x lower than it was on launch day). I've added a blog, more than doubled the number of interviews, and I'm working on adding a forum. I've also added two sponsors, from whom I've made about $600 total so far.

2
KajMagnus 21 ago 0 replies      
Launch failure story here.

I posted to Reddit and Hacker news about the software I had built, but this didn't attract much attention. Largely because the software wasn't so very usable to anyone I had mostly built something that mainly I liked. Which I didn't realize at that time.

Then I wrote a blog post related to the software, and it got popular here at HN, and topped the HN list for a short while. Lots of visitors to the website, and a few (like 5? 10?) people signed up and started using my software.

But what I had built was hard to use, so the few people who tested it, quickly abandoned it. I had not done much usability testing, at that time, and didn't realize how important good UX design is (UX design = user experience design).

Eventually I shut down the startup company (it was just me), and got a job instead.

But I continued working with the same software, on my spare time. And redesigned everything. Now it's soon time to launch again :-) And this time I've hired usability testers and UX designers and asked them for help and feedback about how to make everything (the software & website) more UX friendly.

I hope this'll be helpful to someone :-) I.e. to ask UX designers about feedback, on both the website and software, before launching. I found the UX designers at a freelancer site. Some of them are really talented (from my point of view), whilst others might instead make things worse.

3
mtmail 21 ago 0 replies      
We do geocoding using open data sources https://geocoder.opencagedata.com/ and launched the product at the annual OpenStreetMap conference. Many people from the industry approached us, some blog posts, nothing really customer focused. We were sponsors of the conference and now corporate members of the OpenStreetMap foundation. We're listed in a couple of API-related directories but never made an effort to get as many links out as possible. We skipped product hunt. Our blog is regularly featured on other OpenStreetMap related blogs http://blog.opencagedata.com/ It's a niche really, not many companies need geocoding at scale.
4
adibalcan 1 ago 0 replies      
We launch online products (like https://feedcheck.co ) with very limited budget. So, our PR campaign contains:

submissions to many startups directoriesstarting discussions on Facebook startup groups blogs articles

10
Ask HN: Anybody using web components (or Polymer) in production?
10 points by bananaoomarang  16 ago   4 comments top 4
1
ergo14 2 ago 0 replies      
Yup, lots of people, we are creating some new components for RhodeCode using Polymer right now. Whole team is very pleased in how nice it is to work with it.

Companies like EA, IBM, General Electric or Salesforce use it in production. Works like a charm, there were multiple sites that list some polymer projects I think.

IMO it is a mature project perfectly fine for production use today - slack community is ~5000 members and vary active - lots of job offers, lots of discussions and applications being worked on.

https://new-console.ng.bluemix.net/

https://www.battlefield.com/

https://github.com/abdonrd/PolymerProjects

2
marcoalfonso 12 ago 0 replies      
Yes, we used Polymer to build the new ING banking portal. We had each component in its own repository which was kind of neat. I am doing React now and comparing both I think React is better, there is more support in the community. With Polymer all you basically have is the Polymer docs most of the times.
4
__derek__ 15 ago 0 replies      
Not me, but there was a dev from the Seattle Times who gave a talk at SeattleJS and CascadiaFest about using web components in production.[1]

[1]: https://thomaswilburn.github.io/slide-dash-show/#0

11
Ask HN: Best EU country to incorporate a startup?
14 points by tsaprailis  19 ago   8 comments top 5
1
digitalwaveride 19 ago 0 replies      
Teleport might be helpful for your research https://teleport.org

Comparing costs of living, salary levels, life-quality data including stuff like business freedom, corruption, startup scene etc.

There is a specific tool https://teleport.org/runway that let's you compare costs for running a tech team compared to 250 cities worldwide.

2
seikatsu 18 ago 1 reply      
Re: e-residency, https://www.leapin.eu are guys building a convenience overlay on top of the government provided services
3
bryanrasmussen 19 ago 1 reply      
Well, ease of incorporation might be one thing but what about countries that provide governmental funding programs etc. That might change the calculation.
4
arisAlexis 14 ago 0 replies      
Estonia ainec. With 1k and one day you get a company running with an accountant and zero tax under 15k profit.
5
wprapido 17 ago 1 reply      
ireland, UK and estonia
12
Ask HN: I want to write a niche (e)book, but don't know where to start
5 points by password03  14 ago   7 comments top 5
1
asteadman 9 ago 1 reply      
He's moved on to bigger and better things, but authority (http://nathanbarry.com/authority/) is supposedly the definative guide to this topic. I haven't read it yet because he removed the eBook only option (this, as I understand it, is part of the trick to making money self publishing: present everything as a premium package instead of a boring old book).
2
CyberFonic 12 ago 0 replies      
Niche topic books earn very little income for the author. Publishers are generally disinterested in anything that doesn't sell in the 10,000s. There is insufficient return on their investment in time and money.

Hosting your own book is potentially too much bother. Using a self-publishing approach, e.g. Amazon, Lulu, etc is far less hassle. You might want to consider the combination of print-on-demand together with eBook technologies. POD is great if you want to give books away as a value add to any consulting activities.

With niche books your only effective option is to do all the marketing yourself. That can be a lot of effort if you want to gain any sort of traction for your book. Perhaps you are also offering consulting and related services.

Editing is the biggest effort that publishers provide. You might have to consider getting a professional editor unless you have exceptional writing skills and attention to detail. You can use freelancers to do any graphic and cover design.

Just get started with the writing and see how you progress. Many people embark upon book writing and then falter. If that happens to you, you can pivot and release the material as a blog.

3
blairanderson 13 ago 1 reply      
your question is very basic, and you should use google to find answers.

https://amylynnandrews.com/how-to-write-an-ebook/

4
WheelsAtLarge 10 ago 0 replies      
Searching Google will get you the answer but here are a few tips to start.

The dream is to write a book and sell millions of copies. Nice but not likely. Niche is nice but it's hard to figure out which is profitable. Write the book for the joy of the project don't expect to be inundated with cash or get any cash for that matter.

Even if you can get a book contract from a publisher, they take most of the cash and you see some money only once all the expenses are covered.

If the subject is additive for your career and expertise then do it with out question. It's always good when you can bring it up to add to your credibility.

Set the tone of the book. Who is your ideal reader? Research your audience they will tell you what they need.

If you're the expert and you're teaching novices then make sure you don't write above what they understand. The book's goal is to teach not have to buy another book to understand what you just told them.

Experts are usually bad teachers. As an expert you forget the basics that got you to understand what you know. You'll need to get someone else to tell you what's not understandable.

Create an outline, and refined it with your potential reader helping you.

Once you have the outline start writing. You'll want to write a few thousand pages. Write whatever comes to mind. The outline will help you. What you want is to have enough to edit it to a point that's clear enough to teach and you'll need to cut it down to a few hundred pages. It's easier to have independent editing and writing sessions. Avoid doing both at the same time. Your writing will be more difficult and take longer. You'll have to be your own editor.

Once you have a finished manuscript. You can get the technical procedure on how to convert it to the different book formats by using Google. Also you'll need to learn how to promote it. Good luck with that, that's a whole other rat hole.

I would get it to a point where you have a printed copy. You can give copies away and have a copy to look at yourself. It will be something you'll be proud to display.

Lastly, don't use a word processor until you think you have a final copy. You'll waste so much time fiddling with the different word processor's options that it's just not worth it. Text editors are your friend.

5
wwalser 11 ago 0 replies      
Create things. Tell people.

I'm making broad assumptions about what you're good and bad at. Read the following through that filter and throw out anything that you are confident doesn't apply.

1. The best first step for this is to begin writing regularly on the topic in public and get comfortable being more self-promotional than most developers are. I suggest blogging since it's approachable and people regularly read blogs. Think of your blog as an MVP. It will help you determine if there is an audience who are interested in this type of content and where they hang out online. Knowing these two things is critical in successfully promoting and selling an eBook.

2. Most people that I know who are successful at this believe that you should begin doing email capture straight away. Basically, you want to give people a mechanism by which to receive regular updates from you. If blogging is the simplest MVP for writing, the simplest MVP for email capture is setting up a list that gets emailed every time you create a new blog post. I'm an engineer, I get it, that's what RSS is for. It works. Some subset of people who are keenly interested in a niche subject are happy to get emails when something about that subject is published by an authority that they trust.

On this one, you don't want to stop with the MVP. You need to step it up and build a list of people who are comfortable opening email from you regularly. A good step in the right direction is offering access to exclusive content to members of your list. You're looking for the people who would trade hard earned money for your book. So, create something that the same category of people would be willing to give up an email address for. You're pre-qualifying leads.

3. Start writing your book while maintaining a blog, a list, and occasionally offering exclusive content to that list. To juggle these things you're going to have to learn how to create relatively thin content that's still compelling. Stuff that doesn't take forever to create but is still compelling and interesting enough to keep people around. Also, note that most of the people on your list understand that you're an individual so it's reasonable to say "I'm working hard on my book for the next two weeks so the next blog post is three weeks out."

This isn't as bad as it sounds once your comfortable writing regularly.

4. Hopefully, you've built a following of a few dozen to a few hundred people at this point. Some large percentage of whom feel like they know and trust enough to pay a bit to support your work.

The MVP here is to promote your book and ask people for their money. But like all of the above it goes a lot deeper. Guest blogging, getting influencers who have similar niches to promote, paying for promotion if it makes sense given your costs and what kind of conversion rate you can drive. This is a rabbit hole.

edit: You asked a few other questions. Publisher: As other's have noted, you probably won't be able to land a real publisher. Cover design: You can pay someone to design a cover for you if you want, you can also do it yourself. There is an art to cover design and I'm confident that it makes a difference but I have no data on the subject. Other costs: Gumroad is a good service for selling this type of thing, they will take a small cut. Cover design can run you a few hundred. A good professional editor will probably run you a few grand. The software that you use to do layout will probably be somewhere between free and $200. Assuming your self funded and it's your first book, you can mitigate these costs by doing it all yourself (except for a payment processor).

Create things. Tell people.

13
Ask HN: What is the evolutionary explanation for having a song stuck in my head?
2 points by avindroth  11 ago   5 comments top 4
1
sova 9 ago 0 replies      
Possible explanations:

+ the world ends and starts as music.

+ the resonance of the cavity of your inner ear adds to the suggested best-fit-auto-fit-auditory-consciousness-[memory] as qbrass pointed out.

+ birds must remember songs to communicate effectively, a lot of their understanding is based on the shape of their beaks and lungs. based on our "evolutionary shape" or "genetic fractal manifestations" our conch-like ears are good for resonating tones that could be beneficial to us (like mating calls)

+ from a linguistic evolution point of view, something that not only carries the soothing calm of a mother's voice but also helpful information becomes something worth repeating for sake of the individual and the species at large

+ typically people recall the lyrics to a song, or the vocal melody line, but people who play instruments can get bass or drum parts "stuck in their head" so evolutionarily speaking it is all about what your instrument of communication is (that coordinates sound and physical expressivity)

+ kaw!

2
qbrass 10 ago 1 reply      
Your brain tries to match sensory data with things, so you hear two noises in the background, something in your head says that sounds familiar, then your brain goes over it until it comes to the conclusion that it's a tiger or food or the intro to Funkytown. Once your brain makes the association, it thinks the song is relevant and tries to make more associations keeping it in your thoughts.

Music finds it evolutionary beneficial so songs have evolved to become earworms that you'll sometimes spread to other hosts. It's not really detrimental to humans, so there's no impetus to weed it out.

3
mbrock 6 ago 0 replies      
I don't know, but you could think about the evolution not of your brain but of the melodic meme. You know about the song because it has the catchiness property, and it spreads because you keep whistling it.
4
GFK_of_xmaspast 9 ago 0 replies      
Why do you think there's an evolutionary explanation for it beyond "the human brain is a big lump of meat in a chemical stew and stuff happens sometimes"?
14
Ask HN: Advice on failing company
9 points by throwwaway  20 ago   8 comments top 5
1
WheelsAtLarge 15 ago 0 replies      
I've been where you are, at a failing company and not knowing what to do.

In my case the company failed, my options where worthless and I ended up moving to another company and that one failed with in a year and my severance pay was a company lunch. It all worked out. I got a new job and things are ok.

My advice, save as much money as you can and look for a new position. Don't be in a hurry to accept a new job without some research but don't wait. Try to make the new job a step up or something that gives you joy. Even if you have to take a small pay cut. Lateral moves won't cut it in IT. Eventually your age will show and tech companies don't want to hire old people unless they are in management or can guide the company into profit and growth. If you've been in tech for a while you've seen this. I don't have to prove it. It's all over the place. Look at your company which way does the average employee age skew? It's not toward the fifties.

Don't feel bad. Over the years I've learned a company is not a family. It's a TEAM and the company's needs comes first. You have to look at in similar terms so your needs come first.

Good Luck!

2
endswapper 19 ago 0 replies      
It sounds like this has been a positive experience in general. You may want to consider how leaving would affect your personal and professional relationships. Sticking it out, and perhaps being a valuable member of a transition team, is good experience. Additionally, that narrative is great when interviewing for your next position.

4-6 months is not a long time.

For contrast, someone else asked something similar, but with a much different context. I commented here as well: Ask HN: "Should I leave my startup?" https://news.ycombinator.com/item?id=12382772

3
nfriedly 19 ago 1 reply      
Start getting prepared for something new, but don't quit just yet.

Try and find time for some side projects in areas that you're interested in working on for your next job, and post them to github. Write a blog post or two about the experience. Brush up your linkedin. Update or create a portfolio.

Luck Is What Happens When Preparation Meets Opportunity" - the preparation part is your responsibility.

4
JSeymourATL 19 ago 0 replies      
> wondering if it's worth sticking it out to the end or moving on?

Everything grows or it dies. If your personal growth is stifled move-on. Decide to end the suffering. End it now, that will give you freedom. The options were always lotto tickets.

5
vladootz 20 ago 1 reply      
You can ask yourself one question: Is there any chance you'll regret not having went on sooner?Forget the benefits for a moment and think hard at where you want to be in 4-6 months, would you rather continue your growth now or then?
15
Ask HN: Early signs that a company is failing?
146 points by philippnagel  3 ago   93 comments top 35
1
waffleau 3 ago 4 replies      
Coming from a startup background:

1. Senior people leaving (as has been said by pretty much everyone else in this thread).

2. Not having a clearly defined problem to solve, or a well understood target audience.

3. Not knowing who the competition are, or just dismissing them as "not being as amazing as us."

4. Little or no customer research - if you hear the phrase "customers don't know what they want" and it's not immediately followed by "so we need to do research and find out" - run.

5. Building solutions that don't really map back to problems. This can manifest in a lot of ways, but the most common ones I've seen: projects constantly changing in priority (entire projects materialise and become urgent overnight), features that are arbitrarily demanded, or in an over-emphasis on polish and minutia.

6. Departments not collaborating, things getting thrown over the fence. Workflows that move in the wrong direction.

7. Lack of autonomy - a handful of people make all of the decisions.

8. Micromanagement. People tend to micromanage when things aren't going well, which tends to make them worse. It's a downward spiral.

9. Being afraid to talk to management about problems; being chastised for suggesting ways to improve things.

10. When mistakes are made, focusing on blame rather than resolution and prevention.

2
gl338 3 ago 5 replies      
I'm the CEO of a 20-person startup and we've been on the brink of failure twice. Both times, our employees were never aware of it from the symptoms other people might expect (e.g., late payroll, some senior folks leaving); in fact, during such times we paid everyone ON TIME so that we wouldn't be on the hook later if things went to hell.

I would flip the question back to you:(1) Do you trust your CEO?(2) If you DO trust the CEO, then the only time your startup is failing is when the CEO tells you they're close to failure, running out of money.

If you DON'T trust your CEO, then your startup is also failing and #2 doesn't apply.

That's how I would think about it.

I think every startup employee has the right to ask me about runway, cash on hand, etc. I would be open with that info and have shared these metrics in the past with them.

I say this because we (a) hire MBAs, (b) hire less qualified developers for roles that do not require deep technical knowledge, (c) have motivational posters, etc... And as we grow, become profitable, and scale to 50+ people, we require these things simply to survive and thrive.

How could someone mistake that for a startup on the brink of failure is beyond me, but that's what some people seem to be writing in these comments.

3
rdtsc 3 ago 3 replies      
* Gut feel. This doesn't say much, but sometimes that is a good heuristic. It isn't one thing, but you'll just get a feeling.

* Custemers are not signing up and not paying. The most obvious one. But this can be hard to find. But say if you are used to add features or fix bugs customers find, and then all of the sudden nothing. It could mean product is in good shape, or nobody is using it.

* Senior people leaving. Especially developers whose judgement you trust.

* Drastic changes to the product. "Wait, why are we pivoting?" Corrolary: quite often the pivot fails. It is always in the news if it succeeds. but that is only because it is exceptional.

* No bonuses, and salaries have not been going up. If you somehow find out that nobody's salary went up and nobody got a bonus (this is hard often, companies don't want you to discuss those things).

* Maybe a sharp increase in team-building activities. Taking everyone for lazer tag is cheaper than increasing salaries. But it presents this image of "everything is fine". I have seen that -- a few senior people left. All of the sudden a sudden surge of minigolf, bbq, ski trips and other to mask away the issues. But then again, this can be a sign that the team is doing so well and are being rewarded. I guess this is more of a gut feel and depends on the large context (so it is a secondary sign).

* Owners start avoiding meetings and questions. Because they know they might have to lie. It is up to you, but you can try to ask directly. Then you sort of force their hand. That could backfire. You are now "not a team player" and not a "culture fit" so beware.

4
malux85 3 ago 3 replies      
The skilled, senior developers leave.

Money problems (Travel cancelled, Free food/drinks stopped)

Drastically shorter deadlines.

They start hiring programmers who cannot code (Literally cannot fizzbuzz)

Rapid flip-flopping on projects couples with constant firefighting.

Starting to Micromanage developer time in intervals less than 1 day - (exactly 3 hours on X, exactly 2 hours on Y, exactly 3.5 hours on Z)

5
hoodoof 3 ago 0 replies      
Lots of secret meetings, CEO more stressed and distracted than usual, strangers visiting the office and looking around, hasty writing of documents.

The dead giveaway - salary paid late or not at all.

If your salary is ever paid late then check to see if you are being paid all of your statutory entitlements such as pension plan and government insurances. If the company is not paying these things, go to the CEO and tell no one else except them that you know they are not paying your legal entitlements and you want it paid now. If you have lots of leave accumulated then that is cash value to you and is at risk when the company goes bust. Resign as soon as you can because companies typically need to pay out all your entitlements and unused leave when you resign - and you definitely want to do that before everyone else rushes to do the same, and before the company goes pop leaving you with nothing. Somehow you need to navigate in a non illegal/ non extortionate way letting them know that you'll go quietly if they paid you everything you are owed - careful on this one, you are breaking the law if you say "pay my entitlements or I'll.... " You are of course entitled to explain that you have spoken to your lawyer and accountant to understand exactly what they owe you, and also explain that they have advised you to contact the tax office if you are not being paid what you are meant to be paid, presuming that is the case, which it should be. The CEO won't be enthused about anyone asking the tax office why the company is behind on its payments and this will give incentive to the CEO to pay you fully out. Make sure you and your accountant calculate exactly what you are owed and have it in writing - don't let the CEO/company calculate that because it is likely to be wrong.

6
HelloNurse 3 ago 2 replies      
Saving money in new ways, with adverse consequences on work and employees that prove it isn't a benign optimization. Variant: ending or selling off "unnecessary" luxuries.For example, the newest computers are cheaper than old ones, free food is replaced by a vending machine, art on display disappears.

The slightest hint of late payments. For example, salary one day late "because the bank made a mistake": in reality, the company was waiting for cash but negotiations with banks or other lenders were difficult enough to miss the deadline.

7
ChuckMcM 3 ago 0 replies      
Sometimes I think this is the "Does she/he really love me?" question. Because it says a lot about the person asking and about their world view.

I'm pretty sure that every company I've worked in had a success rate that was inverse to the belief that it was failing. That is to say assume that the company is failing, always. That makes two things true, first when you get "bad news" that something hasn't gone right it doesn't suddenly throw you for a loop, after all the company is failing. The second is that you are more carefully looking for things that are helping, and putting energy into them so that you can extend the life of the company just that much more.

You are most at risk when you think you are not failing, then you take your eye off the ball and start coasting a bit. Taking some "me" time as it were. That is when a glitch or misstep will feel like a huge betrayal from "we're doing well" to "we're dooooomed!" And everyone will stop and reassess just when you need them to be taking action and responding.

Often the root of this question is, "Should I stay or should I leave?" After all if you conclude the company is failing you can give yourself "permission" to leave. And since that is the root question, I have found a better way to ask it is, "Is working to make this company a success helping me achieve what I want to in the next 5 years?"

Whether or not the company is failing is irrelevant as input to the question, "Is this the best way to be spending my time?" That question can only be answered by thinking about what you want to do, or be doing, or not be doing, in the future and evaluating if what your are doing right now is getting you closer to or further away from that future.

8
WillPostForFood 3 ago 1 reply      
Some warning signs I have seen:

* conflict between founders

* investors start "suggesting" changes to strategy or stack

* hiring someone external to take over tech team

* instituting some new "system" to improve productivity

* appearance of consultants

9
phasetransition 3 ago 1 reply      
If every sale remains an exercise in business development and requires the driving force of a founder or similar key person, then the company is closer to failure than success.

While this type of biz dev feels like forward action in the trenches, in reality it means that you are only a few key deals or people from an empty accounts receivable.

Companies that bring process to the prospecting and sales cycle, and develop a path to closing business that is not highly dependent on a small pool of stakeholders have a clear path to growth.

10
p333347 1 ago 0 replies      
To me, the number one sign is the deterioration of HR policies. Beyond late salaries, when they begin doing away with flexible work environment, like variable hours, and try imposing things and micromanaging, effectively treating knowledge workers like shop floor laborers (there isn't anything wrong being a shop floor laborer, I am just providing a reference), it is a sign of what is imminent.

I used to work at a place, a 10 year old established medium sized company, that was hit so hard by recession of 2009 that it disintegrated. The HR thing I mentioned is the period I can trace back to to say when it was the beginning of the end.

11
dreamcompiler 3 ago 1 reply      
My guide for a company in decline--and more pointedly for when it's time to leave--is the bullshit/productivity ratio. How much time are you being asked to spend on bullshit that doesn't get product out the door vs. real work on product? If b/p is high, that's a red flag. Now look at the first time derivative of b/p. Is b/p increasing or decreasing with time? If it's increasing, that's a bigger red flag. If it's decreasing, maybe the problems are getting fixed and you should consider sticking around. Finally, if b/p' is positive look at the second derivative. Is b/p accelerating or decelerating? If the former, LEAVE NOW. If the latter, maybe b/p is approaching an asymptotic level you an live with. Or not.
12
tlogan 3 ago 2 replies      
This is very interesting question and answer is not so simple.

First, if a company is a startup which is not yet profitable and burning investors money you should assume that the company is failing. Yes - you might be wrong (i.e., the company is AirBnB, Dropbox, etc.) not but in 95% of cases the company will eventually fail. In this case, just ask CEO/CFO/your manager about what is runaway, cash on hand, etc.

Second, if a company is already established (out of startup mode) then you can see signs:

- senior management leave (they have access to more informations than you)

- rapid flip-flopping on features and priorities (maybe caused by above)

- TPS reports become a norm

13
jwatte 3 ago 0 replies      
In some sense, every company is always at risk of failure.Fortunes can turn quickly.Also, every success story has a few tense nail biters on the way.If you are an employee (not a founder,) then keep a rainy day fund on hand, and leave if the work is no longer what you want to do. Also, make sure expense reports and paychecks are paid on time, even for successful companies!
14
slater 3 ago 0 replies      
When they start hiring MBAs, who then turn everything into a "profit center".
15
ChemicalWarfare 3 ago 0 replies      
If you have any exposure to the business side of things (which in a small[ish] company just about everyone does no matter the role unless the management is proactively hiding these things which then is a pretty clear symptom in and of itself), the impending doom is typically pretty evident.

Things like not being close to breaking even in the foreseable future, investors getting cold feet, having to pivot to appease the VCs etc etc.

On this last point - you really see the true colors of upper management when pivoting kicks in. If there are concrete actions taking place aimed at getting shit done to keep the company afloat - there might be a chance there. If, however, it's just posturing and paper-ware BS to fool the investors into thinking there's a fundamental change of direction - that would be a major sign of things being REALLY bad.

16
mkov 3 ago 0 replies      
Watch out for any change of habits, especially regarding what employees spend on food at lunch time.
17
slackoverflower 3 ago 1 reply      
The rate of industry change is greater than your product development.
18
pasbesoin 3 ago 0 replies      
People stop telling you the "why" of things, and/or you stop believing them.
19
vellum 3 ago 1 reply      
http://c2.com/cgi/wiki?WarningSignsOfCorporateDoom

* No more free soda or coffee.

* Toilet paper quality suddenly drops.

* Someone comes by to measure your desk and cubicle, but refuses to tell you why.

20
Mz 3 ago 0 replies      
I will suggest that you fail when you give up and no company is ever completely free of the threat of failing, no matter how long they have been around. If you hit challenges that the C level staff cannot overcome, then you are likely to die. But C level staff are often able to do "the impossible."

It is going to be nigh impossible to determine that something is certain to fail. Paul Graham suggests that startups need to just "not die" to eventually make it. I will suggest that this continues to be true, even after they are worth billions of dollars.

21
nil_is_me 3 ago 1 reply      
Cutting costs by turning off the QA servers.
22
antoniuschan99 3 ago 0 replies      
There was a post on Reddit a few days back that I thought had some great answers:

https://m.reddit.com/r/startups/comments/4zkka8/what_are_the...

23
jmspring 3 ago 0 replies      
Ticky-Tack book keeping around things like vacation and sick leave. Anything that implies a liability on the books.
24
BurningFrog 3 ago 0 replies      
There is always news. If you don't hear any for a while, it means the news is bad.

That's all I have.

25
alexcason 3 ago 4 replies      
Motivational posters
26
auganov 1 ago 0 replies      
Still believing a transformative event is coming after a couple failed prophecies.
27
mildbow 3 ago 0 replies      
No growth and/or no progress on getting traction.

Without this, it's only a matter of time.

28
chrisked 2 ago 0 replies      
Founders starting to tap into the employee option pool for themselves. Difficult to hire or retain talent after that.
29
kevindeasis 3 ago 0 replies      
If you know the numbers

http://paulgraham.com/aord.html

30
danso 3 ago 0 replies      
Firing of social media folks, or at least a downturn in social media activity
31
homoSapiens 3 ago 0 replies      
Is slashing salaries by 50% also a sign?
32
hacknat 2 ago 0 replies      
As someone who has worked at quite a few startups this is the wrong question to ask. Out right failure is pretty easy to detect, and it kind of doesn't matter. A startup failing fast is the second best outcome (after a nice exit) for everyone involved, including the investors.

Startups that fail slowly are the worst, because there is an illusion of success that can drag everyone along for years.

Always keep in mind that the odds will always be astronomically high that you are working for a startup that will fail. You're probably working for a startup that's going to fail. Most startups fail fast (but never employ many people), but the startups that hire the most people fail slowly, so the odds are very high that you are working for a startup that will fail slowly.

So what should your question be then?

It should be: Am I enjoying my job and/or does this job contribute to meeting my career goals? If the answer is no for too many months in a row and you are relatively sure the answer won't change and that you have no power over making it change then it is time to move on, with one highly unlikely exception: Your startup is succeeding and your equity stake is enough that riding the wave of a bad job for a year or two will result in a good chunk of money for you.

So what are the signs of a company that is succeeding? There really easy to spot actually, even though you've never seen them:

1. Everyone's hair is on fire. Micromanagement is not a thing at your company because everyone is desperate to meet the insane demand and growth that your product has.

2. The technical work is very enjoyable, because the growth is insane. When you achieve incredible growth it actually stops managers from making decisions that don't scale, because the technical team will have numbers on their side of the argument. Your company can no longer afford to hack things together, because it has to scale tomorrow.

3. Talented people are banging down the door to work for your company.

4. Founders aren't talking about exits in terms of goals, but in terms of certitude. They've already received offers and they now have strategies in place to get the kind of exit they want.

5. BS of all forms is not experienced, because no one has time for it, even the people who normally spew it.

6. Hockey stick growth in either user growth or profit growth is trivial for you to see in your position. The founders don't have to convince anyone that your company is doing well, it's just plainly evident.

If you are not experiencing these signs and you hate your job than it's time to move on. Founders hate to hear this, but if they haven't gotten traction in the first year-and-a-half they probably will never get it. There are notable exceptions, but it's important to remember that you are not the exception (does your founding team seem exceptional to you?).

33
samblr 3 ago 0 replies      
Competitor pivoted and got funding
34
pbreit 3 ago 0 replies      
Lack of users and usage.
35
smacktoward 3 ago 1 reply      
I wrote a blog post describing my personal test for this sort of thing: http://jasonlefkowitz.net/2013/05/introducing-lefkowitzs-law...
16
Ask HN: How do I perform given a 1 month probation period?
6 points by pzk1  21 ago   16 comments top 9
1
s3b 1 ago 0 replies      
I would say don't give up. Use your second probationary period to learn and improve as much as you can. If things don't work out well, at least you would have learnt something useful you can use in your next job.

Try asking the seniors for help when you get stuck somewhere. But only ask for help after trying all the possible solutions you can think of yourself.

Try to come up with 3 or 4 test scenarios for your code and test them before you submit the code. Thinking up new scenarios will help you reduce the bugs.

Critically review your own code a few days after you've submitted it. Pretend it was someone else's code and think of all the possible ways to improve it.

If your seniors are willing, ask for a code review. Go through the review comments carefully and make sure you never get the same review comment again. Don't ignore any comment, however trivial it may look.

Spend an hour or two extra everyday to improve your knowledge of the system. Learn something new everyday about the tools, language etc.

2
yawgmoth 14 ago 0 replies      
I think there's a third option - perhaps it is in your best interest to work elsewhere. Somewhere with a CTO / team lead who accepts your skill level as junior where you can grow without your job being on the line.

I personally would feel very pressured and don't know how much I could focus and be happy if I were in your situation. Perhaps you are not bothered by it at all, in which case I don't think my advice fits you very well. But consider it.

3
1123581321 19 ago 1 reply      
Think about how you'd like to solve a problem. Then ask one of your more seasoned peers to talk through it with you. "Lisa, I'm working through the XYZ changes and I'd like a second pair of eyes on my planned solution. Do you have a few minutes to go over it?"
4
partisan 20 ago 1 reply      
Read the code of the other developers whom you respect and admire at your company. Look at how they have solved problems, but better still, understand what the problems were that they were facing. One thing I notice in newer and less experienced devs is that they tend to feel like the solutions they see are "stupid" or "wrong" and aren't open to understanding the solutions they see in existing code. By reading and understanding code written by others with an open, empathetic mind, you can understand the types of solutions that are favored in your workplace.

This is not the silver bullet, but just one of the things you can do to improve your situation.

5
endswapper 19 ago 1 reply      
I have to believe that you are intelligent even if you aren't smart about technical aspects. Otherwise, they would not have hired you, and given you the additional probationary time. Let that really sink in. You got a second chance at something most people don't get a first chance at (based on what you described).

I would start by answering two questions:1) Why did they hire me?2) Where can I provide the most value?

Apparently, they have a bunch of smart, capable people that are performing at a higher level than you in certain areas. Why, or where are you unique within in the organization, where are they going or trying to get to? These will get you started in answering the first questions objectively.

I don't think blindly focusing on fundamentals will make you competitive with people that are already well beyond you. And if you did become competitive on that level, so what? Do they need another person with the same skill-set?

This brings me to the second question. Other than LISTENING, strategically identifying their weaknesses is the best way to get started on question two. Providing practical solutions in the most efficient way possible is where you provide value. It's great when it doesn't have to be, but often the ideas that move things forward in a significant or meaningful way are cross-functional and collaborative. Perhaps it is part of the reason they can be so elusive. Based on your analyst background, this type of objective analysis might be the right starting point. From there you can drill deeper with more relevance adding further value.

Finally, your commitment will show, and while it may intangible (at first, anyway), that too has value.

6
nfriedly 19 ago 1 reply      
Running "lint" tools on your code can be helpful for catching basic things, http://eslint.org/ is my favorite one for JS, I know ones exist for other languages.

After that, ask for code reviews. If you don't understand why the reviewer is suggesting a change, keep digging until you do.

Also, as partisan said, reading through the code from the other devs will be a huge win. Even if it doesn't follow "best practices", it will show you what's acceptable in your company which is arguably more important right now. And, again, if you come across something you don't understand, ask about it.

Oh, and you need loads of testing to help avoid regressions. Some manual testing is good, but you really want automated tests covering most things.

7
maramono 19 ago 1 reply      
To produce high quality code you need to change your mindset. No tools will help you if you don't know how to use them. Also you cant simply "pass the buck" (so to speak) to tools and expect greatness. TANSTAFL.

I wrote a blog post about this not too long ago: http://ortask.com/why-your-mindset-might-be-setting-your-sof...

8
thorin 17 ago 0 replies      
Been there. Consider whether you want to stay there. If you aren't sure start looking for other jobs. Even if you want to stay consider other options. If you're going to have to do a lot of catching up to get where want to be is it going to benefit you in the long run? It could be an opportunity to learn and grow in the but don't expect them to do you any favors.
9
3minus1 16 ago 0 replies      
Oftentimes when you get assigned a task there is another similar part of the codebase you can use as an example for what to do. Try to understand what the code is doing and go from there.
17
Ask HN: Leave new job after one month?
5 points by glasnoster  15 ago   8 comments top 8
1
maramono 3 ago 0 replies      
If you're already considering leaving, I would take a gamble and tell your CTO/boss exactly what you said and be honest with your employer.

Who knows, maybe they trust and respect you enough to make the right changes and you'll end up loving it there.

All relationships (including professional ones) build; they never start at that perfect place.

2
asimuvPR 14 ago 0 replies      
What they ask of you:

Basically I have to build the product, do all devops work, mentor the team to make sure their work is up to scratch and manage the boss.

What you ask from them:

I just want to do technical work and solve problems for as long as possible.

What they need:

I think the company needs someone who is looking to move into a CTO role and comfortable with managing developers and business expectations.

Would it be fair for me to give notice now and leave?

Its not about being fair. Its about being human. You are not a robot. This is a mammoth task and the risk of burnout is very high. Your health is more valuable than any job.

Would I be passing up a great opportunity to learn?

A good learning opportunity does not come with such price of admission.

But what do I know?

I went through the same exact scenario (even using Django) and lost a great deal of time doing so. Life is too short. Better opportunities exist out there. Good luck!

3
anonymous_iam 15 ago 0 replies      
Perhaps you should have a meeting with your CTO to address your concerns before you decide to leave. Maybe the two of you can come to an agreement over roles/responsibilities (which you probably should have done before you started). If what he needs is more than he hired you for, you may be able to negotiate a salary increase as well.
4
kafkaesq 14 ago 0 replies      
Would it be fair for me to give notice now and leave? I'd be letting down the team and owner and they would have to find another developer.

Ultimately it's the responsibility of the company to provide a challenging, nurturing, stable, health-promoting, etc, environment. If they fall short, then it's your career, health, and sanity which are as stake -- so really you shouldn't think twice about the possible negative impact on their side, and certainly not about "letting them down" personally. If anything you'd be doing them a favor by quitting after 1-2 months (if you can afford it) rather than 6-9, by which point they would have made a far greater investment in you.

All that's required on your side is to be tactful. There've been many posts here about "how to quit my job", but ultimately it comes down to this: don't fuss about preparing some lengthy explanation (or worse, a lengthy resignation letter). At the time you resign, you don't have to say anything up front -- but you should be prepared to give just one simple reason, easy to digest (like a tweet). In your case it could simply be, "I'm sorry, but the role just didn't meet my expectations -- there turned out to be just way more chaos to deal with than I had bargained for. So it seems the most ethical thing, for you as well as for me, is to resign sooner rather than later."

That's pretty much all you have to do. If they press for detail, you can give more detail -- if you want. But the important thing is to not assault them with detail up front (and only provide it if they specifically ask) -- no matter how well-merited the roots of your frustration are, it just makes you look bitter and disgruntled.

Would I be passing up a great opportunity to learn?

Any experience can be a "learning experience" -- even a negative experience. But it sounds like you have more important things to learn about then how to deal with dysfunctional teams and politically tricky environments.

In sum it sounds like this is definitely on occasion to trust your gut (as soon as you can afford it financially), stick to your guns and do the right thing -- for them, ultimately, as well as for yourself.

5
borplk 4 ago 0 replies      
I don't know enough about the specific case to prescribe something confidently however if your gut and other sensors tell you you should be leaving do it. Better to leave after 1 month (and ignore it in your resume) than to stay for 9 months.
6
iaw 13 ago 0 replies      
> The owner (he sees himself a CTO) is just technical enough to be dangerous. He knows the buzzwords and feels comfortable making decisions without fully understanding the impact.

Three thoughts:

1) The owner/"CTO" is going to create extra stress for you regardless what working relationship you develop. He's not going to get better about this.

2) Just because the company needs someone to be the CTO doesn't mean that it's C-suite/board know that. Without explicit communication about trajectory you can find yourself doing a CTO's job without the recognition, respect, or salary.

3) There's no foul in walking away from something bad for you. It's hard to do when you're used to completing what you start, but every once in a while it's the better decision.

7
partisan 13 ago 0 replies      
I left a job after 6 weeks because I felt like they hadn't completely represented the state of affairs and their future vision for development efforts (they were heading down a path that was only clear once I had joined).

It wasn't the best feeling to do so, but it was the right decision for me. I didn't put it on my resume, but I mentioned it in subsequent interviews.

8
endswapper 14 ago 0 replies      
It is fair to give notice and leave.

However difficult that turns out to be for the owner and the team, it may be be the best for everyone involved. You can mitigate this by helping steer hiring of the new developer as you seem to have a unique insight in to their needs.

It doesn't sound like you are planning to make management part of your career path, so I don't think you are passing on much.

18
Offer HN: Free logo design for an open source project
154 points by fairpx  3 ago   57 comments top 37
1
ashitlerferad 3 ago 3 replies      
DebConf17 is looking for a logo (2 days left for proposals):

https://wiki.debconf.org/wiki/DebConf17/Artwork/LogoProposal...

The Debian long-term security support project is looking for a logo. Other Debian related projects are looking for icons:

https://wiki.debian.org/DebianArt/RequestArtwork

Tangentially related, the Debian release team is looking for release artwork for Debian stretch:

https://wiki.debian.org/DebianDesktop/Artwork/Stretch

2
Valodim 3 ago 2 replies      
K-9 Mail, the single largest open source E-Mail client on Android, is in dire need of a new logo!

https://play.google.com/store/apps/details?id=com.fsck.k9

Related info, I have been working on PGP/MIME support in K-9 full time since January. Most of that work is already merged on master, and is going to make it into a release very soon!

3
jcbeard 3 ago 0 replies      
The RaftLib C++ library (and eventually with other language bindings) aims to bring heterogeneous parallel programming to the masses. We get rid of any and all explicit thread operators, by allowing users to build applications using C++ iostream-like operators. Using our library you can build applications that are as or more performant than you could build yourself with pthreads, but with only a few lines of code. It's portable to Linux/OS X (windows support is coming).

Project Page: http://raftlib.ioGitHub Page: https://github.com/RaftLib/RaftLibWikipedia Page: https://en.wikipedia.org/wiki/RaftLib

Email is on my web page: http://jonathanbeard.io

Vote for me! We need a better logo!!

Thanks for reading. If you like it, please contribute. We're rolling out user space threading right now, next project is to build back in accelerator support.

4
kylemathews 3 ago 0 replies      
Oh cool idea! GatsbyJS definitely needs one. All we've got right now is this crappy thing I throw together in Inkscape :-) https://twitter.com/gatsbyjs

Pitch: "Gatsby is a React.js static site generator. It transforms plain text into dynamic blogs and websites using the latest web technologies."

https://github.com/gatsbyjs/gatsby

5
unices 3 ago 3 replies      
I like to propose Ledger (http://ledger-cli.org), a command-line double-entry accounting system, which is account and currency agnostic, featuring filtered reports, budgeting, forecasting, time-keeping, a Python module, and much more.
6
roschdal 3 ago 0 replies      
7
sergiotapia 3 ago 0 replies      
Hey thanks for the offer. I wrote an open source Elixir application called Magnetissimo. It goes all over the internet, finds torrents and indexes them in a simple to use UI with one-click download links.

Elixir was paramount for this project's simplicity. I leveraged GenServer and the BEAM VM to effortlessly created different crawl queues that utilize all the cpu's cores to maximize throughput. It's really really fast.

The idea is that anyone can clone the project, run it, and get upwards of 400+ torrents indexed per second immediately. Your own personal kickasstorrents. Or host one for your friends and family.

Would love to add a logo to the project.

- Screenshot: http://i.imgur.com/B9OFxTx.png

- Github: https://github.com/sergiotapia/magnetissimo

- License: MIT

8
Spare_account 3 ago 1 reply      
How do you tell which is the most upvoted comment? Do you see comment scores? I don't.
9
derekp7 3 ago 0 replies      
Snebu (http://www.snebu.com, https://github.com/derekp/snebu), the Simple Network Backup Utility, is a snapshot-style agentless backup system for anything that supports GNU Find and Tar. It supports local and remote backups, compression, and maintains a backup catalog in a database (sqlite). It will eventually support encryption, cloud and tape storage, and direct backup of KVM virtual machines.

I was thinking of having a logo representing a gear shift shown in reverse (backup = reverse). But lately I was more thinking of a logo in the style of Dr. Seuss character.

10
hartator 3 ago 0 replies      
We don't have a logo yet!

Download an entire website from the Internet Archive Wayback Machine.

https://github.com/hartator/wayback-machine-downloader

11
themihai 3 ago 0 replies      
12
slazaro 3 ago 1 reply      
Off-topic (sorta): Is there any easy way to find out about this kind of open source design offers? I think I might be interested in trying some and I didn't even know all these existed.

How would I find out about more of them in the future?

13
ftfish 3 ago 0 replies      
Botwiki (botwiki.org) is an open-source catalog of "friendly, useful, artistic online bots", and tools and tutorials that can help you make them.

I started this project shortly before the recent hype around bots, and it focuses mostly on the "indie" side of bots and botmaking, with things like Monthly Bot Challenge (which is currently on hold, but resuming hopefully soon), badges (using Mozilla's Open Badges), and soon, botmaking workshops.

Project's GitHub page: https://github.com/botwiki/botwiki.org

14
koolba 3 ago 0 replies      
Please let it be Zookeeper!

https://zookeeper.apache.org

I don't think they're looking for a new one but every time I see that logo I think they should.

15
jaltekruse 3 ago 1 reply      
Open Notebook is an application for helping math teachers create content for their classes. It is designed to be extremely easy for non-technical users to pick up in just a few minutes. The application allows creating documents for print, or in the case of classrooms with students that have computers accessible at home, the application doubles as an interactive environment for students to complete their work for digital submission.

http://opennotebookmath.com

16
supercoder 3 ago 0 replies      
http://mozilla.org apparently need one
17
marklmc 3 ago 0 replies      
Amazing offer, thanks for the opportunity!

LentilDI is an ES6 Dependency Injection framework that aims to:

- reduce the boilerplate in wiring stuff up

- reduces the complexity of managing the ordering of dependencies.

- make testing components easy and transparent

Github: https://github.com/magicmark/LentilDI

It's a hobby side project at the moment, but it's well tested and any assistance/feedback would be great!

18
gnulnx 2 ago 0 replies      
ZoneMinder, an open source video surveillance system. I recently redesigned the website, but that was pretty easy compared to a logo.

https://zoneminder.com & https://github.com/ZoneMinder/ZoneMinder/

The contact form on the website works, but the email in my profile is probably the better option.

Thank you!

19
ga6840 3 ago 0 replies      
Approach0 is willing to try a new logo design.

https://github.com/approach0/search-engine

Appeoach0 is a math-aware search engine. It is about to publish its first source-code release very recently.

20
xando 3 ago 0 replies      
vmprof could use a good logo

vmprof is a platform to understand and resolve performance bottlenecks in your code. It includes a lightweight profiler for CPython 2.7, CPython 3 and PyPy and an assembler log visualizer for PyPy.

recent updateshttps://morepypy.blogspot.com/2016/08/pypy-tooling-upgrade-j...

docshttps://vmprof.readthedocs.io/en/latest/

githubhttps://github.com/vmprof

21
sn6uv 2 ago 0 replies      
Mathics, a free and open source Mathematica interpreter is looking for its first logo.

We're planning to release a 1.0 in the next few weeks and really need a logo to accompany the release.

http://mathics.github.io/

22
hrjet 3 ago 0 replies      
gngr[1] is a browser that champions privacy. It is a completewritten-from-scratch project, and not just a wrapper aroundexisting layout engines.

Our current logo and website design, if you can call it that, is adeveloper created, few days effort. We would be very happywith some professional design help.

Notes:

* gngr is short for ginger, the spice.

* The theme would be "spicy, but not shiny".

[1]: https://gngr.info and https://github.com/uprootlabs/gngr

23
antouank 3 ago 0 replies      
Great work! Thanks for sharing your unused work.

My side project is a HN reader. (yeah, I know)https://hack.ernews.info

Some parts of the back-end are open source, and I intend to rewrite the front-end in Elm and make it open source as well.

Maybe you want to try and make a more "modern" version of that classic "Y" logo?So far I just used some principles from Google's material design, and a free icon set.I'm trying to keep it as simple as possible, especially for mobile users.

Happy to hear any comments/advice on the design.

24
ziegenberg 3 ago 0 replies      
We are currently building the Charme API specification, a JSON based API format that allows to build RESTful and RPC APIs, with support for result streaming and synchronous as well as asynchronous communication.

We just finished the core spec and are currenrly working on protocol specific specifications and the core extensions. A lot of work, so that we hadn't any time to think about a logo (only a temporary one, to not to be a Twitter egg, see @CharmeAPI).

Would be great if we could get a professional logo this way! More info: charme.org

Thanks!

25
alexbaker 3 ago 0 replies      
I work on Tasks, a GPLv3 licensed to-do list for Android. It is based on the source code of a popular app that got bought out and shut down a few years ago.

I have no design chops and the app doesn't really have any branding.

https://play.google.com/store/apps/details?id=org.tasks

https://github.com/tasks/tasks

26
max0563 3 ago 0 replies      
Coffer is a containerization platform for the minimalist. We are focused on creating a straightforward platform for developers who need to work in isolated development environments without the port forwarding and various other complexities that come with other platforms.

https://github.com/Max00355/Coffer

Thanks for doing this

27
Rondom 3 ago 0 replies      
Dokan Library (think FUSE for Windows) needs a new logo for their upcoming 1.0.0 release.https://github.com/dokan-dev/dokany/issues/243
28
ppymou 3 ago 0 replies      
https://ohsloth.com/

Ohsloth is an open source copy and paste manager that aims to provide contextual actions based on snippet content.

It is still super early but it definitely could use some design love!

29
thestonefox 3 ago 1 reply      
We've been looking for a logo for some time! :)

https://github.com/thestonefox/SteamVR_Unity_Toolkit/issues/...

30
nicolasbrailo 3 ago 0 replies      
My open source Vlc remote is pretty ugly. Can I nominate it to get a better logo? Source @ https://github.com/nicolasbrailo/VlcFreemote
31
tilt 3 ago 0 replies      
Just getting started on paddock: Up and Running development environment built with `parse-server` and `docker`.

https://github.com/nutcore/paddock/

32
devolt 3 ago 0 replies      
http://cropme.ru is a great app for instant screen sharing, still using stock logo. The project is free, used by a lot of people and for sure opensource
33
danielravina 3 ago 0 replies      
My project is in big need for a nice logo and a Mac dock icon http://github.com/danielravina/headset

Thank you!

34
theantonym 3 ago 0 replies      
netboot.xyz (https://netboot.xyz), uses the iPXE project to network boot Operating System installers and utilities from quick and easy to use menu.

I have no logo today but would love to see what you might be able to come up with.

35
dbg31415 3 ago 0 replies      
Please post the results in an update when you can! (=
36
kvz 3 ago 0 replies      
It would be great to have a logo for bash3boilerplate.sh
37
s0l1dsnak3123 3 ago 0 replies      
Both Diplomat (github.com/wearefarmgeek/diplomat) and Postie (https://github.com/johnhamelink/postie) are looking for logos.
19
Ask HN: What's the best library for making cross-platform UIs?
220 points by rer  2 ago   216 comments top 58
1
dahart 2 ago 2 replies      
It would help a lot to have the question elaborate on what you really need. What do you mean by "best", and do you actually need the best? Do you need easy to learn, or code that is easy to deliver, or most powerful features, or most number of platforms covered? Do you include mobile in cross platform, and do you have a performance or language requirement?

A web app is one of the most cross platform ways to go, is the easiest to deliver, and can be easy-ish to learn, but isn't the easiest. But, you are stuck with JavaScript. If a web app won't work for you, why not? Knowing that will allow people to help you more.

Qt is great, especially if you're using C++ or some other language. It's pleasant and very powerful, but a lot to learn, and deployment to users is harder than a web app.

What are your constraints & requirements?

2
babuskov 2 ago 5 replies      
Strange nobody mentioned wxWidgets so far which gives you true native apps, so I'll do it:

http://wxwidgets.org

It provides API layer which compiles to Win32 API on Windows, Gtk2 on Linux and Carbon/Cocoa on Mac OSX.

Qt only emulates Windows controls, but wxWidgets uses the actual Windows controls via Microsoft Win32 API.

BTW, there's wxQt, a wxWidgets implementation that uses Qt instead of Gtk, but it's still experimental:

https://wiki.wxwidgets.org/WxQt

wxWidgets has been used by some popular projects like Audacity, TortoiseCVS, RapidSVN, FileZilla, BitTorrent, etc.

Another wxWidgets advantage over Qt is the license, which gives you more freedom.

If you're looking for a faster start, take a look at wxFormBuilder which is a graphical WYSIWYG UI editor where you can drop controls in windows/dialogs and hook up event handlers.

You can find links to more related tools/IDEs on the Wikipedia page:

https://en.wikipedia.org/wiki/WxWidgets

4
networked 2 ago 2 replies      
What is the best depends on your exact requirements but three good options to get a GUI off the ground quickly are Tk [1], wxWidgets (and wxPython [2] and wxLua [3] in particular) and Lazarus (LCL) [4].

Tk widgets look native on Windows and macOS (if you use the right ones see [5]), though their behavior is implemented by Tk itself. On Linux it draws its own widgets in several styles; GTK and Qt theme support is immature. Lazarus and wxWidgets use native widgets on Windows and macOS. Both can use GTK2 on Linux but Lazarus also supports GTK1 and Qt.

If I had to deliver a cross-platform desktop GUI application by midnight today, I would go with Tk, write the code in Tcl (which necessarily has the best Tk integration) and package it in a static binary Starpack [6].

[1] http://www.tkdocs.com/

[2] https://wxpython.org/

[3] http://wxlua.sourceforge.net/

[4] http://www.lazarus-ide.org/, http://wiki.lazarus.freepascal.org/LCL

[5] http://www.tkdocs.com/tutorial/idle.html

[6] https://tcl.wiki/Starpack

5
scrollaway 2 ago 6 replies      
Qt has a truly pleasant API and bindings in many languages. If you haven't used it before - and I know you haven't, otherwise you wouldn't be asking :) - give it a try. There's very little that's more cross-platform.
6
fitzwatermellow 2 ago 4 replies      
Just getting started on Electron myself. Used by Atom, Slack, Visual Studio... It's worth a look ;)

Electron - Build Cross-Platform Desktop Apps With HTML, JS, CSS

http://electron.atom.io/

7
knabacks 2 ago 0 replies      
There are plenty of options (all biased by personal opinion) for this task. Maybe one of these projects is a good fit for you (creating consistent uis should be easy with all of these).

- https://crosswalk-project.org/

- https://cordova.apache.org/

- https://kivy.org/

- https://www.nativescript.org/

- https://www.xamarin.com/

- https://facebook.github.io/react-native/

#

- https://www.wxwidgets.org/

- http://nwjs.io/

- http://electron.atom.io/

8
rer 2 ago 5 replies      
Here's what I want.

- The UI to look as good or better than the UI on Mac OS X. I'm not willing to compromise on looks.

- The library to be cross-platform. I want to deploy the software on Mac OS X, Windows, and Linux. I don't care about mobile right now.

- I want it to be possible and easy to (a) develop new features on my own and (b) change existing features. I'd rather reimplement a textbox from scratch if it's the only way to change a control. If this means I need something more like GLib instead of GTK+, so be it.

- I won't use the web. No HTML, no CSS, no Javascript. Sorry.

The end goal is to build the best, easiest UI environment to write software with. If it's not possible to build this with existing UIs and I have to write one from scratch, so be it.

9
edko 2 ago 2 replies      
"The best" is subjective. I have played around with libui (https://github.com/andlabs/libui), which runs on Windows, Linux, and macOS. A nice thing about it is that it is written in C, and therefore has bindings with several programming languages. I have experimented using it from Java (via JNA) and it works quite nicely.
10
doozy 2 ago 2 replies      
None, abstract the functionality of your app into a cross-platform library and build a native GUI for each platform you support using that platform's native SDK.
11
open-source-ux 2 ago 0 replies      
Take a look at Free Pascal and the Lazarus IDE.

What is a Lazarus? From their website:

"...a cross-platform IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces."

Why use Lazarus and Free Pascal? You can create native, cross-platform UI's all combined into a single, fast, low-memory executable that can easily be deployed and distributed on different platforms.

http://www.lazarus-ide.org/

12
gwbas1c 2 ago 1 reply      
I work on a cross-platform application that runs on both Windows and Mac.

We have a cross-platform library for business logic, and native Windows and Mac UIs.

The problem is that cross-platform UI libraries don't really let you fine-tune the UI. They're great for very rapid development with a basic, functional, UI.

If you get an "artiste" in product management, or you need to plug into Windows-specific and Mac-specific functionalities, you will need to use platform-specific UI libraries and keep your business logic platform-neutral.

13
mushiake 2 ago 1 reply      
IUP[0] has not been menthioned.

IUP is wrapper for gtk+, motif and win32.

Pros:

* really simple api

* native toolkit

* c api, so other languages can easily write binding for it

Cons:

* controlls(widgets) are limited

* cocoa(mac) is not supported {they suggest to use gtk instead}

* documentation is spotty

* nobody is using? (I believe no linux distros have it in repository)

somebody here menthioned libui[1], it is exactlly the same philosophy

[0]http://webserver2.tecgraf.puc-rio.br/iup/[1]https://github.com/andlabs/libui

14
anmorgan 2 ago 0 replies      
I've recently been using Crank Storyboard and I've been off to a good start. You can run it on embedded devices like ARM Cortex-M series processors, or Linux, iOS, Android, Windows, with openGL support. It does require a license though.

http://cranksoftware.com/storyboard-suite

Also someone else mentioned Phonegap and using HTML/JS. I think is a good option but it depends on what your app does and if you're doing mobile app design.

I have not used QT yet, but after doing some research, it's kind of a pick your poison type of choice, IMO.

15
tyfon 2 ago 0 replies      
I have tried many but always turn back to qt.It has bindings for whatever language, compiles for any platform and the documentation is superb.
16
antonios 2 ago 0 replies      
If you don't want a _native_ GUI, you can go the Electron way. This way you'll have a fully cross-platform application with minimum hassle.

If you want a native one, probably Qt is the winner here.

17
mherrmann 2 ago 1 reply      
For a file manager I'm developing [1], this question recently boiled down to Electron vs (Py)Qt. I chose (Py)Qt because Electron's startup speed is too slow.

[1]: https://fman.io

18
jlarocco 2 ago 0 replies      
It depends on what language you're using and your requirements, but my preference is Qt. It has bindings to several languages; it supports most common platforms; the API is consistent, stable, and well documented; and it's easy to get up and running on all of the platforms it supports.

One complaint people have about Qt is that it doesn't "look native" enough. That's not something I personally care about, and it's not a problem at all for the applications I write, but it's an issue for some people. IME, that's just a trade off of using a cross-platform GUI library. If the layout is good and it's easy to use, most people won't care if it doesn't look native. Photoshop doesn't "look native" either, yet it has a huge following and brings in a ton of money.

19
zackify 2 ago 1 reply      
React (Native). You can build an iOS and android app with the same codebase. Even windows phone and ubuntu are starting to support it. Then when you want to use the web, your whole data layer can carry over to reactjs. It's a really nice way of doing things. There's even react native for Mac OS that someone has started.
20
levbrie 2 ago 0 replies      
My vote is for electron, although I'm following how React Native develops really closely. From what I've seen, the best new "Desktop" apps tend to be built with electron. We've been using it in production and, despite having to make pull requests for framework-level bugs fairly regularly, we've haad a pretty good experience overall, and far better than anything else we've tried - although, as I said, we have yet to seriously look into React Native. Also, by cross-platform I'm assuming you mean OS X, Windows, and Linux. If you also want to include mobile, then there are so few options there's no longer any real reason to debate.
21
SeaDude 2 ago 1 reply      
I'm barely a geek, let alone a hacker, but have been trying to learn NativeScript for the past month or so. You might want to check it out.

Not sure how it compares as a "library" or "framework" etc. I'm still figuring out where the lines are drawn.

http://docs.nativescript.orgEmulator Here: https://docs.genymotion.com

22
melle 2 ago 1 reply      
Depending on the type of UI, you could also give Kivy a try.https://kivy.org/

It's python based, and really easy to get going.It does have it's quirks, but overall I found it a joy to use.

23
tariqrauf 2 ago 1 reply      
Depends on what you're after :)

Electron or QT for cross-desktop apps, Angular & Ion framework for cross-mobile apps, React & React-native for cross-mobile apps

24
tumdum_ 2 ago 2 replies      
There is also swing and javafx if you want to use jvm.
25
agentultra 2 ago 1 reply      
It depends on what you mean by, "cross-platform." In my world there is no such thing. You pick your target platforms and program to them. However it is common to imply "major platforms" (ie: iOS, Android, Windows 10, OSX). Different platforms have different requirements and will shape your solution.

Next... what is the application? Do you need to target native APIs? Do you have memory limitations?

If you don't mind taking up a lot of memory try one of the "cross platform" systems like Xamarin or some Java-based solution. If you need to be more constrained try writing to the native APIs and porting your project to each target platform you need to target. Lastly if you're highly constrained maybe you need to try an immediate-mode style library like Nuklear[0].

It really depends on your needs. There's no one-size-fits-all.

[0] https://github.com/vurtun/nuklear

26
tylerlarson 1 ago 0 replies      
A few other people have mentioned JavaScript and HTML but in my experience HTML and CSS support varies wildly between platforms and as applications become larger it is difficult to tune the performance of your running application. Also the implementation of the base code for HTML tags and what CSS properties can do are inaccessible to JavaScript making many task much harder than they would be in other environments where you can simply extend or introspect the internals.

But if you want something to run everywhere including web browsers, JavaScript is the only realistic option. So we make do. My current approach is to rely on HTML/CSS and React/React Native for the easy stuff and everything else is rendered in the Canvas tag with lots of JavaScript to bend the platforms into doing what you want.

In the past I have taken similar approaches by using things like Ejecta but the android support for this is lacking and now that WKWebView has addressed many of its issues, using standard WebViews within native containers is fast enough on mobile.

On desktop, Electron, NW or the other things like this can fulfill the same setup.

People will complain about performance which was a really big issues a few years ago but today the difference isn't large enough that it can't be worked around and most of the fear is in people heads. Most environments have web workers, and webgl, and JavaScript that has a JIT, and many new things like Web Assembly and SIMD should be available in the coming years making these platforms even more viable.

27
elcct 2 ago 2 replies      
I see nobody mentioned Juce. It is pretty neat if you like C++
28
shireboy 2 ago 1 reply      
Not a library per se, but HTML+CSS+JS. Bootstrap or some other mobile responsive framework. Works on just about every device&OS. Phone gap or similar if you really need native.
29
antoineMoPa 2 ago 2 replies      
GTK may have a difficult API, but it is portable and it gives a better feel than Qt for Linux+Gnome users like me (I will always choose a GTK app over a Qt app).
30
SyneRyder 2 ago 1 reply      
I'll throw in a mention for Xojo:

http://www.xojo.com

Xojo used to be called REALbasic, and it's a cross-platform 'Visual Basic' with support for Windows, Mac, Linux, iOS and Raspberry Pi. I tend to use it for internal tools that need to run on both Windows & Mac, and find it's great for getting to a prototype stage very quickly.

32
pipio21 2 ago 0 replies      
It depends on what you need.

In the past we used GTK and wxwidgets with OpenGL but we did not like it.

We started using Qt, much better(proper object oriented by design, and cleaner design than wxwidgets) and web apps. Now we use native libs with our own multiplattform lib with bindings for each plattform:

-javascript for the web.

-native cocoa and windows libs, with openGL, metal and directX.

-Qt for linux with OpenGL.

- Native mac(iOS and cocoa) and windows.

33
heavenlyhash 2 ago 0 replies      
There's a lot of great web-tech based solutions. Other commentors are covering those, so I'll suggest something different: For a take outside of the web, Golang with OpenGL bindings has a lot of promise for shipping $everywhere.

The https://github.com/go-gl github org has repos with comprehensive pre-generated OpenGL linking. When building off these, you need almost zero interaction with any host libraries. Cross compiling is a breeze. I made a demo application on Linux one afternoon to try it out: I was able to hand the code to a friend with a Mac, and he compiled and ran it first try. It's hard to understate the level of "wow" there.

Golang+GL also ships to mobile devices. There's a little squeeze dealing with the app stores, but fundamentally, build on GLES2 and you can go anywhere.

https://github.com/google/gxui/ is one library on top of these foundations that went all the way to providing (beautiful!) cross-platform widgets that can be used to quickly build a desktop application.

Unfortunately, gxui, though a very attractive proof of concept, is now unmaintained. (At the same time, it's worth mentioning that it still works; there's no insane deprecation schedule or fast-moving/fast-breaking libraries to wreck your day here.) If anyone Out There is interested in renewing this project or starting more frameworks like this, I'd love to collaborate.

Overall, there's work to do here, but if you have some appetite for cutting edge, the foundation is in place to nail portability properly.

Finally, this is unrelated, but I feel compelled to give an anti-pitch to pretty much everything in C/C++ ecosystem of GUI tools: it's a landscape of last decade's promises, and today's despair. I've had comrades complain bitterly over time they've spent in codebases where the wxwidget string objects got out of hand. I have a half dozen applications suffering from various C++ linker hells on my various computers and can't recommend QT with a straight face. I still haven't gotten all my gtk3 and gtk2 configs to line up on my last debian reinstall and all the font sizes are fragged on the computer for no known reason (I literally the gtk configs in my dotfiles in git; I can't imagine how different machines drift)... And I haven't even said a word about build and shipping infrastructure required to really tackle cross-platform. I'll say it again: the entire C/C++ ecosystem of GUI tools is a landscape of despair.

34
c-smile 2 ago 0 replies      
http://sciter.com

Embeddable HTML/CSS UI engine designed specifically for desktop UIs.

The "Embeddable" here means that:- it is a compact (3...4mb) monolithic DLL/dylib/so without external dependencies. - can be linked statically if needed.- has simple plain C API of 20-30 functions - C++,C#,Rust,Go,Delphi,Python wrappers.

Same UI resources are used on all platforms: http://sciter.com/images/sciter-clock.png

Check technology introduction article:

http://www.codeproject.com/Articles/859098/Sciter-multiplatf...

35
TheGrassyKnoll 2 ago 0 replies      
Which one has the best tutorial so a wanna-be can get started ? Usually, to me, the 'best' tutorials have the most examples. (Yes, an example is worth a thousand words)(I'd want to be starting on Ubuntu, with Python 3)
36
maramono 2 ago 0 replies      
Here's what I use to develop Mutator's [0] and TestLess' [1] GUIs:- implement in Ruby- compile to Java using Warbler/JRuby- Run as Java on any platform that supports Java.

You can use javafx or swing, although javafx needs certain combination of warbler and jruby to work.

[0] http://ortask.com/mutator/

[1] http://ortask.com/testless/

37
justsaysmthng 2 ago 0 replies      
The choice of the UI library depends a lot on the type of app you're developing.For many types of apps, a single page HTML/JS/CSS app bundled as an executable is the best choice.

If your app will do a lot with the hardware (sound, video, networking,...), then you should look at native libraries for cross-platform hardware access and UI (though HTML/JS/CSS based UIs with native core are also possible).

In my experience, making a good "cross-platform" UI can be tricky, especially if your platforms include both desktop and mobile.

The reason is that each platform has it's own set of features, limitations and design requirements, which you either have to emulate, ignore or implement as platform-specific modules.

Most UI libraries implement their own windowing systems which makes it possible to have an app that behaves similarly on all platforms.

The drawback is that the app looks and feels 'cooked' - things aren't quite standard, animations are a bit off, fonts are rendered differently, etc.

One such example is Qt, which has been mentioned many times here. It is probably the best choice if pixel perfection and native look/feel isn't your primary requirement. With a bit of work you could probably achieve native 'perfection' with it too.

If you work with sound, then you should take a good look at JUCE - it has a very pleasant API, has a low overhead and a very friendly community.

That being said, the best choice IMHO is to develop native UIs for each platform or at least for the mobile versions of your app.

The trick is to separate your design into "core" and "ui" parts. The core is a cross platform C++ library, which implements all the business logic and low level hardware access, exposing an API to the UI layer.

The UI is then implemented in Qt/JUCE for the desktop apps, Objective-C++ and Swift for iOS (and OSX if you want) and Java+JNI on Android.

The advantage of this method is that it forces you to have clear separation of concerns between the core business and UI layers and you can have different people working on the core and the specific platform UIs.

The ultimate advantage is of course your user's experience - native apps are more gratifying.

It might sound like a lot more work, but it's usually not as bad as it sounds - if you have a well designed core API, the UI is just a visual representation of your application state, which is not that difficult to implement on each platform.

In the end, personal preference and tastes also matter - use whatever makes you (and your team) feel more comfortable. Good luck !

38
EGreg 2 ago 1 reply      
I'm just going to come out and say The Web. Stick WebViews in your app and if you need some native API use a bridge (like PhoneGap).

By itself you can already have tons and tons of great UI components that work cross platform.

But if you want a web based library specifically designed to present a common interface tailored to each device (desktop, tablet and mobile) and taking advantage of its unique characteristics, use our open source one:

http://qbix.com/platform

39
SimianLogic2 2 ago 0 replies      
I've been going the other direction recently. We have a photoshop plugin that exports layers with metadata (where an image is located, fonts, font sizes, text, etc). For any platform that has a basic scene graph and some sort of label functionality (Unity, iOS, android, theoretically even web) we write a runtime that converts the metadata into runtime UIs.

So it ends up being custom logic for interaction on each platform, but the design/assets can be shared cross-platform.

40
jbergens 2 ago 0 replies      
You might have to define which platforms you want or need to target. There is a difference between just writing a desktop application that should work on Windows and Mac, an app that should work on iPhone and Android and a solution that needs to work on all of the above plus Linux desktops and Windows Phones and web browsers.[edit: spelling]
41
jasonjei 2 ago 0 replies      
You can have your cake and eat it too. If you have to build a native desktop app, you can use Chromium Embedded Framework. Spotify is one of its biggest users. You can still build your UI in HTML but drive it with native code (C++, Objective-C, C#, etc). We used CEF when we realized how painful Win32 C++ WTL desktop UI was.
42
matthewhall 2 ago 0 replies      
Electron shell without a doubt. HTMl is so fluid and extensionable that it is hard to beat. It doesn't work on mobile however. Also it isn't as fast as c native but you use node js which is greater than pure js for obvious reasons.
43
codesmythe 2 ago 2 replies      
SWT rarely gets any love in desktop UI threads around here, but I recently wrote a small desktop program using SWT and Java and found it to be a reasonably pleasant experience. The main purpose of the program was to allow the user to view a couple of database tables, and using a tree view widget with columns was a key requirement. SWT is the widget toolkit used by Eclipse and is mostly native, using GTK on Linux, Cocoa on macOS and the Win32 API on Windows. It is still in active development, and support for HiDpi was recently added.

I started off with an Angular 1 app using Dropwizard for the backend. But I was frustrated with (1) the incidental complexity needed to use a decent tree view widget with sorting, filtering, pagination, etc. and (2) the slow response time of having to go from the web page, to the backend server, to the database and then back again.

Around that time, I ran across a Java Swing app written by another group and was surprised about how fast it was to start up and to access and display info from a database. Since it used Swing though, the fonts under Red Hat 6 were terrible. Since I already had most of the "business logic" in Java, it was straightforward to quickly prototype a viewer using the SWT/JFace tree viewer. It was fast to start up, and the fonts looked decent since it was using native GTK2. I dropped the Angular stuff and coded the program in SWT and it has been well received by my coworkers.

I'm a big believer in using native widgets to the extent possible, which SWT does. For the tree view widget, for example, it uses GTKTreeView for Linux and NSOutlineView for macOS. For Win32, there is not a native tree view widget with columns; SWT uses the native Tree widget and draws the columns itself. Qt on the other hand emulates a treeview widget on macOS for example and does not use NSOutlineView.

There is occasionally a least-common-denominator issue when using SWT. For example, I wanted to use tab widgets that have close buttons on the tab like web browsers do. The native Win32 and Cocoa tab controls do not provide for close buttons, so I had to use an SWT provided tab widget that is not native at all. Doesn't look great, especially on the Mac, but it's fine.

The SWT API is dated, as it comes from the early 2000's, but it seems straightforward and I rarely find myself surprised. Getting the GridLayout to do what I wanted was probably the trickiest part. There are examples to follow on the web. It does not have the kitchen sink aspect that Qt and WxWidgets have, since Java is there to provide the networking and database access, etc. Java 8 cleans up a lot of the issues with having to use anonymous inner classes everywhere in favor of lambdas, and if Java is not your cup of coffee then SWT is usable from other JVM languages.

Deploying the program works ok. For macOS and Windows, I package it up with its own JRE. I do face the issue of the best way for end users to update the program easily. I haven't found an easy to use update package like Sparkle on macOS that works for cross desktop platform Java apps. I'm contemplating turning my program in to a full Eclipse RCP program to take advantage of that framework's built in update facility, but the learning curve seems daunting. And I'm a big fan of Intellij IDEA for Java development, and don't want to use Eclipse. :-)

44
BatFastard 2 ago 0 replies      
Adobe AIR - much as people like to hate on flash, Adobe AIR kicks ass as a cross platform UI. It has years of use and abuse.

Its one downside is if you need really low level hardware interaction with OS you have to use an ANE library which are sometimes great, and sometimes sketchy.

45
cel1ne 2 ago 0 replies      
I'd probably use Electron and/or SWT along with javascript and kotlin.
46
evolighting 2 ago 1 reply      
QT
47
fezz 2 ago 1 reply      
I like JUCE. http://www.juce.com/It's used for a lot of audio apps and plugins but lots beyond that too.
48
sergiotapia 2 ago 0 replies      
Electron I would say. You make your UI's using HTML and CSS, it looks the same everywhere. Not bad, I guess although it does have it performance issues.

Atom for example is built with Electron.

49
max_ 2 ago 2 replies      
I have used Electron previously, but now Ionic is my favorite http://ionicframework.com/
50
kev6168 2 ago 1 reply      
There is Livecode (livecode.org). Does anyone have experience using it in production? It's cross-platform and has both commercial and open source (community) versions.
51
EddieSpeaks 2 ago 2 replies      
Why isn't anyone here mentioning Xamarin + GTK#?
52
Toover 2 ago 0 replies      
Qt with no hesitation. It works everywhere.
53
Toover 2 ago 0 replies      
Qt with no hsitation. Works everywhere.
54
skoocda 2 ago 1 reply      
I'm surprised nobody has mentioned Angular 2 yet. It's new, so don't expect tons of support. Nonetheless, it's there as an option!
55
undoware 2 ago 0 replies      
Motif. >:]
56
robot 2 ago 0 replies      
The best one I know is html 5
57
totocino 2 ago 2 replies      
Qt obviously, but beware of licencing
58
indubitably 2 ago 0 replies      
The internet.
20
Ask HN: Which security vulnerability feeds should I Monitor?
11 points by KajMagnus  1 ago   1 comment top
1
ashitlerferad 6 ago 0 replies      
Take a look at some of the links on this page:

https://security-tracker.debian.org/tracker/CVE-2016-4448

21
Ask HN: How do I find out if a company has really raised a Series-A/B?
8 points by throwaway_11229  22 ago   2 comments top 2
1
kogir 17 ago 0 replies      
Assuming you're being offered options, you need to know the terms of the financing to value them anyway. Just ask to see the docs.

If they won't show you docs, something isn't on the up and up.

2
kspaans 17 ago 0 replies      
You could find out who they raised from (hopefully they told you/would tell you), and then ask the VC for a confirmation.
22
Ask HN: How do you handle DDoS attacks?
219 points by dineshp2  2 ago   105 comments top 28
1
buro9 2 ago 3 replies      
I've faced DoS attacks for years as I run internet forums.

The simple advice for layer 7 (application) attacks:

1. Design your web app to be incredibly cacheable

2. Use your CDN to cache everything

3. When under attack seek to identify the site (if you host more than one) and page that is being attacked. Force cache it via your CDN of choice.

4. If you cannot cache the page then move it.

5. If you cannot cache or move it, then have your CDN/security layer of choice issue a captcha challenge or similar.

The simple advice for layer 3 (network) attacks:

1. Rely on the security layer of choice, if it's not working change vendor.

On the L3 stuff, when it comes to DNS I've had some bad experiences (Linode, oh they suffered) some pretty good experiences (DNS Made Easy) and some great experiences (CloudFlare).

On L7 stuff, there's a few things no-one tells you about... like if you have your application back onto AWS S3 and serve static files, that the attack can be on your purse as the bandwidth costs can really add up.

It's definitely worth thinking of how to push all costs outside of your little realm. A Varnish cache or Nginx reverse proxy with file system cache can make all the difference by saving your bandwidth costs and app servers.

I personally put CloudFlare in front of my service, but even then I use Varnish as a reverse proxy cache within my little setup to ensure that the application underneath it is really well cached. I only have about 90GB of static files in S3, and about 60GB of that is in my Varnish cache, which means when some of the more interesting attacks are based on resource exhaustion (and the resource is my pocket), they fail because they're probably just filling caches and not actually hurting.

The places you should be ready to add captchas as they really are uncacheable:

* Login pages

* Shopping Cart Checkout pages

* Search result pages

Ah, there's so much one can do, but generally... designing to be highly cacheable and then using a provider who routinely handles big attacks is the way to go.

2
wesleytodd 2 ago 3 replies      
My startup's site gets DDOS'd about once a week. We have seen a huge range of attacks from UDP floods, to wordpress pingback attacks, to directed attacks on our services.

We have many layers of protection:

* We run iptables and an api we wrote on our ingest servers. We run failtoban on a separate set of servers. When fail2ban sees something, we have it hit the api and add the iptables rules. This offloads the cpu of failtoban from our ingest servers.

* We block groups of known hosting company IP blocks, like digital ocean and linode. These were common sources of attacks.

* Our services all have rate limits which we throttle based on IP

* We have monitoring and auto-scaling which responds pretty quickly when needed. And has service level granularity.

* Recently moved behind cloudflare because google cloud did not protect us from attacks like the UDP floods which didn't even reach our servers.

EDIT: formatting

3
kev009 2 ago 0 replies      
I work at a large CDN that also sells DDoS mitigation.

Firstly, we are built to endure any DDoS the internet has yet seen on our peering, backbone, and edge servers for CDN services. This is quite important when you are tasked with running a large percentage of the interweb but probably not practical for most organizations, mostly due to talent rather than cost (you need people that actually understand networking and systems at the implementation level, not the modern epithet of full stack developer).

But, it is critical to have enough inbound peering/transit to eat the DDoS if you want to mitigate it -- CDNs with a real first party network are well suited for this due to peering ratios.

Secondly, when you participate in internet routing decisions through BGP, you begin to have options for curtailing attacks. The most basic reaction would be manually null routing IPs for DoS, but that obviously doesn't scale to DDoS. So we have scrubbers that passively look for collective attack patterns hanging on the side of our core, and act upon that. Attack profiles and defense are confirmed by a human in our 24/7 operations center, because a false positive would be worse than a false negative.

Using BGP, we can also become responsible for other companies' IP space and tunnel a cleaned feed back to them, so the mitigation can complement or be used in lieu of first party CDN service.

In summary, the options are pretty limited: 1) Offload the task to some kind of service provider 2) Use a network provider with scrubbing 3) you've hired a team to build this because you are a major internet infrastructure.

4
rmdoss 2 ago 1 reply      
We need to divide DDoS here in two categories:

-DDoS you can handle (small ones). That anything up to 1 or 2Gbps or 1m packets per second.

-DDoS you can not handle. Anything higher than that.

For the smaller DDoS attacks, you can handle it by adding more servers and using a load balancer (eg. ELB) in front of your site. Both Linode and DigitalOcean will null route your IP address if the attack goes above 100-200Mbps, which is very annoying. Amazon and Google will let you handle on your own (and charge you for it), but you will need quite a few instances to keep up with it.

For anything bigger than that, you have to use a DDoS mitigation service. Even bigger companies do not have 30-40Gbps+ capacity extra hanging around just in case.

I have used and engaged with multiple DDoS mitigation companies and the ones that are affordable and good enough for HTTP (or HTTPS) protection are CloudFlare, Sucuri.net and Incapsula.

-CloudFlare: Is the most popular one and works well for everything but l7 attacks (in my experience). You need to get their paid plan, since the free one does not include ddos protection - they will ask you to upgrade if that happens.

-Sucuri.net: Not as well known as CloudFlare, but they have a very solid mitigation. Have been using them more lately as they are cheaper overall than CloudFlare and have amazing support.

-Incapsula: I used to love them, but their support has been really bad lately. They are on a roll trying to get everyone to upgrade their plans, so that's been annoying. If you can do stuff on your own, they work well.

That's been longer than what I anticipated, but hope it helps you decide.

thanks,

5
DivineTraube 2 ago 2 replies      
We (Baqend) use an approach that is somewhat different from what has been proposed here so far:

- Every one of our servers rate limits critical resources, i.e. the ones that cannot be cached. The servers autoscale when neccessary.

- As rate limiting is expensive (you have to remember every IP/resource pair across all servers) we keep that state in a locally approximated representation using a ring buffer of Bloom filters.

- Every cacheable resource is cached in our CDN (Fastly) with TTLs estimated via an exponential decay model over past reads and writes.

- When a user exceeds his rate limit the IP is temporarily banned at the CDN-level. This is achieved through custom Varnish VCLs deployed in Fastly. Essentially the logic relies on the bakend returning a 429 Too Many Requests for a particular URL that is then cached using the requester's ID as a hash key. Using the restart mechanism of Varnish's state machine, this can be done without any performance penalty for normal requests. The duration of the ban simply is the TTL.

TL;DR: Every abusive request is detected at the backend servers using approximations via Bloom filters and then a temporary ban is cached in the CDN for that IP.

6
tombrossman 2 ago 4 replies      
I use and recommend hosting with OVH if you are worried about DDOS and serving a Western market. No affiliation, just a happy customer.

OVH include DDOS protection by default[0] and they have a very robust backbone network[1] in Europe and North America that they own and operate themselves (this is how & why anti-DDOS is standard with them).

For quick side-projects I still fire up a DigitalOcean instance or two because their UX is so slick and easy. If I needed huge scale and price didn't matter I would probably go with AWS (their 'anti-DDOS' is their vast bandwidth + your ability to pay for it during an attack). For everything else, I put it on OVH.

[0]https://www.ovh.com/us/anti-ddos/

[1]http://weathermap.ovh.net/

7
jaypaulynice 2 ago 0 replies      
I work at a CDN/Security engineering company, but this is just my view.

First off you need to determine where the attack is coming from. You could redirect based on IP/request headers in a .htaccess file or apache rules.

Your next bet is to distribute/auto-scale your application if possible.

You need to setup a web application firewall that sits in front of your web servers and analyzes the requests/responses that hit the web servers. A lot of the ddos campaigns are easy to identify based on the request headers/IP/Geo and requests/second.

It's not hard to write a small web server/proxy to do this, but it would be best left to someone who knows what they're doing because you don't want to block real user requests. You can use ModSecurity's open source WAF for apache/nginx, but again you have to know what you're doing.

When I faced this issue, I wrote a small web server/proxy here that you can start on port 80:

https://github.com/julesbond007/java-nio-web-server

Here I wrote some rules to drop the request if it's malicious:

https://github.com/julesbond007/java-nio-web-server/blob/mas...

8
DenisM 2 ago 0 replies      
AWS informs us that an ELB with HTTP/HTTPS termination takes care of all problems except application level attacks. Traffic ingress is free, so it shouldn't be expensive?

For static content there is always CDN. Costly, but it works in a pinch, while you're planning you other moves.

The one thing left to worry about is dynamic content. Depending on the application you could restrict all requests to authorized users only while under attack.

This isn't a complete solution by any means, but reduced the attack surface considerably.

https://d0.awsstatic.com/whitepapers/DDoS_White_Paper_June20...

9
rmdoss 2 ago 0 replies      
To summarize the discussion here so far:

1- For small attacks you can optimize your stack, cache your content and use a provider that allows you to quickly scale and add more servers to handle the traffic. Do not use Linode or Digital Ocean as they will null route you.

OVH, AWS and Google are the ones to go with.

2- Use a DDoS mitigation / CDN provider that will filter the attacks and only send clean traffic back to you.

The ones recommended so far:

https://cloudflare.com

https://sucuri.net

https://incapsula.com

10
carlosfvp 2 ago 1 reply      
There are many services for HTTP protection, but when you have a custom protocol for a RT service like a game, you are kind of screwed. It's even worst if your game is UDP based.

I used to get attacked huge a load of corrupt UDP packets for a few seconds and that used to hang the main server, wich in 1 or 2 minutes disconnected all my players.

Solution: separate your UDP services from your TCP services in separate applications and servers, also use different type of protection services for each.

The attack still hanged the UDP services, so I started thinking about making a plugin for snort to analyse the traffic and only allow legit protocol packets. I haven't done any of this last idea because the attackers stopped since they noticed that no one was being disconnected.

BTW, for TCP and HTTP I just used any tiny service that protects me from SYN Flood, like Voxility resellers.

12
r1ch 2 ago 1 reply      
Most DDoS attacks are volumetric. There isn't a way to defend against this other than simply having a huge pipe, or paying someone with a huge pipe to be in front of your site.

Non-volumetric attacks like SYN or HTTP floods can be mitigated with appropriate rate limiting or firewalling.

Some providers like OVH have decent network-level mitigation in place, but you're not gonna find that on a $5 VPS where they're more than happy to null route you to protect their network.

13
asimjalis 2 ago 0 replies      
14
northwardstar 2 ago 0 replies      
+1 to CloudFlare and Incapsula. Content delivery networks inherently distribute traffic and most have security enhancements specific to Distributed Denial-of-Service mitigation.

DDoS protection providers offer a remote solution to protect any server / network, anywhere: https://sharktech.net/remote-network-ddos-protection.php

15
toast0 2 ago 0 replies      
A) have enough servers so when one gets null routed, it's not a huge deal

B) make sure your servers don't fall over while getting full line rate of garbage incoming (this is not hard for reflection or synfloods, but is difficult if they're hitting real webpages, and very difficult if it includes a tls handshake)

C) bored ddos kiddies tend to ddos www only, so put your important things on other sub domains

D) hope you don't attract a dedicated attacker

16
damm 2 ago 1 reply      
1. Have a big enough pipe; if you are getting a DDoS attack of 2Gigabits/second and your uplink is 1Gigabit there is nothing you can do except look for someone else to filter your traffic. (They have to basically take on the 2gig ddos; filter it and then pass back the valid traffic to you).

Verisign and others offer this service; typically using DNS. However often they support BGP

2. Add limiting factors; if you have an abusive customer rate limit them in nginx. If you are expecting a heavy day rate limit the whole site.

3. Stress testing and likely designing your website to withstand DDoS attacks.

You can cache or not cache; that's not really the question. Handling a DDoS means what can you do to mitigate the extreme amount of traffic and still allow everything else to work.

17
ebbv 2 ago 0 replies      
Disclaimer: I work for a hosting company, but these views are my own personal opinions which I held even before working where I currently do.

This is one of the reasons I would consider managed hosting as opposed to AWS, Digital Ocean, etc. With any good managed hosting provider, they are going to take steps to help deal with the DDoS. Depending on your level of service and the level of the attack, of course. But they will have an interest in helping you deal with and mitigate the attacks.

The reality is that true DDoS solutions are expensive, and if you have a "small website" then you're probably not going to be able to afford them. But if you're at a good sized hosting provider, they're going to need to have these solutions themselves and can hopefully put them to use to protect your site.

19
bowyakka 2 ago 0 replies      
You pay blacklotus a big pile of money and giggle at attackers.

http://www.level3.com/~/media/files/brochures/en_secur_br_dd...

20
kalleboo 2 ago 3 replies      
Don't piss anyone off
21
voltagex_ 2 ago 2 replies      
Most of the responses here deal with bandwidth floods. Is that really the most common DDoS?

Thinking like an attacker, wouldn't the most effective DoS be to find a CPU or memory intensive part of an application and use a small amount of bandwidth to create a large impact?

22
Kephael 2 ago 0 replies      
I colocate and rent services from providers who offer DDoS filtering and put all my websites behind CloudFlare. OVH's protection is actually an excellent value, when I used to help run a game server provider they were mitigating 20 gbit/sec and larger volumetric floods almost daily.
23
anondon 2 ago 1 reply      
Cloudbric offers free DDoS protection.

https://cloudbric.com

24
sroussey 2 ago 1 reply      
Depends on your needs, if you are in control of your network, etc. Two options here:

http://cloudflare.com

http://defense.net

25
shALKE 2 ago 0 replies      
Hey,I worked for game developing company and the attack was hitting some backend services. We tested voxility.com, it worked out fine after all was integrated.
26
vegancap 2 ago 1 reply      
Cloudflare. It's been a real life saver for us.
27
solusipse 2 ago 0 replies      
To be honest, that was the only reason why I migrated from DigitalOcean to OVH.
28
dogma1138 2 ago 1 reply      
Post was too long http://pastebin.com/48J9Ufdd :<

Random "wisdom", not in any particular order more like do's and dont's that I picked up with dealing with and executing DoS/DDoS attacks.

Testing, testing, testing, regardless of how you choose and what you implement your mitigation test it and test it well because there are a lot of things you need to know.

Know and understand exact effect that the DDOS/DoS mitigation has, the leakage rate, what attacks can still bring you down, and the cost of mitigation.

Make sure you do the testing at different hours of the day if not you better know your application and every business process very well because I've seen cases where 50GB/s DDoS would do absolutly nothing except on tuesday and sunday at 4AM when some business batch process would start and the leakage from the DoS attack + the backend process would be enough to kill the system.Common processed that can screw you over are backups, site to site or co-location syncs/transfers, various database wide batches, pretty common times for this anything in early morning, end of weak, end of month, end of quarter etc.

If you are using load or stress testing tools on your website make sure to turn off compression it's nice that you can handle 50,000 users that all use GZIP but the attackers can choose not too.

Understand what services your website/service relies on for operation common things are services like DNS, SMTP etc. if I can kill your DNS server people can't access your website, if i can kill services that are needed for the business aspect of your service to function like SMTP I'm effectively shutting you down also.

If you are hosting your service on Pay As You Go hosting plans make sure to implement a billing cap and a lot of loud warnings, your site going down might not be fun, but it's less fun to wake up to a 150K bill in the morning, if you are a small business DoD/DDoS can result in very big financial damages that can put you out of business.

Understand exactly how many resources each "operation" on your website or API costs in terms of memory, disk access/IOP's, networking, DB calls etc, this is critical to know where to implement throttling and by how much.

If you implement throttling always do it on the "dumber" layer and the layer that issues the request for example if you want to limit the amount of DB queries you execute per minute to 1000 do it on the application server not on the DB server.This is both because you always want to use "graceful" throttling which means the requesters chooses not to make a request rather than the responder having not to respond, and it also allows you to implement selective throttling for example you might want to give higher priority to retrieving data of existing users than to allow new users to sign up or vice versa.

Do not leak IP address this is both in regards to load balancing and using scrapping services like Cloudflare.When you used services like cloudflare make sure that the services you protect are not accessible directly, make sure some one can't figure out the IP address of your website/API endpoint by simply looking at the DNS records. Common pitfalls are www.mysite.com -> cloudflare IP while mysite.com/www1.mysite.com/somerandomstuff.mysite.com reveal the actual IP address. Another common source is having your IP address revealed via hard coded URLs on your site or within the SDK/documentation for your API.If you have moved to cloudflare "recently" make sure that the IP address of your services is not recorded somewhere there are many sites that show historic values for DNS records if you can it is recommended to rotate your IP addresses once you sign up for a service like cloudflare and in any case make sure you block all requests that do not come through cloudflare.

When you do load balancing do it properly do not rely on DNS to for LB/round robin if you have 3 front end servers do not return 3 IP addresses when some one asks whois www.mysite.com put a load balancer infront of them and return only 1 IP address.Relying on DNS for round robin isn't smart it never works that well and you are allowing the attacker to focus on each target individually and bring your servers one by one.

Do not rely on IP blacklisting and for whatever reason do not ever ever ever use "automated blacklisting" regardless of what your DDoS mitigation provider is trying to tell you. If you only service a single geographical region e.g. NA, Europe, or "Spain" you can do some basic geographical restrictions e.g. limit access from say India or China this might not be possible if you are say a bank or an insurance provider and one of your customers has to access it from abroad.Ironically this impacts the sites and services that are the easiest to optimize for regional blocking for example if you only operate in france you might say ha! I'll block all non-french IP address but this means that what an attacker needs to do is simply use IP spoofing and go over the entire range of French ISP's and you blacklist all of France this only takes a few minutes to achieve!If you are blacklisting commercial service provider IP's make sure you understand what impact can it have on your site, blacklisting DigitalOcean or AWS might be easy but then don't be surprised when your mass mail services or digital contract services stop working.If you do use some blacklisting / geoblocking use a single list that you maintain do not just select "China" in your scrapping service, firewall, router, and WAF all of them can have different Chinas which causes inconsistent responses, use a custom list and know what is in it.

Do not whitelist IP! I've seen way too many organizations that whitelist IPs so those IPs would not go for example through their CDN/Scrapping service or would be whitelisted on whatever "Super Anti DDoS Appliance" the CISO decided to buy into this month.IP spoofing is easy! drive by attacks are easy! And since a common IPs to whitelist are things like your corporate internet connection nothing is easier for an attack to do than to figure those out.They simply need to google for the network blocks assigned to your organization if you are big enough and or were incorporated prior to 2005 or send a couple of 1000's of phishing emails and get do some sniffing from the inside.

Understand collateral damage and drive by attacks. Know who (if) you share your IP addresses with and figure out how likely they are to be attacked, yes everyone would piss some one with keyboard access these days but there are plenty of types of businesses that are more common as targets, if you are hosting in a datacenter that also provides hosting for a lot of DDoS targets you might suffer also. For drive by attacks you need to have good understanding of the syndication of your service and if you are a B2B service provider your customers. If you provide some embedded widget to other sites if they are being DDoSed you might get hit also if it is a layer 7 attack.If you are providing service for businesses for example an address validation API you might get hammered if one of your clients is being DDoSed and the attacker is hitting their sign up pages.

Optimize your website; remove or transfer large files things like documents and videos can be moved to various hosting providers (e.g. YouTube) or CDN's, if you are hosting large files on CDN's make sure they are only accessible via the CDN, infact for the most part it's best if you make sure that what is hosted on the CDN is only accessible via the CDN this prevents attackers from accessing the resources on your own servers via selecting your IP instead of the CDN. A common pitfall would be that some large file is linked on your website as cdn1.mysite.com/largefile but it's also accessible directly from your servers via www.mysite.com/largefile.

Implement anti-scripting techniques on your website, captcha, DOM rendering (makes it very expensive for the attacker to execute layer 7 attacks if they need to render the DOM to do so) and make sure that every "expensive" operation is protected with some sort of anti-scripting mechanism.Test this! captchas that are poorly implemented are no good, and I don't mean captchas that are somehow predictable or easy to read with CV's if you have a services that looks like this LB>Web Frontend>Application Server>DB make sure that the captcha field is the 1st thing that is being validated and make sure it's validated in the web frontend or even in the LB/Reverse Proxy. If you hit the application server validate all the fields do the thing and just before sending it to the DB you validate the captcha this won't help to protect you against DoS/DDoS as well if at all.

When you implement any mitigation design it well and understand leakage and "graceful failure", it's better for the dumb parts of your service to die and restart than it is for the more complicated parts.For example if after all of your mitigation you still have 10% leakage from your anti-ddos/scraping service to your web frontend and from it there is a 5% leakage to to your DB do not scale the web frontend to compensate for the leakage from your scrapping service to the point of putting your DB at risk. A web server going down is mostly a trivial thing as it would bring itself back up usually on its own without any major issues, if your DB gets hammered well it's a completely different game you do not want to run out of memory or disk and to have to deal with cache or transaction log corruption or consistency issues on the DB.Just get used to the fact that no matter what you are going to do and implement if some one wants to bring you down they will, do what you can and is economical to you do mitigate against certain attacks and for the reset design your service with predicted points of failure that would recover on their own in the most graceful manner and shortest period.

23
Ask HN: What kind of projects should I build for a front-end portfolio?
115 points by Calist0  2 ago   55 comments top 24
1
iandanforth 2 ago 4 replies      
I'm hiring but I've seen a lot of disappointing FE applications. These are a few things I like to see in junior candidates.

- They have built something that looks good and works. Even if it's small, I can click around for more than a minute without breaking something. It works in chrome and firefox. It isn't super ugly, or too flashy.

- They know how the web works. They know what HTTP is, what HTTPS is, they know what TCP is. Maybe they even know a little bit about handshakes, or http2.

- They know a bit about how browsers work. They know that layout and styling are different things, they know a few API methods that are provided by the browser as opposed to a library. Maybe they even know that some of those methods are blocking and what that means.(1)

What really sells a candidate for me is that they are really interested to work for us and not just some company and that they are intellectually curious. If I can nerd out with someone on a call about anything it's a huge win.

(1) - Read this, don't worry if most of it is over your head -https://developers.google.com/web/fundamentals/performance/r...

2
lopatin 2 ago 3 replies      
I can only speak from personal experience but here's what worked for me. Build one thing that will truly impress the senior engineers at whatever companies you're applying to. In order to be impressive, it has to solve an interesting engineering problem. Try to build it yourself. Fail (probably). Now go pick up a library that does the hard thing for you. What's great about this is that you're now very familiar with the hard problem and have ideas/opinions about it. That will make you a valuable contributor to that particular open source library. Your project will be the centerpiece of your resume, you have the lower level knowledge that will give you points during eng interviews, you've got an open source contribution that is actually impactful, and a war story for how you failed at some very hard problem (engineers love this). That is, go deep. Not wide. For me, the hard problem was real time sync of a multiplayer game but yours can be anything you're interested in. Drop your portfolio, call it a resume. Ditch the "wireframes" and don't even think about adding parallax to your site.

Edit:Your idea of recreating popular websites is also good though, I just think it's more of a shot in the dark. If I saw a resume with a couple projects recreating some sites, even if they're good, it just doesn't tell me much, just that you're basically competent and most companies are looking for more than that. But if I saw a re-creation of Slack or Gmail that is comprehensive and actually looks and feels like the real thing, and handles errors correctly, and handles off-line mode, and has the performance of the original and is open source ... I might just literally throw money at you.

3
bigiain 2 ago 1 reply      
What are your showcase-able skills?

Who are you intending to showcase them to?

These "junior positions" you'll be applying for - what sort of companies are they with and what sort of work are they likely to ask a new junior FEDev to do?

Since you sound like you're just starting to get this portfolio together - and it seems like it's major objective is to land you your first FE Dev role - target it like crazy at the actual roles you're applying for, keeping in mind the sort of work they'll expect and permit a first-time junior FE Dev to do.

First thought there, if you're working anywhere bigger than a startup or 3-5 person agency, you're probably not going to be asked or even allowed to "change things so you think they're improved", you're much more likely to be required to "build another page for an existing site that fits in with all the other pages - both in styles/designs, as well as using the same framework/js-libraries/css files". Example: if you're applying to an agency that runs an automaker's website, as a junior you won't be asked to redesign their flagship vehicle's page, you'll be asked to add a new model or variant to something in their mid-level or entry-level range. You'd be better off (if I were interviewing you) having something in your portfolio showing an imaginary new Corolla model that uses the existing Toyota website's css/js-includes/bootstrap-files/whatever and would _obviously_ fit in with the existing site - compared to a innovative and game-changing new marketing strategy for the top of the line Hilux or Landcruiser - because that's _not_ what junior FE Devs get asked to do...

4
technojunkie 2 ago 2 replies      
You should decide what type of front-end position you're interested to get into; the front-end is now so broad that it's tough to know everything.

First, prove you are proficient with the following:

http://learn.shayhowe.com/html-css/

http://learn.shayhowe.com/advanced-html-css/

Here's a contest today that can test your skills

https://a-k-apart.com

Learn javascript and show you know ES5 inside and out. If you already know ES6/ES2015, awesome, show that too.

Any project where you've written the code from scratch (not using Bootstrap), where you teach others what you did, will show you're on the right track.

Want to contribute to Github? Look for a language, project, framework, library you're interested in, fork the project and improve the code. Doing this regularly, every day if you can, will show you're eager to learn and contribute.

If you're already at this level, pick up a specialty. It could be templating within WordPress, .NET or Java, or it could be MVC based coding using React+Redux, Angular, or Ember. Pick your favorite from these, get super proficient and even blog about your progress.

Finally, once you've gotten this stuff done, you will set yourself apart by learning cutting edge tech like Service Workers, Offline first, progressive web apps and just about anything the Google Chrome Developers are talking about here:https://www.youtube.com/channel/UCnUYZLuoy1rq1aVMwx4aTzw

My favorite is Totally Tooling Tips (all three seasons are gold).

5
reitoei 2 ago 0 replies      
> I'm thinking of doing re-designs of a few popular websites (2-3 pages mobile & desktop, wireframes) that I think can be improved. And then coding them into life.

This isn't as good as an idea as it might sound. "Popular" web sites like Google, NYT, BBC employ teams of very senior & experienced industry people. If you're going to attempt to pick apart stuff like that and give your own subjective interpretation of why your version is better... you better have the technical chops to back up your opinions.

It certainly would be interesting to see something like this in an interview as a "fun" exercise, but don't try to pass off your mocked up version as technically superior unless you can genuinely defend that position. My advice would not be to put yourself in that position in the first place, you might bite off more than you can chew. Don't force questions upon yourself that you can't answer.

My advice? Build a small site/app that demonstrates you understand how modern front end tools work (bower/NPM, gulp, SASS, uglifyJS). Maybe roll your own little responsive CSS grid. Animate some SVG graphics. Show off your flexbox skills. Use some good typography.

Make the source code available on github. Have a live demo running somewhere. Be able to talk through the various layers of the application, i.e. graphics, CSS, JavaScript, HTML.

Demonstrate understanding of the technology and that you are capable & hungry to learn more. Good luck.

6
natnai 2 ago 0 replies      
I was in a similar position to you just a year ago. I landed a job at a great start up as an FE dev. I think the best thing you can do to help yourself is really to build solutions with technology you're interested in. There's no point in learning framework X just because it's the hot thing in the industry -- learn to solve problems and demonstrate that you can do so with the appropriate tools. Solve problems you're interested in solving and the right job will come to you, because solving problems that interest you means you'll do it better, and companies interested in solving those types of proteins will also he interested in hiring you. In view of this, I say, do whatever the hell you want, but make sure you DO IT WELL.

Always remember that developers are first and foremost problem solvers. We solve problems and code is our primary tool. That's all there is to it. No more, no less. Good companies hire problem solvers, not developers who can remember the redux and webpack docs verbatim.

7
restlessdesign 2 ago 2 replies      
From a JS perspective, I would be interested to know that you understand how to make requests, parse them into a data structure, and manipulate them DOM. Preferably, one project which demonstrates that you can do this without the help of a framework; another project, that you can.
8
aaronbrethorst 2 ago 0 replies      
Things that you care about. Things that you are passionate about. Things that you can talk about literally for hours with anyone who will simply give you the opportunity.
9
ecesena 2 ago 1 reply      
(we're also hiring)

Another option is to contribute to open source projects. Just make sure it's visible/easy to catch by looking at your github profile (or if you have a website even easier).

Options vary from dashboards for "backend" tools, even just improving the ux, visualizations (projects like airbnb/caravel), or focusing on little details such as autocomplete or similar features.

You may loose the ability to choose your preferred stack, but viceversa you can show that you're adaptable.

10
skraelingjar 2 ago 0 replies      
I am also just beginning to build my portfolio as a FEDev. I volunteer at a local non-profit and when I found they were having trouble finding an affordable solution so the public could fill out and sign forms digitally, I jumped at the chance to build it. Maybe you can find a way to volunteer and create something that will highlight your skills?
11
ja27 2 ago 1 reply      
Could reach out to local non-profits and offer to update their sites.
12
xeniak 2 ago 0 replies      
The best contributions you can make on GitHub are legitimate ones: start using various libraries etc. and when you find bugs or missing documentation, open an issue or try and provide a PR.
13
nfriedly 2 ago 0 replies      
You could try taking a few jobs on freelance sites. The upsides are money and real-world experience. The downside is that you (usually) can't put the code on GitHub (although you can put screenshots and links in your portfolio.)

Feel free to reach out to me for advice if you try this but need a little help.

14
ejanus 1 ago 0 replies      
I am in the same shoe,I need entry level front-end job. I am currently going through freecodecamp.com. My intention is to become employable but I read a comment that mentioned things like building gmail and other exceptional projects. I really need to get a foot at the door.
15
rbrcurtis 2 ago 0 replies      
FWIW, I'm a hiring manager.

Build ANYTHING. It's mildly more interesting to me if you build something because you were interested in the problem, but if you take the time to learn a framework (or 3) and build something with it, you're proving to me that you are capable of learning and are interested in doing so as opposed to just showing me the projects you worked on in college.

16
gamebak 1 ago 0 replies      
Look into angular and react, and do at least 2 side projects to show off that you have some experience. Moreover, you should know some of the jquery.

Learn about SPA, those are future oriented, and it's just starting to catch up.

17
thomasedwards 2 ago 1 reply      
I would love to see how much you can do with not much at all. Anybody can make a great-looking site, but can they do it in under 500kb? See https://a-k-apart.com/ for tips!
18
tootie 2 ago 0 replies      
I judge developers on their ability to solve problems. Aimless coding does nothing to satisfy that. Get some PRs approved for useful open source projects and I'll be impressed. Even adding test coverage or documentation would be good.
19
kemuri 1 ago 0 replies      
Another great way to showcase your skills is to team up with a designer who did a recent redesign of Google/Skype/Amazon/etc and turn that into a working thing.
20
edoceo 1 ago 2 replies      
Please redesign two of my web properties. I can provide two directed projects, real-world experience and both design and code experience.

As a CTO/startup founder shipping something is the first thing I look for.

Also, I wish your github was linked here. I would have spent >5m looking at it.

Contact via my profile.

21
m1sta_ 2 ago 0 replies      
Are you stronger as a designer or a programmer?
22
parpostdoc 2 ago 1 reply      
Would you actually consider doing an outsourcing job for a reduced fee ?

Probably a react site. It has a few pages of dynamic elements (charting, real-time updates). You will be starting it from scratch.

We cant really help you with visual & appearance stuff. But we will build the server/algorithm side of things.

You can claim full credit for this & get paid (not a lot at this stage).

23
chriswwweb 1 ago 0 replies      
Some tips from somebody that has done lots of interviews and has also interviewed others:

* Use technologies they have in their stack. There are websites that help you find out what technologies companies are using to build their product. For client side code it's not very hard to find out by yourself, look at the source, look at the libraries that get loaded, beautify their code and have a look at what gets imported. Try to find out if they use react, backbone, angular or something else ... when you have found out, use those libraries for your project. When building your project use as much of those technologies to show them that you are familiar with the technologies they use.

* Make something related to the company you want to apply to, if you want to work for a game company, don't make a blog about cooking recipes, make a game ;). Try to find the idea for a tool that does something that is related to their business. Show then that you have taken the time to look into what they do. Maybe that prototype you have created will be so impressive that they may want to transform it into a real project after hiring you.

* If they have an API, use their API to get data for your project. Don't do a project that uses dummy date. Use their API and try to create something new using their data. Use the data they use for their product but display it in a different way, to show that you thought about what can be done with that data. So copy or create a page or tool they already have but try to innovate using their API. Or even better do a mashup. Combine their API with another one to create something new that is more spectacular than just using their data. Or if you can, grab their data and enhance it, for example by sorting it using some intelligent algorithm.

* Not that important but always worked well for me ... make something fun :) Try to avoid making a tool that is boring. For example let's say you want to apply at twitch, then don't just make a page that lists the top ten streamers, but make a page where people enter the name of two streamers and then a dust cloud appears with some fighting sounds and after your code has compared the stats of both streamers, a winner gets displayed. Ok this is not super fun ;) but it's an example, I guess you get the idea. If the people that review you, have a smile on their face while testing your project, it's a good thing and will help them remember you.

* Also not so important, but it can still make the difference, try to make something beautiful. Don't just apply some basic css rules to your project. Yeah developers will tell you the most important is code quality, but I'm sure that some good code that outputs something beautiful, will always be better than just some good code. People and even developers ;) also judge with their eyes. People might be unconscious of it, but I'm sure something that looks good, helps to give the feeling that it is actually good. If you don't have the skills yourself to make your project look good, than ask a friend to help or ask somebody on the web to help you.

24
DTrejo 2 ago 2 replies      
24
Ask HN: Good source code search engines?
20 points by supersan  1 ago   13 comments top 4
2
prodicus 1 ago 2 replies      
Off topic but how would you build something like this from scratch. Just for the learning part of it. Any examples?
3
ekr 1 ago 0 replies      
I've recently ran into debian code search again, https://codesearch.debian.net/. Built on top of Russ Cox's Code search (https://github.com/google/codesearch), and quite well documented.

Can't say I've used it much, but it gives a few pointers into how you could build a better one yourself.

4
blkhp19 1 ago 1 reply      
There's a startup solving this! https://sourcegraph.com
26
Ask HN: Is pomodoro technique effective for programmers?
9 points by virtualmic  1 ago   15 comments top 11
1
cauterized 1 ago 0 replies      
Yes, it's effective - at least for some of us.

You may find the common 20 or 25 minute sprint lengths too short to get into flow. But on a day when you're having trouble getting started at all, they're a good way to get your butt in gear. If you're focused, nothing forces you to stop at the end of the sprint.

When I'm ready to buckle down on a big chunk of work, I'll more often set myself a 50-min sprint, though. And if you do work through the "break" period and into another sprint, just make sure you take a nice long brain break once you hit a stopping point. Part of the purpose of those breaks is to keep you refreshed so you can continue to concentrate.

2
ruraljuror 1 ago 0 replies      
One of the main ideas of Pomodoro that I see most people ignore is that you are supposed to keep track of your distractions. This should make you more mindful of what is interrupting your work.
3
WheelsAtLarge 14 ago 0 replies      
Yes, if you're willing to stick to it - that's the hard part. There's nothing magical about it. You become better aware of your time and therefore use it better.

Fifty plus year's ago an economist,Cyril Northcote Parkinson, coined "Parkinson's law", it says, "work expands so as to fill the time available for its completion." In someways it seems obvious but the reality is that it's not so obvious since we don't recognize it until someone points it out.

Parkinson's law is what the Pomodoro technique is trying to manage for the individual as Agile is for project management. It does help but it's just hard to maintain over time.

The way to stick to it is to make it a habit. Start by making it a game such as how long can I last without failing. By the way you will fail. Track the time you lasted and then try to increase it for next time. Also note why you failed and find something to counter that so you're ready for the next time. Repeat until you no longer think about the process but it becomes part of your everyday.

4
e19293001 1 ago 2 replies      
Pomodoro technique is just a tool to force you to concentrate in your work. Personally I use both pomodoro and org-mode. Sometimes it works for me sometimes its not.

I would like to suggest another tool or option for you to try though this is not about pomodoro technique but if you wanted to be productive, you might want to read this book:

The Power of Concentration

https://www.amazon.com/Power-Concentration-Theron-Q-Dumont/d...

There is a free audiobook in librivox:

https://librivox.org/the-power-of-concentration-by-theron-q-...

5
saluki 1 ago 0 replies      
I use it, not everyday, mainly only if I notice I'm not focusing or have a long task list to tackle that day.

I use an inexpensive mac app from the appstore that seems to help as you can look up and see how much time you have left. For the breaks I'll check email, news or play a quick round of a turned based game.

https://itunes.apple.com/us/app/tomato-ticker-pomodoro-timer...

Or if I'm making progress on something I'll just keep going.

For being productive I've found knocking out a small task to get started in the morning or when starting back to begin a long stretch of development helps.

I also listen to upbeat music with minimal lyrics while I work.

And if you find a song that you're really productive listening to I'll even listen to it on repeat and that seems to help me stay in the zone.

Good luck.

6
thr0waway1239 22 ago 0 replies      
Off tangent, but the biggest improvement in my software development productivity happened when I read Edmond Lau's book "The Effective Engineer" and started asking myself before I started every task: is this task the one which is highest leverage?

Edmond's definition of leverage = Impact Produced/Time Invested

You can read the book for more on Edmond's definition of leverage, but this seemingly simple idea did absolute wonders for my productivity.

I realized the Pomodoro technique was most effective for me for the lower leverage tasks, and not so much for the higher leverage tasks. As a result, over time I sort of moved away from using it.

7
GoldenMonkey 20 ago 0 replies      
Yes, pomodoro is great for getting thru necessary but boring programming tasks. Tasks I have very low motivation to do, as they're maintenance oriented. Also, I have found it useful for time-boxing household chores as well, that I've been avoiding. I also use one pomodoro a day or a week to schedule long-term goals... i.e. learning spanish or working thru an algorithms book. Try it for a week, see if it works for you.
8
baccredited 23 ago 0 replies      
Best tip I have is to buy an actual hourglass that measures 30 minutes. There is something about actually flipping a physical thing over that puts me in a work mode. Even if I get just a couple of sessions in during a day I find that overall I accomplish more.

An unexpected benefit is sometimes I don't need to start a session. I can catch a glimpse of the hourglass out of the corner of my eye and immediately enter a productive zone.

9
afarrell 22 ago 0 replies      
I've found this physical timer much more useful than a timer app: http://www.polder.com/shop/measuring-temperature/timers/digi...
10
tmaly 22 ago 0 replies      
I think it is effective in some ways.

Planning out what you are going to work on the night before is a huge help. I think getting good at knowing what you can fit into a 25 minute slot takes some practice.

Staying focused, not reading emails or posting on HN takes serious practice.

11
TurboHaskal 1 ago 0 replies      
Good luck explaining that to your manager.
27
Ask HN: I am doing $2M annually as a solopreneur and need your help
113 points by techcorner  3 ago   82 comments top 42
1
hoodoof 3 ago 1 reply      
I would love to be in your position.

My deepest, most honest urging to you is to NOT do what you are contemplating.

Just keep doing what you are doing for as long as you can and take the cash out and put it into stable investments for your retirement. By a nice house and car, have holidays, take care of your family. Use this to complete the task of gaining financial independence for the rest of your life. When that is well and truly done then sure, treat your business as something potentially disposable and turn it into a "company" - but even then I would not advise that.

I have done the company thing and always regretted not keeping it one-man-small and just milking all the cash out.

You are sitting on an incredibly valuable thing to you personally. Don't blow it by spending all the good cash on making a company.

The whole point of being in business is to make money for YOU. You have succeeded, you are past the finish line of my ultimate goal. Do not employ even a single person.

The fact that you are inexperienced in running a company emphasizes my point tenfold.

2
danielvf 3 ago 0 replies      
If you are going to leave being solo, don't start by bringing in people from the top. Start with the bottom.

Define one or two jobs that you are doing now that can be spun off. Perhaps customer support or material writting. Document how to do that job, then bring someone in, train them, learn how to manage them, and update you docs with what you learn that you've missed.

In this way you stay in control, you can back out if you need to, and you can gradually replace yourself with systems.

A good book on doing this is the oddly named "E-myth revisited". Just don't take everything in the book too literally.

--

Remember, a startup is a search for a product that people want to buy. You already have both. That means that much of the startup advice is actually posion your company. Listen to your gut.

And good luck! I wrote a backend system for a training and certification company - I'm familiar with the nutso profit margins.

3
btaitelb 3 ago 0 replies      
I do a lot of work helping early and mid-stage companies scale their workforce and technology. Some companies scale by the seat of their pants: they hire people for specific needs as they arise (e.g. servers crashing, or too many sales requests coming in). Other companies scale in a more organized, planned process, like having a big vision of becoming a global company in 5 years. In both of these scenarios, especially because you don't have a co-founder, you're going to find that it's hard to give your #2 hire a sense of agency. You'll likely feel disappointed in their style (different coding practices, different customer interactions, etc.) and want to micromanage. To help with this, start them off on a non-mission-critical project (like expanding to a new region or building a feature that's been in the backlog), and be clear with them about what "success" means for that project. Having the definition of success be written by them, in their words, will also help ensure a two-way communication here. After they have a successful project under their belt, you'll find it easier to trust them with more important work. Also keep in mind that right now you have a product, but when you hire your second employee, you'll also be establishing a culture, so it's worth putting thought into what culture you want to promote.
4
WheelsAtLarge 3 ago 0 replies      
Here are a few tips that will help you.

1st do not hire anyone unless you are 100% sure you can define a full time position for them. Outsource as much as you can until you feel it's cheaper to bring some one in house than to hire a consultant. $2 million seems like a lot but it's amazing how fast that gets spent once you get others involved.

2nd spend the time to define what you want your business to look like in five years. Define every year and set goals on how to get there.

Create a business plan. This will force you to look at your business more broadly. There are plenty of books that will show you how to start. A good question that will be answered is whether your business can grow or if it's just a small niche.

Educate yourself, if you don't, others will be happy to tell you what to do and how to spend your money. But don't expect them to have your best interest in mind.

Your 1st goal as a business owner is to make yourself obsolete. You can be an employee but the company can not be dependent on you. Once you do that then you can guide the company's future. Delegating will be extremely hard but if you hire right then there should not be any question as to whether it's possible.

Going from 1 person to many is a great change. Your goal is to get everyone to work towards the same goal. Make sure everyone knows what that is. Communicate, communicate and make sure you communicate. Getting your vision from your head to someone else's is hard.

Lastly, don't be in a hurry to spend money. It's funny how it works. If you can define a viable business then people will be happy to give you money to keep it going. There's the other side too. Don't be cheap. Cheapness can do more harm than good. It's a balance. You'll have to find it.

Good luck!

5
swivelmaster 3 ago 1 reply      
I'm going to disagree with some of the sentiments here. There are a number of tasks that you are more or less wasting your time on every day because you could hire people to do them, thus allowing you to free up your time to focus on what your competitive advantage is. It's really important that you called these things "chores." That says a lot about those tasks.

What you don't want is to hire a bunch of people you don't trust with any responsibility - that's a recipe for micromanagement, which is even more of a waste of time than doing the "chores" to begin with!

Take a long time to hire someone, but hire someone who can take the largest percentage possible of tasks off your plate. If you're worried about data loss, have backups. If you're worried about credentials, make separate accounts with different access. But you need someone who you can trust, who you feel like is smarter than you at some useful set of skills. Someone who is as passionate as you are about what you do, and hungry to make a good impression.

I was an early employee at a startup that was acquired less than two years after I joined. We grew from seven to seventy employees in about twenty months. My contact info is in my HN profile if you want to know more.

6
b0p1x 3 ago 2 replies      
I agree with the others who have pointed out that you're already successful, don't break it!

That said, don't even consider HR as your first hire. Not even for a second. Their role is to police contracts and resolve issues. You won't have that until you have more people.

Get someone who wants to do the stuff you are tired of doing.

7
techcorner 2 ago 0 replies      
I would like to thank each and everyone of you who took time for your valuable answers.However, with due respect, I see that most of the people are over-fixated on why I should not expand. I am already in an extremely comfortable position when it comes to money. All little necessities of life like insurances, house, car have been already being taken care of. The place where I come from even if I stop working today, I can live comfortably for next 10 years.Except a couple, most of the answers are telling me why it is not a good idea to expand. I understand their sentiments but this was not my original question.To give you more details - This is an eLearning subscription model. Other than questions in my OP, hiring, managing, trusting emp with sensitive info, finding very high quality content creators remains as one of my biggest challenges. I am not from any of the developed countries. I dominate my current niche but looking to expand into other related niches where I see a good competition.
8
ryanjmo 3 ago 1 reply      
I was in a very similar position to you about 2 years ago. I was running a company on my own doing great with revenue and profit. Currently, I have a 6 person company.

The way I ended up expanding was first starting to work with one other really great person. I ended up needing a professional sales side to the company and Lizzie came in and did that. She was also better and more experienced than me at hiring and managing others, so luckily, she was able to hire the person that is now my lead programer as a second critical hire.

Then we hired on two more developers.

During this time, the people I had that were "helping me with my chores" originally did more and more of that and began helping with other random areas of the business, and they became full-time employees.

At some point, one of our developers left.

So now it is me, Lizzie, our lead developer, a jr developer and two assistants who help with sales and chores.

I love it so much more than being on my own. It wouldn't even be necessary for me to program anymore, but I do when I want something done or it just makes sense for me to do it or I'm just trying to make the business better. My point is that my lead developer is so good, I can trust him to do a great job on any idea I have. It took a while to get to that point, but now that it's happening, it's awesome.

Lizzie now does so much on the business end (and has taken over most of my emailing) that I have freed up a ton of my time.

I now get to look at the bigger picture, figure out how to expand the business, manage people and have fun.

I think by far my favorite part about all this, is that now all I have to do is have an idea and I know that I have a team behind me that can make that idea happen. Also, I can go on vacation.

It seems to me that if you are making $2M, then a couple of really good employees at $125,000 should be able to help you bring in more money than they will cost.

I hope my story helps you. I think it worked out really well for me. I didn't really have a plan, I just got lucky in many ways, but I was also always paying attention and I trusted myself to know when someone was right to work with and when someone was not right to work with. In general, if I had to give advice from my personal experience, it would be to hire the best people you can. Make sure they are remarkable. And get rid of people that you have any issues with or aren't that good.

9
robertelder 3 ago 0 replies      
This lecture series specifically talks about the different problems faced at various stages of scaling, and it includes a lot of reputable people who have actually done it:

https://www.youtube.com/watch?v=s3RrVmv5WwA

The YC series is of course good too:

https://www.youtube.com/watch?v=CBYhVcO4WgI

I'm not actually qualified to answer your question, but it sounds like you haven't discovered a bottleneck in your business yet, and until you do, you probably shouldn't hire any employees.

10
WhitneyLand 3 ago 0 replies      
You don't provide enough detail for specific suggestions, but it sounds like you would benefit from having a mentor who has been down this path before.

Another way is start inviting smart and experienced people to lunch to bat around ideas. You don't even have to know them personally - a lot of people are glad to chat casually over lunch in the spirit of helping fellow entrepreneurs.

After having a few discussions like this you'll be able to see things from multiple perspectives and choose the best path to fit your business.

This will cost you nothing but lunch in exchange for some very valuable advice.

11
wgtoner 1 ago 0 replies      
Hi Techcorner,

(First time on this site, someone sent me this thread)

About 16 years ago, I was in a kinda similar place to you - making a lot of money but ambitious and wanted to grow grow grow. Not a tech biz but very information centered.

Very long story short, while it was far from easy or an uninterrupted "up and go the right" path I was fortunate enough to survive my gazillion mistakes and we currently have about 150 staff in 7 countries. I don't have any investors, partners, or significant debt. I spend about 95+% working "on" my business vs. "in" it.

It sounds like you're a good guy and perhaps my input can help you think through your options. If you drop me a note we can do a brief call and see if the chemistry is a fit. I've never done any coaching or mentoring outside my own organization before but I wish I had had access to a resource like the 2016 me along the way so it stands to reason some of my takeaways from my journey could be of value to you.

Best wishes for continued success.

12
wslh 2 ago 0 replies      
We scaled a 2 men (my partner and me) 15 year old profitable (no investors) company to 12 people and we never were in a market position to scale much more but we are good (much better than the average) hiring.

We started with a combination of a few developers (indeed we started with one!) and one QA or tester to check the work done by developers. Even if the developers are excellent, having QA in place unload work from the developers, increase the delivery quality, and save you a lot of time. I think this is a basic framework. Setup development, testing and/or staging, and production environments, so if you don't want to give a lot of control, at least you can deploy and configure stuff once it is working in the staging phase and be more confident about a new release or configuration.

We always hired for a 30-hour work week, obviously we want people who will stay until the critical problems are solved but we try to keep longer hours work at a bare minimum. Our first hires were oriented to some specific technology plus a flexibility to use technologies outside their comfort zone. For example, a C/C++ expert who could do part of the work in Visual Basic because it was the right technology for the project, or people who can move from Node to Python easily, and at the end of the day are not mad if they choose React or Angular.

Like everyone else, we want to hire the best and trustworthy professionals via people we already worked with. If we can't hire the best we look for people with an excellent predisposition, a more than average intelligence, and very good communication. Communication is key, if they found a problem that is really difficult to solve we want to know this as soon as possible and will discuss it with part of the team to help as a group. We don't like heroes who engage in very difficult problems without giving us a warning.

We have a few remote employees who really know how to work remotely. We would never start growing with remote employees, except if you know them very well and can be on-site too.

Beyond this, our hiring process is simple and mainly based on experience/work-portfolio. No puzzles.

Disclaimer: Since my business is not based in US there can be many differences in the way we handle similar issues.

13
barrystaes 1 ago 1 reply      
Right from the smallest of technicalities like giving control of my domains, server, sites to employees scares me.

Sounds simple but.. when you hire a technical guy; hire/keep the ones that are smarter than you. This allows you to let it go. If you thrust them to doing a better job than you would, its easyer to not get in their way.

On HR vs core employee: if you have fulltime work for a core employee, get one asap. This frees up the time you need to build your bussiness instead.

14
kenesom1 3 ago 0 replies      
Think about what specific aspects of the business generate profits and where your costs lie. To rapidly expand, you'll want a multiplier that greatly increases profits or drastically cuts costs.

As a thought exercise, think about what you'd need to do to double or triple your sales. A bigger marketing budget? Institutional clients? More staff? Content? The details will depend on the specific nature of your business. Once you have one or more scenarios laid out, work backwards and figure out what's required to get there. The result will give you a good idea of what investments to make to grow your business.

15
michaelrhansen 1 ago 1 reply      
Congrats to your success. I think it starts with your objectives. Do you have other product ideas you want to get off the ground? Do you want to stop wearing a few hats (like marketing, finance customer service, etc). Where do you see the business in 2,4, and 8 years? I am currently in a great position leading product for a healthcare technology company and I have asked myself the same questions. A hiring plan fell out of that discussion and has so far been very successful.
16
sharemywin 1 ago 0 replies      
You may just want to look at hiring an assistant first. Some one that can take on the easy time consuming tasks. Let them build trust with you before you "hand over any keys" also I wouldn't hand everything over to one person. If you want someone with more experience then find someone with traits and interests exactly opposite of the things you want to do. here's a pretty good article on hiring a vp of sales:

https://www.saastr.com/what-a-vp-sales-actually-does-where-t...

17
shostack 3 ago 1 reply      
Can you share any additional details on your business? Do you sell an elearning book or is it a full on subscription? Would love to know any additional specifics you'd share.
18
cpeneguy 1 ago 0 replies      
I worked for a company years ago that was in the same situation that you are in now. I was the first employee brought in to assist with the more day to day operations of the business. Things went well for a while. We added on more staff and I moved up and that's when I started to see the problems with the founder. His lack of management skills began to take its toll and the company was dead in the water six months later.

Dealing with tech is the easy part, it's the people that will get you.

19
winkv 1 ago 0 replies      
creating quality content is not easy but you have a good start. I think you should adopt a publisher model, you already have captive audience in terms of paying customers for your niche. You can find out what else would be relevant to your customers and design a curriculum around it, no content, just the table of content for your next course. You might as well publish it to your website in coming soon section and give early bird discount(which would guarantee paying customer and fund the development of course.) if you don't get any customers don't go further in developing that course.Outsource the research on material for your TOC to virtual assistants, they will be responsible for curating and providing you the quality material. Once you have all these you can as well hire an intern with good communication skills who is interested in this course (say machine learning) but may not have the knowledge. Groom him and ask him to come up with writeup for your TOC. Hier high paid thought leader for this course as identified by your assistants while doing the research and let him be the editor for the content. RESIST any attempt to do it yourself if intern/assistants are not able to do it the way you want, just be patient.Rinse and repeat and send me 1M$ that you make from your next niche ;-)
20
tedmiston 2 ago 1 reply      
> Then whom should I hire first, a core employee or a HR person?

What is the biggest problem or pain point you have? Put another way, what activity consumes a lot of your time that someone else could just as well as you could (or better)?

21
mullen 3 ago 0 replies      
I going to be in the Don't category on this one.

However, if you are really set on doing this, you should list all the stuff you don't want to, say like pay bills, working deals on the phone or support. List the things you don't like doing and then see if you could bring in one person to handle those jobs. Not a manager, but someone you could quickly train and easily manage. Start farming things out to them and when they hit capacity, possibly hire another person who can handle the other stuff you don't want to do.

You have an incredible opportunity here. You are profitable, now you just need to start adding people on to handle the stuff you don't want to do and then you are free to do the things you want too or need too. Don't grow your staff for the sake of growing your staff to convince yourself you run a "real business". You already run a Real Business.

22
jagtesh 3 ago 1 reply      
Hugely impressed by what you're doing. Congratulations! If I were you, I'd start by hiring an assistant to help me deal with distractions. Maybe even a junior accountant / clerk to help manage payments, bills and some basic finances. So I could focus more on the core-business.
23
hanniabu 3 ago 0 replies      
Is there a way for you to restrict access(limited access) to these accounts?

I'm interested in hearing what others have to say as I have been wondering this myself about giving away sensitive account access. However, I would have to side with hoodoof. You're in a position right now that's a sure thing and it's bringing you money. You never know what lies beyond so I would milk it as well. Yes, you can find even another source of income just as lucrative, if not more so, but you can also wind up not finding anything and losing your current income. Be careful not to underestimate how difficult it is to get to where you are with your current business just because you're able to do it once. It's well known that luck plays a huge roll, and with that said, I wish you the best of luck.

24
csallen 3 ago 1 reply      
There are some interviews on IndieHackers.com from people who've been in situations that are semi-similar to yours. Happy to make an intro to any of the interviewees you'd like to talk to.
25
greenleafjacob 3 ago 0 replies      
Take it from Sam Altman: don't hire employees [1].

[1]: https://youtu.be/CVfnkM44Urs?t=473

26
baccheion 3 ago 0 replies      
Outsource as much as you can (except the financials/accounting, unless you can find a trustworthy accountant).

Your first hire should either be someone that complements you, or that does your job (redundancy/"fault tolerance").

If you've managed to survive without a co-founder, then keep going without one. If someone ends up with enough responsibility to be the equivalent, then make them COO, CTO, CEO, or something along those lines.

27
bbcbasic 2 ago 1 reply      
I recommend reading The EMyth and to a lesser extent the 4 hour week.
28
diehell 2 ago 1 reply      
OP, is there any chance that you have some time to impart your wisdom and mentoring a person(me) that aspire to achieve something similar. It would be awesome if i could learn what you learned in being an overnight(10yrs journey) success.
29
fudged71 3 ago 0 replies      
First goal should be to get rid of the tedious small tasks, allowing you to focus on core responsibilities. Pay for a virtual personal assistant on the other side of the world to do menial tasks for you while you sleep.

After that, I recommend meeting with other medium-size startup CEOs in your region and getting their advice for what role could provide the highest leverage for your company.

30
LukeFitzpatrick 3 ago 0 replies      
That's awesome and glad to hear you're doing well. I think you have a couple of options:

1/ Keep running it by yourself. 2/ Hire an assistant to take care of time-consuming small tasks.3/ You could always talk to a couple of larger competitors and see if they're interested in buying you out.

31
wouterds 3 ago 0 replies      
Seeing from your earlier post about a year ago when you seemed to be dealing with a burnout, I would recommend getting a co-founder or someone experienced who can guide you.

Handing out some responsibilities is not bad, it's what happens when you grow. It will help you to scale and grow more easily with less stress.

Good luck!

32
akulbe 3 ago 0 replies      
As another solopreneur, who is doing a fraction of what you are doing... I would love to talk to you about how to get to something even close to the position that you're in now.

I want to grow my business, and be even a fraction of that successful. Care to talk?

33
Zelmor 2 ago 0 replies      
In case you are looking for associates in the EU, drop me a mail. I'll share LinkedIn if you wish, and we can discuss matters privately. @gmail.com prefixed by my username.
34
joshmn 3 ago 0 replies      
If it's not broke, don't fix it.

I think it'd be important to define what do you need to organize (because an organization is about, well, organizing), and how it will contribute, where it will contribute.

Happy to chat more. Email in profile.

35
myoung8 2 ago 0 replies      
I've seen a few friends go down this path, happy to introduce you if you're interested.

Contact info is in my profile.

36
husseinhallak 1 ago 1 reply      
I spent 25 years running successful small businesses and moving them from 1 man shows to becoming team based businesses. Here is the process I used successfully time after time in my business and helping other businesses.

1. Be super clear on your why: You must start by clarifying why are you doing what you are doing; why are you in an eLearning business. You are making good money and from what I read in some of your replies you are doing well fro yourself, so what drives you to wake up every day and go to work, what brings you joy. Why is this so important, because it's the key to everything else, for example, if you want to hire people for the long term, the must believe what you believe, if you want your business to grow beyond you, ie must be driven by a clear purpose (your why)Your why is a great for rapid decision-making, which speeds up things in your business, in hiring, in growing your customer base...etc

2. Be super clear on your goals:You have a successful business as it is, and expanding it is not going to be easy, it is more work for you, so why are doing that, what will things look like when your effort to expand your business are successful and you get everything you want, just the way you want it. This will help you clarify where you are heading and so you will be able to choose your the steps and measure your progress towards achieving your goals.

3. Start with 20%:In every business there is 20% of tasks and things to be done that are repetitive, mundane, laborious, maybe even boring for you. Even if you love what you do, there will still be things you like more than others. Start finding people to do those tasks. People who believe what you believe and love doing these tasks. This is a very safe starting point since these are not the major tasks that have major impact on your business.

4. Hire for personality more than skill:This may sound strange, but the top team members that I've every worked with and that outperformed everyone else were the ones that had the least skill but the biggest appetite for learning and growth. They were like a sponge, were willing to learn, and most importantly, they were not affected by the way things are done out in the world. As a one man show you may be doing things differently than how things are done in other big companies or the regular practices in other businesses, so you may want people that are willing to learn your way of doing things. People who are used to doing things in a certain way will drive you crazy trying to unlearn how they do things, while people who have less experience and more appetite for learning, are more open to learning your way.This is not to say that people with a lot of experience are bad, in fact if you can find great people with great experience, that would be ideal, as long as they are open to learning, willing to work with you and love to grow.

5. Continue your journey to 80%:Now that you have handed over 20% of the work to new team members. The ideal goal I suggest is to continue hand over tasks to existing and new team members until you reach 80% of your tasks delegated and handed over, that way you are only doing 20% of the work.You do thins gradually 30%, 40%, 50%...etcKeep identifying the tasks that are repetitive, the tasks that give you the least pleasure and joy, and keep finding people to do it. until you are left with only 20% of the work you originally used to handle, this 20% is the most important work that only you can do, it's the heart and soul of your business and your brand, the reason why people come to you and work with you. So you are still in full control of what matters most in your business.

6. Ensure Continuity with Processes:One of the things that will increase the value of your business and make it thrive no matter what happens to you, is to make it a process driven business. Make sure the people you hire spend 80% of their time doing the work, and 20% on enhancing and documenting how it's done. This is very different than reporting to you and increasing paperwork, that is not necessary. This is about them learning to do it better, not just from you, but on their own, and instead of just doing it, they create processes that describe how they do it now, and they keep updating the process as it evolves.The documentation needs to be clear to the point that they can easily hand it over to anyone on the team. This is crucial as this means that if they leave or anything happens, you can easily hire for the same position without having to lose the intelligence that has gone into teaching that person and the learning they developed by doing and enhancing their work.Documenting the process of how they do their work, will ensure that they learn more and advance in their work.

7. Never delegate leadership, develop leaders:you are the only person that is responsible for the totality of your business, so you must do the above yourself, do not delegate your responsibility, this is your business, you lead it, don't leave leadership to anyone else. You must develop your people to become leaders, by giving them the space to lead and working with them, helping them, supporting them, but neve hand them leadership, that is not how it works.By following the steps above, and by creating an environment where people are given the space to shine, you will see your team rising up to the tasks they are given and show up as leaders.One of the other ways people can show you what kind of leaders they are is to have them help you choose the new people, train them, and support them, even if they have different tasks and different roles, they are still a team and that dynamic will help you discover what kind of people they are.

8. Security and protection:While you can never fully protect anything, you can take conscious steps to make sure your business and the assets of your business (domains, sites...etc) are secure. Make sure you structure your contracts with your team to include nondisclosures and protection of business secrets. Include no competition clauses so they can't leave and take your clients or work for a competitor for at least 6-12 months.Finally, never give passwords away to give people access, use password protection services like LastPass to give people access to things without sharing your passwords. Also you can request form your service providers certain accesses to team members, that way you still have admin rights and you have the ability to add or remove people without giving access to the main account.

9. Be the role model, Keep on learning and growing:There are many mentors, coaches, business experts out there that you can work with to continue to grow and learn how to run your business better, explore that. And there are always brilliant business books that can expand your thinking and ability to lead.Here are a few I recommend:Anything for Jim Collins, especially Great By ChoiceAnything Seth Godin, especially TribesAnything Simon Sinek, especially Start With Why and Leaders Eat LastAnything Charles Duhigg, especially The Power of Habit

I trust this is clear and helpful

Wish you all the best, and please reach out if you think there more I can help you with

37
cylinder 3 ago 0 replies      
Would you be willing to license your platform to an overseas franchisee?
38
matthewhall 2 ago 0 replies      
Contact me at matthew349hall@hotmail.com
39
tmaly 2 ago 0 replies      
a friend was in a similar situation. he has a team now and a CTO to handle day to day technical issues.

he does a 1 hour call a week now

40
avichal 2 ago 0 replies      
I'm going to disagree with a lot of the sentiment here. I think it's rare to find a business that really truly works and you may have found the beginnings of one. Be ambitious. Figure out how to scale this 100x.

In terms of what you should do, it's hard to know without the specifics of what your business does, who you are, what you are good at, how your business will grow, etc.

I think there are some general thoughts that may help:

1. Early on, overpivot on people you can trust who happen to be good, not people you can't trust but who are great. Also don't hire your friends. Most people want to hire the best people they can but I've found that loyalty, work ethic, and trust are more important for the first or second people you hire. But hiring friends or family can often blow up so avoid that.

2. Figuring out how to hire people is hard. Managing employees is hard. Keep the stakes low initially and then figure out how to hand off ownership of more core things after you feel like you have a good sense for how to hire and who to hire. Start with something you know really well that is not going to lead your business to fail if you hire the wrong person. Hiring someone to do work you know well lets evaluate the quality of someone's work. Putting them in a role where they aren't working on something critical minimizes your risk. For example, if you are doing all of your customer support right now hire an Android developer if you know Android really well to add a new feature to your app. Don't hire an engineer to work on your payment system if you don't know that part of your stack or if you can't afford for your payment system to go down.

3. There is no comprehensive resource because every business is different so you will have to spend a lot of time reading. Read through everything related to business, entrepreneurship, hiring, scaling a business, etc. on Quora. Ask questions there and see who responds. Find the courses similar to what you want to learn at top business or engineering management schools (Stanford, Harvard, MIT) and look at their curricula. Read everything in their curricula. Read this post I wrote several years ago about the dynamics in the education space in the US to make sure you don't fall in to the trap that many education entrepreneurs do around thinking that your business can actually scale far beyond where you are today: https://avichal.wordpress.com/2011/10/07/why-education-start... Google searching will get you quite far too: https://www.google.com/#q=hire+first+employee+startup

4. Find successful people who have built a business in your space that is 10x bigger than yours, 100x bigger than yours, and if possible 1000x bigger than yours. Email these people and ask for advice. See which of them you click with. Ask them all of the questions you have and see where a relationship develops. Ask them for the best resources thy know about related to your business or how to scale a business. For example, I tell a lot of entrepreneurs to read High Output Management by Andy Grove to see how an experienced manager and executive thinks about running a large organization. You are not yet running a large organization but you will learn a lot and can work backwards to lessons that are relevant for your business today. In general, you will be surprised at how often successful people will actually help out. It's entirely possible (and likely) the woman that has a $200M business today was in your shoes a just few years ago and is willing to help.

5. Find successful people that you respect outside of your space and do the same as in #4. Consider raising investment from experienced people who can help you. Applying to YCombinator is a good option if you don't even know where to start.

6. See if you can find people that want to learn what you've done and could help you. For example, there are probably people who want to learn what you've done to bootstrap your business but who are running a small part of a very large company. These middle managers could teach you how to build an org and you could teach them how to start their own business.

41
allendoerfer 3 ago 1 reply      
I am currently doing the exact same thing. Started to employ freelancers and half-time people to do the things I do. Thought I could handle the stress and just figure things out while I go. Well I could not. Revenue went up but profit went down. Was still a good experience, because it showed me, that it can be done and what I have to do to make it work. So I took a step back and I am now documenting. Every. Single. Thing.

You cannot imagine how people find ways to do stuff differently than a sane person/you would do it. Might sound like a small thing, but the final drop for me was, when I asked for the results as a zip archive and got a .7z file starting with two dashes (--for myname.7z). I decided, my time is not well spent when I have to look up how to handle files like that in bash. How can you even possibly come up with something like that? The guy must have been very talented at QA, because he clearly knew how to produce edge cases.

Another thing I do not want to do a single time again is setting up environments. Even if you use something like Vagrant, this is such a huge pain in the ass, because even these technologies do not just work. Yeah, they work the same on the same version of OS X or Ubuntu, but the real fun begins, when helping over the internet to set it up on an OS you are not on yourself. I will not do this again. I am not sure on how to solve this yet, I am currently leaning to just defining the environment and just require it, require them to work over SSH or literally send a laptop out. This is so much pain. "That's it"-story here was a guy on a test project, who did not manage to set up Ioncube Loader, because he had the wrong PHP version and literally manipulated a screenshot of phpinfo(). I did not know whether I wanted to laugh or cry.

So now I document all the things. I have a huge collection of linters and checkers bookmarked. I write style guides for every product, with even the smallest things defined ("how to name a file"). For every task there should be a checklist. Enterprises call these "standard operating procedures". I have a flow chart on how to spend my own time, starting with "Is there a new email in the inbox?" all the way down to questions that handle bankruptcy.

What I do not have yet is a really good way to make these documents accessible. There are SaaSs out there (process.st, sweetprocess.com), but for me these did not cover all the cases. I used Google Forms a bit, but ultimately I want a nice platform to handle everything together so user authentication etc. is unified. My current plan is to just use Gravity Forms and WP Knowledgebase. I think ultimately I will end up with something custom done, but until then done is better than perfect.

What many people here already recommended and I cannot stress enough is this: You do not want employees. The huge benefit of software or consultants over employees are obviously no running costs and the ability to just require perfect results. Request what you want, attach your style guides and SOPs to the contract/code, deadline, contractual penalty and done. So first write your processes down, after that: standard software > custom software > freelancers > employees.

Also what other people already have said: Start from the bottom. You do not want sales automated, first you just do not want obvious false positives inside the inbox either trough automated filters or through a person with a process to specify if you actually do what is requested in the email. Now you are left with actually relevant emails, what would be the next step? Huge benefit of this is obviously, that you can use cheap workers. Now write a process on how to find them. Then write a process on how to write that process.

At the end, hire a COO to execute the top level process. Ideally he or she should now not be running your company, but creating companies similar to yours. Of course, this probably will not happen, there will always be fires to extinguish.

Regarding your specific questions around access management etc.:

You typically want to find out how enterprises do these things or what the industry standard is and then go from there. So for example you would write down a process on how to set up a server, now look what tools are used to automate this. The answer is Chef or Puppet. Are there simpler/easier tools suited for smaller companies? Yes, Ansible. Bingo, rewrite the process as an Ansible script/buy one, you have now automated the process.

With access management, the keywords are key-based authentication, LDAP, a contract of what evil will come on these who abuse their trust, a process to onboard, a process to fire (where do I need to restrict access?).

42
orware 3 ago 1 reply      
I'd love to be in a position to work with/learn from someone that's been as succesful as you in building a more or less solo business.

You didn't share a whole lot regarding which area/niche you target in your eLearning business (I'm guessing that it doesn't cover a wide variety of topics, unless you're a superstar that has a whole bunch of knowledge across a wide variety of topics :-).

But if I were in your shoes and looking to expand it would probably make sense to want to try and recreate the same success as the existing eLearning products in a new niche/area so you might need to recruit someone with a different specialty that has the requisite knowledge.

Another strategy I've seen used (this was about 10 years ago when I was fresh out of college and looking into how I could make money online), mainly by folks that were selling products in the "how to make money online" category, was the cross-selling between different groups of these people. Essentially, if you had purchased from one of them, it wouldn't take too long until you started getting emails from the one you had purchased from that mentioned a product from "one of their good friends" that sounded very good too and it was difficult to pass up wanting to purchase the other products (I definitely spent way too much during this period on these sorts of things before I realized how much money I was spending and realized I really needed to tone it down). It was effective though, and was more of a collaboration between similar eLearning companies selling products in this cross-selling fashion.

From the pure employee side, it looks like ZenPayroll has changed their name to Gusto (https://gusto.com/), but I think they have a pretty good offering for a small business wanting to expand and hire employees by helping to simplify the tax parts of things for you.

You also didn't mention if you were operating as a sole proprietorship or already as some sort of safer Corporation/LLC organization, which you would want to consider doing as well to help protect yourself, particularly if you would be hiring employees.

I myself have wondered / thought about the same problem you yourself have asked here though...I've just never been successful enough to actually be able to act on it (my little software business only makes about $100/sales or so per month so not enough to hire anybody unfortunately :-). How do small companies deal with this stuff? I think in a lot of ways they deal with it by having someone that's experienced with all of the "paperwork" side of things. My uncle for example ran a small business with his son painting cars, and neither was particularly knowledgeable about any of the business side...they just knew how to paint cars. My aunt on the other hand had experience with that sort of paperwork and taking care of it so she "abstracted" that away from having to deal with it. You'd likely need someone similar to help with those sorts of things (though again, Gusto may help with quite a bit of it, at least with some of the regular stuff related to taxes if their product hasn't changed much from the ZenPayroll days).

I wish you the best of luck, and if you ever want an eager, young fellow to work with feel free to contact me (email's in my profile :-)!

28
Ask HN: Bald men and depression
8 points by uw09  1 ago   7 comments top 6
1
WheelsAtLarge 13 ago 1 reply      
Kevin Bull from the program Ninja Warrior's TV show is a guy you want to look up. Here's a video, https://www.youtube.com/watch?v=X4OD0OfWQ98.

He has no hair but I'm sure women love him.

You might say that he's a special case. Nope, he just happens to be on TV.

The reality of life is that we are attracted to confident people. People that seem to know who they are and how to move forward in life. We move through life with blinders. We really don't know what the next minute will bring. We think we do but the reality is that we don't. We admire those that do. The secret is that they don't know either they just fake it or trick themselves into it. Being timid is part of one's personality but don't expect people to admire you for it.

I hear all the time that women are different from men. In someways yes but at a deeper level we are all the same, there are certain characteristics we find attractive in men and women.

Kevin Bull does it by being in the best physical shape possible but as soon you see him you know it. What you need is a way to increase your confidence. Getting physically fit is part of it. Being around people is hard for some people, educate yourself on things other people find interesting, sports, music, films, whatever, just make sure you do it. By the way telling people what the best way to implement an algorithm in C or Python will not help. Stay away from the deep valley of tech. Be self aware, try to understand when you are being annoying.

Best thing you can do is to find a few books that deal with the matter and follow them. You can also find someone you find really attractive and breakdown why you find that person attractive and use them as a role model to copy.

Dating is a numbers game the more you do it the easier it gets. Rejection is part of it. My advice is to feel happy when you get rejected. I challenge you to get rejected 30 times in the next 30 days. I bet you can beat that. Do it in real life. Doing it online doesn't give you enough feedback.

Your problem is not that you're bald. Your problem and many others in this world is that you don't have the needed confidence and that can be fixed. You need to find out how to do it. There are no simple 1 minute answers. Please take the time to understand that and how to change it.

2
brudgers 18 ago 0 replies      
My advice is to consider talking with a licensed mental health professional about what is bothering because it can provide a neutral and scientifically based point of view tailored to your individual experience, current state, and long term goals.

Good luck.

3
hitsurume 12 ago 0 replies      
Hey man, i've been where you are and managed to push through that depression and get myself where I want to be in life.

I want to preface that we're pretty similar, i'm 5'7, I weigh 175 (Beer Gut) and i'm of asian ethnicity. I have hair, but i've done the shaved head because its cheap and easy to maintain, so again we're on even footing. Lastly, what I have really going against me is I have really poor eyesight, I wear big thick glasses and I can't even drive because of my eyesight (Thank god for Uber and public transporttion). So regardless of all this, I was still getting dates on OkC, and I was literally filtering women in a 2 mile radius from my house (because again, I can't drive).

You're going to hear the same set of advice over and over; be yourself, looks don't matter, etc etc, and really it is true, once you understand one crucial thing.

You have to love yourself. This is probably the biggest thing I had to learn on my own. I had desperately wanted companionship all my teenage life and was doing everything I can to get into relationships. From reading PUA and seduction, to going out on weekends trying to pickup girls, everything was a failure.

At some point though in my late 20's, I woke up one day and realized I needed to change my life. Einstein has a quote that goes something like "Insanity is doing the same thing over and over and expecting a different result". I kept repeating the same things, and I didn't change the real fundamental problem, I wasn't happy, and mainly I wasn't happy with myself. So I started working on myself and worked on things that improved my mood and lifestyle. I was actually working retail jobs until the age of 27 when I graduated from College, my stupid Business Admin degree led to minimum wage startup jobs, but I was able to learn quick and got promotions and raises allowing me to gain independence. Then I started focusing on taking care of myself properly, annual doctor visits, Brushing my teeth everyday, etc. Anything that can make my life positive, I tried to incorporate.

Once I was happy where I was in life, online dating became much much easier. I was able to write a better profile and my messages to women were light hearted and had no expectations behind them. I was in love with me and me only and was allowing the chance for other people to see how great I am. From there I got a GF and now i'm planning to propose to her in the next year.

So just remember, things will get better, but you HAVE to put in the work to get there, nothing in life is given to you, you have to earn it and once you earn that you learn to respect it and love it and cherish it.

4
fred_dev 1 ago 0 replies      
Hi, it was interesting to read such a text in this context!!!

Early baldness is not bad that much I know a lot of successful people who are bald. Some of my best friends have this problem as well, but they are happy and never complaint about it.

And I know some people who never had gf up to 40, and after that they got married.

These two issues you've mentioned might not related to each other at all.Baldness is congenital or hereditary, while being single is related to your personality and your life style.

I think for finding a girl you need to increase the chance of meeting someone in real life instead using websites and applications and also you need to learn about girls (put away all the logics you know )

Remember :If you want something you never hadYou have to do something you've never done.

Good luck.

5
gadders 2 ago 0 replies      
I went bald about the same timescale as you (I'm white,not Indian), and it never really bothered me. It's not about the hair loss, it's about your reaction to the hair loss. If you act sad or sensitive about it, people pick up on that. If you act like you don't give a f*, no-one else will either.

And I know people say get fit etc, but I would second it. I lift heavy but it doesn't have to do that. Do a "proper" martial art - BJJ, boxing, kickboxing etc, climb - basically do something that a lot of other people can't or won't do. The confidence that will give you will definitely help in finding someone.

The other benefit from lifting heavy is an increase in testosterone. [1]

Also a self-help book like [2] might help as well.

[1] http://www.artofmanliness.com/2013/01/18/how-to-increase-tes...

[2] http://foxcabane.com/book/

6
darrelld 16 ago 0 replies      
I'm no expert and not coming from quite the same place as you, but I came out of a relationship that started in my young teen years and ended in my late 20's. I had a "quarter life crisis" at 25 which eventually contributed to the end of the relationship. Everything about myself made me feel like crap. I felt lost and confused, but here is how I figured it out:

Step 1: Stop trying to be in a relationship. It sounds counter intuitive but really stop trying. Get off dating sites too. You are single, accept this. Really and truly accept this. Don't hide it, don't be embarrassed by it. Yes...own it. Keep reading.

Step 2: Start going out to more social events and have a good time. Join a social meetup.com group for Photography, hiking or even just a happy hour group. Be yourself, be relaxed, talk to everyone, don't try hard to be funny, just try to have fun with the people around you. Try new things that you never had an interest in before.

When meeting new people try to avoid the "What do you do / Where are you from" conversation. Not saying this line of conversation is all bad, but actively seek out something a bit more interesting to start out with. Talk about the news, the weather, the new iPhone, your love of dogs, your weekend. Keep switching topic themes until you hit on something that the other person really gets into. Think of conversation like a metal detector...you keep swooping around and you get faint pings back. As you get closer to real treasure your focus in on that area.

Step 3: Learn to flirt appropriately. This takes practice and you'll probably mess it up...You're probably already messing it up, don't worry you'll always mess it up sometimes. If you find a manual online for how to do it, just ignore it. Everyone is different: different personalities, different pasts, different sense of humor. Once again just like the metal detector metaphor, just keep swooping until you find whatever works. In general you want to make it clear that "I'm into you".

Don't always feel the need to rush to this right though. Sometimes you can start flirting right off the bat, sometimes you'll know someone for a while before the moment is right. Use your best intuition.

Step 4: Eventually you and someone else will hit it off. Ask them out. Just do it. Worst they can say is no. If they do say no: take it in, yes it might hurt a little, scar the ego. Think of it like applying to a job. Sometimes you just get a no. Move on. You want a response along the lines of "Fuck yeah! Let's do it" instead of trying to convince someone to do something with you.

Also if you think you've hit it off with someone, don't push too hard and come off as desperate. Don't take it personally if they just fade away. There are so many reasons why they may not want to go out with you: They may be still getting over a previous relationship, they may have some family issues which takes priority, they could just have gotten busy at work, might be moving soon, you might remind them of their dad, you might remind them of someone with whom they have a negative memory of or a whole other range of reasons. All of which have nothing to do with you.

Step 5: Keep taking care of yourself. Dress in a smart and modern way. Note: I don't mean go buy a new wardrobe, but do take a hard look to see that you're not dressing like a complete slob. Ask a close friend for feedback or check out /r/malefashionadvice.

Hope this helps.

29
Ask HN: Single-user task and project management recs?
6 points by bradleyankrom  1 ago   5 comments top 5
1
eswat 1 ago 0 replies      
I've settled on just having a simple Markdown file* in the root of every project I work on where I list (a) the tasks I or the client wants done and (b) notes on discoveries and bugs I want to keep track of for later. I have tasks lined up in a section called # Tomorrow that I rename to # Today when I want to tackle them. The tasks I put in this file usually derive from whatever pm tool the client or my team is using.

* I give all these files a special extension so that they're easy to ignore in my global gitignore and give syntax highlighting in my editor

2
acesubido 1 ago 0 replies      
I find 3 files useful for my one-man side-projects:

* TODO.md - contains things lined up for a 2-week sprint.

* ROADMAP.md - contains other stuff not lined up for that sprint, also big epics that would suite for an "Icebox" column.

* CHANGELOG.md - version release notes for the sprint.

3
cauterized 1 ago 0 replies      
I find both Trello and Asana to be effective for personal projects. Each supports team environments to a degree but their core functionality is simple enough for a single person. (Frankly, I find both to be terribly under-featured, insufficiently structured task managers for a team of more than 2-3 people.)

A backup would be a nested bulleted list in some editor that supports a "strikethrough" text format.

4
icedchai 1 ago 0 replies      
For small projects, I typically use a text file. Or a draft email left in my personal gmail.
5
gadders 1 ago 0 replies      
This is pretty good as a personal Kanban board: http://greggigon.github.io/my-personal-kanban/
30
Ask HN: Want to connect with Startup School attendees before the event?
4 points by Nora_Kelleher  1 ago   1 comment top
1
sflores4 1 ago 0 replies      
Nice :)
       cached 31 August 2016 12:05:02 GMT