hacker news with inline top comments    .. more ..    14 Jun 2015 Ask
home   ask   best   3 years ago   
Gaza Sky Geeks is hiring: startup accelerator director
3 points by imontauk  1 hour ago   discuss
Ask HN: My 12 year old nephew wants to make a game, how do I help him?
33 points by andersthue  22 hours ago   54 comments top 39
pvaldes 8 minutes ago 0 replies      
Close the computer.

Pick a piece of paper and a pencil and design a game with him. Create an history, define likable characters, drawn a map, set the rules, create ways to gain/loose points, add an history that is interesting, improve it with some plot twists and traps and maybe a small love story. Give him a book about Cornelis Escher. Ask him to draw you a city with some perspective, a forest, a yak in an ice fortress, a cliff where some parts of the game occur.

Bassically learn with him the rules to the good history tellers, and make the route enjoyable and funny for both.

Then, and only then, open the computer.

When I was young and feel bored I created perfectly playable videogames in a graph paper with space ships burning, crashing, hidding, and smashing each other. You only need a pencil and a set of rules to win/loose and it was easy to hide from the teacher if necessary.

veddox 20 hours ago 1 reply      
Definitely Scratch (https://scratch.mit.edu/), I would say.

It's a drag-and-drop, graphical programming environment designed specifically for kids of that age group. It teaches them about conditionals, iteration, a bit of object-orientation, and makes it very easy to build relatively sophisticated games/animations within a pretty short amount of time.

I've had good experiences with it with kids of that age group, many really enjoy it.

svarrall 20 hours ago 1 reply      
What about Unity? There are plenty of example projects and easy to follow tutorials that will allow him to make something up and running that's impressive really quickly. Wouldn't expect him to make something from scratch at that age, but he could certainly amend from an existing concept. It won't necessarily help with teaching programming but it's a great start. It's what we do for work experience students and they love it.
decodv 20 hours ago 0 replies      
I recommend you try Phaser - https://phaser.io/ - a JS library for EASILY creating HTML5 games. Which is gratifying. And encouraging.

I had never heard of Phaser until seven days ago. Since then, I have created a full "short-game" (avg. game time is 1-3 minutes) with all of the basic elements: a loader, start menu, object collisions and overlaps, animations, sounds, timers, scoring, etc. Nothing to sneeze at, and Phaser made it super simple.

To go along with Phaser there is the MightyEditor - http://mightyfingers.com/ - which is a web based open source HTML5 game editor, based on Phaser.io game engine. Essentially, it's a WYSIWYG drag-n-drop editor that generates the Phaser code in the background. I haven't used MightyEditor as I'm more of a coder, but it exists for you try.

Now, you can certainly produce more powerful games with other approaches/languages, but I doubt any will let you start developing a game right out of the box. Likely, you'll spend all of your time trying to learn the language ... that you never get around to actually making a game. With Phaser, you just start making your game.

legacy2013 20 hours ago 0 replies      
Game Maker is the best way to go at that age. I used it when I was younger and the drag and drop functionality was great. As I grew older and started learning to code, the editor let me easily start writing scripts and such to give me more control over the gameplay
Mithaldu 19 hours ago 1 reply      
Speaking from my own experience, give him not a programming language, but either a game that includes a programming language, or a tool for making games that includes programming.

Game Maker is the biggest player in that market and used for tons of tiny one-off indie games, as well as lots of commercially successful and great games:


Have a look at the showcase to see what kind of games have been made with it: http://www.yoyogames.com/showcase

deepkanwal 20 hours ago 0 replies      
We built an iPad app called Toy Engine (http://www.toyengineapp.com) just for this! It's free and it uses visual scripting.

You make your games using a drag-and-drop level editor (2d only) and then double tap an item to add a script to it. You can also share your levels and download levels made by other users.

ddebernardy 20 hours ago 1 reply      
If you've an iPad, look into http://codea.io

It's maintained by an indie game studio called Two Lives Left (http://twolivesleft.com), which produced the excellent Cargo-Bot game -- and for that matter, let him get a feel of programming with the latter.

kpozin 21 hours ago 1 reply      
I got my start in programming around the same age using tools from Clickteam [1]: Klik & Play, The Games Factory, and eventually progressing to Multimedia Fusion (now Clickteam Fusion). These are all drag-and-drop tools, with graphical level editors, event loop editors, etc.

If he doesn't mind using a Windows machine for development (the actual outputs are cross-platform), I think it's a great place to start before moving on to programming languages.

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

robterrell 19 hours ago 1 reply      
One of my kids started with Codea on an iPad 1 (and it still runs on that ancient hardware today!) and is quite pleased to be able to tell people she can code in Lua. Overall, it's extremely well done. However, I think it gets hard to work through high-level logic -- you start off writing code in the draw() function, doing things once per frame draw... getting to a more abstracted level has been difficult in Codea.

However, her school does some Scratch every so often, and she's taken to that too. Scratch exposes lots of levels of abstraction, and the visual editor approach makes it easy to experiment with different ways of doing things. She's done several school projects as Scratch games. (Which, to me, is way better than gluing crap to pasteboard.)

I've tried to get her started in Unity -- I teach a Unity class to new hires at work -- but it's been uphill. Too abstract, too conceptual, too much surface area. And C# has too much syntax that gets in her way.

Lua is a better language for her. But Scratch is even better: no syntax, just ideas. Also, Scratch has a lot of localizations. So, give Scratch a try!

loumf 18 hours ago 0 replies      
I am working with a 14 y/o who took some simple python class beforehand (so knew basic stuff functions, conditionals, loops, but no OOP).

But -- he really wanted to make "real games" with a "real programming language".

So, after asking some game dev friends, I went with FlatRedBall (it's a little bit of a GUI builder with C# code-gen).

Look at this pong tutorial to get the basics: https://www.youtube.com/watch?v=KmHmxlljA5c

It's open-source and a bit janky at times, but he's doing amazing things with it.

My process was:1. Do a tutorial we find on the net2. Think of a feature to add, add it3. Keep going until we get bored with the game4. Find another tutorial, goto 1

We did pong, flappy-bird, RockBlaster (like asteroids), and now he is doing an original -- it's a 2-D dungeon, rogue-like. We meet an hour a week, and then he does an hour or two a night on his own.

If he needs to know something about C#, we take a break and learn that in a console app.

brudgers 19 hours ago 1 reply      
is there any drag and drop free tools or games about building games?

The first order help a young person needs is being taken seriously and encouragement in their process of discovery. The important conversation isn't "Use this" in it's strong or weak forms. It's the default StackOverflow comment: "What code have you tried? What error are you getting?" (perhaps in a weaker form, perhaps not, depending on the child).

Let the child own the process and understand that the most likely outcome statistically is that the actual process of creating a computer game will turn out to be unattractive as it is to a first approximation for everyone. Making games is hard for highly intelligent adults - much harder than writing a Rails app.

The mistake that I find easy to make with my own child is an unwillingness to let their interest unfold in its own time as part of the growing process. Adult interests and behaviors and skills take years to develop. The twelve year old boy will be radically different intellectually in two years...or even one. It takes patience and a long-term view and an understanding that many of a child's interests are passing. Some come back, most don't, and what tends to come back are interests that they find themselves sharing with friends. To put it another way, your nephew's English comprehension could be orders of magnitude better in five years. His understanding of mathematics most certainly will.

For concrete advice:

Provide high quality resources - the sort of durable tools and books and websites that one would give to an adult. The interest that wanes in a month at twelve may be rekindled for a year at thirteen and arise from hibernation to become a career choice at twenty four...and there sitting on the bookshelf is a weaker form of The Art of Computer Programming for games.

Good luck.

fredophile 5 hours ago 0 replies      
Take a look at Roblox. It's aimed specifically at kids. It takes care of most of the hard stuff like physics, networking and rendering so you can focus on gameplay. It uses lua for the programming language so it's pretty easy to find learning resources online.
xchip 19 hours ago 0 replies      
Wow lucky you your nephew is interested in learning. Go for pacman, but before make sure he plays a bit so he gets kind of addicted to it. Then to spark his curiosity ask him questions about how he thinks it works, something like this: http://www.exploringbinary.com/how-i-taught-third-graders-bi...

Have fun! :)

SkyRocknRoll 22 hours ago 1 reply      
You can try following software from MIT

Create stories, games, and animationsShare with others around the world


k_ 19 hours ago 0 replies      
Stencyl (http://www.stencyl.com/) could be a great tool : it's easy at first to do simple games without knowing anything about code, and you can progressively learn code, starting with basic logic.

Plus, it compiles natively to many platforms: iOS (iPhone/iPad), Android, Flash, Windows, Mac, Linux

spectre256 19 hours ago 0 replies      
Since the other commenters have mentioned a ton of great tools, programming languages, SDKs, and the like, I'll make some suggestions of a different type.

You said you'll be helping your nephew, but consider this as well: find a local group geared towards helping kids learn to program. For example, Coder Dojo(https://coderdojo.com/) has hundreds of locations all over the world. Your nephew doesn't need to be accompanied by a tech-savvy guardian or even bring a computer, usually such groups supply coaches and computers.

They are a ton of fun for all involved, and it's much, MUCH easier to learn something challenging like programming with a coach or even other students.

mindrun 22 hours ago 0 replies      
How about code.org? http://studio.code.org
nogridbag 20 hours ago 0 replies      
Microsoft TouchDevelop was posted here on HN recently:


I tried out one of the examples to make a Flappy Bird clone in 5 minutes - pretty neat.

pjc50 20 hours ago 0 replies      
Game Maker Studio is popular.
bhashkarsharma 20 hours ago 0 replies      
You can check out MIT App Inventor. It uses scratch. Here's an example of a game:http://appinventor.mit.edu/explore/ai2/space-invaders.html
colinbartlett 20 hours ago 0 replies      
I know non-technical people that have used GameSalad to create games that were even published on the AppStore.


Might want to start with a general intro to computer programming though like Scratch, which has been mentioned here.

onedev 18 hours ago 0 replies      
Teach him about SOA and MVC, I hear 12year olds go nuts for that stuff.
hobo_mark 20 hours ago 0 replies      
I was immediately reminded of this old classic


edtechdev 19 hours ago 0 replies      
I'd recommend starting at code.org to learn the basics of programming (loops, etc.) and learn how to make basic games like flappy bird:


Then depending on his interests and abilities, there are various beginner-friendly tools for making games below, from easier to harder and free to commercial.

I would talk with him first about what kind of game is he interested in doing. Something like flappy bird or an arcade game, or modding minecraft, etc. If you make it about learning to program for programming's sake, he may get tired of it quickly and not be interested in programming again for a long time, if ever.




https://www.gethopscotch.com/ ipad)

http://www.toyengineapp.com/ ipad)

http://twolivesleft.com/Codea/ (ipad)


a little more advanced (text instead of graphical programming), works in browser to make HTML5 games:


windows only:



http://www.learntomod.com/ (mod minecraft with visual programming)




joshuapants 20 hours ago 0 replies      
I like the Invent With Python series by Al Sweigart, they are CC licensed and they are a nice friendly introduction to programming with Python (one of the books deals with text games, another with Pygame). I'm not aware of translations into other languages, but they are written at a level for children to understand so they may be worth a look.

There are also languages like Scratch and various "no programming required" game development environments like Construct2. They might be good places to start, but they can also be crutches that prevent progress into more powerful tools.

edit: Is there some sort of downvote brigading going on here? I see a ton of helpful posts in gray.

ken_railey 20 hours ago 0 replies      
Shameless plug: http://flowlab.io
fsk 20 hours ago 0 replies      
If you're a web programmer, then the easiest way is to do an HTML5/Javascript games. That's the closest to what you already know.

Get him some books on html5 and javascript, or good web-based resources.

Make a simple game with him, like minesweeper or Tetris.

Also, if you make an HTML5/Javascript game, you can use something like PhoneGap/Cordova to compile it to a mobile app.

kozukumi 19 hours ago 1 reply      
I think Java is a nice teaching tool. It has a good OO design and you can't break anything with it. No worrying about memory, etc. The only real drawback is the verbosity and having to "just do" things at the beginning (such as ignoring just what public static void... means).
gavanwoolery 20 hours ago 0 replies      
I started learning in QBASIC at around that age (my highschool also taught BASIC on Apple IIe machines). There are modern (i.e. 64 bit) versions of it but I can't vouch for them. If you can get the original version up and running, it is a great intro to programming.
doctorpangloss 20 hours ago 0 replies      
Many of the games he might already be familiar with have sandbox, modding or programming-like environments that require no documentation to get started.

If he plays Minecraft, he should definitely study Redstone (http://www.minecraft101.net/redstone/redstone-basics.html). You can make whole computers with it (https://www.youtube.com/watch?v=aQqWorbrAaY). It's what I recommend to my friends who are looking to get their children into programming or making games. Don't underestimate how much more compelling Minecraft is than literally everything else out there.

Starcraft II is free, and its map editor is excellent for nearly every kind of top-down game. It's a very drag-and-drop sort of interface that doesn't require any programming. You can probably build the widest variety of games with it.

Team Fortress 2, which is also free, comes with the Hammer Editor. It's a little more idiosyncratic than Starcraft II's map editor, but also a great way to just drop things in and play. It's ideal for first person shooters.

A bunch of games have really fascinating programming-like experiences. DOTA 2 (free) has its Workshop Tools; Cities: Skylines (paid) has an Asset Builder and programmed mods. A lot of these games are a bit above 12 years old though, so it might be a little intimidating.

I think for most kids, they're more interested in Garry's Mod (http://www.garrysmod.com) and Little Big Planetsandbox environments. You just do stuff and things happen, and it's all very pseudo-physical.

I've seen some other recommendations on here. Generally most kids aren't equipped with the amount of patience these actual programming environments require. If you insist on programming, then Scratch is the best of the options. Check out the first assignment in Harvard's CS50 class here (http://cdn.cs50.net/2015/spring/psets/0/pset0/pset0.html#itc...). To put in perspective, this is regarded as one of the easiest to learn and most polished programming environments, and students at University level (almost twice your son's age!) are given 2 weeks to make something. So as an introduction, this is still extremely hard.

Conversely, things like Unity3D are going to be super crazy complicated, to be completely honest. It's disheartening to read any documentation. Just orbiting the camera in the viewport is a skill. Plus, lots of kids like to build multiplayer experiences, which are all possible with the map-making and modding tools above, but not possible with any of the actual coding frameworks written below.

paublyrne 20 hours ago 0 replies      
What about looking at Corona, if he has a mobile device or tablet to test on. It is simple to make simple things quickly, the physics libraries aren't complex.


jowiar 19 hours ago 0 replies      
I'll plug my friend's book here: http://www.gamkedo.com/kit/

It's in JS/canvas, so tools that you should be familiar with.

fallinghawks 19 hours ago 0 replies      
This might be a little too simple but check out Blockly


hluska 20 hours ago 1 reply      
Is he a Minecraft fan?? If so, Minecraft has a very active modding community and that might be a great place to start.
Jugurtha 18 hours ago 0 replies      
This is really cool. I'd say drop the drag and drop; he's 12, not 4.

I started programming in BASIC around 9 and C at 14, didn't speak a word of English, and didn't have internet or access to books.

How I worked was: Suppose I wanted to print something, I'd look up the verb in a dictionary for "imprimer" and would find "print", then would look that up in the help. Then would copy the example code given and run it, and then I'd change stuff and see how it'd affect the functionning of code (errors? go back to dictionary, etc). And based on the consequences of my actions, I'd deduce the role of what I changed.

I wrote a program that gave you information on a country you'd enter (population, area, capital city).. You had to type the country in capital letters because I didn't know how to do it otherwise.

He's 12 years old and he's got the internet and you! It's also a great time to improve his English.

The biggest favor you'd do for him, whether you choose a graphical or another approach, is to encourage him and make him stick and never drop the ball. For me, the biggest mistake was going on and off. If I had kept at it, I'd be at least moderately good instead of sucking. You can also show him the work you are doing and make him understand that it's really not that hard to get started and hopefully, at some point, he'll understand the power of this: I can make this computer do mostly anything I want! And he'll be hooked.

TL;DR: Whatever you do, make the priority for him to stick and understand the power at his fingertips.

euroclydon 19 hours ago 0 replies      
load81 by the author or Redis. It does not get any more elegant than this!


frenchHipstaz 19 hours ago 0 replies      
He could try darkBasic Pro for a start. That's how I got into programming.
Ask HN: I/O of Web Server
2 points by ejanus  2 hours ago   1 comment top
checker659 1 hour ago 0 replies      
What about epoll / kqueue?
Ask HN: Are there any angels investing in the marijuana industry?
7 points by AC__  10 hours ago   3 comments top 2
rhgraysonii 7 hours ago 1 reply      
If you get on angel.co and search 'marijuana' you can find a list of investors that have funded such things. As well as startups in the space.
brickmort 6 hours ago 0 replies      
Snoop Dogg is. :
Ask HN: Are there actually any exciting companies in Seattle?
15 points by seattle_spring  18 hours ago   13 comments top 7
reverius42 15 hours ago 1 reply      
(Disclaimer: I work at Dato.)

Dato is a venture-funded startup in Fremont (right by the canal, down the street from Google). We are on a mission to make the power of machine learning accessible to the masses, with a great team and an exciting opportunity ahead of us. We maintain and contribute to open source projects. Personally, I think it's really exciting and I am passionate about it.


ninetax 15 hours ago 1 reply      
Climate (http://www.climate.com/) has a great office in Seattle. I haven't been, (I'm in the SF office) but I hear the culture is excellent. Contact me: skhalsa@climate.com and I can refer you to the right team.
adenverd 15 hours ago 1 reply      
Checkout Intentional Software. It's a startup of about 70 people funded and led by billionaire CTO Charles Simonyi. They built a platform for developing domain-specific languages (on top of the CLR), and are now developing some pretty incredible collaborative productivity apps on top of that platform. Their recruiting slogan is "this is why you chose computer science," and after interning there for 6 months I can say that's 100% accurate.

Pay and benefits are equivalent to what you'd get at Microsoft or Amazon, without the corporate BS.


jetsnoc 13 hours ago 0 replies      
Any interest in working remotely? I have a great lead engineering position posted.


kvanderd 17 hours ago 1 reply      
I would checkout http://www.ivysoftworks.com/. The CEO of this company was the CTO of a company I worked for. Extremely developer friendly, great visionary etc.
larrykubin 17 hours ago 0 replies      
I am personally excited about Redfin and Socrata. Redfin made is super easy for us to find and purchase a house. We went from knowing nothing and not having a realtor to closing on a house in 30 days. Socrata is working to open government data.
thematt 16 hours ago 1 reply      
I lead the software team at Blue Origin, come check us out. We're right outside Seattle.


Ask HN: Swift for web development?
5 points by jpdelatorre  11 hours ago   3 comments top 3
maniacalrobot 4 hours ago 0 replies      
I'm sure there will be many swift web frameworks that spring up after swift is open sourced, and I could see it as a very real challenger to the similar apps written in Go. Especially if you've already written the frontend code for the iOS eco system, the reusing code for any web based backend system just makes sense. Although I do wonder if swifts primary advantage, its speed, is negated by the speed of making web requests.
gamechangr 9 hours ago 0 replies      
Try Swift. You could use it, but why would you put yourself through that sort of pain???
manis404 10 hours ago 0 replies      
Swift for web development? You might as well kill yourself.
Ask HN: If we are in a VC bubble, how would the bust play out?
48 points by fivedogit  13 hours ago   59 comments top 20
ChuckMcM 11 hours ago 1 reply      
It plays out as companies that cannot reduce their costs enough to be operationally profitable will exit the market or be bought for pennies on the dollar. So something like uber getting bought/absorbed by a cab company. Options/stock will be worthless in the dead company. Several VC companies will report large fund losses and investors in those funds, and possibly a LP or two will get out of investing completely. Some folks who thought they were set for life will discover they have to get high paying jobs to support their personal burn rate. They won't be able to and it will change their life, bankruptcy, divorce, suicide.

For most people it will be a non-event, they wondered how people could invest in a company at those valuations and so won't be surprised when they lose their investment.

It will be really really hard to raise money for a while. Perhaps as many as 6 or 7 years. Companies that depended on new startups like digital ocean will have large layoffs as they cut costs to stay profitable.

Anyway, that is my guess. We get to see how it plays out.

flipmonk 13 hours ago 2 replies      
Over-valued companies will have to take down rounds - employees who joined late will get their options roasted. A large number of small and new VC funds will get wiped out. This time, the difference is, its the professional players that get hit (VC's, institutional investors, hedge funds etc).

Last time, tourist investors (newbies and the lay man) invested in stocks that crashed. Private huge rounds are protecting the tourist investors by virtue of lack of access.

capkutay 12 hours ago 1 reply      
My question is what would be the inflection point for the bubble burst? Would it be one quick event like a failed Uber or Dropbox IPO?

Or would it be something like higher interest rates drying out VC funds leading to startups going out of business left and right?

shogun21 11 hours ago 2 replies      
Global collapse. We'll be reduced to different factions struggling to survive in the wastelands.
sdjr 11 hours ago 0 replies      
I propose we change the alleged "startup-SV-VC bubble" term to "cockroach" because it just won't die. People have been predicting bubble for years. Coincidentally, people have been predicting the decline of Tesla stock, and when it drops 30 points they claim, "see!" Please.


pen2l 11 hours ago 5 replies      
A lot of talk has been going on about this, and a lot of comments start with a few set of presumptions.

One presumption, usually left unexplained, is that there are a lot of "unicorns" that will collapse.

I am most interested in classifying these unicorns, and speculating which will fall and which won't.

Here's my list -- I want your thoughts on it.

1) Uber -- will not go down

2) Dropbox -- will go down

3) Airbnb -- will not go down, unless threat from regulation becomes stronger

4) Snapchat -- will go down

5) Twitter -- will go down

6) Facebook -- will suffer significantly

7) Square -- will go down

8) Apple will be entirely unscathed

9) Google will suffer, but be largely fine

10) Microsoft is suffering already. It will continue to suffer, but will not go down.

netcan 11 hours ago 0 replies      
I imagine that if the alleged bubble burst, VC funded startups and their immediate environment would be where the most damage was/is. A lot of startups would just fail. Employees would lose their jobs and options/shares would be wiped out. Even otherwise healthy startups could suffer or fail from the mess. If a company is worth $200m one day and $40m the next, all sorts of bad things can happen even if they are profitable.

Beyond the immediate vicinity of VC backed startup land I don't think the fallout would be very severe. VC funded startups are not really a very big employers in the scheme of things. VC as an asset class isn't a big one either. Since VC investments are expected to be high risk, most end user investors allocate only a small portion of their portfolio to the class. It is expected to be high risk and on the whole it is considered very irresponsible to depend on its success. Even startup employees do not generally treat their jobs as highly secure, so at least psychologically they are prepared to one day find themselves looking elsewhere. They are also generally employable in the much large technology fields that are not directly related to VC money.

For an analogy think of the hypothetical bitcoin bubble bursting. Some bitcoin centric businesses would go bust. Some gamblers would too. But I imagine that most people holding large amounts are aware of the risk, they haven't bet the house on it.

I think the "systemic" impact would be minimal. The real dangerous bubbles are asset classes like real estate, bonds, blue chip shares and those esoteric but enormous "instruments" and securities. These are expected to be reliable and safe so money that must not disappear goes into them. They are also much bigger.

I guess you never really know unless it happens, but I doubt the kinds of levers that make big bubbles so bad are present here. A lender wouldn't/shouldn't be loaning out money to be invested in VC, so I don't think you would have the kind of domino effects that make crashes spread.

If it was severe and scary enough with big name "startups" going under, tech stock prices might dip. That might be a good time to buy. I can't see much of a relevance of a VC crash to Google, FB or MSFT's medium term prospects.

EDIT: One more - Since VC is a "professionals only" class of investment, we are not likely to see middle class people directly impacted. This means that macro-demand shouldn't be effected much either, except directly by employees losign their jobs and startups no longer consuming whatever they consume.

uhwhat 10 hours ago 3 replies      
Recent trends in economics leads me to believe the accumulation of wealth and capital from gains in productivity and technology is amassing into huge piles of cash that want & need to invest in something, so now the question is what?

There are other more volatile economic "bubbles" out there to be concerned about.

If you're assuming starting a business based on delivering over priced telegrams or selling rolls of quarters at a 180% markup will lead you to your "exit" than okay be afraid of "the tech bubble".

Start a real business that makes sense, and the bubble is irrelevant.

bwy 11 hours ago 3 replies      
The real question is, "if we're in a bubble, how do we take advantage of knowing it will pop?" (genuine question
spir 10 hours ago 1 reply      
Mark Cuban made some interesting remarks http://blogmaverick.com/2015/03/04/why-this-tech-bubble-is-w...

"If stock in a company is worth what somebody will pay for it, what is the stock of a company worth when there is no place to sell it ?"

fsk 11 hours ago 0 replies      
1. Lots of unicorn corpses. They either get down rounds, fold completely, or get bought for much less than their last round's valuation.

2. It would be harder for new startups to raise money. The big losses in the unicorns would then lead to smaller B/A/angel rounds.

3. Lots of unemployed people who formerly worked at startups, scrambling to get jobs and the handful of large survivors.

4. With money drying up, it would be a good time for bootstrappers or people who don't need much financing.

hrshtr 10 hours ago 0 replies      
I think bubble will not burst but it will start to deflate, when bunch of companies with 1B+ evaluation fail to give the investors huge promised returns. This will dry up seed funding and Series funding for startups. Investors will loose their money and series of layoffs at startups. This may impact the growth of big giants but nit sharply.Lastly, Silicon valley crazy rental could be see decline too.
tmuir 12 hours ago 1 reply      
I think the inherit nature of bubbles means that it's almost impossible to accurately predict the fallout. Sure, there were investors that bet against credit default swaps, but it was still a bet, or calculated risk.

If such predictions were easy to make, bubbles wouldn't occur, at least at the scale of the dot com and housing bubbles.

burger_moon 11 hours ago 1 reply      
If the tech/ anything bubble pops, what tech companies would be the best to work for preceding this event? Which industries that employ tech workers would be the best to work in preceding the bubble? This under the assumption that getting a software dev job would become increasingly difficult with a rise in unemployment in this sector.

I'm a junior developer, so if there became a huge oversupply of developers I think it would be very hard for me to get a new job. This is actually something that really worries me currently. I'm already having a hard time finding a new job, if there was another economic crisis I feel like I would have to leave the tech industry to get a job.

sloanmba 10 hours ago 0 replies      
- Huge bubble where startups valued at almost around $1trillion are not regulated.- They are not required to report anything to public.- Eventually, VC will need liquidity that may force these companies to go public.- Once public, they are required to show significant growth to justify super high premium valuation.- If few of the top unicorns fail to show that growth, market may tank, VCs may loose money.- VCs who lost money may be more cautious in future but may also have hard time raising capital.- Many Unicorns do NOT have higher entry barriers or network effects. For instance, why can't same driver serve users from Uber, Lyft & 10 other apps, cheapest for customers & highest paying for driver - an arbitrage opportunity? Or why can't someone list house on Expedia,Travelocity along with Airbnb?
dogweather 9 hours ago 0 replies      
Has anyone written a good set of articles about the 1999/2000 tech bubble bursting, and which businesses it affected?

Lots of smaller companies, like Redhat, were hit in their valuation, but made it through.

kak9 10 hours ago 0 replies      
Proliferation of SPVs. Retail will get in on it. Eventually will spread to non AAA deals. Private market bust.
michaelochurch 11 hours ago 0 replies      
I doubt that it's going to be anything like 2008's financial market crash. VC-funded startups just aren't that important. Housing prices and interest rates affect everyone; VC is just a game for rich people playing with other peoples' money by taking bets on young narcissists with big ideas.

So far, when VC flips its products on to the public markets, the markets react fairly rationally and the bad companies tank. Look at Zynga. The market may be overvaluing it still, but it's nothing like the 1990s. Public markets seem to be recognizing shitty tech stocks as what they are. So, we're not at the 1999 level of bubble.

Furthermore, the 2001 crash didn't have a major effect on the economy (although it was bad for the Bay Area, and for many engineers). It wasn't the crash, or even 9/11, but the sluggish ("jobless") recovery in 2002-4 that made the 2000s (except for people on Wall Street or in the slowly recovering Valley) a shit decade.

So, let's assume that the VC bubble ends. Some people will get hurt. The celebrity engineers who make $500,000 and aren't any good will get beefed. Run-of-the-mill engineers, if they're any good, might drop from $140k to $125k; not such a big deal. The ScrumDrone engineers will have a hard time finding work. Unfortunately, this will also hurt self-taught (meaning "no college degree") engineers even if they are good; the ones who are talented are still in a position of low leverage because "everyone knows" (well, employers know) they're more sensitive to a dry-up.

The short answer is that some people will take painful hits-- you're going to have a lot of 25-year-olds who thought they were millionaires, find out that they worked overtime for nothing-- but average people of average-or-better talent will mostly be fine. Bay Area salaries for good engineers might go down 10 to 20 percent at worst.

The bad news: housing in San Francisco's not going to become more affordable. First, the people who actually have money (not a half-million from options) are already diversified and less exposed to dot-com/VC, and the foreign money-launderers aren't exposed to it at all. Second, people hoard rather than sell (a steep positive volume/price correlation) when the market "should" soften. The stupid competitiveness around getting rentals (e.g. competitive open-houses, people cutting checks for a whole year's rent) will go away, but rents and prices will stay about where they are.

aburan28 11 hours ago 2 replies      
When interest rates start going up later this year this bubble will pop
graycat 11 hours ago 0 replies      
Likely the evidence for a bubblethat would be risky for our economyis the surprisingly large number ofrecentunicorns, that is, privatecompanies who have a recent funding with apost money evaluation of$1 billion or more.

One reason for so many unicorns, that is,such valuable private companies, is the reluctance of significant privatecompanies to do an IPO. Reasonsinclude (A) having to try to please Wall Streetthat has a very limited view of real progressfor a company and a very short term focusand (B) the overhead of Sarbanes-Oxley.

But I believe that you will find thata surprisingly large fraction ofthe unicorn fundings aremore like traditional privateequity instead of venture capital.So, for the unicorns,the high post moneyevaluation may be at high risk(bubble bursting),but, due to the deal terms, the last investor is relatively well protected andat only low risk.

That highpost money evaluation was justsomething out in the ozone anyway,a long way from that much inactual cash,so that, if such high evaluationssuddenlydisappeared, that is, the bubble burst,thenthe effect on the economy wouldbe minimal.

So, why do these goofy late stagefundings and unicorns even exist? The companies may want the cash fromthe equity funding and notwant to attempt an IPO, andthe private equity investorssee maybe an upside, if thebubble doesn't burst first.

Ask HN: Useful knowledge for enterprise startups?
6 points by philippnagel  15 hours ago   discuss
Ask HN: How much should I be paid an hour? (Australia, Contract FED)
13 points by ausdevthrowaway  1 day ago   23 comments top 6
dsacco 18 hours ago 0 replies      
I'll preface by saying that it's hard for me to really critique that number because I don't know where in Australia you live and what the cost of living is there.

That said, intuitively I feel that is insanely low. If you are framing yourself as a consultant who can solve quantifiable business problems using frontend development, then ~$400 per day is absurd. I would say increase regardless of your living costs. Asssuming 30 weeks of utilization, you're working for $60,000 per year. If you're doing remote freelance work then you can target US companies and literally quadruple this.

I live in NY and I charge between $1000 and $2000 per day for information security services that normally take 2 - 4 weeks per engagement. Mind you - information security is a specialization that is not as quantifiable as developing a website for business purposes, so in theory you should be able to achieve higher rates than that (Brennan Dunn, as an example, charges $20,000 per week as of 2014, and he does a mixture of web development and copywriting).

If you follow 'patio11's advice you can certainly increase this. The beautiful thing about being a consultant is that you can choose to work remotely, which means you can anchor your cost to the living costs of your client's location. I'd be charging the same if I lived in Kansas.

Increase your rates, and if necessary rebrand/reframe your value proposition. Also - get rid of the recruitment agency. Agencies can be good, but you need transparency regarding your rate and how much they are taking for placing you. You should also try to develop a strong personal network for referrals.

You will know when you're successful because you start saying no to potential clients as much or more than you say yes.

xytop 1 day ago 3 replies      
Oh guys..I'm a senior web developer (working on a leading position in a company which runs 3 startups), I speak natively Rails, PHP.. fluent in SQL and still i get..


I'm in Europe though.. but when I look at your numbers I want to cry.

That's very a lot to my taste.

Edit: did calculations.. even $24/h ($46800/year)

girvo 22 hours ago 0 replies      
Depends. Freelance, or consultant? I've done both, and am in Brisbane. I charged $400/day as my normal rate for the latter. The former was project dependant. And could be from $10/h if I messed up quoting to $1000/h if I quoted well and everything went well.

Working as a full time "full stack" engineer I'm earning $50/hr with 8 years of experience under my belt. Which I prefer, as I earn good money for my age and location, without the stress of finding work.

nness 1 day ago 0 replies      
Depends on the number of hours you are working a day, and assuming you're being charged out at time and materials, that would be $50-60 p/hour.
stephenr 1 day ago 0 replies      
In my experience pimps (Im sorry, "contract agencies") just add their costs on top of your requested rate, and offer that to the client.
candeira 1 day ago 2 replies      
You don't say how much experience you have, how many hours/day, which city you work in, or in which industry. So I'll answer assuming you're junior but you've been doing this for at least a year, you can write good code and good English, you're working 8 hour days, you're in Sydney or Melbourne, and you contract out to an agency doing work for mid-size companies.

I'd say you are at the very very low end of the scale, if not falling off the scale. If you have any skill in front-end JS, and aren't a trainee or a recent graduate with zero experience, you should be getting twice that money easily.

For a comparison, I do back-end and devops work, and I charge in the range between $85 and $175 per hour (1), depending on the client and the work. Right now I have a project of each. I suspect I'm also undercharging some clients, and that intermediaries who genuinely can't pay me more are also undercharging. However, I don't work for recruiters/outsourcers, but directly for companies shipping software, though some of them are intermediaries in the sense that they run a project for a client, and then hire me as a contractor instead of as an employee. Also, I haven't done almost any front-end work, but it's my impression that front-end skills are in higher demand, and rates are higher on average.

(1) AUD, not USD.

You say you don't have other people's salaries to compare. I too wish Aussie JS and front-end freelancers shared their fees here. Here's how to compare freelance day/hour rates to a full time salary, by the way:

A full time worker puts in about 2000 hours a year. As a freelancer, you have to put in your own training, sales (finding work), you pay your own superannuation (because you do, right?), equipment (you buy your own laptop), training (you buy your own books and courses, you pay your own way to attend conferences), etc.

Thus, when comparing your day rates with the money a full time worker gets, you should take into account extra benefits paid by their employer like super (for non-australians, this is a retirement account, by law employers' contributions are about 9%, but some companies pay more, up to the mid-10s), training courses and conferences, etc.

As a freelancer, you don't have sickies or paid holiday of any kind, so you should account for 1000 billable hours a year. Working more is the cherry on top, and less is a risk that you hedge by having good rates.

Therefore, $85/hour is more or less equivalent to an $85.000/yr salary + benefits. $175/hour would be equivalent to $175.000/year salary + benefits.

Obviously this is without taking into account tax brackets, forced downtime if you have health issues, and the averaging of good and bad weeks/months/years. Also, perceptions of salaries/rates aren't linear, neither for you nor for potential employers.


Note: this advice is for an hourly rate programmer. HN legends patio11 and tptacek will rightly advise you to get out of this game if you can, and I agree with them. I'm trying to do it myself. But while you're in it, this is what I've learnt that I can share.





There is a lot of the above advice that you start applying now while still in the hourly rate game, so I'm pasting the link to tptacek's comment again, because it's hella relevant and pithy.


Good luck. And to my fellow Aussie freelancers, please share your rates and help everybody negotiate better with clients and employers.

Ask HN: People who made it to Google. What was your experience like?
30 points by yankoff  2 days ago   18 comments top 4
shaftway 2 days ago 2 replies      
I interviewed and was hired almost 5 years ago. My experience was largely positive, though the process took a long time.

I had 5 interviewers. I made it clear to each up front that I had never worked in one of the canonical languages (Java, Python, C++, Go) and that my background was mostly C#. All of my interviewers seemed to take that point, so the questions I was asked were mostly pseudo-code. The one language-specific thing was about Java iterators, so I had to ask about the Iterable/Iterator contract before I could start. My pseudo code was pretty C#ish and that's pretty close to Java, so I was able to intelligently discuss differences or explain my intent.

The crazy thing about my interview (and the interviews of most people that I talked to) was that I thought that I crashed really hard. One guy let me fumble around for almost the entire time trying to answer his questions (it dealt with statistics and big data). Of the five, I feel like I knocked it out of the park with two of them, flubbed it with two of them, and the fifth was meh.

Later, I talked to the recruiter about it. I was feeling a lot of impostor syndrome (very common) and trying to understand why I was hired and make sure that it wasn't an accident. In the end, recruiters are looking for very high or very low scores from your interviewer, and interviewers give a lot of points for trying. Even the ones that I thought I failed on gave me medium scores because I did a good job of connecting with them on a personal level, and I talked through my work as I did it. So I ended up with 3 moderate scores and two high ones, which was enough.

As for passing but not getting hired, that's a little different. You don't really pass the interview. You do a phone screen and then the recruiter decides whether to proceed. After that you come in for interviews, and once you're scored again the recruiter decides whether to proceed. Then you go to hiring committee, where they decide hire or no hire. The recruiters have a pretty good idea of what hiring committee will say, and they tend to send borderline people. After hiring committee you go to offer committee and then you get the offer letter. After you accept the offer, if you're a general purpose SWE, then you talk to teams to determine placement. The whole process took about 3 months for me.

For my prep, I actually went on other interviews and read books (particularly on solving by induction - these things show up often on interviews).

Everybody has a different experience, but when I read posts by people who claim they were passed over because they couldn't solve a specific problem, I suspect the problem was really poor culture fit, resulting in low scores across all of the interviewers.

spundun 2 days ago 2 replies      
I'll be starting work at Google a week from Monday as an SWE. It was my second time interviewing(first time was 2 years ago as an SRE). This time I had actually put in effort into preparing for the interview, CS Fundamentals, Systems Design and all...

Every interviewer brings his own personality. Most people(probably all) will stay to-the-point. Actually the more to-the-point they are, the more time I get to solve the problem, so that's kinda by design. Emphasis on behavioral stuff is near zero. But a couple of people asked me questions related to stuff on my resume. E.g. one interviewer asked me a VHDL/Verilog related question(I think of it as a sanity check question, to make sure I'm not BSing on my resume), the other had already asked me two questions, so he used it as a topic of chit chat. Some interviewers are poker face to the point that you feel the pressure, one interviewer wasn't big on hints(at one point I could hear the wall clock ticking so loud, I wanted to throw it on to the floor and smash it), one interviewer liked to make encouraging comments and was somewhat chatty. The others were like just any dudes you might run into at a party, very casual.

The CS/Coding Questions covered topics like Dynamic Programming, trees, arrays, bit manipulation. The questions were not easy. I think I did ok in 3 of them(one/two might be even slightly below par). The Dynamic programming question I solved in 15 minutes, then I got asked a second question(which was easier in my opinion) I finished that too and I still had 10 minutes left. I imagine I impressed that interviewer. That might be the reason I got through.

The system design question was a very interesting one, I loved it. But it wasn't your typical large scale system design question like designing a service and so on. It was about designing a file system. I enjoyed it so I thought I did well there. Since I seemed to have talked all I wanted to about that question, I got asked a second systems question(in the same interview), an open ended question about internet system. I did ok in that one.

I didn't ace most of the interviews(Dynamic Programming interview being the exception). I thought it could go either way, since Google has a reputation for being very picky.

I had put some time into preparation this time. Friend of mine is coaching for interviews, so he provided me very well defined structure to focus my efforts, including videotaped mock interviews and feedback on it( interviewkickstart.com for anyone interested. Highly recommend!). Through the mock interviews I realized that I was talking too much, both in behavioral questions and during problem solving. Not only could that test the interviewer's patience, it also meant I had less time to solve problems. So I had to strategize about that. I think that helped me go that last mile.

Lunch interview was very casual. The guy was very friendly and liked to chat. I asked him whatever I thought I should about Google and the people there. Got some insight into Google that way, even though I know friends who work there already so I could have asked them anything.

strathmeyer 2 days ago 2 replies      
You know there are people who pass the interviews but still don't get an offer, right?
known 2 days ago 1 reply      
quiz != interview
Ask HN: Why Linux succeeded and Hurd didn't?
3 points by grover_hartmann  14 hours ago   4 comments top 3
the_why_of_y 1 hour ago 0 replies      
1. Worse is Better: Linux was at first a very simple implementation and famously eschewed excessively modular micro-kernel designs that were popular in academia at the time in favor of a pragmatic monolithic architecture.


2. Cathedral vs. Bazaar: Linux was very successful in attracting a large and diverse developer community, whereas the rather top-down management approach of many GNU projects at the time ended up not attracting many HURD contributors.


detaro 13 hours ago 1 reply      
Linux was useful to enough people to gain the momentum necessary to get better and keep up with developments. Also, it mostly cares if stuff works, not if it is the theoretical perfect thing.

Hurd didn't get to the starting level of usefulness and had no other motivator to gain the necessary momentum. The project also seems to aim for the "perfect OS" instead of getting something working out the door. And now there is this other open-source OS called Linux around which is better by nearly every measure...

FooBarWidget 14 hours ago 0 replies      
I think it's because Hurd is too ambitious. Overly ambitious project almost always fail. By the time Hurd was done, everybody has already forgotten what Hurd is.
Ask HN: How many companies fail to engineer for scale?
4 points by reilly3000  16 hours ago   2 comments top
mattbillenstein 15 hours ago 1 reply      
I've seen both, but it's hard to say how much of each happens exactly -- I think jumping straight into microservices before you know what the product really is is a symptom of the latter at least.

You can get a long way with a monolithic architecture and a reasonably good database that you don't abuse nowadays (40-vcore servers, hundreds of gigs of RAM, terabytes of fast SSD). And in the face of getting a product out as quick as possible, not making hugely awful decisions in how to store and access your data is key. 10% more time thinking about these problems saves you several orders of magnitude down the line fixing and solving scaling problems.

If you really scale, you're going to rewrite most of it eventually anyway, but having the data stored in a sane manner makes all that easier anyhow.

Ask HN: How hard is it to build an Email client?
5 points by anacleto  23 hours ago   4 comments top 4
stevekemp 1 hour ago 0 replies      
A lot of this will depend on your language/environment. There exist client-libraries for IMAP, POP, etc. But if you don't have those then implementing them will not be so difficult.

The truly hard part is dealing with emails themselves, both in terms of MIME, and the bastardized broken things people will send you - malformed headers, missing headers, etc, etc.

I wrote a modal console-based Email client, completely scriptable via lua:


It was more work than I expected, but also fun. So there are compensations. (Obviously graphics make things harder, with threading, etc, but if you can handle the core you should be able to wrap a GUI around it.)

informatimago 22 hours ago 0 replies      
SMTP is easy. POP3 is easy. IMAP is more complex.

Building a simple email client (say, like mail(1), even including SMTP and POP3 instead of local delivery) is rather easy.

It could be a nice programming project for first year (2nd semester) students, I'd say.

Of course, you can complexify things, adding GUI, IMAP, MIME, displaying inline attached files (pictures, pdf files, etc), SSL/TLS, dealing with local mail folders, spam filters, automatic mail sorting, including an wysiwyg editor, message encryption with key management.

But the basic mail(1)-like client using SMTP and POP3 is easy.

TheDom 16 hours ago 0 replies      
Take a look at LibEtPan, an open source Mail framework for C: https://github.com/dinhviethoa/libetpan

This is by one of the guys from Sparrow (RIP) [1] and powered it under the hood.

[1] https://en.wikipedia.org/wiki/Sparrow_(email_client)

pestaa 18 hours ago 0 replies      
If you mean a full-fledged desktop application, it is very hard. SMTP/POP3/IMAP will be walk in the park compared to the challenges you face designing the UI.
Ask HN: Has anyone used web-scraping-as-a-service that didn't suck?
5 points by peteretep  21 hours ago   7 comments top 5
ccarter84 17 hours ago 1 reply      
Seconding this question...I've wanted a way to get HN top posts each hour, aggregated (and deduped) by day/week, so that I dont have to feel the need to check as often. Thanks for this links, hopefully one of these will get me there!
mariocesar 20 hours ago 0 replies      
I got great experiences with http://scrapinghub.com/, you can hire them as consultants also and short time contract is enough to get in the right direction. really smart people
renaudg 19 hours ago 1 reply      
I heard good things about https://import.io/
t_liu 21 hours ago 0 replies      
it depends, tools like Kimono can gather data on a topical layer, but cant really interact with the page(via js). I wanted to scrape some data on a site I was interested in, but I need to interact with the site to get the data, so I ended up writing my own crawler
Roger_Archive 18 hours ago 0 replies      
My colleagues at https://www.archive-it.org do a pretty darn good job
Ask HN: Anyone deployed OpenVPN and wouldn't mind sharing their experience?
4 points by jtchang  19 hours ago   1 comment top
RyanGWU82 10 hours ago 0 replies      
I've done it twice, once in 2010 and again in 2012.

At the first company we had been using PPTP and L2TP for remote access but our employees were having tons of problems establishing connections and staying connected. Then we switched to the OpenVPN server built into our Vyatta router, along with the standard OpenVPN client. This required a ton of manual configuration on each client, but the connections were rock solid.

In 2012 I helped my new employer deploy OpenVPN Access Server, the commercial version. This one didn't need the clients to be pre-configured. Instead our employees went to a webpage, entered their LDAP username and password, and then were given a download that would do everything. The automatic configuration worked perfectly on Mac OS, Windows, and iOS. (I don't recall if anyone tried it on Linux or Android, but I never heard any problems about those.)

OpenVPN Access Server is ridiculously under-priced -- it's $10 per concurrent connection. If your usage is typical, where most users only connect occasionally, then you can connect hundreds of employees for under $1000. Even if it was a lot more expensive, my experience was quite positive and I'd still recommend this.

Ask HN: Tips for a canadian getting a job down south
2 points by sirbetsalot  18 hours ago   5 comments top 4
fredophile 5 hours ago 0 replies      
I'm a Canadian working in the US. Getting a job in the US is pretty straightforward. Find some companies that are hiring for your area of expertise and apply. Have you looked through the most recent who is hiring post? Your best bet initially will be bigger companies that can afford the expense of flying you in for an interview. Visas shouldn't be an issue even for very small companies since a TN visa is pretty cheap and the process to get it is simple and quick.
gamechangr 18 hours ago 1 reply      
I am not a data scientist and frankly think the term is used way too frequently to describe many different backgrounds, but that aside...Visa concerns are not a major obstacle.

Your network really matters. This cannot be emphasized enough. You can go with the standard answers like "go to Meetups". While you should do that for sure, you may have do something more radical. Consider visiting whichever city you would like to work at for 60 days and see what opens up. That's by far the fastest.

brudgers 16 hours ago 0 replies      
One thing to keep in mind is that CV formats common in other countries, such as attaching photographs or explicit statements of age, marital status, etc. may lead to immediate exclusion as a candidate due to EEOC liability. This more common in corporate environments, but might also stand out as a bit of an oddity in smaller companies.

Good luck.

victorhn 14 hours ago 0 replies      
> Is hiring a Canadian out of the question due to Visa concerns?

You have it easier, same as Mexicans, you can apply to a TN1 visa and is relativately straightforward to get it.

Ask HN: How do I bring our technical hiring coordinators up to speed?
4 points by civilian  1 day ago   7 comments top 7
hunglee2 1 day ago 0 replies      
OK, I'm going to say this - I don't mean to be harsh, but I feel its important the message is clear: You absolutely should not be having these people conduct first contact with developers. They are not trained for it, won't enjoy doing it and are likely to be very bad at it.

Hiring is hard. Its one of the hardest problems confronting any business, especially those that are dependent on technical talent. For a hard, business critical problems like this, you need your best, most qualified staff to handle it - not your cheapest or most inexperienced.

Little mistakes - mistaking Java for JavaScript - maybe understandable on planet earth, but on planet tech - where the community can be less forgiving than it imagines - is as bad a mistake as you can make. You're basically signalling - I don't know about you and I don't care about you. You will not hire quality people with this messaging and this recruitment experience.

The bottom line is, your founding team needs to take the lead. Like it or not, these are the people that in-demand developers are most likely to respond to. After all, developers themselves and are also unlikely to make the kind of mistakes that might ruin your employer brand, a critical asset for an early stage startup looking to hire. Furthermore, they are developers who have gone next level and become founders ready to hire developers - that's pretty much real world karma in World of Startup. They are your best, and likely, your only chance to hire the people you need. They have to grasp this, otherwise it won't matter what techniques or concepts you discover or deploy.

benzesandbetter 1 day ago 0 replies      
I would recommend that you raise this issue with the founders directly, rather than with the hiring coordinators.

Prepare well beforehand, with specific examples of things that are happening. Help the founders connect the dots about how this situation is putting your company at a disadvantage in terms of attracting talent and building your team. Good developers have lots of options, and will certainly view this sort of thing as a negative indication of your company culture. This will leave you with B-listers at best. For a small company, this is poison, as it creates a negative effect that quickly compounds.

At the same time that you raise this issue with the founders, have some potential solutions to offer. This could involve having a technical staff member review correspondence and web-postings from these folks. It could involve some ongoing coaching for these hiring coordinators. It could involve replacing them. A decent level of technical understanding and an attitude of wanting to improve should really be a baseline for anyone in this role. It's not an exaggeration to say that the amateur behavior of these folks could drive your company into the ground.

brudgers 1 day ago 0 replies      
Implicit in your comments is that the founding engineers are in charge and you are not. Perhaps it is worth expressing your concerns to them, but perhaps not: it depends on if your workplace is the sort of place where the founders appreciate unsolicited opinions regarding the quality of their decisions.

In my opinion, there's nothing particularly wrong from a business standpoint with posting a Flash/Flex position on a Python focused job board: if you're not seeking Python engineers, then being perceived as having poor manners by Pythonistas doesn't make much difference for recruiting one way or another. That's not to say it's a good strategy, but most people won't care. That's sort of the sense I get in regard to your company's founding engineers as well.

Good luck.

liquidcool 1 day ago 0 replies      
Ideally, engineering management should have the technical understanding and social skills to recruit. If they don't have the time, that's another story, but for most companies payroll is the biggest expense, hence the most important investment. You don't want to leave that in the hands of people who don't know what they are doing. Third party technical recruiters who don't have a technical background go through orientation and training, and even given that look at the state of things. Managers need to make time to do this or hire someone who can. Dedicated training may help, but not much, and blog posts certainly won't fix this.
eschutte2 1 day ago 0 replies      
You will not be able to bring them up to speed. Recommend that an engineer write the job posting and then let the office managers handle the mechanics of getting it posted and collecting responses.

Also, the idea that you should be looking for talent instead of buzzwords (on the premise that you don't even know what tools your company will be using in six months) is a major philosophical divide and you should find out whether the whole hiring team even agrees with it.

Blackthorn 1 day ago 0 replies      
> I also worry that they don't quite get some concepts like: most programmers can learn any new language/framework if they have motivation behind it.

Then why are they actually handling this at all? It sounds like they should have zero contact with the applicants, not first contact! You never get a second chance to make a first impression.

lsiebert 1 day ago 0 replies      
Shot you an email, but the short answer is, jobs are advertisements. Sell the position well. For a small company, it's better to cast a wide net, for a large company, you want to quickly narrow it down.
Ask HN: How do you version control your microservices?
73 points by supermatt  2 days ago   52 comments top 13
sagichmal 1 day ago 1 reply      

 > I currently use git submodules to track the application > as a whole . . .
This is a conceptual error. There is no such thing as "the application as a whole". There is only the currently-deployed set of services, and their versions.

You should have a build, test, and deploy pipeline (i.e. continuous deployment) which is triggered on any commit to master of any service. The "test" part should include system/integration tests for all services, deployed into a staging environment. If all tests pass, the service that triggered the commit can rolled out to production. Ideally that rollout should happen automatically, should be phased-in, and should be aborted and rolled back if production monitoring detects any problems.

TomFrost 1 day ago 3 replies      
From your description, it sounds like your pain points don't come from versioning your microservice code; they come from versioning the data models that those microservices either 'own' or pass around to each other. While your approach of collecting your microservices as a collection of submodules is novel, that also defeats the purpose of microservices -- you should be able to maintain and deploy them independently without having to be concerned with interoperability.

While it's possible to alleviate some of your pains with versioned APIs to track changes to your data models, you also conflict with data you already have stored in schemaless DBs when those models update.

In a Node or frontend JS stack, I solve that problem with Vers [1]. In any other stack, the idea is fairly simple to replicate: Version your models _inside_ of your code by writing a short diff between it and the previous version every time it changes. Any time you pull data from a DB or accept it via an API, just slip in a call to update it to the latest version. Now your microservice only has to be concerned with the most up-to-date version of this data, and your API endpoints can use the same methods to downgrade any results back to what version that endpoint is using. And frankly that makes versioning your APIs far simpler, as now you move the versioning to the model layer (where all data manipulation really should be) and only need to version the actual API when you change how external services need to interact with it.

And now your other microservices can update to the new schema at their leisure. No more dependency chain driven by your models.

[1] https://github.com/TechnologyAdvice/Vers

grhmc 1 day ago 1 reply      
We deploy every microservice separately and their API has to remain stable, because that is how APIs should work: remain stable. If there is a breaking change, it has to be forward and backward compatible for awhile. Each microservice is blue / green deployed, not all of them as one.

Also look into the `repo` tool by AOSP for managing many repositories.

At Clarify.io, we have about 60 repositories and 45 services we deploy.

janpieterz 1 day ago 1 reply      
You don't really control the composition that closely. The whole point of having a lot of microservices is that you can update and work on very isolated functionality at a time distributed.

As other people have noted as well in here, you should always keep the interface backwards compatible, if needed make a second version of the API or the messages, but never really have to deploy more than a couple of services who really have changed their behavior. The ones just interacting with those services should experience the same interface, being it a couple of versions older or newer.

I'd recommend watching the ucon videos [1] or Udi Dahan's Advanced Distributed Systems design [2] for more in-depth reference material. If you're transforming a team of engineers I can really advise you to join the latter and afterwards order the videos so you can use them with your team as training material! This is less about microservices as them being micro, but more about setting up a distributed service oriented architecture.

[1] https://skillsmatter.com/conferences/6312-mucon#skillscasts

[2] http://www.udidahan.com/training/

SEJeff 1 day ago 1 reply      
/api/v1 ---> /api/v2 if you have breaking changes. You should expect things go be loosely coupled and potentially be updated independently. Maintain backwards compatibility by versioning things like the above
marcosdumay 1 day ago 0 replies      
How do you control the development of independent libraries so that there's no incompatibility problems? Really, people have been solving this exact problem for decades. The fact that you changed a word there for something more specific does not change the world.

The answer, of course, is that you version it. Not put in version control, but manually assign version numbers to it.

You try to make it possible to use several versions at the same time, but that's not always possible. If you have to use only one version, make sure to not make any incompatible changes in a single step, first you deprecate old functionality, some time later you remove it. Some times that's impossible, it's natural but it'll hurt anyway, keep those times at a minimum.

Also, make sure you mark your versions differently for features added and incompatible changes, so that developers can express things like "I'll need an API newer enough for implementing feature X, but old enough so that feature Y is still there".

karka91 1 day ago 1 reply      
Sounds like you manage this manually.Why not have a CI server (travis, jenkins, w/e) build each microservice seperately (e.g. after a push to master) and then attempt an app release with all microservices?

You can also do parametric jobs in jenkins which could allow combining arbitrary microservices versions

Or just version your APIs and declare explicitly what microservice uses what version of the API to communicate with the other service.

davismwfl 1 day ago 1 reply      
Others already pointed a lot of things out. I will throw in my 2 cents.

Micro services should not be directly talking to each other. This couples them in a way that a small API change can be breaking. Instead use a messaging solution so that each service is passing messages and grabbing messages off a queue to do work. This is the easiest way to prevent coupling. It also allows you to version messages if need be and you can deploy a new service to consume those messages. We use JSON, so we can add to a message with no ill effect, and we are careful about removing any required attributes. So we haven't had a need to version messages, but the ability is there if we find it is needed at some point.

Adding messaging does increase complexity in some ways, but once you pass having a handful of services this is the easiest way to manage it.

As a side note. In our solution we have an API that the website and soon to come mobile app tie to. That API interfaces directly with some data schemas but in many places it simply adds messages to a queue for processing.

BrandonM 1 day ago 0 replies      
Have you considered keeping all your code in one git repo? That allows you to know exactly how code dependencies fit together.

This approach is almost certainly not a robust, long-term solution, but it has served us well for a couple years, allowing us to evolve our APIs quickly without spending any of our early dev effort on internal versioning.

Whether it's appropriate for you comes down to your reason for using microservices in the first place.

mateuszf 1 day ago 1 reply      
We don't share any code between the microservices.
alexro 1 day ago 1 reply      
cies 1 day ago 0 replies      
Versioning interfaces (APIs) is much more important than versioning the softwares that implement them.

Consider Semver for your interfaces. This is really important.

bitsofagreement 1 day ago 0 replies      
First, there is a major difference between the component (e.g. the software package) and the connectors (e.g. APIs). It makes sense to talk about versioning at the component level, but it should rarely apply at the API level. See this excellent article for further clarification: https://www.mnot.net/blog/2011/10/25/web_api_versioning_smac....

Versioning an API is a decision by the API provider to let the consumer deal with forward and backward compatibility issues. I prefer the approach of focusing on the link relations or media type vice URI or some other technique of versioning because it is consistent in the direction (wrt Hypermedia-based APIs) of the link relations as the point-of-coupling for your API, which makes managing and reasoning about changes to your API less complicated.

Whenever possible, hypermedia-based media type designers should use the technique of extending to make modifications to a media type design. Extending a media type design means supporting compatibility. In other words, changes in the media type can be accomplished without causing crashes or misbehavior in existing client or server implementations. There are two forms of compatibility to consider when extending a media type: forward and backward.

Forward-compatible design changes are ones that are safe to add to the media type without adversely affecting previously existing implementations. Backward-compatible changes are ones that are safe to add to the media type design without adversely affecting future implementations.

In order to support both forward and backward compatibility, there are some general guidelines that should be followed when making changes to media type designs.1) Existing design elements cannot be removed.2) The meaning or processing of existing elements cannot be changed.3) New design elements must be treated as optional.

In short favor extending the media type or link relation and focus on compatibility. Versioning a media type or link relation is essentially creating a new variation on the original, a new media type. Versioning a media type means making changes to the media type that will likely cause existing implementations of the original media type to break or misbehave in some significant way. Designers should only resort to versioning when there is no possible way to extend the media type design in order to achieve the required feature or functionality goals. Versioning should be seen as a last resort.

Any change to the design of a media type that does not meet the requirements previously described in are indications that a new version of the media type is needed. Examples of these changes are:1) A change that alters the meaning or functionality of an existing feature or element.2) A change that causes an existing element to disappear or become disallowed.3) A change that converts an optional element into a required element.

While versioning a media type should be seen as a last resort, there are times when it is necessary. The following guidelines can help when creating a new version of a media type.1) It should be easy to identify new versions of a media type. a) application/vnd.custom+xml application/vnd.custom-v2+xmlb) application/custom+JSON;version=1 application/custom+JSON;version=2c) * REQUEST *PUT /users/1 HTTP/1.1Host: www.example.orgContent-Type: application/vnd.custom+xml Length:xxxVersion: 22) Implementations should reject unsupported versions.

Hope this helps!

Ask HN: Do you avoid reading articles on sites with paywalls?
16 points by iamjdg  1 day ago   16 comments top 13
rayalez 1 day ago 1 reply      
I'm going against the crowd here, but frankly, I wish that more websites could switch to that model.

I'd rather honestly pay for great content that is worth reading. I think that ads misalign incentives, and force journalists and writers to focus on writing clickbaity articles to drive as much traffic as possible. If more people would agree to pay for content - we would see less bullshit ads and less articles needlessly separated into 10 stupid parts.

It would provide a legitemate business model for new writers and allow them to focus on creating high quality content instead of being forced to dumb it down to the mainstream level to get the views.

Also, if websites like facebook could suggest an alternative payed model without being hated for it by everybody, they could focus on user experience and building quality products, instead of tricking people into watching as much ads as possible and selling their data.

Right now writers and artists can only:

- Rely on ads for their income

- Beg for money on patreon

- Have to sell some t-shirts and dumb merch

to support themselves. The only honest and bullshit-less way to make money is selling books, but it's not always applicable.

I believe that if you think that the content is worth reading - it is worth paying for. Do an honest business transaction, and pay money for the value that you receive, instead of forcing people to come up with shady and manipulative ways to extract money from your attention.

If more people would agree to pay for content, internet would be a much better and more awesome place.

interesting_att 1 day ago 0 replies      
Of course I avoid these articles.

First, most material behind paywalls aren't that great. The NY Times hardly has the monopoly on quality reporting. In fact, most money-driven publications tend to be low quality in many respects, especially when facing people with power and money, because the paywall isn't their only revenue stream. The Intercept, which is a non-profit, routinely beats out the NYT on national security reporting.

Second, these paywalls can be easily bypassed. Again, why pay for this? These notions that these words are their property and hence need to be paid for it have no moral weight to me, especially when some of these publications got us into the Iraq War.

drallison 14 hours ago 0 replies      
I frequently choose not to read things which are behind a paywall. I do subscribe to the NY Times and make regular use of my access through Stanford to read technical articles published behind a paywall. Many of the article that interest me (often linked from HN) end up being clickbait and can be ignored on the basis of their teaser.

In fact, I treat pages that require registration and/or a question answer exactly in the same manner as paywalled articles. If the article is interesting enough, I may give a random answer or create a one-time registration.

I do not like the proliferation of "free registeration" sites. Over time I have become more and more irritated but such requests.

byoung2 1 day ago 0 replies      
If the article is really interesting, I usually open a private tab and then Google the title. Clicking from a search result usually gets me in.
bluejekyll 1 day ago 0 replies      
Paywall, meet back button. The issue is that stuff on the web has basically always been free (ad supported). Trying to switch to subscription models is going to be difficult unless every media company decided to switch to that model, and they were as effective as the MPAA at giving a distribution channel like netflix.
lovelearning 1 day ago 0 replies      
Yes, I just close the tab.

It's the user experience that puts me off - dialogs with patronizing sentences like "it looks like you are someone who enjoys great content", signing up with a strong password, storing that password in passwordsafe, verifying email, logging in, selecting a plan, entering credit card details....

Instead, if they just used a prepaid wallet through my gmail sign-in and silently deducted some amount - say 10 cents for every 5 minutes spent on their site - without bombarding me with all those irritating dialogs, I wouldn't mind paying.

davismwfl 1 day ago 0 replies      
I avoid reading them as well. Generally if you wait just a short time someone else will cover the same material and publish it on a non-paywall site. When I see people on HN (or other sites) post a Washington Post or NYT article that I am interested in and that is behind a paywall I just google the title and generally some other news source has it covered so I can get the basic details.
27182818284 1 day ago 0 replies      

I actually pay for the NYTimes. They provide a real value to me, but not in their webpage

Their value to me comes in their mobile app. I like to read their articles there, and they make me feel good. For example, they hit your app with "Good morning, here's what you need to know" followed by a daily briefing. the daily briefing is worth it alone, but having that extra part, as lame as it sounds, makes me feel good.

bowlich 1 day ago 0 replies      
Not online. But I still keep a number of print subscriptions going (Nat Geo, Fantasy & Science Fiction Magazine).

It's rather rare that I find an online article that is well enough researched and written to warrant paying for it. I suppose if I found more online forums with long-form articles with on-the-ground research than I would be willing to pay up but it I haven't really seen anything that quite fits.

sixQuarks 1 day ago 0 replies      
If you use chrome, you can delete all cookies from past hour. That works sometimes. If you have a VPN, you can connect with different IPs and get access to articles that way. (This all assumes the paywalls give a few free articles each week/month)
namplaa 1 day ago 0 replies      
For the paywalls on many articles that I'm interested in I just Google search them. Many allow you to read the full article if you referrer is google.com
gt565k 1 day ago 0 replies      
Sometimes I can right click -> inspect element, and get rid of the paywall and see the content
pvaldes 21 hours ago 0 replies      
yes, I do.
Ask HN: When was the last time you had to know advanced algebra when coding?
2 points by anacleto  1 day ago   3 comments top 3
liamcardenas 18 hours ago 0 replies      
Coding what? Web applications? Never. Learning algorithms? Yesterday.

It all depends on what you are working on. I know plenty of successful programmers who have gotten away with knowing absolutely no math (not even basic calculus). However, if you don't know "advanced algebra", there may be doors that are not open to you.

tgflynn 1 day ago 0 replies      
What is your definition of "advanced algebra" ?

Group theory ? Galois Theory ? Category Theory ? What ?

yen223 21 hours ago 0 replies      
Linear algebra? All the time.
Ask HN: Should I pursue an ML career with good pay or a dream to teach abroad?
3 points by takeachance  1 day ago   15 comments top 7
takeachance 1 day ago 1 reply      
As for support, I do have some from my family in case of an emergency, but its certainly not infinite.I feel like in life, I've consistently taken the safe route. Now, I'm really tempted to take a huge chance.I know that taking a year or two off to teach English would generally detract from my career, but I also am very self-motivated, and I would probably spend a good amount of that time building my programming skills even more.

tl;dr: Should I take a mid-pay job with high potential for future salary, but be locked into a particular location, or pursue a life-long dream and teach abroad for a low salary with low potential for future salary?

yodsanklai 22 hours ago 0 replies      
You'll always be able to teach oversea. I assume age isn't a factor for this type of job. On the other hand, you probably won't be able to earn money in software engineering 10 years from now if you leave this path. Without skills in 10 years, it's likely to be much harder to make money than now. It's always good to have a safety net.

But you can also be a gambler and listen to your heart and leave tomorrow!

Now that I think about it, right after I graduated (from a top school in my country), I had several options to earn a very good salary. 20 years later, those options simply aren't there anymore! I'm too old for a beginner position, and don't have the experience for a more qualified job.

mathetic 13 hours ago 0 replies      
I think your post gives away the answer and you're only looking for confirmation.

Honestly, I can't give you advice financially as I am roughly your age, but if I were in your position I would follow my dream without any hesitation.

Perhaps considering lacking which of the pursuits would hurt you the most in 10 years can make your decision easier.

yen223 1 day ago 1 reply      
> My current financial situation is pretty much in the shitter, and I have loan payments and bills that make it effectively impossible to save anything.

This cements it. Take the paying job. You can always pursue your dreams in the future, and it's more likely to work out when you are more financially stable.

andyakb 1 day ago 1 reply      
Would your earnings teaching English in Japan cover living expenses and debt? If it would, the go for it. If it wouldn't, figure something else out.

If you do go for it, and don't want to make this a permanent change, make sure to stay current with technology. Build a public portfolio showing that even though you aren't working in tech, you are still working with it.

Another option would be to slowly transition away from teaching English to becoming a freelancer so that you could travel while still earning mid-high pay.

FlopV 1 day ago 1 reply      
The skills and money you get in the ML career could enable you to pursue your dreams with a clear head once your debts have been settled. And maybe you could find a similar role out there?

If you are comfortable in the ML career and want to stay there, then I don't think you'll kick yourself for not leaving, as you might be happy there. You can always go once your in a more settling situation financially, and if you still have the itch, you can scratch it.

chrisyang66660 1 day ago 0 replies      
maybe you can get a bachelor degree from diplomascenters.com. so as to get a good start for your career.
There is no shortage of software developers
31 points by SQL2219  4 days ago   15 comments top 10
MichaelCrawford 4 days ago 1 reply      
A common problem is that the use of staffing firms - recruiters - has led to the common requirement that new hires "hit the ground running" because employers don't want to train someone after paying a recruiter $30,000.00 to find them.

No one seems to believe that I have skills that I've learned from a book, and by writing code on my own, so it doesn't help to invest in my own training.

There are many reasons for the perceived - and yes it is only perceived - shortage of software developers. When I was starting out it was easy to find all the employers, just look up "computer programming" in the yellow pages.

I'm working to index all the world's computer employers at http://www.warplife.com/jobs/computer/ It is just barely started but there are substantial listings for New York City, Seattle, Portland and San Francisco. I have many more written down that I have yet to post; I'm also working on some automated tools.

mattbillenstein 4 days ago 1 reply      
I think you're wrong, it's definitely hard to find competent software engineers. The existence of Hack Reactor and friends are evidence of this -- entire businesses predicated on a supply of dev talent that doesn't meet demand.

But, I think these businesses typically fail to turn out competent software engineers and are really just making a buck off of otherwise smart people who are too focused on the allure of a six-figure software engineering salary. And thus, they don't really help close the talent gap anyway since they are turning out people with just enough software development knowledge to get past a recruiter and into an interview.

zerr 4 days ago 1 reply      
There is a shortage of software developers willing to work for cheap.
JSeymourATL 1 day ago 0 replies      
> I am writing this out of frustration of being on the inside trying to hire people...

First Rule of Hiring: Never ever entrust recruitment to human resources, except for fundamental and rudimentary tasks.

If you're the Hiring Manager; you alone must take lead on this mission and carve out the time required. Incidentally, candidates are always impressed with managers who take the hands-on approach.

Suggest reading the brilliant Alan Weiss on this subject> http://www.goodreads.com/book/show/6545252-the-talent-advant...

codeonfire 4 days ago 0 replies      
There is a guy suing Godaddy because they called him an "obese christian" and would mess up their "image" if they hired him. That is the environment right now in software dev hiring. That is the standard, sadly. Maybe you can hire that guy.
harkyns_castle 4 days ago 0 replies      
I've done a fair bit of contracting, and most interview processes are ridiculous imo. You can't glean anything much of value from a face-to-face interview with a software developer; at least, it can range from the fact they either can't answer questions, or they can answer them perfectly with all the right idioms and (language)-speak. Doesn't really help to determine whether they'd be a valuable asset I don't think (well, the former you can dismiss, but the latter you can't rely on solely). Of course, there's a lot more you'll get from the interview related to interpersonal skills etc.

I think a coding test is vital... that's the first step in filtering out the ones that can talk the talk versus people that can write nice code. I had to conduct interviews for a team in another country at one stage, and I had (supposed) PhD students that couldn't write a Hello World in the language of choice. Had they have been selected just on their resumes, they would've got in easily.

Then beyond that, there are fast learners that can pick up anything given a bit of time and become the leaders in the group, then there are people that can't. Interviews I don't think will find the former.

Then at times these people will get thrown together on teams and you wonder why there's friction... because you've hired some people that aren't helpful, and the others in the team know they'll have to carry them. For expensive jobs, I think its worth taking the time to do a few rounds, provide some good coding challenges, and not to be too pedantic about things if you think the candidate has the experience to pick things up despite not having learnt the latest * framework (of which we seem to get new ones every day).

CyberFonic 4 days ago 1 reply      
I'm confused by your post.

If you are on the inside, then why can't you write job descriptions that are "real"?

The problem of ridiculous job descriptions can only be addressed if team leaders, technical leads, etc make a stand and demand that job descriptions be kept real. Pushing back against clueless PHBs needs to become ever more widespread.

sharemywin 4 days ago 0 replies      
I'd rather have one good QA lead than 5 great programmers.
scdoshi 4 days ago 0 replies      
If you are on the inside and you think the issue is pay scales and job descriptions, surely you've tried to fix these issues and have some data instead of a rant?

Not trying to be sarcastic here, but actually interested th the results

ratfacemcgee 4 days ago 0 replies      
the best job add i ever saw was someone asking the applicants to respond with a .m (objective-c) file which prints out their resume to the console.

just do things like that, and you'll only get "programmers" applying. or people who are good at googling.

Ask HN: What are your favorite code problems to give while interviewing?
9 points by yankoff  1 day ago   11 comments top 5
istvan__ 1 day ago 2 replies      
This is a great topic.

I like to split my interview to the following steps:

- introduction, small talk about the company or the candidate- level 1 write a function that flips a bit that is represented as a single digit integer: (0 -> 1, 1 -> 0) flip two variables (int) without a third one: (a,b -> b,a)

- level 2 what is the runtime complexity of a nested loop (assuming n == m) lease write a function that returns the list of numbers (in a string representation) that are permutation of N digits, where digits are 0..9. (1 -> 0..9, 2 -> 00 01....98 99 etc.) please explain recursion

- level 3 99% of the candidates do not make it to here I guess I should just make them flip that binary tree over the phone. :)

This is basics I think, so most of the software engineers should be able to solve these, even with a little hint.

On the top of these artificial tasks I usually ask them what is the biggest system they contributed code to, what was the contribution. What tools are they using. What is the favorite language and why. How do you to performance profiling for your code. What was the last problem that you solved in production, what was the problem and what is the solution.

And few others.

MalcolmDiggs 1 day ago 1 reply      
I like to give some broken code and ask them to fix it...or give a Class that's missing a function or two and ask them to fill in what seems to be missing.

I tend to like those types of problems more than the "blank page" kind...I've found it to be a closer approximation of the everyday tasks they'll be encountering on the job.

hoare 1 day ago 1 reply      
i guess if i say invert a binary tree i will be hunted down?:D
cweagans 1 day ago 0 replies      
The kind that they can solve at a computer with a real code editor.
kwc98 1 day ago 0 replies      
I like to describe a problem that we are currently experiencing or one that we had in the past to see the troubleshooting logic in play. I love explaining something that is not quite optimal in production and see if this person could help.
Ask HN: What are you working on?
36 points by jacquesm  2 days ago   41 comments top 24
dalacv 1 day ago 2 replies      
LIMS - Laboratory Information Management Systems.

Definitely Niche. I've been doing it for about 15 years and I keep seeing the same consultants over and over again.

Here's the deal. Most manufacturing companies (think Big Pharma, Petrochemical, Chemical, Widget manufacturing, anything really) measure quality. Those quality measurements are probably done in a laboratory. Every laboratory generates data. All that data needs to be managed well so that the laboratory can maintain its accredidation.

Basically, LIMS systems manage samples and lab result data. In addition, they probably integrate with Instruments and instrument software to automate some of that data entry.

Other industries besides manufacturing are Govt (waste and wastewater treatment labs), Third-party labs (labs that do testing for other companies), Healthcare (clinical labs), Forensic Labs, and more.

Bottom line, there are tons of laboratories and they all need to manage their data.

The players in this space are downright stuck in the last decade. There is so much opportunity here for a few new players to come in and make a step-change.

I'm currently working on creating a modern LIMS to manage Laboratory data.

lambdaelite 1 day ago 1 reply      
A medical device startup, based on a technology platform I invented in grad school. The startup part is what started me hanging out on HN, but I've found that there is very little overlap between what I'm trying to do and what startups on HN do. Still, things are interesting enough here that I keep checking in.

edit: I missed the "how's it working out?" part.

Not great. Cash starved from day 1. Funding for medical devices is quite, quite different than software (i.e., bad but getting better recently). We don't fit the model for many VCs, so that limits potential sources, and being in medical devices means that we need to deal with sophisticated investors that can run proper DD on us, further limiting potential sources. Funding has been (and still is) a struggle! It's also a little bit "lonely": we run into a lot of problems unique to this industry, but often we can't talk about it in detail, and even when we can, there aren't many people around to talk to.

Project management has been interesting. There's quite a number of consulting and industrial design groups out there, which helps to bring in expertise when needed and keep things lean overall. A big challenge has been in setting up the supply chain: it's not something I've done (or thought of) before, but consulting has helped out here as well. Basically, we'd be dead in the water without outside consultants.

Regulatory affairs is a pain, but I appreciate why it's there and it's not onerous per se, just slows everything down (not necessarily a bad thing). It more or less distills down to documenting "say what you're doing, and do what you're saying".

The technology side is a bit boring, honestly. We need to design things conservatively, unless we have a really, really good reason not to. We also need guaranteed years of availability for parts, which additionally tends to lead to conservative designs.

Surprising lessons learned: cable management (i.e., in the device) is a nightmare, and packaging is anything but a simple problem to solve. Also, may have learned more in 6 mos. tilting at these windmills than my entire undergrad + graduate career.

heywire 1 day ago 1 reply      
I'm a software developer working on point-of-sale at one of the major companies in this field. I've worked at the same company for my entire career, and have no plans on leaving. I've found that the retail software industry seems to be very "sticky" -- lots of people with 20, 30+ year histories at the same company (or sets of companies). Even those who leave seem to stay in the general industry, sometimes even returning to the same company. The company I work for gives plenty of opportunities internally to transfer between projects and teams, and there are many different software stacks in use, so there is always something interesting to work on.
samteeeee 1 day ago 4 replies      
I'm working on what I currently call "IMDb for Drones", although I really need a better way of describing it! Here it is: http://www.RCPartRatings.com
benzesandbetter 1 day ago 0 replies      
I'm working with two SaaS startups to build analytics-driven marketing platforms based on an open source CMS. Both clients create tools for technical teams, and both are solidly profitable. One of them is from the Bay Area and on Series D. The other if from Scandinavia and on series A. In both instances, the previous version of their web presence was developed by the same dev team as their core product, and their marketing/growth team was competing for development time from the same devs who were building their core product. The platform we've developed enables non-technical marketing teams to easily push out new initiatives and new content, rapidly measure their results and correcting course. At the same time, their team can be confident that their site will work smoothly across a broad range of devices and platforms. By combining software development skills with knowledge of marketing tools and best-practices, we've created a nice niche for ourselves.

I'm also working with a Fortune 100 client to develop an intranet platform for them. It's an awesome project, and I wish I could say more than that, but we're under a rather restrictive NDA. We're working on producing a case study, and getting it approved by their legal department. We've done some other large intranet projects before (federal agencies and global NGOs) so this is another strong niche for us.

I often encourage developers to combine their technical skills with another domain-specific specialty to create a compelling value proposition. It's great to be a "Javascript developer" or "Python developer" but with that positioning, you are easily commoditized. By combining technical skills with a non-technical specialty you are much more resistant to commoditization.

brickcap 1 day ago 1 reply      
I am working on wrinq[1] an application that helps people manage their rental property. Not a niche domain (or maybe it is since I don't see many applications for the real estate sector except for listings) but we are using niche technologies.

It is built with openresty and couchdb both of which I feel are terribly underrated technologies.

"How is it working out?"

On the technology side. Everything is going great. I read a thread on micro-services a while ago and with couchdb (if you take time to think through) it is really easy to have micro-services that can be distributed. We've got 5. While they are not independently deployed yet they can be at any time. It's only a mater of replicating the existing data(very easy) and changing the urls(easy but needs some thorough testing).

openresty makes it really easy to communicate to in house as well as some third party services we use. I smile every time I write:

`local res1,res2,res3 = ngx.location.capture_multi{{"url1"},{"url3"},{"url3"}}

It is very satisfying to see the results of different independent apis coming together in a single call.

Both of these technologies are very resource efficient,openresty in particular. And we have tested high loads of traffic on cheap servers without making any effort to optimize.

On the business side. We are doing okay. Making sales is always a challenge but people are interested in talking to us which is a good sign, I feel. Only a matter of time before we perfect our product and pitch. We are in no hurry :)


pp19dd 1 day ago 1 reply      
Think my niche is programming in news. Something between a programmer, an editor and a reporter. I don't work on the core CMS because we have dedicated teams for that. What I specialize in is all the things the CMS can't do, won't do, or isn't designed for, like interactives. Or this http://projects.voanews.com/ebola-tracker/ ; the tracker data is updated manually because it has to be reviewed (sudo vi ebola/data) but an automated watch script alerts me when the World Health Organization updates their ebola stats every few epidemiological weeks. I like using RaphaelJS for making graphics.

Currently, working on 3-4 editorial projects. First one is a bit dry, a metrics dashboard done in Node.js that gets top pageviews from our articles and then scrapes titles, number of article comments, facebook shares, tweets. Some real surprises there - an article can have 10x number of fb shares than pageviews. As in, the teaser photo + summary is enough for people to share and not read in entirety. I like node. Also (probably unsurprisingly) but facebook is faster than our own sites for scrapes, even though we use akamai / CDN.

Next up is a parallax-y report on fourth of July for our Learning English division. It's a longform writeup laced with some cinemagraph-style looping videos and embedded quizzes explaining the constitution and a bunch of Americana to our international audience. The internal tool we generate these projects with (tool separates content and programming/design) are a mix of PHP / Smarty templating that I want to convert to node with some realtime collaboration features, but once baked the final reader-facing stuff is HTML/JavaScript. Looks kind of like this http://projects.voanews.com/central-african-republic-diamond... project. Funny thing is the internal tool is called "timeline editor" and it does everything except timelines. It should be called interactive editor.

Also, oh boy, I made that map in the article and am so proud of it. It remixed a bunch of complicated and overwhelming data points and simplified it for the reader. Had to do some lat/lng to pixel conversions, some point-in-polygon checks, got the CAR shape polygon list from a UC Davis site and then used inkscape to simplify the shapes because it had millions of points. So guess this kind of programming is a niche specialization for news agencies, and it's worked well for me, going on 7-8 years now.

Damn, I'm a nerd.

david927 2 days ago 0 replies      
An new programming language paradigm:https://vimeo.com/107069470

Really tough going, but have a first customer in its initial incarnation: brodlist.com

memossy 16 hours ago 0 replies      
Modelling religion and extremism using a combination of behavioural economics/psychology, AI and a few other snazzy buzzwords.

We believe that if we build on this framework correctly it is possible (maybe not probable) to eliminate major extremism and are about to kick off our seed round to scale it..

Frighteningly ambitious, but fun

jdc0589 1 day ago 0 replies      
just finished working on my first real fully automated + autoscaling + distributed application environment a few weeks ago. The the definition/spec for all of it is on source control; nothing is done manually at go-time.

It gives you the same type of confidence about your application environment that you experienced for the first time when you switched to automated application deployments.

the various "click the build button" workflows that are implemented so far:

1. base images for all the different server types get built/updated. any future environment updates will upgrade machines to the new images.

2. an entire new named application environment (minimum ~15 VMs) gets created (webservers, background services, cache servers, database servers, etc..), configured, and applications deployed to. creating a new environment for, e.g, performance testing is as simple saying "build: performance-test-env"

3. an entire app environment (any of them) gets updated based on any configuration changes made since the last update/create.

4. various normal application deployment automation

andersthue 2 days ago 0 replies      
A new methodology, agile/scrum but more humane.

Been an IT developer for most of my life but always found humans and how they work more interesting than computers and finally I figured out how to do something good with that interest.


duartetb 1 day ago 0 replies      
http://Gamedevr.com - Links and resources for game developers.

Im trying to get into game development, and decided to create a website listing alot of tools and resources that i think are usefull.

The main objective is to be community curated, by adding your own links via Github. The problem is that im also a newbie webdeveloper and havent spent alot of time learning about source control and Github especificaly.

Im learning as I go, thats why i havent realy posted it anywhere.

Im planning on adding alot of resources, fix alot of stuff and then realy tell people about it.

Ill just leave it here, for some feedback from you guys.

Ps: Sorry for my terrible english.

tixocloud 1 day ago 0 replies      
Market Intelligence as a Service - Insightico (http://getinsightico.com)

Exploring if we have a viable business after several people have told us that it's useful. We're still trying to land our first customer though the challenge is focusing on the right customer segment since it spans multiple industries.

Funny enough, I did have a job choosing and picking technologies such as Oracle/Microsoft/etc. I worked at a high growth startup at the beginning and then went to work at large corporations to get a balance of both worlds.

MarkCole 1 day ago 0 replies      
At the moment my niche is 'game development'. Specifically the development of a web based game at a medium sized (400-500 employees I believe) game company. So nothing really out of the ordinary there.

Our tech stack is also pretty standard for a game of this era PHP and MySQL backend, frontend is HTML, CSS and JS. Version control with SVN.

It's definitely been eye opening for me, debugging old code that hasn't been touched since the mid-noughties can be a real challenge. However this has taught me to be more thoughtful about how I code, and to plan out how I'm going to build something efficient and maintainable.

atsaloli 1 day ago 0 replies      
My niche is training sysadmins on CFEngine. Been doing it part-time for 5 years; just got a full-time gig as a CFEngine consultant for a year and wondering when I'm going to have time to continue developing/expanding the training but happy to be working on CFEngine full-time as it'll help raise my expertise.
fananta 1 day ago 0 replies      
Chirp - A new smart notification center.

It's still being developed but here's the landing page to give an idea: http://welcomechirp.com

moubarak 17 hours ago 0 replies      
i'm working on automating texture compression for game authors. i'm imagining a tool that automagically compresses assets for best quality and size, and very quickly, in a way a game author wouldn't have to even know it's happening. At this point i'd like to talk to game authors about their texture compression pains.
tmaly 1 day ago 0 replies      
https://askpatron.com fast single screen customer feedback with rewards for small local businesses. It's a work in progress and I am doing things that don't scale right now. I have four businesses that are helping me beta test. I am looking for more. The overall goal is to improve the customer experience using a system that is super fast and super simple to use.
sganesh 1 day ago 0 replies      
SETaaS - Software Engineering Teams as a Service

Trying to find out if the bootstrapped productized service at http://www.thinkbridge.us/setaas.html is viable.

Targets are businesses with software systems and applications that are to be developed and maintained at a smaller scale but need continued access to technical talent.

After being a Software Developer for 15+ yrs, learning marketing & sales :)

HeyLaughingBoy 1 day ago 0 replies      
Niche: embedded systemsWorking on - "at work:" a large medical instrument; "at home:" an industrial monitoring platform with a web interface.

I really like my niche. I've believed that merging embedded control systems and "the web" was long overdue, and finally industry is catching up with that belief.

brudgers 1 day ago 0 replies      
Refitting the architecture boat to sail seas of information instead of motoring commodified ponds of construction? So far, it's not appreciably less successful in real terms and even if my valuations and probabilities are each off by an order of magnitude or two in bad directions, the expected return is higher per time unit of effort simply because piece work cannot scale well.

And writing.

haidrali 1 day ago 0 replies      
Previously i had worked on a mobile app product Tweelerts (tweelerts.com) and now i am working on a Parse like service which let you share you static data ( text, json, XML, files or any other data) over API. No coding required you just need few click to set up and server data over API
anotheryou 1 day ago 0 replies      
I work on a lot of projects and love doing the concepts. in parts I consider myself an Artist and Explorer. My qualities are a good sense for abstraction and having a broad knowledge (as opposed to specific expertise) and knowing how to communicate between people. The tech side is often too much work and to complicated for me to go beyond a proofs of concept, but as I do most just to satisfy my own curiosity I'm feeling great with this.

My Passions are structuring knowledge, perception, society, art, sound, music and love.

I'm not so much career focused, but I'll see what opportunities I can find, once I finished my Diploma:


1. PostPriori - combining news aggregation with twitter like personal subscriptions, exploring weighting of content beyond:

- a suggestion engine (not yet good enough for the finesse of a personal taste, scary because out of direct control, biased towards easily digestible content)

- democracy (simply does not scale. Might work for niches, but look at the shift in reddits audience. It has to become mainstream. Subreddits are a fix, but not a very elegant solution I think)

- doing it chronologically (one needs to filter the mass of input, making actuality so important is not the right way I think and a huge problem in the media. I'm also incapable on using twitter as is because of this.)

I have a few things to try on how to keep all the ratings very human and hand-choosen by those you personally trust. I also want to try to enhance viral distribution and allow for semi-classical editorial institutions.

Further discussions about it are very welcome!

It will become my Diploma in Arts, so I'm free for now from commercializing it. You can subscribe to a newsletter which I will send out once beta-testing starts:



2. All of It - A personal, local Wiki.

I recently started making a wiki out of my notes. I will yet have to see on how to cramp the naturally ribosomal information there is in to some hierarchy with cross links.

To stay true to the nature of information I'd need a more associative indexing, but i won't build another google or some other brain. :)

I'm using markdown, http://wikitten.vizuina.com/ and owncloud.


3. musical experiments

- I'm writing sort of a firmware for a midi keyboard to play quarter tones. (using this http://www.keithmcmillen.com/products/qunexus/ it has 2 pressure sensors per key, so I can split keys easily once I have the raw data)

- I'm planning a responsive, randomized effect array.

From my instrument (a trumpet for now), I try to extract how I play (pitch, volume etc.) and randomly assign effects to certain locations in this matrix. Once I like a certain location I will fix it and shuffle everything else. Over time a a spectrum of curated effects will be fixed on the range of my playing.I hope for something like bending down a loud C and having it distorted, than when I go silent it suddenly becomes roomy with a reverb and things like that.


4. I'll join another startup on monday. I want to build something to make money, not just sell my time/workforce.


5. I do some freelancing as a web developer, throwing together and customizing CMS'.


6. a relaxing students job at the state television


7. Other small jobs: media installations for exhibitions and artists, photography, proofreading (in german, spare me my mistakes here :)


edit: added projects and edited a bit

johnnyjuiceNYC 2 days ago 0 replies      
finance + user experience
Ask HN: What web languages and frameworks would you recommend learning today?
6 points by someguy1233  1 day ago   11 comments top 5
trevordev 1 day ago 1 reply      
1) I don't think any of those tools are dying, people are just sharing that other tools will work better in certain situations and each tool has it's place. I'm a fan of nodejs but I have found the dynamic typing and poor performance of JavaScript can hinder my recommendation when building a large, performance critical app.

2) The languages/frameworks I would recommend depends on what you want to build. The large amount of JavaScript libraries and its ability to work in the browser make me highly favour javascript and I have found that typescript provides a nice layer on top to provide sane typing and code auto completion for many of my needs. However, Typescript tools and the language still feel underdeveloped. I would use node to handle web requests and offload "heavier" work to c/rust/go if needed

3) I used to use c/c++ for a lot of my personal project but I have found tasks like managing memory can add unneeded complexity to the majority of my tasks. C still has it's place when certain requirements must be met.

iDemonix 1 day ago 2 replies      
Not the answer you are looking for, but I've heard so much about Laravel that I've finally started to dive in. I do wish there were more L5 tutorials around, however.

Coming from a background where I did more or less everything myself from scratch, learning the ways of a framework isn't the easiest thing I've done in a while.

Back on to your topic, what you need to remember is that proponents of a new piece of software will always criticise its rivals. You also need to remember that a lot of people will just learn a single technology, never try the others, but declare the one they are using is the best. I see it a lot at work, people will say X language is far superior to Y language, and if they need to argue why they'll Google until they find something that agrees with what they're saying. This comic sums it up: http://i.imgur.com/ROS7lGT.jpg

scalesolved 1 day ago 1 reply      
1) If I had to switch from current stack (Java/Play Framework/Spring) I'd look at one of those, they all seem super healthy and a lot of remote work uses one of the 3 (I'm a fan of working remotely).

2) Whichever language you enjoy working with and be productive in (I've heard good things about Laravel), don't always think the grass is greener. I'd say try out the Play Framework https://playframework.com/ You can code in either Scala or Java and it'd make a change from dynamic languages for you.

3) I switched from Java to Ruby and back again and found the sweet spot of both, I think I've improved more since I stopped worrying if I was missing out and just concentrated on being productive at work and solving problems I enjoy outside of work.

brickcap 1 day ago 0 replies      
I feel that any one who is using nginx would benefit if he learnt a bit of openresty (http://openresty.org/)
liamcardenas 1 day ago 0 replies      
There comes a point in a developer's career where the framework/language doesn't really matter. Node, PHP, Rails, Django, etc all have their strengths and weaknesses.

If you are wondering which framework/language to use for a given project, the above questions won't really help you. Instead consider the following:

1. How much community support does the framework have?For example, a novice NodeJS developer is probably better off using Express than, say, Koa-- which is much less widely used and documented (unless that developer likes struggling through problems). Tackling less supported frameworks can be very educational but is also risky. If you are building a startup based on something that is unstable and/or unsupported, you may accumulate some serious technical debt that could hurt you later.

2. Try out all your options and decide: which one's easier/more fun (for you)?If you are trying to build a product, why bog yourself down with a framework that you find more difficult to use, just because some other developers say that it is "not as good"? Many people love ruby and python-- I'm personally not a fan of either. Does that make rails, django, or flask bad frameworks? Not at all! I just personally don't like them. At the end of the day, you are trying to make software that /does something/. I highly recommend simply picking the easiest/"funnest" route. You might even consider using parse to skip backend development altogether (it just makes you more efficient as a developer).

3. Are you collaborating with others?If you don't have a strong opinion on which framework to use, why not let those who do pick their favorite for you?

4. Are there any special libraries/tools that you would like to use?Not all ecosystems are created equal. Most languages have frameworks that allow you to easily make HTTP endpoints and packages to help you access databases-- which is all you need for a basic web application. However, sometimes languages will have niche libraries that make them especially ideal for a given use-case. NodeJS and Ruby have very rich ecosystems, however, there have been times where I have been forced to use python or java for this very reason. It depends completely on what you are building.

I typically advise people who are just beginning to learn NodeJS, so that, as a web developer, they get more comfortable with JavaScript (I see you already use express, so this may not apply to you). If you are just asking this question for the thrill of trying a new framework, and not from the perspective of using it to build anything in particular, why not try Rust Iron? I've been meaning to check that out, although I'm not sure if it is production ready yet.

Ask HN: Express, Koa or Hapi which framework would you use?
3 points by tixocloud  1 day ago   4 comments top
davismwfl 1 day ago 1 reply      
I still am using express. Express 4 really solved some of the headaches of prior versions, and we have custom middleware we wrote and have good patterns for separation of routes/controllers and views. So it works well for us, and the community is the largest so support and help is easy to find.

hapi is good but to me requires more forethought on the application and usage etc. Not a bad thing at all, but sometimes during rapid iteration this just isn't possible so then you wind up redoing larger chunks then you would with say express. For a team that has more time or is more mature in process it would be good. Although in all fairness I have not researched the updates to hapi in quite a while so this may be a bit stale.

koa I never considered seriously when we were starting our projects so I can't comment.

One other you should look at depending on your needs is restify. I haven't used it yet for a production application, but do have it wired up in a experiment right now.

*EDIT:Also for user management, yes we rolled our own. There are npm modules like passport but we didn't like it before and haven't gone back to reevaluate since ours works good.

Ramen eaters?
2 points by geperry  1 day ago   3 comments top 2
carise 4 hours ago 0 replies      
I eat ramen a few times every month, and I usually add eggs (poached, sunny-side up, etc.) and green onions. My mom always made ramen like this. :)

If I am craving niurou mian but don't have the time to make it, I add some soy sauce, sometimes a bean paste, cinnamon, star anise, ginger, and sugar and let the broth simmer a little longer.

Ask HN: How to reskill without losing income?
193 points by xchaotic  5 days ago   93 comments top 33
hkarthik 5 days ago 10 replies      
I did this back in 2009. Here's how to do it.

Pick a technology stack that you want to get a job in and build a side project in your spare time. Attend meetups with experts in your local community and learn how to make it awesome. Build relationships with them along the way.

Use those relationships to get some part-time contract work in said technology stack with someone local. Document this experience and build up a portfolio.

Eventually, use the knowledge you've obtained from your side project and part time contract work to apply for full time jobs. You'll then be very marketable, and you will have enough knowledge to do well in interviews.

Good luck!

pcsanwald 5 days ago 7 replies      
As someone who does a lot of hiring for a startup, I will say I'm agnostic with regards to languages and frameworks. We've hired folks with all sorts of disparate backgrounds including embedded C (we mostly use Java and JavaScript).

I think you should sell yourself as an experienced technologist who's looking to learn. You should also demonstrate a willingness and ability to learn new things; maybe by making something and putting it up on github.

lastofus 5 days ago 1 reply      
> I think if I applied for a job I'd get rejected as there is no track record of being able to work with that tech.

This is a big assumption, that is simply not true for a lot of opportunities out there. If you are able to show proficiency in what they are looking for, many companies will take you seriously as a candidate, even without 5+ years on the resume in said technology.

Worst thing you can do for yourself is to not try and apply. Worse case is you get a "no thanks" and you move on to the next application.

sjcrank 5 days ago 2 replies      
I have found it is much easier to switch to a new stack within your existing employer than it is to get hired for a stack for which you have no professional experience.

Here are the steps:

a. find employment at a company that requires your niche skillset but also has projects in your desired tech stack (hopefully this is your current employer)

b. learn enough of the desired tech stack on your own to be a useful contributor

c. ask to switch over to a project using your new stack, or volunteer to write tests or help in some other way to get your foot in the door (this may require some persistence and relationship-building)

d. once you have some experience you are ready to add it to your resume and seek your dream job

nasalgoat 5 days ago 2 replies      
When I interview people, I am less interested in their specific experience than I am in their ability to think and troubleshoot problems. Google solves the knowledge problem but doesn't solve the problem of intelligently using that info.

I imagine other employers are similar, and given the high demand for tech workers, you might be surprised at the reactions.

mrj 5 days ago 0 replies      
My advice: thinking it is just "different keywords" is exactly why you may lose income. The syntax may be easy to change but you're changing an entire stack that will have it's own conventions, history and culture.

If you want to be paid well, it's an awful lot more than just keywords.

nilkn 5 days ago 3 replies      
Do companies really try to pigeonhole developers into "tech stacks" so much that you'll be forced to revert to junior status to change?

Unless we're talking about COBOL -> Haskell here, I think any decent company would be wary of overvaluing skills with a particular language or framework and undervaluing fundamentals.

vkjv 5 days ago 0 replies      
> Are there any companies that would be willing to hire a grumpy 30-something and recognise his/her experience as something reusable?

Yes. I work for a large company that does recognize this and does not hire for specific stack experience. We have a hard enough time finding enough good people, regardless of specific experience, to use that as a critical factor.

jsamos 5 days ago 0 replies      
Sounds like you're confident in you ability to pick up any stack. I wouldn't wait. Good companies hire smart people.

I just switched to a great company with a stack I had zero experience with. Hasn't been a problem at all.

colinbartlett 5 days ago 0 replies      
Maybe start by attending user groups or meet-ups on the tech you're interested in. That might lead to some potential freelancing gigs or even just some open source work in that field.

But, in general, I think many, many companies are willing to hire 30-somethings with experience. Perhaps seed-funded startups aim for cheap low end labor, but enterprises and well-funded startups consistently value experience over skills with a specific stack or language.

vinceguidry 5 days ago 0 replies      
You would not get rejected if you applied for a job without a track record, at least, not out of hand. I've been hired to work on .NET having never had worked on it before.

You do not need side projects or to train yourself. Just the ability to project confidence.

Robert_Webonise 3 days ago 0 replies      
If you're a senior level developer (ie: if you've been doing development more than 7+ years), then you're in luck. Companies usually recognize senior level developers can migrate to a related technology stack without too much of a loss, and the skills of being a senior developer are more soft-skills than particular technical areas. Recruiters generally won't know how to sell you in this regard, but with a bit of networking, you should be able to find you a bridge position into your new technology stack. You are going to be expected to hit the ground running, which will make the first few months of that job really exciting, but it should be entirely possible.

A good place to look is in consulting companies, like my own Webonise Lab. Consulting companies will often hire experienced people to become generalists with broad skill sets, and will often take a specialist and give them an opportunity to train up through the company's open source projects and the like.

wyclif 4 days ago 0 replies      
I also went through this a few years ago. I was a land surveyor and although I loved the combination of technical, mathematical, and analytic skill with working in the great outdoors, the subprime mortgage crisis resulted in big commercial land development contracts drying up.

You have to be single-minded and goal-oriented. Another HN user above says to "pick a technology stack" and focus down on it. That's great advice. I already had some experience on the LAMP stack and I built up from there. Don't let yourself get distracted after you've decided the direction you see yourself moving in.

Work on side projects. Go to meetups. Find people you can collaborate with and work well with you. See if you can get some PT work that is being parceled out by companies because their own FT devs are too busy. If you're allowed to expose your code, build up your Github. Don't forget to visualise where you see yourself going, and don't be afraid to tell people where you're headed.

Also, make productivity apps work for you. Have a Dropbox file where you keep all your technical books, and have that file open all the time. Subscribe to Pinboard or some other bookmarking service to save technical blog posts and documentation you want to read. Use Trello to manage your projects. Etc. Good luck to you.

deedubaya 5 days ago 1 reply      
If you have an employer, this is usually a pretty easy sell. Approach your boss about transitioning Aging Product X to a new technology stack because the current one is becoming defunct. Of course this will require some training for you, but it is easier to teach you a new skill set than to hire someone with that skill set and get them to learn about Aging Product X.

If you aren't employed and are contracting/freelance, it is just as easy. Since your skill set is niche, not everyone has it, and you can charge more for that niche. Up your rates enough that you can cut 10 hours a week out to study something new.

newobj 5 days ago 0 replies      
I've worked for 20 years and never targeted myself towards a tech stack. In fact, I think spreading yourself over lots of different tech is a better bet for longevity, even if not optimal in some short-term capacity. Being able to adapt quickly to new paradigms is the quality necessary for long-run viability. And when you have a track record of successfully doing that, no one will question your ability to do it in a new setting.
GFischer 5 days ago 0 replies      
Doing consulting work? If you can solve companies' problems, they won't mind if you don't have a track record with that particular stack.
serve_yay 5 days ago 0 replies      
I switched from doing back-end C# work to front-end JS by switching jobs at my employer. I basically reskilled on their dime. If you're a talented engineer and your company doesn't suck, they should be relatively accommodating to this idea. Engineers get bored and want to switch it up, smart companies and smart managers get this.
darklajid 5 days ago 1 reply      
Thanks a lot for asking this - I'm in a similar boat and will follow this thread with interest.

Good luck from another 30-something.

For me 'niche tech' is one thing, and 'investing a lot of time in the bowels of the corporate product over 10 years' the other one - the latter just WILL go away if I switch and is absolutely not useful elsewhere

personlurking 5 days ago 0 replies      
My issue is similar, though not so tech-related. I do VA work for some startups but would like to get into a growing interest of mine (journalism), though my time is limited. I have experience as a writer, but not a background in journalism. I could make the complete jump to being a journo and self-publish, shop stories and find my way, but that'd mean giving up what pays the bills (pay & responsibilities of which are currently on the rise). Doing what I want to do means way more work and, very likely, less pay.

Does anyone else here juggle two different jobs? Is there a secret to doing so?

cpitkin 5 days ago 0 replies      
As someone who is trying to move into the development space from a more sys admin role this is great to hear. I have a similar idea about learning new things. I just dive in with both feet and start building, watching tutorials, and reading the docs. I have been working on Nodejs/Meteorjs apps in my spare time. I am just going to keep building little side projects to get better and learning all I can along the way.

Glad to see I am on the right track and that others have had success managing their career path. Thanks for all the great advice!

Moral of the thread: Never stop learning!

xchaotic 5 days ago 0 replies      
Thank you soo much for all the comments so far. I didn't expect such positive respone. It definitely encourages me to try new things over the summer.
ofcapl_ 5 days ago 0 replies      
It is a good question! Personally, I've got my first full-time job thanks mostly to own side projects in my portfolio - I was hired even without code challenge during recruit process - so listen to 75% of comments here - do some side projects, built a solid portfolio and apply.

You can also try some contract work/start own business and do some simply projects that one-man-band can handle - I was trying that too and after every project I've felt that my skills got a boost.



swalsh 5 days ago 0 replies      
I just switched from C# to Ruby. Honestly the switch has not been that big of deal. The company is giving me some time to learn, and the switch has been pretty painless.

I think if you want to switch, I think its more important to demonstrate skills in the base skill set (in my case software architecture), and then there are plenty of people willing to give you some room to grow.

brudgers 5 days ago 0 replies      
Career changes also allow for switching roles. There's no reason to keep playing grumpy at a new job. First because good workplaces are often good because they don't place a premium on grumpy, and second because at companies that value grumpy that slot is likely to be filled. I'd throw in that thirty-something is a bit young to be the go-to-get-off-my-lawn person.

Good luck.

vkjv 5 days ago 0 replies      
I'm curious about something similar, but perhaps more drastic. I went to college for EE, but after graduating got a job in software. I enjoy computer engineering much more than software, but at this point I'm 5 years into my career and I don't see a way that I could ever switch paths without taking a critical hit in income.
testingonprod 5 days ago 0 replies      

We don't care about what tech stack you know, we're willing to teach you ours. We just need you to be extremely motivated and ready to go!

digitalboss 5 days ago 0 replies      
I'v really enjoyed seeing what companies such as tradecraft have doing around this sort tactic http://tradecrafted.com/ - check them out.
martin-adams 5 days ago 0 replies      
>> I think if I applied for a job I'd get rejected

Only one way to know for sure.

derptron 5 days ago 0 replies      
You're going to have to do it on your own time. Make it a pet project, make it visible on github, and make sure to link it on your resume so potential employers can see what you're capable. of.
a3voices 5 days ago 1 reply      
You could do work at night on side projects to learn new skills.
ngneer 5 days ago 0 replies      
I am in the exact same position. Summarizing the responses, the short answer to your question is no, there is no escape.
ngneer 5 days ago 0 replies      
adnam 5 days ago 0 replies      
PHP programmer, right?
Ask HN: How would you validate data on both back end and front end?
3 points by borlum  1 day ago   5 comments top 5
brudgers 16 hours ago 0 replies      
Client side validation is a user interface improvement when it provides convenience. It does not replace server side validation because server side validation ensures application integrity. Of course applications that run in the browser muddy the water a bit, but still whatever hits the server requires scrutiny.
stephenr 1 day ago 0 replies      
Do basic validation client side - if you can, rely on html input types and html5 validation attributes. It should be enough to be helpful in most cases without being overly onerous to maintain or hard to match server-side exactly.

Put your full detailed validation rules server-side.

borlum 1 day ago 0 replies      
By validate I mean, rules like:

- is "title" set,- when "age" is set "birthday" must not be set.- the cart can have a max of 10 items.

lovelearning 1 day ago 0 replies      
In some java web applications, I wrote form validation rules in javascript for client side validation, and reused them server side using java's scripting API.
Blackthorn 1 day ago 0 replies      
Can you give an example of what you mean by 'validate'? The word is highly overloaded and has different meaning depending on where the data is being used.
How to do audio recognition of animal sounds?
3 points by skoerbitz  1 day ago   2 comments top 2
fundamental 1 day ago 0 replies      
That's a pretty broad question that leads into a large number of branches of pattern recognition and general machine learning techniques. There's not a simple answer and no single algorithm is going to work well for all 'animal sounds'. I'd recommend picking a particular animal and perhaps a particular call that you're interested in and searching through the literature to see what techniques are currently in use.
pvaldes 21 hours ago 0 replies      
Load the audio file in your favourite language, choose an audio library, pick an example of your song, choose a short distintive sequence and search for the desired patron. Finally assure that a human verify the obtained results.

More easy to do in birds that in bats or whales. You need also to check mimicry. Cricket sons can be a problem if you work with bats. What kind of animals are you interested in?

       cached 14 June 2015 12:05:02 GMT