I was thrown in the deep end and had to quickly become a Salesforce administrator and developer, I'm now running two Salesforce orgs, as well as all the other stuff we have going on.
I've found it an amazing exercise -- I've grown in patience, understanding of other people, time management, etc... as well as all the new technical skills I've learned.
I was amazed at how doable it is as well. My wife and I have two young girls (5 and 3), and although we were hugely daunted to begin with, we've coped pretty well. As long as you (the reader) have some ability to roll with the punches, I'd give it a go, you'll probably surprise yourself.
However, I do usually turn wi-fi on for 10-20 minutes a day (e.g. look at HN and follow links to a few different news articles - news sites can be quite processor-intensive) and that knocks at least a day off the battery life. If I play a game, even fairly simple puzzle games, I need to charge it that day.
I'm also on my third battery for it as the previous two eventually got to the point where they couldn't hold a charge at all, so I'm very reluctant to upgrade it to a model without replaceable battery, but alas, that leaves few options. I'd also like a new phone to fit in my pocket like the S3 mini does, and as far as I've seen those two criteria knock out every recent-gen phone.
I can only hope that sooner or later a company decides people like me are a big enough market segment to reach out for again, but I suppose people who are happy to keep a phone for 4 years are not good enough customers and need to be forced to buy a new phone every year by the battery dying.
I'm still carrying a Galaxy S3 because of it. Lasts 3-6 days depending on use. Only phone that has caught my eye since then is the V20, my only problem being that it's humongous and the extended battery makes it thicker.
1. Turn off data.
2. Turn off GPS.
3. Turn off wifi.
4. Only use it for phone calls and SMS. Turn on data/wifi/GPS when you actually need them.
As a bonus you can now switch to a cheap pay-per-MB plan like http://ting.com and save some money too.
(It's a Moto E, 2nd generation - $60 on EBay.)
Its always in battery saving mode I don't need any background processes.Only whatsapp, emails, slack and sms notifications.wifi only on when at home. Bluetooth only on during commute (about 4/5hrs a day).
I've had it a year, it used to do two days but I relented and enabled email notifications.
Maybe look into battery usage and see what is consuming so much battery.
Battery-wise, the "best" one I've found is the Lenovo P2 which has 5100mAh (S8 Plus has 3500) but not sure if its hardware is any good. I'm planning however to get OnePlus 3t which has 3400mAh and seems like a better long-term choice.
I have no idea what the G5 or G6 will be like.
Hell no. If you're in DevOps and use AWS, that means you need to know the AWS API.
However technology can be used to enhance the devops delivery process. Tools like Puppet, Chef, Docker/Kubernetes can have a positive effect.
To give an answer to your question: no devops is not dead. It is a way to work.
My experience after a few interviews is that DevOps in 2017 seems to be a keyword for "can implement Jenkins Pipelines and has experience with AWS".
Add "will sell free time for cheap" and you get yourself a SRE.
1. Ultimately I think it'll be easier to get a remote job. ML is in high demand and requires dedicated, focused hacking time. This means remote is more do-able. Generalizing -- Cyber security interfaces significantly with people and process across the whole of an organization, so tends to require more face time.
2. It's easier to experiment and learn ML on your own. Grab a project, come up with some ideas and then get them up on Github. That's much hard to do in the security realm.
If I were you, I'd see if you can carve out some time for a passion project. Pick up a ML framework and see what you can do. Put it up on Github, write some blogs. You'll see how passionate about the space you are, plus build out the start of a CV.
The specializations are both conducive to remote work. However, they aren't conducive to remote work for people that don't have a good amount of experience in that role.
You can definitely make the switch to either of those things, but you have a long road ahead. If you know specifically what sub-field of security interests you, I might be able to give you some more insight.
I won't attempt to hijack this thread or use it for personal motives to convince you to stick with it. I understand technologies change, requirements change, and choices change. The only thing I ask is if you can find the time to email me (email@example.com) with your pain points so we can look to see how we can improve things in the future.
And the only other comment I'll make is that at HashiCorp we have full time staff on Vagrant and have continued to drill down issue counts through the year. So if you are a Vagrant user: fear not, it is something we continue to deeply care about.
You can easily automate provisioning and deployment with Nixops:
But if you need to share/deploy what you worked on, in some place where you might not have Nix available, you can just as easily create Docker containers out of your Nix expression:
The whole reason we migrated to VMware, about 3 years ago, was that we were using Virtualbox and being really bothered by the issues with it, things like corruption of files accessed through the shared folder mounts, that weren't being addressed. It's exasperating how brittle this VM stuff is.
Personally, I'd love a slimmer Linux-only solution based on Xhyve or Apple's Hypervisor.framework. I don't really want a Vagrantfile, I just want a low-level tool that I can drive from a wrapper, which we need anyway. Both Docker for Mac and Minikube now uses Xhyve, with great results.
We're slowly migrating our stack over to Kubernetes. Building with Docker for Mac is great, and Minikube seems really promising.
I think LXC has some really excellent advantages of both being super easy to create/destroy quickly (and containers being very easy on resources), while at the same time running a full system in the container with an init and everything (as opposed to Docker where it's typically just one application). The command line tools are pretty simple and straightforward (at least for LXC 1.0), and I find it a lot less fuss than using VMWare or VirtualBox in a similar role.
I wish Vagrant would work on bringing xhyve, Hyper-V and KVM to the same level of support as VirtualBox.
VirtualBox is the biggest source of issues in our Vagrant environment and there is no indication that's going to change.
So we have to keep using VirtualBox which is slower.
Another consequence of this is that in order to use VirtualBox you need to completely disable Hyper-V, so on Windows machines our devs are forced to use Docker Toolbox (instead of Docker for Windows which is faster but based on Hyper-V).
(Note: we are a small team with little experience both in Docker and Vagrant so we welcome suggestions: if you thing we're doing something wrong please leave a comment).
We eventually wrote our own tool that duplicates the smallest possible Vagrant featureset.
We use SSH for control, Unison for real-time file syncing, and Chef for "provisioning" configuration of the remote developer environment. Our tool requires only SSH access to some host -- so we provision an EC2 instance for every engineer, and then connect it to our tool; but we could use local Docker or even a Vagrant-managed VM. We reimplemented Chef Solo provisioning, with 100% backwards compatibility with our existing Vagrant Chef recipes, which was really easy! We leverage SSH's ControlMaster for persistent connections.
Our tool does the same things that we were using Vagrant for, but takes 1/3 of the time for typical tasks. Where Vagrant would take ~6 minutes to provision a host, our tool takes ~2 minutes using the exact same Chef recipes. We managed to shave a full 30 seconds of mystery time off between when `vagrant provision` would start, and when Chef would begin it's run.
I encourage you to think about cloud developer environments in general. We got big wins in dev productivity by moving our devenvs off engineer laptops.
Setup: Win10 host and 6 vagrant guests (mix of internally produced jessie and xenial64 boxes with Packer). Terraform on AWS infra in staging & production with ansible for config/provisioning and Consul for node discovery.
[Edit] some tips to make dev work pleasant on Win10: Use cmder, mRemoteNg and configure samba to expose your git working dir back to the host (so file change hot reloading works reliably if you want to do your coding on the host with something like VSCode or Sublime).
How about considering a change in paradigm? Instead of trying to spin everything up locally you instead have a shared development environment and bridge to it from your local laptop or desktop. Consider a large microservices environment with twenty or hundreds of services and the need to develop not only against those services but ones your coworkers are working on as well. Telepresence (http://telepresence.io) allows you to develop locally on your laptop and expose a process locally that can talk to Kubernetes resources in a remote cluster and vice versa.
Check it out: http://www.telepresence.io/
The worst time I had with Vagrant was due to an authentication bug in v1.8.5. That was compounded by the previous release (1.8.4) being incompatible with the latest VirtualBox (5.1). Hashicorp was slow to release the fix, and we had to tell users to downgrade both tools. That sucked. This was late summer 2016.
It's been smooth since then, and I haven't had to think much about the VM aspect of our tooling in 6 months.
Che's only dependency is Docker. It uses Docker engine to both launch its infrastructure and to create developer environments. There will be a version of Che that runs on Kubernetes released shortly.
Note (I am project lead for Che).
It unifies both the development environment setup and the system integration testing setup/execution into the same set of tools. It's also helpful in setting up esoteric environments through QEMU like QNX on ARM during much of the testing before extending it to getting real hardware in the loop.
We also use the Ansible Python API to keep from having to re-implement a bunch of orchestration primitives from scratch.
It's just really nice to be able to build code on my dev box and have it run in production or any other machine without any fuss. It even has tools to help you scale to multiple hosts. Really, it's a complete tool set to take you from development to production.
If you're interested I launched a Docker learning platform last week. It happens to contain a 5 hour course that will take you from "What is Docker?" all the way to "I'm super comfortable using Docker / Docker Compose on my own projects".
You can watch the first 20 videos for free. The free videos cover topics like understanding what Docker is, how it works, and getting it installed.
Much easier than vagrant or running everything manually.
It doesn't have any editor features though, it probably only makes sense for vim/emacs/etc. users. Docker is also pretty nice, but if you're not using it in production it might not solve your problem.
I have been playing around with minikube for a couple of weeks, but the added ceremony of using Kubernetes isn't quite worth it yet for my pet projects, so it's mostly to keep up to date.
automate all setup with ansible and scripts
- Automate building dev environments (Linux-based) with dependencies
Use CI to build automatically artifacts. Provide tools for developers to ship their app to servers.
Ultimately, delete the development environment, it's always a hassle and it's always differing from prod. Only use prod machines.
By that, I mean that you give prod machines to devs who needs them, plus tooling to deploy anything they want anywhere, on any of their machines.
It'll get you a very productive and fast Linux setup based on Arch Linux and Xmonad, letting you automate the setup process by auto-linking your dotfiles and running post-install.sh if exists. This way you can spin up development environments really fast. For example, I turned an old desktop computer to a ready-to-use development machine in 30 minutes :)
I wrote a Java program that composes a shell script that gets passed into the user data of a cloud instance. That script sets up a Dev or production system and builds a machine image if that is what you want. Then it sends a message to a queue when it is all said and done.
test kitchen supports a lot of various platforms, including vagrant, AWS, and openstack.
Go lang seems like a good fit to build such a tool (for no dependencies, just drop a singe binary). Or a Ansible alternative with a C-like-syntax.
Like you, I am based outside of the US. I'm currently in the UK and yet, I am incorporating in the US.
The five reasons for this are :-
1) 99% of my customers are there.
2) 100% of my vendors are there.
3) Potential investors are there.
4) 99% of my financial transactions are in dollars.
5) My Bank is in the US and no currency conversions eroding profits.
Of course, some will say why don't I go to London and seek out investment? I have looked into this:
1) The mindset of a UK investor is vastly different than that of a US investor.
2) They sum of monies for potential investment is greater for a US investor and so is the level of risk. The sum of equity is greater for the UK investor.
3) The US investor has many more connections than the UK investor.
4) The US investor has made many more bets than the UK investor and therefore has much better advice going forward.
I could go on... But there is 0% chance that I will be starting up in the UK.
Here's what I have found so far:
US | YC - $120k in return for 7% of the company's equity.
London | Bethnal Green Ventures - 15,000 in exchange for 6%.
London | Founders Factory - 30k for around 7%.
London | IGNITE 100 - 17,000 in return for 8%.
London | Oxygen Accelerator - 20,000 for 8%.
There's probably more, but I doubt you'll get to YC levels of funding and influence in London.
If someone knows where I could get a better deal on funding, equity and terms. I'd love to know!
What I am doing, is bootstrapping until I'm ready to onboard an investor.
I can't really offer you advise, as I don't know your full situation. But hopefully what I have found offers some insight!
For hardware startups I can strongly recommend considering HK/Shenzhen, as I can personally attest that sourcing, consulting, manufacturing, and capital are readily and cost-effectively available.
It really depends on your idea, where your customers are and the way you want to execute. In our case we were lucky enough to have had some government grants from various countries, gone through some accelerators and now we are trying to organically grow.
Good luck with your venture:)
Lots of nutritional advice in America is suspect because someone is marketing a product. And the Old Country ways of eating are either lost in the New World, or don't work sometimes because we've switched from manual labor to desk jobs. And on top of that, are you trying to optimise for athletic performance, longevity, or are you just enjoying life?
(I don't think those three are necessarily mutually exclusive, but I do wonder about the modern obsession of over-optimisation.)
- https://examine.com (each article is well sourced)
- Canadian Government: http://www.hc-sc.gc.ca/fn-an/food-guide-aliment/index-eng.ph...
- US Government: https://health.gov/dietaryguidelines/ (I'm more skeptical of USDA's https://www.nutrition.gov/)
There are lots of different dietary protocols (keto, vegan, etc etc) that various people swear by. So, your question is simply too broad to answer with more than very broad guidelines about what kind of website to look for when searching.
One of my main go-to databases has become nutritiondata.com, which gives overviews of the nutrition information in pretty impressive detail on just about any dish or ingredient you can imagine.
The tragedy of subjectivity is, for most people, some random ranting into a youtube video for 15 minutes about eg. Hillary Clinton constitutes "evidence" sufficient to determine fact.
- syntax (the structure of a sentence)
- semantics (the isolated meaning of a sentence)
- pragmatics (the meaning of a sentence in context)
Anaphora (references to previous sentences or concepts) can be particularly nasty in this context.
Depending on the task at hand chunk parsing could be a good first take at finding relevant phrases from unstructured textual data. There are numerous libraries to accomplish that, for English and other Indo-European languages at least.
As far as I understand it symbolic AI back in the 80s was building a massive web of facts or "truths" that would be used to create a general AI. They eventually ended up generating a bunch of contradictions.
In big corporations you don't get fired for buying Oracle. BTW Oracle bought Sun Microsystems because it was the most widely used hardware platform for Oracle. On that basis Oracle could be considered the king of RDBMS. But it is nothing special technically and it is very expensive to purchase and the support contracts are eye watering. Larry Ellison can afford to lavishly play at Admirals Cup on the licence income.
Several years ago a package was released that allows you to run apps that expect Oracle on Postgres.
Of course startups do not use Oracle. In fact few even use Windows. Why spend huge amounts of money when you can get better solutions for free? And there are so many good choices, including noSQL solutions.
If you're a start-up going after B2B market, and you want to offer on-prem service, I suggest you get into the Oracle developer network and try as hard as you can to make sure your product works with Oracle as a backend.
Just having it as an option for big corporations is worth the effort... But not as a first time option (unless ORA funds you, which is another story).
Your professor is correct in that it's widely used amongst such companies, though other competitors are very often in place as well such as Sybase or Microsoft SQL Server.
The right tool for the right job (or in the startup world, the tool you can afford.)
Over time this didn't matter as many RDBMS offered advanced MVCC features and transactional guarantees "on the cheap". (MS SQL and pgsql being late bloomers to this club - there are many other good databases that do similar).
Your professor is probably a veteran from the heydays of Oracle's dominance. The meme of Oracle (i.e. if the system is developed using Oracle being default good) still carries in the minds of many financial execs and CTOs. But it is fading fast.
I personally wouldn't touch Oracle for my enterprise startup which provides BI solutions for asset managers. We use SQL Server and pgsql.
I use different chrome user profile for office & Home and suppose I don't have time to read some articles or anything,
I just send it to my home profile user (hangout) and If I found something at home which will be useful for my office work, I send it to my Office profile user.
Even TO DO List, Otherwise for long run I use Chrome Keep Extension https://chrome.google.com/webstore/detail/google-keep-chrome... with the labels So I would know Why I saved it.
Even though you already mentioned it, but it made my life so much easier.
Since I use it, I have no open tabs anymore. All articles are synced on my Mac, Tablet and Phone. When I wait on the train station for 5 minutes, it is time to read another article from my endless list of resources.
I tend to have several directories - for places i asked questions or posted something, for things i want to read, but don't have time right now, for things that sound interesting, for "maybe later" and so on.
Now I keep interesting articles in a new browser tab. It doesn't seem to work too well, as I have over 1000 tabs open on just my phone.
I wish Pocket (or it's alternatives) had a way to automatically group similar links together, include relevant saved links at the top of my Google search results, sort links by time-relevance (i.e., links to information that expires or become less relevant as time goes), sort links by time to consume (to create some kind of snowball effect, like paying the smallest debts first), etc.
People love to talk about themselves and their businesses. You will get a ton of positive response by picking up the phone (or sending emails) saying "I'm new to this sector and I've been learning everything I can online and through books and trade magazines. But I know I would learn more by talking to someone working in the field. Could I stop by Monday morning for 15 minutes and learn about your business. I'm interested in finding out how you came to even be in this business, what parts are enjoyable, and what parts are challenging. Thank you for your consideration."
The first day I was in Palo Alto (and the US), I had absolutely no contacts and was severely jet lagged. I had just moved to the US to establish my startup (https://journeyapps.com) in the US, raise "Silicon Valley VC" and chase the dream ;) tl;dr - JourneyApps is a platform for businesses to quickly developer mobile apps for internal use.
I walked down University Avenue, and spotted Palo Alto bicycles. I walked in (very nervous) and asked one of the sales people if the manager is in. Jeff (the manager), was there and asked what I wanted. I explained I'd just moved here, and was working on a startup that eliminates paper forms.
He was kind enough to not kick me out, and (because it was closing time), spent some time talking to me about how they sell bicycles and which paper forms he uses. He also explained how much of a pain it is.
I kept delving into the details of his business, which he absolutely loves, so he was keen to keep talking. After forming a good idea of what his world looks like, I asked if he'd be keen to do an experiment with us. We'd make an app that does bicycle sales on a tablet, and bring it to him in a day or two. The experiment would be free, he just needs to tell us what works and what doesn't.
He was really keen, and gave me copies of the forms he uses. Overnight we built an app on our platform that acts like his paper forms. The next day we rolled out in his store, and waited for bicycle sales.
The app worked, and we learnt a heck of a lot about US business culture, even though it was just a "small family owned" bicycle store.
Eventually we raised the mythical Silicon Valley VC money and got our first Fortune 100 customers, but the process stayed remarkably similar:
1) Find someone who's passionate about their business
2) Talk to them with genuine interest and learn about their world
3) Be upfront and open about which problems you think you can help with, and which not
4) Over deliver.
Fwiw, I've become mildly obsessed with this topic, and have written up a couple articles that may help:
* How to talk to customers: http://customerdevlabs.com/2013/11/05/how-i-interview-custom...
* Which customers should you talk to first: http://customerdevlabs.com/2017/03/20/who-are-early-adopters...
* How to ask for conversations: http://customerdevlabs.com/2014/02/18/how-to-send-cold-email...
If you go to a small retail business (say a cafe) when it is not the peak hour, you might find the owner working there. It is usually not hard to get them in a conversation, many of them will talk your ear off. (Sometimes this even works for a supermarket or a large chain store.)
On that front, people usually like to be heard so if you do a lot of listening that takes the pressure off you. Often a good sales call is 90% or more listening to the customer talk.
I've gotten good prospects through LinkedIn and simlar means and have had very good luck (much better than 80%) at sending a message or email and getting an appointment for a phone call.
If I have any challenge here it is that there are people out there who really like to talk and talk and you can easily wind up having an absurd number of calls over a long period of time and get no sales. However, almost always in B2B sales you will need to make several calls over a period of 2-3 months. Big companies lke IBM can tolerate a sales process that runs longer that, but you can't.
- still at the idea stage, I began talking to people online on iOS dev forums - iphonedevsdk forum, and reddit.com/r/ios /r/iphone, etc
- I asked my friends who I knew were devs. I live in Poland, and my target audience is mostly US, so their feedback was slightly limited, but still valuable, because I could talk to them in real life
- as soon as possible I went to San Francisco, and went to any meetup I could find through my contacts, on Meetup.com, and Startup Digest
- I try to follow news as closely as possible (e.g. there is iOS dev weekly newsletter), and look for opportunities to engage in the communication. Even without mentioning the name of my project (which is AppCodes.com -- a shameless plug here :D )
- Sometimes I write to bloggers and people who write about my subjects about something I work on, to honestly gather their feedback, and of course to ask if they want to know more about my project. It's always personal.
After a few years of doing various projects, I noticed that it almost always takes around 6 months for the word to go out that I do things, and people start coming back to me by themselves ("are you still doing X?"). With time, finding connections is easier, but not faster - it always takes exactly 6 months :)
Ok, that wasn't helpful. So let me try to break it down, without knowing anything about what you are selling.
I will assume that your service is to solve some problem in a particular business domain. From that you can decide on who would have the problem you are solving and how critical it is for them. Hair on fire is good. Nicer typography on the menu - meh. Nevertheless, you can sketch your ideal customer. Potentially only a very small proportion of your town's business population is a possible prospect. Once you have identified the businesses, you could look at who in those businesses would be most motivated to do something about getting you to solve the problem(s) you have identified and are capable of solving.
Then you go an talk to the people you have identified. You listen more than you talk and refine your approach.
For a far more detailed approach you could read "Four Steps to Epiphany" by Steve Blank. Customer Development Method might be exactly what you need to help you maximise the productivity of your time when you are out of the office, talking with prospects.
If you provide some details about your business then some HNers might be able to give you specific advice.
You have two ways to build it. One is always coming from the outside, hoping for nice/stupid people to explain it to you, hoping to get shitty contracts to make some kind of money. This way will be the slave road.
The alternative is becoming an excited new employee at a customer or another provider for your customers and work there for 5-10 years. You have rights (like laws working in your favour), you have regular income, you are at the table where things happen and get some tips from people who work in that area for 10+ years, and hell, you may even save a few bucks that later can be used to found a company.
Yes, you'll be your bosses bitch, but only to some degree, because of laws. Customers will be much, much more cruel. If you can't bow to a boss, you certainly won't be able to handle customers yourself.
If you neither have rich parents nor business value, don't attempt to build your own business. People just say that because they are part of the economy that makes money from the sacrifices you take on your own, or at least have rich parents themselves and therefore don't even know that it can be a problem if one is behind rent payment and lacks $20k in funds.
But if you try to build a company, I assume that you want to solve a problem.
If you solve a B2C problem: talk to friends affected by the problem, or launch a Meetup based on this problem. You'll get free feedbacks and people LOVE to talk about themselves.
If you solve a B2B problem: talk to friendly businesses affected by the problem, or go to events and conferences as a vendor with kakemonos talking about the problem you solve. If the problem you solve is really important, you'll get plenty of people coming to your stand to talk to you.
Once you'll have a few "leads", you will be able to refine the market segments that are the most affected by the problem you solve. THIS is really important: for B2C, you'll have to target this segment in your future ads, for B2B, you'll have to target this segment in leads generation.
- "Should I try to approach bosses or common workers of companies?"=> Talk to the guy affected by the problem you solve. It might be the CEO, or a manager, or the worker.
- "Should I phone them, ask for an appointment, explain my goals and if they let me in, do the talk?"=> Yes, phone is better than cold email. But be prepared, it's really harder than cold email.
- "What is the right approach to talk to my potential customers?"=> Beginner script: Hi, my name is X, I represent Y, we solve THE_PROBLEM_YOU_SOLVE. Are you affected by this problem? Could we talk about this in person at your office?
- Include an invite for a quick 10-15 minute chat in the welcome email (more people than you would think actually take up the offer)
- Ask them why they signed up (this is key to help you determine what problem people want you to solve)
- Ask them their biggest frustrations about the solution so far
And just take it from there.
"Hello, this is cosmorocket, and I'd like to learn more about your industry. Can I stop by sometime and ask you some questions? Perhaps shadow you for a little while? I'll bring coffee and danish."
Just watch and listen. If you see them get frustrated by something, give them a moment then ask "So, what just happened?"
For example, I've worked with clients where we would insert an NPS question at some strategic point in the digital parts of their service. Not at a point where it would be intrusive, but rather, for example, at the very end of completing a bank transfer. Make it very small: 1) The NPS 1-10 scale, 2) Field for free comments 3) Checkbox to the effect of "is it OK if we contact you for more questions?"
This serves the dual purpose of finding people who are willing to talk to you, as well as giving you an idea of what they think of your service at the current moment.
You can now contact the people who put less than 9 on the NPS scale to do two things: 1) find out what you can do to improve the service, and 2) take care of the complaints they might have and improve your relationship to the customer in question directly, potentially turning a negative impression into a promoter.
Obviously, if the product doesn't exist yet, you will have to find a different way to reach your potential customers rather than inserting it into the existing service.
If you need b2b: LinkedIn, conference and trade show lobbies (you don't need a ticket to hang out in the lobby), email lists you can buy online. There are also companies that maintain lists of experts with every imaginable background you can speak to for an hourly fee; not cheap but worth it.
If you need consumers: survey panel companies will let you field a simple survey to people who match your criteria, who you can then recruit into a phone/Skype call. You can also recruit people yourself through well-targeted Facebook and Twitter ads. Craigslist works well; set up a short survey to prequalify people.
Money is a great accelerant. You will always find people who would talk to you for free, but offering to pay them for their time and expertise makes things go a lot faster. Plus, if you are on the shy side, money changes the dynamic. You are now not asking for a favor, but are offering to engage in a business transaction.
Six people is often all you need to start seeing some common themes.
I would schedule a phone meeting or in person meeting, and I would run through the script. After the meeting I would quickly write down all the answers off the top of my head while it was still fresh.
I did this for about 30 interviews, and then I created an answer matrix in a spreadsheet. My goal was to try to see if there were any common problems among the majority of people I talked to. The answer ended up being a big NO, but I did not write a single line of code in this process. It did save me a ton of pain in the long run doing this up front.
But on the topic of how to talk to people, I really want to recommend the book by Dale Carnegie 'How to make friends and influence people'. Ignore the corny title and read it. This book has changed how I talk to people.
The biggest takeaway for me from that book was that people love to talk about themselves. Make the conversation about them; focus on their situation instead of on your product.
First you need to figure out who you want your customers to be.
If your answer is local coffee shop owners, then it's easy to make a list of customers and you can call them, email them, or visit them in person.
There are many places on the internet that give free advice on how to do cold calls, emails, visits, etc. Steli Efti writes about it a lot on the close.io blog. There are numerous questions asked and answered on quora.
Start at those two places and once you know more of the basics, you can start learning more specific skills.
But if you don't know who to talk to, then you are trying to solve two problems at the same time: who to talk to and how to talk to them.
Solve one problem first, then the other.
Once you know who to talk to, then you can start talking to them to see if they have the problem that you are trying to solve.
If the service or product you are selling doesn't solve their problem you are not going to be able to sell it to them.
It's much, much easier if you are trying to sell to a customer base (market) that you understand well or already know some problems they face.
Then you can talk to them and verify that you are correct and they have the problem that you think they have.
Wrote to a bunch of strangers. Made it a point to stress that I've nothing to sell (not yet at least) and just want to talk and pick brain. Promised not to take more than 15 mins and never did. Most people never replied, a handful of them did and I had lovely conversations with them. One even became a friend (I referred her to the place I work) and we still keep in touch, even though the original reason I talked to her didn't work out. When I thanked one person, she simply said "no need, just promise me you'd do the same if a stranger reaches out to you".
From my limited experience, it is more or less a numbers game, unless you are willing to spend enormous amount of time looking for that specific set of people who is the perfect fit to help you. There is no guarantee that they would though (why should they? Everyone is busy with whatever they are upto anyways)
The advice is good but often it means talk to your users. You can use it to validate your idea, but it is helpful to validate your product.
If you are building something be damn sure it's something people want this is hard if you don't know those people
If you are making software for restaurants, go sit at the restaurant during peak and off hours, and be keen about what's actually going on, down to the minute detail.
If the problem you are solving is in the kitchen, see if you can offer a hand doing dishes for free and observe at a detailed level what everyone else is doing and what their problems also are.
Asking questions in survey format could potentially work, though I doubt it. It could also be high barrier if you are basically a nobody trying to talk to restaurant owners.
The worst thing that can happen is people telling you they have a problem they don't actually have, and you create an imaginary problem to solve that nobody cares about.
To properly talk to customers to identify if there is a need for your product/idea requires for you to not bias them by telling them what you are working on. You should be able to talk to your mom about your idea without her ever knowing that you have an idea for a product.
You're talking to them in order to understand the problem that you're trying to solve.
The best book on this that I've read is "The Mom Test", well worth the price
Then I'd call them up and chat.
At first I'd setup calls only with those who responded.
Then I began calling up people even if they did not respond.
Most people are happy to talk about problems.
Let me assume that you have a consumer product -- an app, or a piece of hardware. There are things out there that do something vaguely similar, but you think yours is better.
Go to the comments sections of various chat boards that are discussing the current way of doing things. Make note of the complaints.
Ask the people there if they will chat with you for 5-10 minutes about a product idea.
1. Make a list of fb friends who would be interested, add them to a group, a secret one.2. Try to validate the idea3. use reddit to validate the idea4. using HN is tricky because you can't guarantee that the post will get attention.
You might also find the UX book "Don't make me think" generally useful. I am mentioning it because it does talk about how to get effective feedback on your website. If you are doing an online thing, you may find it very pertinent.
Think of what you can do to support what your customers need to do rather than think of how you can get your customers to fill your pocket :)
I see the zero customers part. I would update my content marketing game until someone called me.
Improving here might be crucial.
Yes! That is exactly the point of the advice.
Go out in the field and you will learn something - because it will NOT be what you expected!
I am excited for you! Good luck!
Peachtree changed their tune early on from "Yes it will work past 2000" to "We only support versions beyond version Y for the Y2k changeover" (no direct mention that the older versions will work)
Many publishers' tech support got ran over by marketing to con people to buy new software/hardware based on various real and imagined FUD. Y2K was a big inspiration.
It was interesting to learn that starting in 2015 some customers were having trouble generating payroll for their youngest employees (aged 16 years) at the time. In debugging the issue it was concluded that Y2k was the issue (sort of).
 - http://cs.newpaltz.edu/~dosreist/
How to solve it by Polya - an awesome book. Read these to learn not just mathematical problem solving but in general. I don't think I've read a book quite like this before. The idea of a process and tools for problem solving is awesome.
How to prove it - a great book. I felt after reading through this I had a much better understanding of how proof works. I also had a better understanding of how mathematicians go from scratch work and proof to the proofs they finally present. There's a lot more that goes behind them and will help you understand those proofs by giving you the tools to do the scratch work behind them yourself. I had tried to learn proof techniques from a few other sources, including Jeremy Kun's awesome primers.
"Conceptual mathematics" - did a very good job in helping me make more progress with category theory. I tried a few different books and an online series. Flicking between those and this book, I started to understand much better.
The Little Schemer - the one that finally opened the key to recursion, closures and functional programming. I had tried attacking this using a few other books, including SICP but TLS helped a tonne in the final clicking.
Thinking in Type - great book that taught me quite a bit about typography. It showed me how important typography is to design.
You can draw in 30 days - sounds very SAMS but actually the progress I made in 1 day is testimony to the book's bold claim. You won't be Da Vinci but you will have functional drawing and sketching skills if you go through this.
It's important to note my process in finding these books. I think much of the groundwork and mental priming before working through most of the above helped a lot.
A tend to get interested in a topic and then seek out good books in that field. If the book doesn't make much sense or is very dense, I keep at it for a day or so. I then seek out similar books and repeat the process until a little jump forward.
Unfortunately in around 1 to 2 weeks, I've lost interest and I repeat the same thing on a different topic.
I probably have a tonne more but they're spread across many subjects so it's difficult to consolidate. Feel free to email me if you want recommendations for a particular subject.
 - http://www.buthowdoitknow.com/
Unless you are expecting somebody to steal/abuse your name, there's no rush to TM.
It's really a cost issue. If money is no object then there is little downside other than a) alerting people to what you are doing (tm apps are public) b) deciding if you will do it yourself or have an attorney do it for you.
Creating a legal entity is a bit more involved. You can apply for a trademark, pay the nominal fee and assuming you do the application correctly (in the right class) etc. you can just simply abandon it later if you change your mind. You would only be out the fee. Not like state paperwork which is a bit more sticky.
The date a trademark is put in use is important. So assuming you file as 1a and are using the mark getting it in early could have benefits. Blocking potential competitors and so on.
If you are on a shoestring and have little money then it most likely doesn't pay to apply for the trademark and spend that money which you might need for other things.
Upon using your name in commerce you acquire common law trademark rights. Filing a trademark before you are actually using it in commerce requires filing an Intent To Use trademark application and will cost you a few thousand dollars in legal fees (or a hell of a lot more if you are doing international) - either that or you are doing it yourself with trademarkia, and, in that case, I wish you bon chance.
Try to choose a strong name, but be prepared to change it.
"Strong" means, in order: a completely made up word, a word that has nothing to do with the product being offered, a word that is suggestive but not decriptive of the product. For more information, look up the "abercrombie" test. https://en.wikipedia.org/wiki/Abercrombie_%26_Fitch_Co._v._H....http://berryentertainmentlaw.com/the-abercrombie-formulation...
If you want to search for competing marks, please note that this is an extremely technical process. You can try to search on TESS, but it is very difficult. https://tess2.uspto.gov
Note that this is only US trademarks.
Additionally, if your question is "how do I know if my mark will be infringing?" The answer is "that is an extremely hard and expensive question to answer." The touchstone of trademark infringement is the "likelihood of consumer confusion test," which is ensconced in the sleekcraft / polaroid factors. http://www3.ce9.uscourts.gov/jury-instructions/node/244http://likelytocauseconfusion.com/likelihoodofconfusionfacto...
The point of all the above is that you really do need to be a professional at this in order to have the wherewithal to make judgments about the likelihood of a trademark's success. In addition, it takes a few business quarters to a year and a half for a registration to issue.
The point of all this is that domai.nr is as important a tool as TESS, that you can easily get lost in the weeds on this issue, that your own judgment is in no way a replacement or a substitute for a licensed attorney, that trademark strategy is hugely complicated and can be a total sinkhole. What does that mean? It means that, for a startup, like many, many other issues, you do the best you can but keep in mind that you are going to have to spend a lot of time and effort on it down the road.
Tl:dr:As a startup in general: IF YOU HAVE THE MONEY, it is worth starting this process this sooner rather than later. If you do NOT have the money, a reasonable strategy is to move forward with a name that you like but are willing to change. It is okay to change your name very early on. However, the goal is to avoid having to change your name when you already have a product out and some market presence. For YC: Do you need a trademark before you apply to YC? Almost definitely not - unless you are already selling your product. Do you need a trademark before you start selling your service to enterprises or spending money on marketing? It would be foolish not to at least engage an attorney and start the process.
Note that many other IP attorneys may have different opinions. That's fine - reasonable minds can differ on this subject, the above is an extremely short primer. Also please note that I AM NOT YOUR ATTORNEY AND IF YOU ARE THINKING ABOUT FILING A TRADEMARK YOU NEED AN ATTORNEY.
Edit: shoutout to https://news.ycombinator.com/user?id=27182818284 for posting this PG blog post - extremely on point: http://www.paulgraham.com/name.html
If you're already established with a public product, then you should just go get the trademark. It's not that expensive. If you're stealth, then you could wait, but only because of your stage of company, not anything to do with YC.
libertymcateer makes some great points. But I wanted to add two things:
1) For most people, when I think about registering a trademark, their concern is getting priority so that other people cannot jump in and use the same mark. Registering a trademark brings a host of benefits, but you don't need to register to get priority over later users. You just need to use the mark "in interstate commerce."
The problem for a company at your stage is this - chances are you are nowhere near the point that you could be said to be using the mark in interstate commerce. I'm assuming you aren't selling anything under the mark yet, right?
So, if you are really concerned about getting priority now, registration would have a benefit - you could file what libertymcateer referred to as an "intent to use" application. Your "priority date" would then be the date of your application, NOT the date the mark registers.
Eventually you will need to show that you are using the mark in commerce, but you can get up to 3 years to do that.
So, if really want to protect your mark now and are afraid someone might take it before you are already using it, then applying for a trademark registration can be worthwhile.
2) The other thing I tell companies in your position that are thinking about registering a trademark is to think about the time, effort, and resources they will be putting into building a brand around their desired trademark.
At the outset, it's easy to change branding. But let's say you start building some recognition around a name over the course of a year or two, start getting traction, etc..., and then you find out someone is already using the mark you chose as your brand or something confusingly similar. At that point, you will have sunk a bunch of money into a brand that needs to be changed and will have to start sinking that money in again.
Why might you think of registering at the outset, then? Well, as libertymcateer mentioned, you could do a search on TESS at the USPTO website. But it's a clunky search system and it's not even complete for your purpose.
If you are looking for prior users of a mark that could interfere with your right to start using a certain trademark, you need to look beyond marks that have been registered or for which people have applied to register. If someone is using a mark in commerce, but never applied to register, they can block your use. And none of those marks will appear on TESS.
In addition, it's not just identical marks. It's confusingly similar marks that can block your use. TESS can do some fuzzy searching, but you need to do those kinds of searches on a much broader basis.
If you file a trademark application, a trademark examiner will do searches and present objections if there are barriers to your getting trademark protection for a mark. No, it's not foolproof - they can approve a mark and a 3rd party can object. But it will be harder for a 3rd party to object if you actually are able to register the mark. That puts aside the credibility you get in having a registered trademark for a brand - random folks who want to write a cease and desist letter will more likely be deterred if you've registered the mark.
Now, applying to register the mark isn't the only way to get a better assessment of whether your chosen brand name would be a good choice from a trademark protection standpoint. There are trademark search services that can do a good job seeking out competing marks. But you really do need a lawyer to analyze the search results. That process will cost more than filing a trademark application. (The lowest risk thing to do would be to have a trademark search done, analyzed by a trademark attorney, and then filing an application to register, but the costs add up and I'm assuming cost is an issue here.)
So, essentially, filing a trademark application is relatively low-cost way to get an assessment of the legal viability of a name for trademark purposes, before you put your resources into building a brand around that name.
Just some things to think about.
It seems that using ANSI to make new standard is unadvisable. The process is cumbersome and there are copyright issues with ANSI.
If there is need to revise the standard. Common Lisp folks can for less byrocratic organization to do it. Library standardization can happen organically.
If the features you think should be added are just extensions, it's very likely they can be added as libraries (though there are occasional exceptions). If they actually change the language so as to break existing code, it's very hard to see why anyone currently using CL would want to use your language. The CL ecosystem is already considered to be behind other major languages in terms of library coverage; your new language would be starting from zero on that point.
I think the only way a completely new Lisp would catch on is for some company to create their own, and then to spend enough years using it for enough different things that they create an adequate library on their own -- requiring that they get pretty large. But why would a small company, just starting out, create their own Lisp when they could use CL? (Okay, okay, of course PG did exactly that with Arc. But it's still an unusual choice.)
CL is unusually mutable as languages go, anyway. It's even possible for a library to turn it into a subtly but pervasively different language -- I think my functional collections library, FSet , is a great example. And of course, this is done without breaking existing libraries.
But every few months (weeks?) I see a post by a founder-type essentially trying to mine the Hacker News collective brains for startup ideas. It doesn't work that way. The best startups are ones that solve a pain point you yourself have experienced.
The idea of a savior who comes in and solving the major problems of an industry they have never worked in is not a myth but close to one. (Elon Musk being a notable exception with cars and space flight... but he has the capital to attract domain experts to fill in the gaps)
I'd point out the problems in my industry except I am actively working to solve them :)
With that said. Don't let a "know-it-all" on HN (myself included) tell you what to do. If you want to tackle a hard problem in an industry you don't have experience in, please do. You might be the next Elon Musk, I don't know you so I don't know.
If that wasn't your goal with this question... again I apologize.
I've said this a few times but we're going through a growth period like AAA video games have over the past 20 years.
I used to be that 2 guys could make a video game, then it went to 10, then 50, now its around 200 from what I've last heard.
Hedge funds are going through a similar shift.
It used to be that one person could manage data cleaning, and algo generation for a fund.
Then cleaning got split out into its own job.
Then the number of data streams exploded growing by a couple orders of magnitude.
Then the data types diverged so that each new data stream needs its own special cleaning, and normalization and even data storage, ie some data isn't suitable for a sql or non sql database storage, like satellite images.
Nowadays a typical algo fund might make use of 100 different algos for trading, each of which has 20 different inputs, some real time, some updated irregularly.
It takes those signals and weights them to come up with a trading signal, which then gets mixed with a portfolio balancing signals and risk signals.
It can be tough to disentangle each individual signal from the algos themselves so even things like detecting if a signal still has alpha generating abilities is tough.
You can have 10 people just back testing signals and monitoring risk levels.
And the growth of data and data sources isn't slowing down.
This is good if you are one of the larger players, see Virtu buying out competitor KCG, who previously ate competitor Knight Capital, yes that fund with the huge blowup, but not so great news if you want to remain a small, person wise, fund.
Not sure how to run a quant fund anymore with only 4 people. Not sure anything an be done about.
In the "good old days" where 2 people could make a video game, odds are that just shipping something guaranteed you'd make money. But that's no the case anymore now that 1000+ apps come out every day on iOS / Google Play. Of course most of those are crap. But you could be making a great game that caters well to a particular audience or niche, and yet you might still fail just because no one can find it or really just be aware of its existence.
The "simple" answer to this is marketing. Hustle your way to some visibility, partner up with some publishers or some platforms holders, and get as many eyeballs in front of your game as possible. However this effort is very close to being "zero-sum." Either you win and get your promo art banner at the top of the app store, or someone else does, but you can't both get it. It's less obvious when it comes to PR and having articles or game review written about you, but it's still there: with so much noise now on the internet, it's hard to generate a meaningful signal.
The harder solution is being tackled by the app stores themselves. Steam, iOS, etc. have all been improving the way games are presented in their stores. There's more focus on specific genre features, more flash sales, more suggestions based on what you already play. It's a decent effort but I don't think it's enough yet.
What can we do about it? Not sure. Algorithms that try to discover what you might like based on your previous purchases are nice and all, but most of my favourite gaming experiences were surprises that came out of genres I didn't expect (e.g. Rocket League), so this can only go so far.
2. Excessive costs, lack of performance among professionals
3. Change in attitude seems to be the biggest factor. If lawyers stop being about fighting and competing and persuading and more about tackling problems, getting to the truth and finding solutions, we can have a much better chance of succeeding.
There is a lot of opportunity for automation that no one seems to want to get involved in. A good example is document discovery which has been largely automated.
Other areas that could be automated include divorce. For example, in my jurisdiction what each partner is entitled to on divorce in terms of child support and alimony and division of property are set. There is some room to argue about custodial arrangements but not very much.
Given this - there is absolutely no reason to have many years of contentious divorce suits. If there was someone way of just entering the information into a computer and informing both couples of what they are entitled to and then working from there - I believe we would be much better off, because, although I haven't done alot of divorce suits, but in my limited experience it seems to me that lawyers certainly have a large role in exacerbating them and needlessly.
Already done successfully
Tenure is a huge cost to the university and not every professor is both an amazing researcher and an amazing teacher. So you have a chunk of the budget spent on old researchers while poorly paid adjuncts fill in for undergraduate classes. Not sure if fixable.
Politics runs everything. Broken clock Ayn Rand was at least somewhat right in Atlas Shrugged when she speculated that bringing about the end of money would usher in an age of pull. That's exactly how higher ed works: unless you can justify your work with student evaluations and big $$$ research grants, politics runs a lot of decisions. Not sure if ever fixable.
No two American universities are alike. Colleges within universities have major differences too. Good luck getting any real traction consolidating IT services. Everyone has different needs and cut-outs for their work.
Higher education is a hydra. It cannot be fixed or reformed at the drop of the hat or with the use of an app.
Abandon simple solutions, all ye who enter here.
Homelessness is on the rise nationwide in part due to a serious lack of genuinely affordable housing. Among other things, in the 1960s and 70s, we tore down a lot of SROs. The Baby Boom generation was an anomaly. The unprecedented wealth of their parents was due to WW2. Yet, expectations from that era still shape housing policy and infrastructure, much to our detriment.
You do not necessarily need to be a construction company to play a role in addressing this issue. Another very serious problem is the lack of financing mechanisms for housing alternatives. For example, co-housing projects in the US tend to be self financed because we do not have financial products that fit them. This actively undermines their ability to add affordable housing to the system, a purpose they successfully serve in other countries, from what I have read.
There are, no doubt, many other things one could do to work on this issue.
* Reproducibility -- running code months or years later, on another machine.
Current tools, like VMs tend to be too heavy-weight. Docker is too hard to set up.
The main problem with these various tools is that exploration is slow -- Often I'll take an experiment, tweak it a few dozen times, then finally get the code for a paper. At that point I don't want to package it up, I want to be able to "freeze" where my last execution.
You might think that there's no shortage of phone Repairer's out there and your right but you can bet that 90% of them are self taught or eventually taught by someone.
Considering the amount of important information we store in phones and the price of the devices it has now become more important to ensure that your phone repairer knows what they are doing and of course has a reliable supplier
2. Most people don't like their jobs but suck it up. The 9-5 grind, climb-ladder, can't switch careers, lack of meaning, social pressure to have job. Getting laid off, searching new job, financial downsides of being unemployed
3. Restructure the job model/market (flexible choices, live comfortably, security)
Unengaged workers- Gallup poll on American workforce trends http://www.gallup.com/reports/199961/state-american-workplac...
2.1 Access to energy / energy density of fuels (batteries included). This is the case across a wide range of industries and problem areas of course, not just transportation. But incremental optimizations in efficiency have lead to squeezing more performance out of the margins, but no Moore's-law type growth will ever happen without some kind of energy breakthrough.
2.2 Going forward, tightly coupled systems will be the norm. The traditional tube-and-wing aircraft with bolted on nacelles is a bit of a dead end for civil aviation. Systems to enable a more complex design workflow (e.g. graph based dataflow with accurate gradients) will be more paramount.
3. Research into the next generation of energy storage materials, and improved large-scale gradient-based numerical optimization algorithms.
2. Oligopoly just a few companies who deliver live results.
You would need a ton of cash upfront, to hire people who would watch the games and would press buttons in order to inform you about results so you could parse them and deliver live results which eventually would become a live API.
But as you can see, there are people involved in this, who watch all those games, if you can manage to automate this, without requiring too many people, you are a rich man.
Let's put in that way, almost everyone consumes their API if they are offline, we are offline.
3. SystemVerilog is not really at the right abstraction level and still has many of the problems that face Verilog. It is sort of what C++ is to C and what I need is more the equivalent to rust.
2. I don't know if it's stopping the industry from growing, but existing communication tools (specifically chat, email) are a serious drain on attention and productivity. See http://www.paulgraham.com/makersschedule.html.
3. I'm working on it. Might be better tooling, might be educating people on how harmful they can be.
2. Cost of launch locks out potential customers and limits R&D uses. Global launch cadence is slow; getting into orbit is a multi-year adventure.
3. Yes, we're working on reusable rockets.
However, this only goes so far. Personally, I think that more money needs to be put into non-rocket modes of space travel, so that there's some competition. The fundamental problem is that it takes so much energy (and, with rockets, so much mass fraction optimization) to get to space, so it's difficult to engineer things with physical margin.
If you could build a rocket like a car (just toss some more steel in the frame and call it a day, with no need for the obsessive mass savings), getting to space would be a bit easier. If you had a power source that doesn't shake and bake its surroundings, getting to space would be a lot easier.
2) A lot. Publishers relying on clickbait to generate money. Advertisers creating invasive ads with autoplay sound and video. Ignoring do-not-track requests as part of the industry (even if some technology providers respect DNT, it seems like a lot don't). Malware. A lot of useless metrics. Bandwidth usage. Etc...
3) Micro-payments vs delivering content only when an ad has been seen? Validating content delivered through exchanges. A better way to anonymize data used for tracking? Smaller ads. Honestly, I'm not too sure, there's probably a lot that can be done but I feel the industry did too little too late.
I think there's a massive opportunity to lower costs and improve user experience in every area. I wish Apple used their pile of cash to invest in a big vertically integrated healthcare service - a chain of hospitals, in-house-developed software throughout, improve user experience, integration and tech on every level. Basically healthcare rethought from the ground-up with Silicon Valley consumer-oriented mentality. Yes, extremely daring, but they're in a unique position to pull that off.
I highlighted passages of note here:
It's a great opportunity in a field that, despite budget cuts and under-funding, still has millions of dollars to put into software that could meet the needs of school districts across the country. Most of what's out there now is sorely lacking, leaving teachers and schools to use a patchwork of solutions to meet their needs.
2. Product complexity, legacy IT & culture and regulation
3. Provide regulated banking services as a lean platform / utility, let others play on top
(3) is not easy to execute and no, blockchain is not the answer
And, it seems Perl IDEs/debugging tools aren't as good as they should be. We're still using the command line debug tools for Perl, and can't even set a breakpoint before that line has been executed.
2. Hiring Process
3. Replace meaningless whiteboarding interviews AND silly notepad algorithm questions, with a live coding interview on a laptop and a real development environment.
Companies would be surprised how fast and efficient the hiring process would be. They would stop eliminating a bunch of great candidates by running relevant technical interviews and not silly CS academic stuff. I can spend 3 month memorizing 500 algorithm solutions and nail all your 45min technical interviews. I would get an offer, a kick ass package and I would join your team. Then, on my first day I'd ask for help from my colleagues because I can't even setup my development environment. I'd write buggy code that doesn't integrate well and wouldn't be able to understand how to design a system. All I'd know is how to write text in a notepad and how to flip a linked list on a whiteboard.
But hey... I'm smart! And now I'm rich :)
2. Not enough companies want to use newer web technologies and advancements in AI & machine learning to train their workforce
3. Yes but I think it'll require younger incumbents 'eating the lunch' of more established companies for this to change
2. Seamless, lossless, low-cost interoperability
3. Doubtful. Many companies profit by providing custom products and services to address the problem.
2) Massive underfunding from central and local government; entrenched ways of working; incorrectly defensive working; dysfunctional cheerleading of incorrect approaches
3) Yes. Improve efficiency. Move to better ways of serious incident analysis. Challenge people who cheerlead incorrect approaches. Push for more funding, especially using Spend-to-Save data.
3. More money.
In the publishing industry (where I have worked since 1997), the transition from print-only to print-plus-digital that began around 1999 and really got underway after Amazon released the Kindle in 2007 has finished. Now we have an industry in which print and digital co-exist (at different levels 50/50 for fiction, but more like 80/20 for non-fiction, and even less of digital for more complex product types like Bibles). Currently the growth area is audiobooks, led (of course) by Audible.
2. What are the biggest problems stopping your industry from growing?
Publishers have not really solved these problems:
(a) How to distribute very small publications and receive very small payments? We're still reliant on credit cards for payments, which pushes us to a smallest payment size of about $1.99 or so.
(b) How to increase discoverability? Most publishers are reluctant to post all of their content in a web-searchable and social-shareable form (for somewhat obvious reasons). However, this means that it's hard for them to draw direct traffic to their books.
(c) How to reduce reliance on the behemoth of online retailing? As physical bookstores have died away, publishers have recognized that they are too reliant on one distributor, which is a dangerous position to be in (as that retailer has shown itself very ready to use monopsony powers to bully their suppliers). Most publishers have direct-to-consumer selling operations. But (a) and (b) and other factors mean that they find it extremely difficult to draw traffic to their sites.
3. Can something be done about it?
I have been working on some of these problems in my business (http://blackearthgroup.com). Here is a sketch outline of how I would encourage publishers to solve these problems:
(a) Micropayments are needed, and to do that we need an online currency that can be used to buy content without going through the credit card processing network. Publishers should invest in the development of an online token that they would support on their sites. Customers could then purchase a supply of tokens and use them on publishers' sites to buy content. There are a couple of projects like this in the works. The simplest approach would be to create a coin based on the Ethereum network, and then support that coin for all purchases. (The hardest part of this is probably that the value of the coin would not be completely stable, because Ethereum is not, which means that publishers would have to either adjust their token prices regularly, or would have to live with variability in revenues to sales this problem is solvable, but it requires a lot of capital to create a value stabilization mechanism.)
(b) Publishers should put all their content online in excerpt chunks using non-discoverable public URLs, then submit it all to the search engines, and start sharing excerpts through social channels. It is true that some of the content would be given away, but that would be limited because each excerpt chunk would not be linked to the others in the same publication access to one would not grant access to all. Using full-content search and sharing is one of the best ways for them to draw more organic traffic to their own sites. (They'll need to invest in better discovery mechanisms on their sites, too.)
(c) Publishers have a real chance of building a customer base in their own content niches, if they invest in developing a content discovery and purchase experience that is significantly better in that niche than what customers experience on Amazon.
(Cross-posted to my blog: http://blackearthgroup.com/2017/04/20/what-are-the-greatest-... .)
2. Knowledge sharing within companies/organizations. Formal methods (primarily their absence). Effective use of simulations in design, development, and V&V efforts. Requirements traceability (this is mundane and seems bureaucratic, but it's critical here).
3. Yes, to everything.
For the first, break down information silos and project fiefdoms. Allow for greater flexibility for staff to move across project boundaries so knowledge can be shared more equitably, and people can see other teams work (learn both good and bad things here). Training. Make it a recurring event. Not the crap training many organizations do. Have a seminar series where people come in and present on something, not always directly related to work. Encourage people to write up their lessons learned, and perform and publish post mortems on projects. Take the approach of avoiding blame, focus on correctable errors and faults along the way (these are primarily process faults, not technical ones; where technical they're typically design and not implementation errors).
Formal methods and simulations are much easier to get started with today than ever. I'm not even talking about making a full-blown simulation of the final system, just high level "is this protocol sound" models. Presently working on radios. I don't need to implement a simulation of every detail of the protocol, I just need to know things like: If we add this new message, that must be sent so often, can it actually get broadcast at the correct frequency within the physical constraints of the radio? This turned out to be NO on one project I saw (not worked on), but not discovered until it was implemented (several man-months wasted). A message was supposed to be sent out every X time slots, containing N bytes of data. Each slot allowed you to send MAX size. Other messages also had to be sent out, say every X4 slots with size M. N+M > MAX, meant something wasn't sent. Both were mandatory, by design the protocol couldn't function. Another similar issue, though requiring a more complete simulation/model, was that one of the processors handling some of the messages simply wasn't fast enough. It was required to (worst-case) process N messages within X microseconds, but could actually only process ~N0.75 messages. Admittedly, this was worst case behavior, but by the system's design (protocol requirements, selected hardware, selected data bus, selected program design) it could not achieve the required performance.
The more complete the simulation, though, the better off you are. Technical solutions already exist, it's primarily an issue of finding good case studies or getting an amenable manager to sign off on trying it to demonstrate the cost savings (versus the typical approaches, which in my experience are often significantly late and errorful). Also being at the right stage in a project. Being at the maintenance end, constructing these models/simulations is harder than when you're taking on a novel project.
But, simulations also aid V&V efforts. If you can construct a full(er) simulation of the radio network, your V&V team can start creating test cases, procedures, and models and verifying that they're reasonable. From a protocol perspective, this is relatively easy on our radios, setting aside timing. So ignore time (as a strict concept) and instead focus on time slots. Create a simulation where each tick corresponds to one time slot, let computation run as long as needed. At the end, you'll see what should show up from the radios given some inputs. Run these through your data analysis tools to exercise them, and when you have functioning radios you can use these tools to create simulated network peers (pre-generated network data played back to the radio being tested).
For requirements traceability, just stop using Word and Excel. Use an actual requirements database. I know DOORS sucks, but it's infinitely better than Word and Excel.
Raymond Chen's blog in particular was good enough to get me to buy his book (which definitely did not disappoint).
Other ones I subscribe to are the Microsoft Edge Dev Blog , Mark Russinovich and Games for Windows and the DirectX SDK
And there's a few that have unfortunately not been updated for a long time, such as Larry Osterman, or have come to an end, such as Rico Mariani
Disclaimer: I am currently employed by Percona, although that is not my motivation for sharing this.
A close friend who really knows his way around marketing has been advising us to write more fluff pieces. We're really torn over this because we strongly dislike vapid content as consumers. I would be really curious to hear any anecdotes on the relative merits of the different strategies.
 - http://sangaline.com
 - https://intoli.com/blog/
- Facebook: https://www.facebook.com/Engineering?sk=notes
- Google: http://google-engtools.blogspot.com/
- Twitter: http://engineering.twitter.com/
- Linkedin: http://engineering.linkedin.com/blog
- Dropbox: https://tech.dropbox.com/
- Instagram: http://instagram-engineering.tumblr.com/
- Netflix: http://techblog.netflix.com/
- Flickr: http://code.flickr.com
- Etsy: http://codeascraft.etsy.com/
- Yelp: http://engineeringblog.yelp.com/
- Heroku: https://blog.heroku.com/
- Airbnb: http://nerds.airbnb.com/
- Bitly: http://word.bitly.com/
- Evernote: https://blog.evernote.com/tech/
- Highscalability: http://highscalability.com/
As an example, our frontend engineering team just wrote up a series of posts about implementing graphing in React, migrating from Redux:
And I wrote about recent backend changes to our time series storage: https://blog.serverdensity.com/time-series-data-opentsdb-big...
As for actual companies, as an embedded dev I think Atomic Object (https://spin.atomicobject.com) and Free Electrons (http://free-electrons.com/blog/) both do a good job.
Autodesk Stingray (formerly Bitsquid): http://bitsquid.blogspot.de/
- Apollo/Meteor: https://dev-blog.apollodata.com/
- Auth0: https://auth0.com/blog/tech/
- Chroma: https://blog.hichroma.com/
- LogRocket (my company): https://blog.logrocket.com/
They run a pretty modern cloud stack using fun technology like terraform, which gives me serious envy as well as inspiration. They also have some ridiculously high quality posts with open source code included such as:https://segment.com/blog/the-segment-aws-stack/ (highly recommended reading).
I love it because the articles are often small, one off tips re: vim, the command line, ruby, etc. Really neat stuff.
Toptal has extremely active and wonderful blog for developers, designers and finance experts.
The reason I can make that claim is because Toptal's blog posts are contributed by members of our network, all of whom are verified experts in their fields, and we guide them through the entire process to help them write the perfect blog post.
We publish new articles almost every day! We invest a lot of love into maintaining our publication and try to publish the most useful content for fellow experts.
Really surprised it wasn't mentioned yet. They do really in depth posts and show metrics too.
...a pretty mixed bag with some product & PR posts inside, but the gems inside (especially SRE / CRE life lessons) are pretty awesome.
Also, we're getting started ourselves with some quality tech material - not too much there yet, but our Debugging Postgres post got a lot of love from the community: https://www.justwatch.com/blog/
Especially @rimusz, who is not technically part of Deis engineering team (?) :
Partially self-serving post because I'm also published here:
Unfortunately there doesn't seem to be an index of the posts on one page! There are links to relevant posts on the sidebar and both of those have good relevant links.
These guys I worked with for a long time, to get my post out! It kind of stung a bit when the v1 PAAS was officially deprecated before I got to put it online. But in terms of support, the newer solutions are only better. The lessons learned putting this post out are still valid, even if the specific product of the tutorial is no longer relevant. (I used this process to create my own CoreOS bare metal cluster, and I don't actually use DigitalOcean in my day-to-day work.)
But the other content on the blog really was a good, focused introduction to Kubernetes and friends for me. Deis is the team that created Helm and it was subsumed into Kubernetes (and Helm Classic, which was another iteration before it was part of Kubernetes proper.)
This series of posts below describes in details how they built their database engine from scratch and the data warehouse service.
Disclosure: I work there and have written articles for the blog.
At the moment we mainly blog about our experiences with Golang (our language of choice right now). But really it's open to any topic someone in our engineering team is interested in writing about.
We aim to keep things visual, interactive and example-based. For example Jim Fisher created an interactive animation of Golang's GC algorithm here: https://making.pusher.com/golangs-real-time-gc-in-theory-and.... We also managed to embed Golang's trace visualiser within one of the posts: https://making.pusher.com/go-tool-trace/#tour-of-the-go-tool... (using some pretty dirty tricks).
Ok Grow! blog: https://www.okgrow.com/posts
Differential blog: https://differential.com/insights/
FittedCloud is a small start-up that does automatic cloud resource optimization. They post regularly and go into topics ranging from technical details of machine learning to cost optimization for AWS resources (EBS, EC2, DynamoDB, etc).
As far as I can tell, they are the only company around that can automatically scale up and down EBS resources in a way that the customer only pays for what he or she uses, rather than paying for over-provisioned, unused storage...all without downtime or performance hic-cup. These guys know a lot about the cloud and storage.
Square put out a lot of fantastic libraries, and much of their output is basically essential for Android.
 - https://engineering.doximity.com/
Most Scala consultancies/companies have their own internal blogs and most are excellent, for instance, underscore: http://underscore.io/blog/
start here: https://eng.lyft.com/matchmaking-in-lyft-line-9c2635fe62c4
A bit self-promotional since I blog there too, but I'm greatly outnumbered.
For web dev, Netlify posts frequently and even has podcasts: https://www.netlify.com/blog/
I'm trying to get our tech blog off the ground but it's difficult to get buy-in from everyone.
Thinking further on this.. Apple is totally not in the picture or i do not know.
Lots of DevOps focus currently but also contains some stuff we're working on with machine learning, blockchain, and we are working on a much broader range of content.
Plus we'd love more feedback on the posts :)
It's not a corporate blog, but if you're interested in Python, go check it out for recent postings from Python-related blogs.
On the other hand, Cloudflare, Stripe and Netflix have some awesome articles too.
With posts like these one: https://blog.packagecloud.io/eng/2016/06/22/monitoring-tunin...
This is a good one
I also enjoy the Hacker Noon articles 
Personally, HN is where the content is the most important thing, usually disregarding the poster, but I'm interested in your view.
Btw best luck with YC interview!
It's an object storage engine (think S3, but it's open source and you can put it in your own data center) that's excellent at storing unstructured data.
It's completely deployable and usable without any other OpenStack projects.
There's S3 API compatibility for it. It supports globally distributed clusters. It supports multiple storage polices that can be either replicated or use erasure coding. It's designed for very high availability, very high durability, and high aggregate throughput.
One of my favorite features is being able to create sharable, expiring signed URLs to any object in the cluster.
Some of the common uses for Swift include storing user-generated content (eg images, videos, game saves), static web assets, movies, scientific data sets, backups, document sharing, VM and container images, etc.
API docs: - https://developer.openstack.org/api-ref/object-storage/
Docs: - http://swift.openstack.org
Vagrant All-In-One setup: - https://github.com/swiftstack/vagrant-swift-all-in-one
Come say hi! - #openstack-swift on freenode IRC (I'm notmyname)
I use IPFS. IPFS is great for sharing multi-gigabyte size files between machines in a cluster, bit-torrent style. In my case it is a couple of hundred Amazon spot instances that can come and go very fast and need to get the data ASAP to start some calculation, the same data for all nodes.
- Ceph: Very flexible. Supports many different kinds of replication. Has high overhead compared to local disk (on the order of ~50%) and was (for me) prone to hard to diagnose issues. Can be annoying to setup if you're not doing it on a supported Linux distro with ceph-deploy. It looks like Bluestore (a new on-disk format for data) will significantly improve performance but Bluestore is extremely RAM hungry.
- GlusterFS: Much faster than Ceph but less flexible. Has odd requirements about "bricks" being the same size. Much less RAM hungry than Ceph.
- A bunch of smaller ones I can't recall. Mostly discarded because they performed badly or lacked replication options (I really wanted erasure coding).
In the end I'm simply sharding my data manually. It's not as scalable but it's much more performant.
I think in production I've used NFS, DRBD, GlusterFS and OpenStack. Each has their pros and cons, and without a precise set of constraints it's hard to know what how to usefully answer any question of the form "Which would you recommend? Why would you choose this?"
Distributed storage tends to be required either because you want redundancy, availability, or because your "stuff" is too large for a single box to host. But with a vague question it could mean "How do you backup boxes?" or something entirely different. (For example "distributed storage" could end up mapping to a pair of MySQL hosts, or a replicated PSQL database..)
- Personal files, stuff I can not afford to lose (photos,documents etc.) - Full archive on S3, full archive on a home server, 4 clients with partial copies.
- Big data stuff I can afford to lose (VM images, media files etc.) - Around 6 TB, each file has two copies split between 5 hard drives on home server and Hubic.
Besides, erlang definitely gives you new perspective in building large scale system; supervision tree (let it crash), the actor concept, message passing, preemptive vm, built-in distributed erlang nodes, the repl, hot code swapping - any much more
The power comes from the whole ecosystem. Concurrency is built from ground up on language & vm level.
If you are not there yet, take every opportunity to learn a new language, doesn't really matter which as long as you have a good breadth (e.g. don't do entirely functional languages).
Extremely low cost, shared hosting but allows persistent processes. Can use MySQL databases.
It is really simple to setup although you get some delay due to their "sleeping dyno" system. 
I use cloud9 to develop on them and then host the app on cloud9 or Vultr too.
Hire me I would say, although I'm not sure its possible or best thing.
Leave as quickly as you can?
Have fun and let it crash ?!
1. They're motivated.
2. They're doing activities that lead to the right kind of learning.
So if you can teach well (or learn how to teach well) and they're motivated, this is a problem that will be solved in time.
The problem with a startup is that you're often on a tight deadline. The nice thing about a startup is that often software development's goal is learning (e.g. "are there any customers for this product?"), not building something that lasts, and so "quality" may not matter.
So it's very hard to say in the abstract without understanding the constraints you're under and the company goals.
Mitigate risk by having everyone write test code and do peer code reviews.
You'll probably do a lot of fire fighting initially. If your team is >7 and truly none of your devs are "competent" (unlikely), then hire someone who is, even as a contractor. If you don't have headcount, then fire someone to get headcount. You need at least one other person you can rely on to fix urgent problems if you don't have bandwidth to do it.
You said "very small start up" so I'm assuming team is <15, but if it's that size then you prob need sr devs to help you lead the team. With a couple good hires, you can wrangle a fairly large team of very junior devs.
I've had dozens of devs (~30) report directly to me, and a lot more than that indirectly. I've never seen one who was totally incompetent. There was one guy, and no matter how much I tried to encourage him, he was performing way too poorly so I removed him from my team. Years later by coincidence I found out that he was working at a friend's company. I asked about him, and it turned out that he was a strong contributor on his team.
People sense when you don't respect them and once that happens the interpersonal dynamic will negatively affect the team, so you have to police your own attitude. Maybe you don't have much experience leading a team. You could say, possibly, that you are as incompetent leading the team as they are in swdev. Please try to respect them regardless of their competence level.
Find out your dev's strengths/weaknesses, so you know who to use when. I had one eng who wrote the absolute most heinous code imaginable, but he got tasks done super fast. I had to rely on him several times to meet customer delivery dates -- and had to accept the technical debt too. You make those tradeoffs.
As team leader, facilitate their growth. It's actually a good learning opportunity for you.
In any sort of leadership role you're supposed to be trying to extract the best work from your people. Generally you are not going to be able to do that effectively if you are looking down on them. Give them a bit of respect, encourage incentives and comaraderie. Your new job is to be explaining stuff to them so they can work better. If you don't like them figure out how to make them better - its usually easier and way less expensive than firing and hiring.
The first question is, are they teachable? If they are, the best answer is to teach/train them so that they become more competent. If not, the only options are to fire them or quit.
The second question is, presuming they're trainable, are you able and willing to train them? This isn't just a question of your knowledge. Do you have the willingness to do so? Do you have the patience to do it? If not, you're back to fire them or quit. But in this case, the problem is not just the team. Part of the problem is that you aren't able or willing to do part of what leads do.
You guys have made a lot of great points and I've come to see how I've already set myself and my team up to fail with my poor attitude.
I'll work with my team to give them projects that will allow them to grow. The current CTO is a massive micromanager and I'll make sure not to make the same mistake.
Also, please drop the Big O thing. I chose a random CS concept for the sake of anonymizing myself.
Well that's not so much just management. That's also how teams work. Somebody has to play goalkeeper and hopefully there's someone who can kick the ball in the net and a bunch of people in between able to run (a lot). And some people who can come off the bench when someone gets injured.
Sure I hate sports analogies. Being a good teammate is about more than technical skill or resume. It's about playing well with others.
It's hard to give a recommendation without knowing the team. However, choosing the first option is a long, tedious and draining process. You learn more about management but will rather degenerate in general. So leaving and looking for a better environment might be an option.
Maybe it is also good to just rely on your gut feeling.
The service was supposed to identify spammy e-mail by address or subject, and file them away. It's part of the business model to screen e-mail addresses and subject lines, I suppose. And I could understand them selling analytics on the contents of rolled-up items -- Wal-Mart wants to know what Target is selling, and demographics about those receiving offers, etc. You'd get some interesting data about what offers actually get clicks, too.
But the NYT article says they're selling numerical data out of Lyft receipts. That's not spam. At no point did they disclose they would troll through your non-spam e-mail for words or numbers interesting to the highest bidder.
On the other hand, this was hidden deep in the TOS and Privacy Policies, whereas some extra disclosure probably would have helped the backlash they're getting today.
I hate the phrase "if you're not paying, then you're the product", because plenty of freemium models don't follow that narrative, but in this case it seems crystal clear. I supposed we're just seeing how naive people can be with their personal data (email inboxes).
I used Unroll.me I thought they just sold ads.
The original article about the sale doesn't talk about selling the data https://techcrunch.com/2014/11/24/rakuten-slice-buys-unroll-...
Advertising an IPO on CNBC? That is insane.
The front to the scam is deep.
https://www.youtube.com/watch?v=pQg6WPlAQWE (Master P - Yayo Theme song).