I've been working on an iOS app to help hackers meet each other. Its called HackerLunch and I'm hoping to launch it next month (hackerlunch.com - sign up if you want me to email you when I launch).
The app basically pairs you up with another hacker everyday at lunch (or less frequently if you want). I tried to make the experience as frictionless and easy as possible. I'm hoping people will find it useful.
The best way is engaging smart coworkers. These are the people that are going to vouch for you, shortcut the hiring process, help carve out good opportunities for you.
Other things I've done with varying success is randomly contact people off forums that I might be in a position to immediately help; inform existing contacts and ask them if they know people that I should meet out there; develop parallel hobbies like soccer, rock climbing, etc that can segue into deeper friendships. Engaging quality coworkers and these other activities tend to compound over time.
As it turns out, business is business, even with family members that you trust. He ended up almost never helping me on the startup. He didn't quit his full-time job, and blamed me for not creating enough value for the startup. This blew my mind since I had done everything (design, development, sales, marketing, social media), when all he did was chip in 10k or so for 4-5 months of runway. He left me to do all of the work, and legally I couldn't do anything about it. Finally, he stopped paying me.
The worst part is feeling exploited by someone you love and care about. I have no doubt he would have committed to the startup had I gotten significant traction. I'm actually glad it didn't work out, because I would have just probably been screwed over even more down the road. It's sad knowing that family will even do this - burn a close relationship just to get dirt-cheap equity in a startup. "If it goes well, commit to it, if not, you just saved 60k by not having to hire a full time engineer. Plus you won't have to quit your high paying job, so there's nothing to lose!" - I feel like this is what went through his head.
I can't speak towards getting screwed on an idea, but if I learned anything from this it is that nobody can be trusted. Sure, I'll start another business one day and will be vulnerable to my cofounders, but never to this degree. Get it on paper, always. And constantly ask yourself, what is the worst thing that could go wrong at this point in time. Always be prepared for it to happen. If you aren't open to this, you probably shouldn't start a business, because sometimes things go even worse than you might think is possible.
*until you're experienced enough. You must be able to distinguish short term and long term greedy behavior, be able to act selfishly most of the time without appearing selfish, understand and practice game theory. Until this point, you're just going to be taken advantage of until you're either sucked dry, or you've learned all the right lessons.
Every non-exec employee that joins post cofounder up until a year before IPO or 8-9 digit acquisition gets below market compensation. There are hundreds of startups and probably tens of thousands of people that get chewed up in between.
Don't join a startup in this trough of sorrow, unless you're ok with getting less money. Hopefully you're getting better status, experience, position, power, leverage, or something tangible out of the deal. Money-wise you're much better off being a quant or Goo-ama-twit-book. Arguably it's psychologically healthier too.
The biggest problem in startups is the prevalence of low functioning psychopaths. You assume you both are long term greedy, but turns out they're just ruthless social climbers looking to take advantage of whoever is inexperienced enough to get exploited.
Take SnapChat Evan Spiegel for instance. Regardless of Spiegel's excuse to cut out Reggie Brown (whether it's lack of contract, lack of tech skills, lack of ability), Spiegel flat out denied that Reggie Brown made any sort of attribution. How ridiculous is it that hes a potential billionaire and he's trying to stick it to his former friend and frat brother by denying that he had any involvement at all?
Evan is not the only low functioning psychopath by far. Once you get burned a couple times, you'll start to recognize them and their behavior patterns.
High functioning psychopaths are a different animal. They are usually long term greedy, and are great to work with as they have internalized game theory. As long as you both can mutually benefit, working with them is great. They are ruthlessly effective. They get deals done, manage people well, focus on the right things, and treat you very well. All you need to do is stay useful.
So for Django/Rails, anything that goes over CRUD operations would be good. For Flask/Sinatra, an API endpoint. For Meteor, a small, realtime chat application. You get the idea.
And keep it simple. Don't try to cram everything into a tutorial especially if there is a lot of complicated setup required. Just give me the lay of the land and at the end of the tutorial a link to the reference docs so I can keep going if I want.
Primarily* Login scheme* i18n translation* Ability to display content from databases
Secondarily* API consumption (e.g. twitter, instagram, etc.)* Caching* Dynamic content support (JS and JS frameworks)
That's the same principle in physics (and really in all sciences),where from a lot of seemingly disparate and noisy experimental data,you elaborate a general theory, with a model that's beautiful andsimple (ie. which reduces to a few simple and nice equations).
Some design patterns are useful to perform this abstraction, like theinterpreter design pattern or the emacs design pattern.
On the other hand, it means that most of the code you will write oruse, won't deal with the specific problem, but with more abstractconsiderations (such as how to manage resources, or how to transformcode), like in physics, most of the theory don't deal with actualphysical phenomenon, but are actually mathematical theories that seemquite remote.
Let's take a few examples.
Often, users specify more cases than needed. For example, they maysay that some price depends on some parameter, such as the number ofpersons:
1 -> $10 2^0 2 -> $20 2^1 3 -> $40 2^2 4 -> $80 2^3
Actually, there's always a simple formula, since any set of N pointscan be extrapolated by a polynom of degree N+1.
The interpreter pattern let you decompose the operations you have toperform in the different cases, in a set of simple operations that arespecific to the problem domain. The specific cases can then expressedas simplier "programs" using those operations. In a way, this allowsto decompose the problem in two orthogonal parts, one set thatcontains generic simple operations, and another that contains simplierprograms specific to the concrete cases. Since those real-life casesoften change, having a domain specific language to express them letalso write them more easily and quickly, and even dynamically(ie. change the specific case programs without changing the software,just changing the data that is intepreted).
Another pattern found in emacs, and similar to the garbage collector,is the display engine.
In the case of the garbage collector, we decouple the memorymanagement from the actual program, by having a separate algorithm,orthogonal to the problem specific algorithms, to deal with theproblem of memory allocation and release. Once the garbage collectorhas all the information it needs to be able to release safely thememory that is not used anymore, it can do its job without interferingwith the domain specific program.
Similarly, the display engine is entirely decoupled from the rest ofthe editor in emacs. The display engines is able to detect by itselfwhen the contents of the buffers change, and to compute alone thedifference between what is displayed on the screen and what needs tobe displayed after the changes. It can then produce an optimizedupdate sequence for the screen or terminal. The rest of the emacseditor routines can modify the buffers with absolutely noconsideration for the displaying, which simplifies greatly their code.
In conclusion, if write your program as some general rule performingthe same treatment to all cases, and encode the specific real-lifecases as specific data to be processed by the general rule, you canobtain a program that still handle all the specific cases, but doingthat in the most general way, and therefore being as clean and as welldesigned as you wish.
Yes bad things do happen in the real world: connections fail, files are missing, input are invalid, programs have bugs,...
Yes you do have to handle it: validate data, check status code, add guard conditions, report errors, document input, returned codes and thrown exceptions. Here is a nice article on error handling in programs if you are interested (for node.js but most is universal): https://www.joyent.com/developers/node/design/errors.
Yes it makes program larger. That cute 10 liners that throw an exception to the user's face if anything goes wrong will end up larger.
But does it make the code bad? No it does not. It makes the code correct. In business software, edge cases and error handling routinely take more effort than the standard case where everything goes right. It's not a wart, it's a fact of life.
A piece of code is not finished when it appear to work. It is finished when it is written, robust, clean, documented and tested. Cutting corner means that when the bug report inevitably arrives a lot of time and energy will need to be spent. Way more than doing the right thing the first time.
"that's exactly what the really productive, fast paced coders in my company do.". They appear productive and fast paced but they are not. They only appear to be so because they twist the definition of done. By moving the goalpost they throw a bunch of garbage over the wall wishing good luck for some sucker later on. But, hey, it sures look good for management. That's not even adding technical debt, technical dept implies you make a deliberate trade-off. This is just burning money.
The general strategy is to make sure what you're designing fits into an existing design pattern. It should be rare for you to have a situation where you're not within the confines of a well-known, well-understood design pattern. The sooner you become familiar with patterns, the more rapidly solutions that fit those patterns will come about in your head. The solutions will also feel less ugly, since you're essentially still being conventional.
You should be able to describe, in English, what design pattern you're using to come up with a fix.
 I didn't say this was a perfect strategy, but I think it helps.
 Well, it helps me anyway. :-)
Other than that you need a balance and since your customers pay, they have a priority so if they need a feature, you might first want to deliver something that works and then re-factor.
1) Try to get the implementation 100% correct on the first try. I don't mean that you should implement the whole system in one go, but the part you implement should do exactly what you want it to do (i.e. no typos, mixed up variable names, etc.). At first I thought this was a bit harsh, but it was amazing how much debugging you can avoid with a little more focus in the beginning. Also, it forces you to adopt good coding practices and make sure your algorithms are fully specified.
2) Don't tolerate tedious work. If there's any part of your workflow that's tedious, spend a lot of effort trying to minimize it. Some examples of things you might do: write a script, refactor your code, use a better editor, use a different programming language. You won't learn much from changing 100 variable names to camel-case, other than how painful it is. You will learn something from writing a tool to help you do that.
3) Think about how various libraries and frameworks you use are implemented, especially if they have features that seem like "magic". Try to reverse-engineer their design, or take a look at their source code (if available). This is a natural way to gain exposure to new ideas.
Regarding more "theoretical" subjects like algorithms and data structures that you might need to know for interviews, you could practice on programming contest websites (e.g. www.codeforces.com) or read some textbooks. However, in my opinion, those are not nearly as important for a software developer as the three things mentioned above.
Practice, mentors, books, new challenges, rewriting code, etc.
1) What are the most important problems in your field?
2) Are you working on ONE of them?
3) Why Not?
The caliber also incorporates Seiko's unique Kinetic Auto-Relay technology. It is powered by the movement of your body with Kinetic Perpetual quartz accuracy and reliability. With Auto- Relay, the watch will, when not worn, operate normally for 6 months on a full charge, after which it goes into "sleep" mode for up to four years. The accuracy remains and the calendar continues to show the correct date, month and year, but the hands stop, conserving energy, until, once the watch is put on again, the hands automatically reset to the correct time.
Take that 'smart' watch!
Nowadays you go connect your phone to a charger, connect your laptop to a charger, connect your tablet to a charger, maybe connect your bluetooth headphones or headsets to a charger and now also connect your watch to charger. Quite the odyssey.
Brave new world. It's really time to invest tons in new battery research.
So probably the answer to your question is no, I would not. I have a long lived GPS watch, and I already charge my phone once every few days (Moto X).
Whenever I'm in a context where I could use a smart watch (as opposed to an athletic watch), I have my phone anyway, which is better (for me).
I'm also curious if a smart watch is subject to a voided warranty if the water detector dot inside indicates water got inside, like a phone. My watch is advertised waterproof to 50m, which is much deeper than the odd creek or a toilet.
That's the reason why I haven't been interested in purchasing a Moto 360, Galaxy Gear, Sony Smartwatch, or similar. The Apple Watch is no different.
The Pebble is the only remotely interesting smartwatch around, but I haven't got one simply because the benefit doesn't out-weigh the cost (although if someone gave me one for free I'd give it a fair shake).
The real question for me is: What does a smartwatch do that the cellphone in my pocket does not? The fitness stuff is one answer, but frankly a $350 fitness tracker is a little expensive relative to other products in that category readily available (e.g. Fitbit @ $99).
Exactly the same argument was presented for this Nokia flip phones versus my iPhone. I mean I used to have a mobile phone that went a week or more between charges - now I often don't make it from lunchtime to bedtime.
But guessed what I typed this on?
It's a simple question of cost versus benefit. I have to recharge myself every day, but I think it's worth it. Electric cars have to recharge overnight.
> Is this one of this things that I will be doing anyhow, or just a passing fad.
To me, the advantage of having a wristwatch that didn't require recharging was offset by the fact that it didn't do anything except display the time, and not very accurately at that.
Cross platform (Linux, Windows, Mac for Password Gorilla itself).
Several Android apps that inter-operate with the same format password storage file (Bruce Shiner's PasswordSafe format file). Scroll part way down the above page to find references to some of the Android apps.
Your passwords are stored in an encrypted file stored on your local machine. You can do with the encrypted file what you wish. PWGorilla itself includes a merge feature that merges encrypted files together, and alerts you to the differences so you can fix things up.
Its browser integration is through the OS clipboard. However on Linux the integration is almost to the level of an auto-type plugin (because the X11 clipboard works in a way that allows the better integration).
So, it fits these of your requirements:
Cross platform (Linux, Windows [check], Android [secondary app])
Lets you keep your own data and sync it however you want [check].
Integrates with browsers [partial check].
So it's close. Not 100%, but close. It is also GPL open source, so you've got nothing to lose in giving it a try.
[edit: add a couple paragraph breaks]
 - http://www.keepassx.org/news/2014/04/433
 - https://launchpad.net/~keepassx/+archive/ubuntu/daily
Interesting you should mention this. I just got done installing Keepassx on Linux, but it's cross-platform (Windows, Mac, Linux):
Also, easier, if you're running a Debian-based Linux:
# apt-get install keepassx
And finally, there's an Android-compatible program that reads and uses the same database file in the same way:
After creating some passwords I tested all the versions' ability to read and issue passwords from the master database, it went off without a hitch.
BTW all the versions are free.
As to "without cloud", no problem, just copy the master database around to where you need it. I have an easy way to directly copy (i.e. no cloud involvement) the database from my desktop machine (where I create and test the passwords) to my Android devices, where it works perfectly.
EDIT: Oops, I see you want a Windows version with browser integration. Sorry, I didn't test that mode.
EDIT: Oops, didn't see you already looked at it. Well, KeePass doesn't necessarily need browser integration -- get yourself a cheap VPS, put your db file on there, and just point your local KeePass at it (it's entrypted and password protected, or key-file protected, etc).
There is also an Android version for KeePass. So... seems it would fit all your use-cases.
The thing is, though, that your losing your time and focus is a big opportunity cost of hiring an intern, so you shouldn't hire someone you doubt can do what you want. Hire carefully, pay a normal salary and you'll be happier and also attract better candidates.
Have you considered running an affiliate program?
There are a lot of salespeople on comfortable base salaries that get more than 10% of revenue they generate. Some of them have no real experience or qualifications.
Then again, there's also a depressing number of startups boasting about their funding and great new office location in adverts offering the opportunity to do a month or two of full time telesales for them with compensation only for top performance
It might be too early to hire an intern or sales rep, but definitely read up on Jason Lemkin's sales stuff. It'll give you good benchmarks and rules of thumb that will save tons of time figuring out on your own.http://saastr.com/2013/01/11/when-you-hire-your-first-sales-...
This is a little different than delaying on background colors, but this has been my experience.
Good luck at globocorp! :)
On the site it says:
> there is no fee and its completely free.
So why not change that? Set up a 3 tier 'buy' page and charge $0.15 per merge if you buy 10 merges, $0.12 if you buy 50 and $0.10 if you buy a 100 pack.
That way you can figure out if people are actually willing to pay for this service.
Open sourcing it is great but that still requires someone to run it.
Just try making it a paid service first, if that does not work you can always re-consider and make it open source after all.
But if you don't have the time or want to expend the effort, I agree with what some others have posted here. Open source it with some decent documentation and screenshots. It could serve you well down the road.
I'd say I'd like to play around with it. But merging data files doesn't work over a web interface :\ since then I'd need to upload like 4 GB lol.
I am a firm proponent of libre software and encourage you to open source it under a strong copyleft license. If it is really useful, it will be picked up someday and looked at. If not useful, then it's not a great loss to you.
You want to be educating people of what you are doing. Copying an idea has little to do with the codebase being either small or clonable and more with the people behind the idea. And I don't mean just about having courage. Ideas by themselves are roughly worthless. There's no market for them. There's no place where one can go and buy an idea.
Describing your idea in detail doesn't mean other people will copy it. First they'll have to be convinced it's a good idea. If you ever tried to change anyone else's mind you know by now how hard that is. Not even founders themselves can predict how well their own ideas will do. Larry and Sergey originally tried to sell Google to Yahoo for $1m.
And even if people are convinced your idea is a good idea, they'll still have to compare it to the existing idea they are already working on and see which one they're more likely to do well with. A better, more ambitious idea might seem frightening. A simpler idea might seem more tangible. It could be at least a year before one can convince themselves it's ok to let an old idea die, and at least two years to pursue an ambitious one. Ambitious ideas really are that frightening.
If you are not convinced choosing between two ideas like this is hard, here's a simpler test that doesn't even involve a good idea. When you have only a bad idea and no good ones, how long does it take you to stop working on it?
Regardless, good ideas will have competition anyway. You can't avoid it. So actively working on the next step of getting feedback on what you have is a sign you are strong enough to take the next steps, however small they seem, as opposed to hiding to avoid competition.
Dropbox launched on HN (https://news.ycombinator.com/item?id=8863) and their biggest gain wasn't the number of users they got from HN. Their biggest gain was probably that they became less frightened by the idea of one day evolving into a startup with 300m users.
If you've got a world-changing, hugely scalable, easily copyable concept, then yeah, probably don't post it here. But otherwise, it's all in the implementation, and posting it on HN probably won't change that.
The free market is a lot more "neutral" than Net Neutrality would ever be.
You'll need to know both, at least for the time being - many open source libraries are written in Objective-C, so if you need to make tweaks, you'll need to understand Objective-C. Also, a lot of existing tutorials aren't written for Swift.
One really important thing to note is that even though the languages are different, the underlying iOS/OS X libraries and frameworks are the same. The hard part isn't really learning the syntax of the language, it's understanding how to accomplish what you want. For instance, showing pins on a map or displaying items in a collection view.
FWIW, I teach iOS app development, and I think that beginners should learn Objective-C, not just Swift.
Swift is a replacement for Objective-C in Apple world. But that doesn't mean Objective-C is going anywhere. It has rich ecosystem and experienced developers all over the world.You can create application using both languages simultaneously which allows you to use mature libraries or frameworks in Swift.
Language is a tool. Companies don't hire programmers for knowledge of specified language but for the ability to solve problems.
Senior developers only need Obj-C for now, but should be learning Swift already.
Unless we can come up with an alternative revenue source to suggest Oracle use instead to fund client-Java then it will continue no matter how disapproving everyone is. Oracle isn't exactly a company who cares about how much they're liked.
I have no idea exactly how much McAfee pays Oracle, but I also have no suggestions for alternative revenue sources (as ads on the download page are poor generators). At least it isn't spyware/malware, we can be thankful of that (jokes about McAfee aside, it is still better than the Ask Toolbar in my view).
Anything else if either going to hurt your ear or let the noise in or both.
Start looking here for something in your price range, and check reviews surrounding any particular set (http://www.head-fi.org/a/headphone-buying-guide)
Then a pair of $25 Sennheiser HD 200 series headphones. Cheap, great sound, fairly decent at isolating noise. Why spend $200 if you don't have to?
Alternatively, look at noise cancelling headphones like the Bose series, but try before you buy, some people cannot stand the "pressurized" head feeling of noise cancellation.
The only advice I can give you is try many headphones in person with music your familiar with and like. Shops like to play just the right music that compliments them specific phones. I settled on Brainwavz after testing Sennheiser, Grado, Beats, Audio Technica, Beyer, Koss and Shure.
Echoing another comment, closed-ear cans are a must for the office but I think open-ear cans sound better when you can use them. I have Grados but ears are a personal choice thing. There are some excellent in-ear earphones (Etymotics, for example), but these take some getting used to.
I am wearing those up to 5 hours a day.
- Fits nicely around me large ears
- Cable has an extension
- Audio quality feels better than with any beats I have worn
Love them. Charges in just over an hour, lasts all day. Connects over bluetooth to my iPhone for music or phone calls or to my laptop for Skype calls / music. Work great when landscaping or cleaning the house or working out. Really, I wear them all the time. Comes in black also.
They dampen the environment so much, that even when I have reasonable lound music, I get surprised about how LOUD the world around me is when I pull out the earphones..
- I have the access to the server so I'm going to take down the website (I can do other suff as well)
No. Ask lawyer first.
- I'll use my SEO skill so the first result on Google will be "XXX is someone cannot be trusted"
- I have a evidence that he/she was acting in a conflict of interest. I'm gonna email board members and investor.
It seems to turn out that this:
... refers to the company's website. Thus stipulated, my "No, talk to a lawyer" is "No, that would be insane; you could end up criminally liable".
If you haven't been paid in full Speak to your employer first to try to sort the problem informally. If this doesn't work, talk to Acas (Advisory, Conciliation and Arbitration Service), Citizens Advice or your trade union representative. You have the right to go to an Employment Tribunal to get your money.
The following links will help you:
- ACAS: http://www.acas.org.uk/index.aspx?articleid=1461
- Citizen's Advice: http://www.citizensadvice.org.uk/index/getadvice.htm#searchb...
- Gov: https://www.gov.uk/understanding-your-pay/deductions-from-yo...
If your employer is refusing the talk to you, then you are left with little choice but to move on to arbitration. That's what ACAS are there for.
Approach the whole thing calmly. Do not get angry and make stupid mistakes (like deleting websites or code). Do not shout and scream at your employer. Remain calm and civil. I often like to pretend that I am acting as a consultant for myself when dealing with situations like this. It helps you to remain more impartial.
Your job is first to understand exactly what is owed. Then you need to extract x.xx from your employer. You then would also like an explanation if they feel like keeping you in their employment. Then should you choose to leave, because their explanation was not to satisfaction, then you would like a letter of recommendation. However, do not quit until you speak to Citizen's advice first. There maybe implications if you quit before your resolve your greviances.
...and stop posting nonsense stuff like this, even though you may be justifiably angry. That sort of thing is a good way to end up being the defendant in a lawsuit, instead of the plaintiff.
Stop with the revenge fantasies and call a professional. Right now you are angry because you have been shafted by this employer, who has basically put one over on you. If you start making angry threats you are likely to end up in even worse trouble and your employer will end up looking like the victim while you will look like the villain. I promise you that getting a letter from a solicitor will rattle your employer a hell of a lot more than any threatening behavior you could possibly engage in.
As virtually everyone has said, the very first thing to do is get in touch with a solicitor. The next thing to do is follow their advice, which I would expect would be first sending a "srsly, pay me" letter, and then going to court if that doesn't work.
If I was your employer? I'd get a restraining order against you and use this post as cause to fire you, as well as keeping it for a great defense against a lawsuit (since you've painted yourself as a malicious hacker).
Based on your contract, you should be able to get an enforceable demand for your employer to pay you. If you are not paid and the deadline for payment expires, you might be able to get a lien over the server and other property. At that stage you can shut things down, etc. If the employer is a company then there might be a case for flagging them as trading whilst insolvent. Under UK law that is a biggie.
As @issa suggests maintain your dignity and professionalism. Taking revenge could put a dark cloud above your reputation.
Unless you have political skillz be very careful with how and with what you contact board members. They might be in cahoots with your problem person. I'd suggest in person meeting so you can better assess the situation. Emails are often very unsuitable for such information.
Collecting may take a lot of time and energy. That time and energy is on top of the time and energy spent actually showing up at the office and doing the work, and the time already spent is a sunk cost.
Finding other gainful work gives a person options. It gives a person time, and reduces financial pressure. It lets a person look forward.
Remove this post, walk away from the job, gain other employment and try and get paid from them for the work you have done.
Have you seen the movie "Office Space"? There is a scene where they just stop paying an employee in hopes they get the picture and just leave on their own. A non-confrontational way to part ways....
Don't do anything retaliatory or hostile until you've exhausted your legal options, because it will either leave you liable for damages, or harm your case, or both.
It also somehow manages to miss the point of what the Net Neutrality debate is even about... At this point it is mostly about peerage fees and if ISPs can extort them from third parties. It won't suddenly cause internet speeds to drop to pre-broadband levels, even for non-fast lane services.
I now have a negative opinion of "MaxCDN" and "neocities." I've never heard of them before, so now my only opinion is a negative one. Good job?
This is misguided. These guys have the right idea:
That is more constructive, gets an actual message across (rather than passive-aggressive nonsense), and best of all might actually swell a movement for positive change.
As an aside, if I was a customer of either "MaxCDN" or "neocities" I'd be pissed. You guys are no better than the ISPs, purposely degrading third parties' traffic (between your clients and their users) to further your own agenda.
Personally, I'm 41 with 15+ years of IT experience and I have never felt any sense of age discrimination at all. But, I'm also constantly working to keep my skills current, and I do a lot of things to make myself attractive and known in my area - speaking at events, writing articles, blogging, etc. shrug
My feeling is, if you're sitting at 15 years of experience and you've been, for example, writing Java code for 15 years, go pick up a Scala or Clojure book, or learn R or take the time to learn Hadoop, Spark, Storm, Kafka, MongoDB, etc. If you have skills that are "hip" at a moment in time, I don't think it's usually going to matter much how old you are.
OTOH, if you are a 15 year Java programmer who is still writing Java 1.2 code for a JSP based app that integrates with a COBOL book-keeping system on an IBM S/360, and you refuse to even look at that "new fangled" Java 1.3 or newer, then yeah, you might find yourself in a tough spot if/when they decide to turn off that mainframe.
Maybe more seasoned people struggling to find work are looking for jobs as if they were young?
As a single data point, I have 10 years of (paid) experience and a graduate degree. When I was about 30 I struggled a lot to find any IT related position. Part of it had to do with me doing the same thing as all the fresh crop of B.A.s were doing at the same time: send resumes, apply to jobs online, contact my alumni association, etc.
The thing is that I was competing in a market where I was seen as past the pull date: overqualified and too expensive for entry level positions, but still not mature enough for management.
Fast forward 8 years and I am doing much better. One thing I accidentally discovered is that there is a lot of weight in having a list of colleagues that know you, trust you, and are willing/able to let you know of career opportunities that are not heavily publicized. I have been in both sides of that kind of relationship and it is a win-win.
So, maybe some people struggling may benefit from being a little more social? Or maybe their own network is very isolated (all work at the same place) so they all enter times of need at the same time and are not able to help each other out?
(though irony has it that some mainfraim experts can earn a fortune because nobody has that skill any more while some companies do still need it.)
As for cultural fit; you'll see youngsters in t-shirts getting rejected at bigger corporates, and 'older' developers in suits getting rejected at startups. Not necessarily an age thing on a meta level. (or is the question specifically aimed at employment at startups? In that case, ignore my comment above).
If you're experienced, you're better off building a startup.
#1 Reason: ineffective, non-focused job search strategy. #2) Passive approach, negative or even a pessimistic attitude. #3) They've stopped learning and growing.
Feel free to use it or improve it. I think it's great :-)
I've tried several other reporting alternatives, and so far, I've been disappointed with most.
We're currently using Microsoft SQL Reporting Services and Crystal Reports, and are happy with neither (and they don't do what you need).
Edit: Tableau (what undertheradar2 mentions) sounds nice too:
The other one mentioned in the conversation is Spotfire
Edit2: they all sound pretty expensive though.
Here's a good read on getting buzz from Tim Ferriss> http://fourhourworkweek.com/2013/09/17/how-to-get-national-p...
Here's what worked for us:
- after selling a website, we sold the mandatory support and maintenance contract. We considered this service the foundation, or level one of our recurring revenue stream. This is fairly easy to sell and renew. The recurring revenue we got from this was enough to keep us afloat.
- after selling support and maintenance, we upsold the client to "levele two": services which grow our client's online business. The types of services we offered in this plan: everything that needs to be done to reach client's business goals, and that we could deliver well. This was harder to sell (because the type of client needs to be just right for this kind of service), but the amount of money coming in every month is substantial. This is what makes the agency grow in long term.
Here's what didn't work for us:
- web hosting. We've been offering this for more than a decade and in the end, all things considered, it is just not worth it. A combination of support + maintenance + growth-oriented services is a much better bang for the buck. We sold most of our servers and hosting accounts to a specialized hosting company and focused on what we did best.
For the exact details about building, pricing and selling support and maintenance services, check out my book: https://www.simpfinity.com/books/recurring-revenue-web-agenc... the part about growth-oriented services is coming soon, matter of weeks)
I love talking about the subject of recurring revenue, it's a passion of mine. I'll gladly answer any questions you might have.
I'm a fan of bundling which sounds a bit like what luckyisgood was getting at.
Every consultant wants diversified and/or recurring revenue. This is why just about all of us inevitably create (or try to create) products of our own. Eventually, many consultants get wind of the idea of retainers, which can have the predictability of SaaS but without needing to build and market software first.
The issue arises with how most consultants put together retainers. It's usually something like "I'll sell you in advance 20 hours a month of my time for $2000."
Here's the problem:
Any first grader can figure out that you're effective hourly rate is $100, which is probably less than your real rate but hey, it's a retainer and it'll relieve your need to always be selling, so that's OK for most.
Since you'll be making $100 an hour on this retainer, your income potential becomes constrained (you're now on the hook for 20 hours a month @ $100/hr) and the client knows what your hourly rate is. "Brennan, I need more this month. I'll pay you $2500 for 25 hours" or "Can I just pay you $100 an hour when I need you?"
And this is where the retainers of a lot of the consultants I've talked with go south, and the relationships sour.
A better approach (which is something patio11 and I talked about during an event we hosted last year) is to instead sell bundles which could include your time, and hosting and make these bundles really tricky to divide.
I could sell a client on:
- Backup management
- Framework / security updates
- A/B test experiments and management
- Up to 20 hours of upgrades and modifications
Now it's not so easy to divide the invoices I'm sending my clients monthly by X.
And I could charge... $5000 a month for that. Or whatever would make it so that my client gets both the peace of mind they're looking for (smart guy managing hosting, backups, security issues, etc), a product that's becoming more valuable (running a/b tests, analyzing their funnels, etc), AND a pool of time for me to do whatever random updates they need.
When it is a new company (is going to launch in 1 month for example), i propose them to set a launch page (basic one, created in max. 15 minutes) for 100 , to collect emailaddresses.
The launch page includes a text email to all of your visitors when they subscribe and say that this proposal doesn't include HTML (for images), because that is custom work and more difficult.
When the moment arrives, i ask them for the text they want me to send to their visitors.
In 70% of the cases, they ask to include a picture of the team.. I explain them that this was not part of the deal, but that i can change the message to a HTML email for 80 (if provided the assets first).
So, selling a website earned me another 180 , a happy customer (the launch page is added publicity)
How do you upsell?
The margins are decent IMO. You can get a decent sized VPS or dedicated server and easily have your costs under $2 per user per month. Then you charge the customer $9-29 per month.
They key will be automating the setup process. If you're doing traditional hosting, you may also need some sort of control panel (they all suck, btw).
We also sell other SaaS tools for photographersallowing them to sell and share photographs. We upsell them to our website clients.
It's hard to define fairly easy to create recurring revenue. We were profitable from day 1 but it took more than a few years to clear $1M in annual revenue. And now there are a lot of well-funded competitors (wix, squarespace, etc.). So, my advice would be to find a niche, figure out what they need, and focus on them.
I have a few ideas (below). This is random, but I would advise you to avoid restaurants. I've tried it. Many others have too. They owners are too busy, have little money, and most just don't care that much.
Some other ideas I've had:
* A static website hosting service based on Jekyll. But a web-interface somewhere allows you to create new jekyll posts/pages.
* Wordpress hosting for landing pages. I like Unbounce but it's expensive. Create a WordPress theme with 12 different page styles and let me make an unlimited number of landing and lead-gen pages for it.
* Elementary school websites. As a parent of 4, I've yet to see a good one. I'm sure there are existing players, but if you can carve out a niche, there are COUNTLESS other things you could build for them. Start with some private catholic/christian schools near you. They have much less red tape in their buying process. If you have some sales chops, aim at the district level so you can bag a few schools at once.
When you offer "hosting"... do you offer intelligent systems? advanced low level networking? CDN? anycast DNS? disaster recovery plan? peak resistance? awesome monitoring system with 24/7/365 support of the solution? 0day level security solutions? nanosecond performance? 99.999% SLA? penetration testing as proactive maintenance? multidevice testing of every change or patch? development, staging, validation and production environments? storage engineers? database tuning? project road-map with weekly (or daily) reports and meetings of a team of engineers analyzing infrastructure usage, logs, new threats, proposals and evolutions? an awesome web interface for ALL customer facing controls? a problem free experience?
Or are we talking about cheapo domain+cert+shared resources "online presence"? If yes, than maybe just stick to one provider and seek for a "reseller plan", to minimize costs, and as said in other comments, start offering a "maintenance package" as part of the products/solutions to get some recurring revenue.
When you get a great team of operations and support engineers with outstanding knowledge and passion for "systems", they stay motivated, and they are not mismanaged, you will be able to monetize them (and their "toys") with "hosting", "cloud", "online presence", "services" or whatever name, in team with the rest of the solutions you sell.
Infrastructure is a complex and expensive topic. If you do it properly, you can move money. You just need more customers wanting your system solutions/team, than the cost of it.
Otherwise, there is many competence and "third party" services, and the average position is to re-sell that, and focus on the ego of "i'm a designer/coder, systems is a second class stuff I cannot convince you to payme more for that".
Call it cloud, thats where the money is.
Except one thing.
DreamHost staff are generalists. They're probably good at fixing hacked WordPress blogs, but they will never be able to compete with you when it comes to in-depth troubleshooting of the exact application that you built for your client. At best, all they can do is direct your client back to you. At worst, they'll misdiagnose the problem and damage your client's website.
You, on the other hand, are a specialist. You know the website inside and out. You can take one look at an error message and figure out exactly which line of which file is causing the issue. You know when the software stack will need to be upgraded, and you know which parts are the most likely to cause trouble after an upgrade. You know when the client is expecting traffic spikes, and you know that when that happens, DreamHost is likely to suspend your client's website.
Your hosting package, should you choose to offer one, must take advantage of these differences. It should be part of a long-term support contract, not a standalone product, and it should be massively overpriced, like, at least an order of magnitude more expensive than the off-the-shelf equivalent. In exchange, the client gets a server stack that is perfectly tailored to their app (nginx, node.js, redis, you name it), a guarantee that they will never receive a canned answer in response to an urgent support request, and a guarantee that their website will not be suspended in the middle of the biggest marketing campaign of the year.
And of course you should be ready to fulfill such expectations. Don't use cheap servers to host your clients, get some Linodes or Droplets instead. There will be no in-house email hosting, it should be outsourced to Google Apps or some other company that specializes in email. Don't mess with cPanel, your clients can call you if they need to make any changes. Everything should be premium-grade, because there's no money to be made in the low-end market. Make your customer feel like your offer is actually worth the combined cost of hosting and support that you're charging them for.
I don't specialize in anything particular. I do both web and desktop apps for my client. They are a small suite of systems for collecting certain types of physics data, mapping it, and performing a basic analysis of subsets of that data. Other than setting up the servers (system administration is a weak spot for me), I've built everything of consequence in the project: from designing the database schema, to implementing and even improving the client's proprietary algorithms, to building a smooth, intuitive (as intuitive as this can get) UX around Google Maps. But it's mostly done now and I'm bored with the project.
Any tips on how to get out of such a rut?
Along the way I was able to run a website that delivered the retail customer website of a billion dollar company using my code.
How something as silly as hosting helped make it happen..
I have hosted customer apps and sites in a datacenter since about 98. Networking, security was something that there was little choice to avoid picking up in addition to software development.
Forget about today, even 15 years ago (man it's weird typing that), hosting was quickly becoming outdated. Yet, there was still an earnest need that was going unfulfilled.
The need I see repeatedly is for complex/custom hosting of Web apps and websites instead of the basic ones.
Example today? Even something as simple as Wordpress is a pain to reliably host when there is traffic for the average person. Someone deciding to master WP has lead to a fantastic startup with WPEngine which sits on the premium end compared to it's peers.
This isn't for everyone: assuming you have the ability to develop your skills as needed, and with the right support, you can tackle your slice of the complex/custom/app hosting market.
Even small businesses with custom workflow or website apps often end up needing their own vps or dedicated server to maintain. If you're this passionate about hosting, I'm trusting that you have or are pursuing dedicated hosting skills.
Putting together a managed server hosting package that may or may not provide application level support can be quite stable income assuming the line is clearly drawn between code induced issues vs infrastructure induced issues.
How much is on the other side?
On the low end I have changed a few hundred a month, all the way up to a few thousand a month, so a customer can have a sys and app admin rolled into one.
The right kind of customers definitely have a peace of mind budget, where they want the discipline and consistent availability of someone who cares about them more than a contractor. The bottom rung of customers don't scale very easily, either.
Talk to your boss, make a two second statement like "I'm excited about Angular.js and I think it can help improve our business. However, rather than just pitching a technology to you, I'd like to learn more about your priorities and the priorities of our team so that I can focus my energies on improving our business."
Then sit back and listen.
Business priorities will trump a change in technologies. Also, if you want to be taken seriously, then you should know both the pluses and minuses of switching to Angular. What browsers do customer use? Are they supported? What is the skillset of the team? Will training be required? And so on. Be ready to discuss these topics objectively.
What benefits do you think Angular will bring? How will that help the company develop faster at a lower cost, provide a better user experience that'll increase revenue, etc.
I wrote this to convince my boss to use AngularJS.
show him this