hacker news with inline top comments    .. more ..    15 Nov 2016 Ask
home   ask   best   3 years ago   
Ask HN: What simple tools / products are you most proud of making?
9 points by shovel  50 minutes ago   4 comments top 4
xojoc 4 minutes ago 0 replies      
https://typed.pw - Simple way to write online.
pr0x1m4 4 minutes ago 0 replies      
A simple electron based font/glyph viewer.


Shubham23596 16 minutes ago 0 replies      
Locateonspot is an simple app to find family and car you can take it up as simple product
dozzie 9 minutes ago 0 replies      
There are several.

* cfgen, a config files generator that is fed with config templates andparameters to fill them

* CronBuilder, to pull a repository, run building command, and save theresults in another repository

* flowmon, which shows bandwith usage of different streams, each defined byBPF filter (a.k.a. "tcpdump syntax")

* sftponly, a shell for jailing in chroot accounts meant for data transferonly (for scp, sFTP, and rsync)

* xmlrpcd and its spiritual successor HarpCaller, RPC daemons for sysadmins

* logdevourer, log parsing daemon

These are just the public ones, the ones that were generic enough to be opensourced. I have few others that are/were too specific to the environment theywere written for.

Ask HN: Is Xamarin worth learning?
168 points by ceeK  1 day ago   154 comments top 53
gressquel 21 hours ago 1 reply      
Xamarin Native developer here,I started off by trying to create a Pokemon Go Map app. Although I got off to a quick start, slowly it downed upon me that I started spending too much time finding fixes for Xamarin issues rather that programming. I used macbook as agent and visual studio as IDE. Sometimes the deployment would take 5 minutes! I then had to restart the agent to fix it. As a programmer I am rather a person who runs a code, change a little bit in code, then run it again. If I dont understand things I google it or find the documentation. Thats my way of learning things instead of reading through programming books.

For me Xamarin Native was slow and rigid. I highly doubt I could make 'innovative' apps with Xamarin. Maybe it is okay for people who want simple things like a "to-do app" or somethign that fetches list of images and displays it.

I wanted more and found no solution for things I needed, so I gave up and started xcode (swift + some objective c).

And let me be clear here, if I had spent same amonut of time on xcode as xamarin I would have been iOS dev master :)

Things just works much better. You can do anything you imagine with Xcode and swift. With Xamarin its more like find whatever library is out there and try to create something by combining these. Too many bugs.

This is no sly dig on Xamarin or Microsoft as I use alot of MS products myself. I have also tried phonegap, react native etc. and Xamarin is the best when it comes to cross platform without a question, but none of these can match true native coding (xcode swift/objc)

lanestp 1 day ago 7 replies      
I've been extremely disappointed in Xamarin. The main issue is that you don't really get code sharing. I would estimate that only 25% of the Xamarin project I manage is cross platform code. The rest is this bizarre merger of native APIs with C#. It's difficult to write because of the lack of examples and documentation. It's also buggy, even with simple things like page views.

The real problem is that I can write a native iOS app in a fraction of the time it took to write a Xamarin app. Swift has improved iOS development speed so much I'm not convinced we need cross platform app engines (excluding games).

As for Android, yeah, native Android sucks. Activities and fragments are the worst idea anyone has ever had and no one agrees on best practices. But even with cross platform high levels of abstraction like Unity3D you still need to understand them. So, my current advice is to suck it up and write it native twice. Pick your favorite OS, start with that, and then port the logic.

eonil 20 hours ago 0 replies      
What you have to deal with;

* Xcode = iOS bugs + UIKit bugs

* Xamarin = iOS bugs + UIKit bugs + different runtime, language, memory model abstractions + .NET bugs + P/Invoke bugs & overheads + GC inter-op bugs & overheads + C# bugs + slow followup of platform updates

* Xamarin Forms = iOS bugs + UIKit bugs + different runtime, language, memory model abstractions + .NET bugs + P/Invoke bugs & overheads + GC inter-op bugs & overheads + C# bugs + slow followup of platform updates + extra UI abstraction layers + lack of fine level controls & features

mathijs 1 day ago 2 replies      
I've used Xamarin for several projects and I greatly regret that decision. Granted, most of my hatred is targeted towards Xamarin Studio and Xamarin.Forms so if you use Visual Studio and build only native UIs then maybe your experience will be better.

However, in my experience, both Xamarin Studio and the build system are buggy as hell. Random or inexplicable build errors, things that break during updates, incompatibilities with official Android support libraries... I find myself doing 'clean project and rebuild' to fix random errors, or switching between alpha, beta and 'stable' channels all the time depending on which one does not have the bugs that I'm running in to.

Xamarin.Forms is simply a disaster. Because it aims to unify the apis for the UIs for various platforms it boils down to only the most common denominator of those platforms. And then makes it worse. Not only is it buggy, it is also very slow and incredibly limited. In our office we're keeping a list of all of Xamarin's silliness we encounter, here is just one of those:

 "Clicking a Button changes its text alignment from center to left-aligned; it requires writing a custom Renderer to solve this."
I admit that Microsoft is usually quick to fix those bugs, but it doesn't instill much trust in the system if you're constantly running into issues. Many days I am literally working 50% of the time on my app and 50% working/fighting my way around Xamarins issues.

I'd love to hear from someone using Visual Studio if their experience is more positive, but my advise is: please stay away from Xamarin.Forms and Xamarin Studio as much as possible.

FlyingSnake 22 hours ago 5 replies      
iOS developer with multiple years of experience of burning fingers in cross-platform development here.

I've tried Cordova/Ionic, Xamarin, Dropbox Djinni, and native iOS development. C++ is the closest I've got the a performant cross-platform solution, even though it go it's own quirks.

The problem with Xamarin is it'll always play second fiddle to quick moving targets of Android and iOS toolchains. In my case the Reactive Extensions support was utterly broken, and Visual Studio kept crashing on MvvmCross, Android SDK updates would make things hell, and I would waste at least 8 hours a week to fight the toolchain. The promise of cross-platform doesn't deliver much as you're trying to tweak your MVVM solution to Android/iOSs whims and fancies, which leave you with a fragile common logic.

If you want to write a TODO list of simple CRUD app, it might work, but for professional iOS/Android development, Xamarin is not enough. Xamarin doesn't free you from learning ViewController lifecycle etc and platform specific implementation details. So you're stuck on a foreign platform, with extra overload of learning C#/F# along with Android/iOS platform overhead.

My Advice: Learn Swift and Kotlin, and do native development. Cross-Platform is a illusion, and the road is paved with dead and failed projects.

ghuntley 1 day ago 1 reply      
Xamarin has unfortunately muddled their branding.

Xamarin Forms is not Xamarin, it is a DSL. You do not need to use it. At its core Xamarin is c# with pinvoke to the underlying native platform implementation. You'll still need that platform knowledge but now you can share the core business logic between platforms.

To get maximum code share you'll need a MVVM framework such as ReactiveUI which is based on the Reactive Extensions and modeled on functional reactive principals check out https://github.com/reactiveui/ReactiveUI/releases/tag/7.0.0 or http://reactiveui.net

zihotki 1 day ago 1 reply      
MS stack developerI think yes, MS invests a lot into the Xamarin platform, so I expect it to become more stable and more developer friendly than it was before. I have a plenty of experience doing cross platform mobile development and I tried several other alternatives, Xamarin was actually the best - easy to start, easy to implement stuff, fast enough on mobiles, has a lot of components, etc.

Also I would like to recommend to focus more on Xamarin.Forms, it's using more modern approach. XAML (it's a xml-derived language) is actually quite good for writing UI part. Add there some MVVM framework and you'd love it.

Edit: fixed spelling

bobbygoodlatte 22 hours ago 1 reply      
You might want to look into Exponent. They're a YC startup that build a framework on top of React Native. https://getexponent.com/

The team is made up of a few React core devs and some ex-FB folks. They actually helped organize the last official React conf. The scope of what can be built using Exponent is expanding rapidly. And you can build apps that are virtually indistinguishable from Swift/Java apps.

If you want an example, I'd encourage you to download the Android version of this app: https://li.st/

m_fayer 21 hours ago 0 replies      
My experience with Xamarin is mostly on the Android side, so that's what I'll mention. Spoiler: mostly positive, with some big caveats.

In no particular order:

Stay the hell away from Xam.Forms, unless it's improved drastically in the last 6 months. Though I also think the whole idea is misguided.

For Android, go with Xamarin or Kotlin. I would take C# over Kotlin because of the maturity of the language, the tooling around the language, and the ecosystem. Either way, having a powerful modern language will be a godsend.

Concurrency on Android is much easier to deal with in Xamarin than with native. This extends to things like complex orchestration of animations.

You will do backflips trying to get startup-time down. But once your app is in memory performance is basically native-level.

Xamarin gives you some nice framework-level things that native Android doesn't. A good API for sqlite and http. Proper data-binding. MvvmCross and ReactiveUI are light-years ahead of anything that is available in native-land.

Xamarin builds are faster and more reliable than Gradle.

Xamarin introduces its own layer of bugs and glitches. You've added another slice of Swiss cheese to the stack.

Xamarin plugin for Visual Studio is crash/glitch city. Xamarin Studio is tolerable at best. Either way, your tooling will be faster but less feature-rich than Android Studio.

Every time you want to use an existing third party library, you will go through this process: Has anyone done an official binding for it? If yes, use awkward Java syntax in C#. If no, try to find an unofficial binding. If not found, try to bind on your own - 50% chance it just works, 50% chance you fiddle for half the day and then fail. If it's the latter, try to decide if you want to do a code-level port, or abandon your idea. Code-level ports are possible nearly line-by-line, it's slow brainless work.

jmkni 1 day ago 1 reply      
I am using Xamarin.Android currently for a project, and I really like it.

One thing I love is that because it maps so closely to native Android development, you don't need to look specifically for Xamarin.Android tutorials/SO Answers/blog posts etc to learn how to do something.

Most of the time, information targeted towards native Android development will apply to Xamarin.Android also, and you can basically map example Java code to C# because they use the same classes/namespaces.

I'm going to be getting into Xamarin.IOS soon, hopefully the experience is as nice.

calferreira 1 day ago 2 replies      
I'm currently developing an app integrates Google APIs like SignIn and a google product that i plan to make available on all major platforms (Android,iOS,Windows).

In the beginning, i thought about making a hybrid app, because it could save me time on the long run, but starting to developing with Cordova and EmberJS or even Xamarin was frustrating.

My major reason for frustration is the tooling, cordova emulator just sucks (Ripple?) and working with javascript mvc frameworks isn't just for me (too complex IMHO).

Xamarin on VS has some bugs that would only go away if i restarted the IDE in order for things to work. Also, i'm concerning about being dependant to a third party framework.Can they keep up to speed with Google,Apple and MS?

Another valid concern is app size distribution that seems to be considerably higher with cordova and Xamarin.

Since i started on Android, using Android Studio made my life a lot easier and i'm progressing daily and enjoying it, something that was a PITA with other tools.

In my experience i would say that it will be more time consuming (expensive) to develop a single solution for each platform as well as giving support, but the tooling is a lot better, also you can give users a better experience because you end up developing native apps for each platform that can take better advantage of it's ecosystem.

I'll find out in the future if i'm right or wrong.

martinpinto 1 day ago 1 reply      
Ionic 2 is a very promising hybrid approach. It's still in beta but should be out of it soon (better wait until it's released). The current beta version is quite fast. It has lots of components which are beautiful and has great support for ios, android and windows phone. It's JS (angular2) and html based.
cryptarch 20 hours ago 0 replies      
I've very recently worked with Xamarin Forms for about 5 full-time months and it was terrible.

My main complaints are:

* It's full of bugs

* The build system is unreliable and mysteriously breaks, which generally takes a full day to fix

* Basic functionality such as merging resource dictionaries (which are stylesheets, kinda) is missing

* No graphical UI designer or preview, so every layout change requires a recompile and deploy before you can see it

* Apps feel sluggish and crash at runtime without specific error messages

* It makes VS crash all the time. I'm not a regular VS user so I'm not sure if VS:CE2015 is a POS or if Xamarin is.

jasallen 1 day ago 0 replies      
Hey Guys, Xamarin University Instructor here,

Obviously I think it's worth it, I learned it well enough to teach others. We have a bunch of free Self Paced Learning modules and videos at Xam University, as well as obviously the paid stuff that pays my salary ;-)

There is a ton of investment and effort from a small team, remember, we've only been with a "big company" a few months, so the improvements come at a blistering start-up pace. If you haven't seen it in a couple years, you should really check back.

If you are going to develop "all platforms" or even just iOS and Android, it is _certainly_ worth a long look. Access to every API you get access to in their native languages and the ability to avoid that language "context switching" pain. Plus, some amount of shared code (varies wildly, 25% - 75% depending on how heavily your app is just about custom UI and animations ).

Because we use the same APIs (except when we have better ones), you can leverage the same documentation and StackOverflow posts when you need to (yes with a little language translation), but you often don't need to because Xamarin has a _lot_ of great documentation as well.

And, as has been mentioned, "Xamarin Forms" does not equal "Xamarin". Although it is a valid choice for developing in Xamarin, it is only one option. Here is a super shallow comparison:

Xamarin Forms: Super fast for super simple UI's and interactions with common elements. It is highly opinionated on what it should do and look like on all platforms. Customization is do-able but starts to increase the complexity of the app quickly to the point where the below would have been a better choice.

"Xamarin" aka "Xamarin.iOS and Xamarin.Android": Use essentially the same development patterns as Native Android and iOS developers and use the same API's (plus .NET library, and many .NET 3rd party libraries). You get code sharing (as noted, amount varies considerably), ability to "think in one language (often including your server, which might also be c#), and access to some additional libraries (because we support both the Native libraries _and_ the .NET ecosystem).

Hope this helps :)

Oh, and a quick plug. Xamarin University is live classes taught by real, very experienced developers who can actually help you learn and understand, so we are, you know, worth asking questions of. Also, we'll be doing a free presentation all day on November 18th as part of Visual Studio Connect, so check us out there and see what you think of Xamarin _and_ Xamarin University!

gtsteve 19 hours ago 1 reply      
I have read some fairly negative comments in this thread. I have experienced many of the negative aspects myself, and while I don't disagree with them, I would still say that it is worth learning this technology.

Microsoft's strategy with bringing a phone to market appears to have failed so they're going to have to take the next best thing which is owning the development tools. I expect the outlook for the software to be extremely bright and if you plan to be a professional mobile developer I strongly suggest learning it.

Of course, this does not excuse you from learning how to develop for iOS and Android natively, but it is a great addition to your toolkit as a developer. It's also another box to tick for the recruiter or hiring manager.

pritambarhate 1 day ago 3 replies      
Yes it is worth learning. It's a skill which is quite in demand especially from established companies for their business applications.

However, as others have pointed out, Xamarin Forms is a bit of let down.

In my experience, if you try to create custom designed UI (which is quite common in the native apps), then you find that Xamarin Forms is very limited. To overcome this limitation you need to write something called as a custom renderer for each OS you want to support. So it doesn't really save you much time.

Xamarin has something called as Xamarin Labs project on Github: https://github.com/XLabs/Xamarin-Forms-Labs But it's progress has been very slow.

If you have a business data collection / reporting app, where how things look is not very important, Xamarin can save a lot of time while creating cross-platform apps.

However, I wouldn't recommend Xamarin Forms for B2C apps.

santiagobasulto 1 day ago 0 replies      
We've been working lately with React Native and Exponent (getexponent.com) and we've had an amazing experience. The apps resulting have a great experience and performance. Vue.js and Angular are also making progress towards the Native world. I honestly don't think hybrid apps are going to be a think 2 years from now (of course I could be wrong, this is just an opinion).
Meph504 19 hours ago 0 replies      
I think where Xamarin shines is in places where the development stack is already .net. If you are starting green pasture, and don't have .net developers already, then it seems to make very little sense.

With that said, I've made a number of apps in it, and it works well enough, but the more abstractions, the more problems, and you want to do anything outside of simple UI apps, you are likely going to have to learn how the native methods work anyway.

vblord 20 hours ago 0 replies      
I've been a life long Microsoft developer. So when I started down the mobile app path, I naturally gravitated to Xamarin. Xamarin allows you to build mobile apps in the best development IDE out there. This is true... but it has it's issues. I've created 3 andoid apps with Xamarin (and tried more), but each time i've run in to bugs or oddities that make life suck. I wish it was better, but if I could go back in time, I would have probably chosen a different language/tool. Maybe Unity if I still wanted to stay with the C#/VS IDE.

One nice thing about it is that all the methods/classes are named almost the same thing as native android. If you want to know how to do something, you can find the android solution and just change a few small things.

So my vote would be to not do Xamarin and to choose a different cross platform development environment. Cross platform is the key. If you do choose Xamarin, I would spend some time and do a little bit of training before jumping in. It's not like the ease of building windows applications in VS.

dep_b 1 day ago 0 replies      
I tried Xamarin once for a macOS application. I migrated a Forms application by extracting all logic that I could from Forms-specific (code behind files) into more generic classes.

Then I had a .dll that I could use in my Xamarin project. The Xamarin project was razor thin and I only used C# to connect my XIBs or Storyboard (I forgot what I used, but it was in Interface Builder) to the existing .dll calls and a specific type of hardware scanner.

The hardest part was getting that scanner to work, which would be not so easy for me even in Objective-C. But I basically had to create an Objective-C wrapper wrapped in some kind of C# wrapper. It wasn't easy but it was doable.

The hardest part was getting everything signed correctly, since I was using all kinds of layers you usually wouldn't use in "just software" project.

The overall experience was really good despite that the native editor for macOS wasn't that spectacular. I did the meat of my programming in Visual Studio and Visual Studio is a really great tool. Another part was done in Interface Builder which is a great tool in my opinion.

A friend uses it a lot for a cross-platform app written in Xamarin Forms. The thing with Forms is that unless you keep it simple you will run into Xamarin bugs, iOS specific bugs or Android specific bugs in your layouts and that can be challenging sometimes.

I would say that if you would make the UI in native code or storyboards and it still seems like an attractive idea to use Xamarin, use Xamarin. Don't use Forms.

mbruins 4 hours ago 0 replies      
Native iOS and Android developer here. I switched to Xamarin a few years ago. As a native developer i was afraid of Xamarin and that i couldn't harness the power that Swift and Java gave me. However it give's you full control over your apps just as Java or Swift does. Everything you do in Java or Swift can be done with Xamarin in C#! Your knowledge isn't lost, the syntax has only changed. Nowadays i absolutely love it! I work with enterprise companies as a consultant using Xamarin, code sharing is approximately around 80% when using a Xamarin and a framework like MvvmCross! In my opinion Xamarin is the feature of building apps. Please ask any questions you have and i be happy to answer.
wsloth 1 day ago 3 replies      
When using Xamarin I always get the feeling I'm writing Java code--but in C#. The cross-platform project is a blessing, it's truly amazing to be able to write code once and use it on all platforms (especially if you use Dependency Injection for even more sharing).

The downside to this is that making a UI seems to even out your gained time--it's extremely messy and even complicated. Code that's valid in C# produces vague underwater bugs in Java code, which makes you keep hacking around until you find a working solution.

Not to mention the docs: some parts of the documentation are completely outdated to the point of not even compiling on an older version of Xamarin. For example, the tutorials on using Google Maps in your Xamarin.Droid application are way out of date, ignoring the fact that the "Google Play Services" component has split off into thirty-or-so components. Some of the most used API's are not documented at all, simply having a "To be added" description.

All in all I find much potential in Xamarin, and I really want to love it, but it's a messy nightmare to use, and it only makes me want to use Java and Swift separately for apps.

misskallisto 15 hours ago 0 replies      
[Full Disclosure: I work on the Xamarin team at Microsoft. Im familiar with the Xamarin tools and want to offer my thoughts and guidance on the original post. Opinions here are my own.]

The answer to whether or not you should learn Xamarin depends largely on what you are trying to accomplish. Let me explain.

If you were to approach me as someone interested in Xamarin, I would start by asking what kinds of apps you are looking to build, how complex they are, and how much you care about UI quality and customization. This is to help decide between Xamarin and other xplat solutions, but also between Xamarin native and Xamarin.Forms, our cross-platform UI toolkit. Id ask what you hope to gain from a cross-platform approach, so we can optimize for that. Id ask what parts of your app you are looking to share, and how you plan on architecting your app to allow that.

Id ask how much experience you have with .NET, and if being able to use C# and/or Visual Studio makes you more productive. Id ask if you have an existing codebase you want to connect to. Your familiarity with native iOS development is a plus - the particulars of iOS and Android add to the learning curve, but you cant make good native apps without knowing the basics of the platforms youre building for.

From these considerations, we would decide if Xamarin is a good fit for you. It would be naive to say that Xamarin is the ideal solution for everyone, but it is a very good solution for many people.

At the end of the day, Xamarin is free, and it takes less time to get a handle on developing with Xamarin than it does to read this thread. I encourage you to try it out and decide for yourself.

sergiolp 1 day ago 0 replies      
At flexVDI, we use Xamarin for building our macOS client (Xamarin.Mac), sharing most of the code with the client for Windows, built with Visual Studio. Both of them, link against a shared library which implements core functionality, written in C.

I must say that, having its own quirks and nuisances (specially in Xamarin Studio, which was pretty buggy until version 6.x), it does the job pretty well.

In fact, when we wrote our iOS and Android clients, Xamarin was still pretty immature. But if we had to rewrite them today, it would be one our of first options, right after using the native frameworks (which ensures the best results, but drastically increases the costs).

jsingleton 23 hours ago 0 replies      
I couldn't get React Native working for Android (on either Mac or Windows) but I've been pretty happy with Xamarin. I've written a simple game in Xamarin.Forms that I will be posting about.

Purely by coincidence, I have four blog posts on this out this week. The first one (on React Native and Xamarin) is here: https://unop.uk/cross-platform-native-mobile-app-development...

LyalinDotCom 19 hours ago 0 replies      
Just one comment to bring up as many folks still don't know, Xamarin is free for many developers along with Visual Studio Community edition, the full info is here in this announcement from March 2016: https://blog.xamarin.com/xamarin-for-all/
hitgeek 20 hours ago 0 replies      
i'm mostly a web developer with C# and JS. I've tried to learn Swift, Xamarin and React Native multiple times over the last 2 years.

With both Xamarin and React Native there was a honeymoon period where everything seemed so easy and great. But at some point I always hit a problem where there was limited documentation, or unsupported features, and that really hurt my productivity and motivation.

The learning curve for Swift/ObjC always seemed much higher, with a lot more upfront investment required before I could make anything resembling a functional app. The iOS layout system in particular was an obstacle, as well as managing the tooling and dev environments.

If I had a free 6 months, I would just learn full native, but keep an eye on React Native. The dev experience in React Native is unparalleled, and it seems easy to drop down to native code (assuming you know it). Also the ability to easily contribute back to the community with NPM and react-native "link", makes me hopeful limitations will quickly be erased.

grabcocque 1 day ago 2 replies      
If you want to develop cross platform mobile apps your only other option seems to be React Native. I'd like to see a good rundown of the pros and cons of each approach.
alex4Zero 17 hours ago 0 replies      
I've spent last 3 years working with Xamarin and native iOS and Android apps.

Xamarin wins if you need something for Enterprise. A lot of entry fields, validation, integrations with SSO, Sharepoint, other rest API. If you use MVVM well, it will lead to ~75% of code reuse between iOS and Android. Even more with XamarinForms. No complex effects, no complex animations, just enterprise.

Native wins if you want to make it more beautiful for end-users and you need to have a lot of customization. For example, customize map, pins and callout views. You will hate everything if you do it in Xamarin. No code reuse here

In general, Xamarin has very great chance to be #1 choise when you choose platform for Enterprise development.

andyjohnson0 19 hours ago 0 replies      
I've been using Xamarin since mid-2012 and have developed a couple of niche imaging products on Android and iOS for my employer, plus some internal tools on Android.

Overall I've been very happy. Code re-use hasn't been stellar, but good enough to repay the investment. We have re-use not only between apps, but also between mobile apps, Windows desktop apps, and our application backends. I also feel I'm more productive than if I had so swap between Java/Swift/ObjC/Andorid Studio/Xcode.

Stability has improved a lot in the last year. Paid-for support was pretty good (esp. guys like @jonpryor), but the self-serve forums can be a bit hat-and-miss. I never had any killer bugs (but then I never used Xamarin.Forms...)

Overall: 85% happy with Xamarin.

dontJudge 10 hours ago 0 replies      
This probably isn't cool, popular, or what you want to hear. But for client-side software, use the native GUI library for each platform. Write the core in C or C++. Abracadabra. It's cross platform, no issues, no bloat, no extra fees. With experience it can be fast to develop too.
eonil 20 hours ago 1 reply      
Such cross platform apps are meaningful only if your product doesn't need great UX. But the question is, if your app doesn't need it, why do you need a native app? It's better sticking to a web-app. Make a web-app and cover all platforms at once.
bedane 19 hours ago 0 replies      
Xamarin is only worth it if you already have lots of C# code you need to reuse in mobile apps(our formerly windows-only company had to)

As a day to day user, I quite dislike it. But rewriting our business code was not an option.

ParanoidShroom 1 day ago 0 replies      
I loved C#, hated Xamarin forms.It was about a year ago no, but I doubt things have changed that much.There were just so sooo many bugs.I have nothing against them and still think .net is amazing, but that was such a worse experience.I think reactive will win though.
ghuntley 1 day ago 0 replies      
If you are currently doing Xamarin development or are interested in learning more check out the http://weeklyxamarin.com newsletter.
DevInPainNeo 22 hours ago 0 replies      
The Xamarin needs to develop easy and customization should be easy.

Had huge pain in full screen mode dynamically for all the devices.

Calendar with colors forced me to create a new custom control from 0.

To be stable with the controls if you make a tab control in one version should be the same in other versions also, not reinvent and change the wheel.

Easy and clear documentation. Forums all with lots of no one cares why it works int works on my machine stuff.

To new technology and has to get mature and stable. If you are not in the same versions of Xamarin in mac and windows it just not works properly.

Proper error message. I am getting an error like There were deployment errors. Continue. (Not run in administrative mode the vs 2015, closing the emulator or it was opened by other vs before, or you closed the emulator before finished the deploy)There are lots of errors like "aapt exited with code 1" that means there is some bad character in image or in files like -.... or files starts with number.

Also sometimes out of memory exception when loading images larger then 1mb or in android 4.2 larger than 300kb, even going lover to 100kb having problems in 4.2 android.

Proper editor for Xamarin.Forms is a must have if you want to develop. You can't see the design what you are doing with vs 2015.

Also designer is crashing all the time if i open multiple times and make some adjustments.

Taylor_OD 21 hours ago 1 reply      
This is different than your circumstance but back when I was recruiting I helped a Xamarin developer with no professional experience find a gig with a 95K base salary. It's currently niche enough that people are willing to pay top dollar for anyone who can actually work in it. Another Xamarin developer I know consults for 150 an hour. (Although he's probably one of if not the best xamarin guy in Chicago)
vibrato 18 hours ago 0 replies      
One downside of Xamarin apps is memory usage. Just launching our app uses >200mb of memory. After doing all we can to avoid memory leaks and excessive usage, we still crash regularly due to running out of memory. (part of this is due to a UIWebView)
dvcrn 1 day ago 1 reply      
Ruby Motion vs React Native vs Xamarin vs Native (Java/Swift) is a question I have all the time. All look interesting and worth learning
davidgrenier 23 hours ago 1 reply      
F# is worth learning that's for sure.
paulftw 1 day ago 1 reply      
Isn't Facebook for Android built in React Native? Doesn't seem to be lacking for them. Airbnb and Instagram [1] are also doing alright.


tejasv 23 hours ago 0 replies      
We use Xamarin Forms a LOT for our internal and public facing apps. I started exploring it almost 2 years back, because native Android development just sucked, and C# has the async/await keywords, which is simply perfect for asynchronous operations in UI.

It has not been an easy road. After 2 years, I'm finally beginning to reap the benefits. The simple problem is this: this is another layer over the existing layers and it's very hard to get it right, especially if the underlying layers suck.

Just because you've learnt Xamarin Forms doesn't mean you can choose not to learn the underlying native platforms. You can skip over most of the details, but something will always come back to bite you, and then you have to go figure it out. Xamarin Forms works on top of Xamarin Android, that works on top of Android SDK and Android Tooling, which works on top of the JDK, which works on top of the OS you're developing on. So many places for something to go wrong, and usually presents itself in the form of a cryptic error at the top. Developing for iOS is considerably easier.

So there's still a fair amount of expertise to develop if you're completely new to mobile development. Take it for what it is -- an abstraction, and as with any abstraction, any concrete manifestation will have its issues, and you must be ready to roll up your sleeves to figure it out. And it does get keep getting better with every subsequent release.

But it does eventually help -- we have to get the complex bit right once, and then it simply works. Don't approach this like you would approach an Android app -- make sure you understand UI design best practices -- especially reactive design and data binding.

We also have .NET stack, so I'm finally in this beautiful world where all my logic is represented as C# Expression Trees on the server side, that gets serialized and pushed down to our Xamarin Forms Apps. Looking forward to WASM adoption, so I can finally get rid of that JavaScript mess.

So if you're writing a one-time app, and you just want to target Android/iOS, and you don't care how you've done it, no it doesn't make too much sense.

But if you're trying to make a long-term bet, in this awful fragmented device-oriented world, (and having to write the same app twice goes against the very nature of your existence), well that's my bet, I will be cautiously optimistic. If you're on .NET, it's a no-brainer -- there are simply too many other benefits to ignore, and philosophically very true.

The architecture itself (Forms, Xamarin.Android, Xamarin.iOS, Custom Renderers, Platform Effects, Bindings to access native libraries) is theoretically flawless (or very close to it), a work of art -- and I'm a sucker for theory, no matter the real world pain.

shams93 20 hours ago 0 replies      
Yes if you're looking to be a primarily .Net developer, it's not so widely used outside of the .Net community but in many .Net shops it's become the standard tool for mobile development.
amelius 1 day ago 1 reply      
How is React lacking for Android?
staticelf 18 hours ago 0 replies      
If you already is an iOS dev I think it's easier to just also pick up android instead of Xamarin. Altough, Xamarin seems very nice and so on.
miguelrochefort 1 day ago 0 replies      
If you're familiar with C# and .NET, it's a no brainer.

Xamarin is nothing more than a C# wrapper around the native iOS and Android APIs. Everything you're familiar with (UIViewController, UIView, UITextField, UIButton, etc) remains the same. The main benefit (other than using C#) is that all non-UI code can be shared across platforms (iOS, Android, Windows, server, etc).

Xamarin.Forms is built on top of Xamarin and lets you reuse the same code for UI as well (using their own abstraction that's similar to WPF/UWP). I would only recommend this for relatively simple apps as you lose some control over platform specific details.

UK-AL 1 day ago 0 replies      
Yes, but only Xamarin, not xamarin forms.
wjd2030 21 hours ago 0 replies      
Xamarin for business layer logic, native for the actual app.
Zigurd 19 hours ago 0 replies      
I have had clients that use Xamarin. This is what I've observed:

1. If you don't use Xamarin and you don't have a team in-house that uses C#, don't bother. You'll be better off doing native development on iOS and Android platforms.

2. Your app won't be as pretty, and it won't adhere to platform native UI conventions as well if you use Xamarin.

3. Xamarin does a better job of it than most but it will still be lagging in access to the latest features.

4. BUT, if you are doing a vertical market app that wants to be cross-platform AND you have C# coders you can apply to that task, Xamarin is the best choice.

There are a lot of places where choosing Xamarin makes a lot of sense. And the people who created Xamarin are excellent. And now that Xamarin is owned by MS, it won't die because it is hard to make money as a cross-platform startup. But as with every other cross-platform tool for non-game apps I've seen, it isn't the best choice in green-field situations.

umurgdk 22 hours ago 0 replies      
I've used in production and experience was good. Xamarin Studio is more than enough for development / debugging. Xamarin is very powerful, but usually people taking the wrong direction with Xamarin and using Xamarin.Forms. As like many other cross platform solutions Xamarin.Forms sucks. If you think making a native iOS application is easy with Swift, it is same with Xamarin too. When i develop applications with xamarin (desktop/mobile) i usually look for java/swift documentations or forums for my problems. This way i don't need separate xamarin community. Because you can write the same code in c# easily. Please check my workflow, for any further questions, twitter: @umurgdk

Recommended workflow:0. Never ever use Xamarin.Forms other than quick prototyping. If you develop applications with other cross-platform frameworks, you already know all of them sucks and Xamarin.Forms is not an exception.

1. Create PCL / Shared project for your business logic (also your view models if you're using MVVM architecture). Believe me most of your application is platform independent (except the view layer). Your api communication, storage operations all handled here. See 3rd article to how to make storage/network platform independent.

2. Create native projects for each platform (iOS, Android, Windows) implement native views here (use xcode, android studio if you need visual designer). This part should be exactly the same as your swift/java code. For iOS you're just implementing an ApplicationDelegate class and UIViewControllers as same as your swift code. Same for Android part, nothing special to xamarin just implement your activity classes. At this level you have the full power of your native platform with one exception 3rd party native libraries. It's possible to use (yes i used some swift/java libraries for youtube player) them but really hard to integrate to your project, that part has to be improved and better documented.

3. Your shared code base need native features, for example storage implementations are totally different for each platform, or changing views (navigation) will be implemented differently for each platform. Since shared code base shouldn't know anything about native platform. You should abstract these functionalities with interfaces. For example create a storage interface with methods like saving/reading/creating files. Another example might be network communication. Abstract it as an interface on your PCL and implement this interface in your native project with full control of your platform. Your shared code base only knows how to use that interface. And then each of your native projects should implement these interfaces. At this point dependency injection may help to register implementations easily. Actually that part is what makes you share your business logic. Writing idiomatic cocoa navigation code is much better than using any cross platform implementations, you have full control but in the same time your shared code base using them without knowing anything about the platform.

T3RMINATED 1 day ago 0 replies      
I've used Xamarin for several projects and I greatly regret that decision. Granted, most of my hatred is targeted towards Xamarin Studio and Xamarin.Forms so if you use Visual Studio and build only native UIs then maybe your experience will be better.
WhiteHat1 1 day ago 0 replies      
Microsoft just announced the launch of Visual Studio for Mac (based on Xamarin). It's great if you want to C# development. Have you tried Eclipse or Android Studio?
icemelt8 1 day ago 2 replies      
No one is mentioning how expensive Xamarin is and there is no proper free version.

In the free version you app expires after 24 hours AND it has to be below a certain size, I dont remember maybe 2 MB or something.

To make something you have to cough up a lot of money, and the sad part is this information is incredibly hard to find, you only stumble upon it when you download GBs of files.

Ask HN: Most of team quit my startup. What to do?
13 points by jfr6fgjk  6 hours ago   11 comments top 8
xiaoma 2 hours ago 0 replies      
Spend 20 minutes each night journaling your experiences for as long as you stay. This is an incredible opportunity to learn about high-stakes interpersonal conflict from a front row seat.
NumberCruncher 4 hours ago 0 replies      
Maybe your founders deserve a second chance? If I were you I would tell them that I stay but:

- I want to have from now on x% more salary, kind of a PITA bonus because I have to deal with amateurs

- maybe (more) equity, because if I have to tell a founder how he has to do his own job I am not only an employee any more

- to claim the right (maybe include it also in your contract) to refuse breaking sprints

And of course I would start for looking for a new job, just in case.

EJTH 47 minutes ago 0 replies      
I was in a similar position once, except there wasn't really other devs (only one more than me) and there was only a single leader/owner. I liked the owner on a personal level, but his way of managing the company and the project we worked on finally made me quit when he refused to let me fix some very grief security issues in our code base.
preetnation 5 hours ago 0 replies      
Don't stay for obligation so ask yourself if you honestly still believe - it sounds like you don't.

If you don't still believe, pull off the band aid and tell the founders you plan to leave. However, tell them you'll stay with them through the new year to 1) buy you time and 2) not burn bridges with them.

mrmondo 2 hours ago 0 replies      
Contact each one and ask them WHY they left and that honesty will not result in a poor reference.
Silhouette 2 hours ago 0 replies      
Unfortunately, it sounds like the current company culture is toxic and most likely beyond hope of redemption. Unless you have

(a) enough influence with the company leadership to make a real difference to the culture in the immediate future


(b) the company has good prospects if only the management issues could be resolved


(c) the risk of staying is balanced by a huge potential upside for you personally (such as already having a potentially life-changing level of equity AND a bulletproof contract)

then I would suggest you make plans to leave as well. Loyalty is a fine character trait, but so is pragmatism. There's no need to burn bridges or screw anyone, just find a better option, give a reasonable amount of notice, and do what you reasonably can to hand over to whoever is taking over your responsibilities for as long as you're still there.

vkdir 5 hours ago 1 reply      
What are you waiting for by staying?
dilemma 1 hour ago 0 replies      
Ask HN: AgTech What's the best way to gain domain knowledge?
2 points by Donmario  3 hours ago   1 comment top
pryelluw 14 minutes ago 0 replies      
I mean, not wanting to be pedantic here, but the answer is obvious. You need to network with people in tve industry and learn about their problems. Not gonna happen sitting behind a keyboard. That's the kind if market that requires face ti face contact.
Ask HN: How do you handle the business structure and taxes of side projects?
237 points by misthop  22 hours ago   125 comments top 23
joshuaheard 21 hours ago 9 replies      
Lawyer and entrpreneur here. There are 2 main reasons to incorporate: liability protection and ease of administration.

You don't say what your side project is, but you have to ask your self whether you need liability protection, that is what are the chances someone is going to sue you for damages. If you feel you need liability protection, then you should form an entity. I recommend an LLC in most cases. It is a pass-through entity for taxes which means you pay taxes on your individual return (though it still must file a business tax return). Also buy insurance.

The other reason is ease of administration. A legal entity will have some form of controlling document. In an LLC, it is the Operating Agreement. This spells out the rights and duties of the principals in the business. It also allows for common ownership of the business assets. As principals come and go, the LLC continues on. Finally, if you get big and you bring on investors, they will want to see a legal entity for their protection.

The drawbacks of forming an LLC are the time and effort of drafting and filing all the proper incorporating documents, paying the filing fees (in California $800 per year), and the extra tax forms.

This is a complicated topic and I have given a high level view. There are lots of resources on the internet and in bookstores on this topic. Nolo.com would be a good place to start.

up_and_up 21 hours ago 2 replies      
> 1. Have you incorporated?

No I operate as a sole proprietor.

> 2. Do you pay quarterly taxes?

Nope, I pay the penalty since my income and ability to shelter it vary from year to year. The penalty is something like 3% on the total taxes you owe. Not too bad given the flexibility holding your money provides. Maybe I can load up a i401K that year or need to save for some big purchase which is more valuable then just giving the IRS the money.

> 3. Do you list it as other, unreported income on your returns?

I file a Schedule C

I do it all using TaxAct. Super easy and cheap. Helped me to understand taxes as well.

jstanley 20 hours ago 2 replies      
I run several side projects[1], with varying degrees of profitably.

I haven't incorporated any of them, I see that as an unnecessary hassle.

I'm in England, and (as far as I'm aware) quarterly taxes aren't a thing here. Until this year the income was negligible enough not to bother paying taxes, but this year I've been keeping track of finances with ledger[2] and I intend to pay taxes as "self-employed" for the first time at the end of this tax year.

And to make sure I'm going in the right direction (not going to run out of money) I add up my net worth, split by category (bank account, peer-to-peer lending, stocks and shares, Bitcoin) at the start of every month and keep track of it in a big text file.

[1] currently focusing on SMS Privacy, read my Indie Hackers interview at https://www.indiehackers.com/businesses/sms-privacy

[2] http://www.ledger-cli.org/

simonebrunozzi 20 hours ago 2 replies      
I have been using Stripe Atlas for about 6-7 months now, for a small side project that I spend part of my weekends on.

I have to say that Atlas might be one of the easiest, and least expensive, ways to deal with the incorporation and the rest.

mosburger 20 hours ago 0 replies      
I incorporated w/ a basic LLC pass-through back when I started freelancing just for the liability protection. I don't freelance (much) lately, but I've kept the LLC going in the meantime and run my very small side projects as part of that LLC. If you decide to do a side project w/ an LLC you might want to read up on "piercing the corporate veil" and be sure to keep your project's income and expenses separate from any personal stuff. I personally have a completely separate bank account, again from my freelancing days, and keep the two things separated paying myself w/ distributions occasionally. I'm no lawyer or accountant so I don't know if this is "enough," but I figure it can't hurt.
brentm 20 hours ago 1 reply      
If you're in the US I would consider forming an LLC in your home state and use that as a catch all entity for your projects. If any of the projects take off you can spin that project off into a different entity type (if you want). LLCs are mostly painless to create & file taxes for.
analog31 19 hours ago 1 reply      
I make a small electronic gadget, non computer related.

I've got an LLC for basic liability protection.

PayPal is my business system. All sales come in through PP, and I use the PP credit card for my purchases. All documents are electronic. At tax time, I download the entire year's transactions into a spreadsheet, add things up, and enter the totals into a Schedule C.

Rather than filing quarterly taxes, I've simply bumped up the amount of withholding from my regular day job.

dicroce 19 hours ago 1 reply      
Personally speaking, enough of my side projects never made a dime that I decided a while back to wait until I made $1 before incorporation. This has saved me quite a bit of hassle.
edoceo 20 hours ago 1 reply      
Entrepreneur here, on my fourth company.

Lawyer and Accountant. Budget about $10k/yr

Start as LLC then move to C-Corp as it grows and takes investment money. Accountant files quarterly federal and state taxes. My wages are taken out on W2.

When smaller the project is an LLC. Accountant still files paper but under $100k only annual. Just take the money out as distribution.

Tax implications from either route. Encourage you to find a trusted advisor on those matters

jayess 21 hours ago 0 replies      
99% of the time there's no reason to incorporate in Delaware for your side project. Just form an LLC in your state and it'll be considered a "disregarded entity" on your tax return and you'll report the income/expenses on schedule C of your 1040.

If you're making more than a few grand (net) then you might consider having your LLC taxed as a corporation and enjoy the 15% tax treatment. If Trump gets his way, corporate taxes might finally be reduced and you'll get even more favorable tax treatment.

However, if your intent is to enjoy the income but you expect a narrow net income or loss (lots of expenses can be attributed to your business), then stick with a single-member, disregarded entity, LLC.

chrisgoman 18 hours ago 1 reply      
You mentioned "projects" (plural) and the way I have it setup is pretty similar to those recommending an LLC (or S-Corp) in CA.

While the annual cost of $800 minimum tax plus maybe another $500 in administrative fees (accountants, legal, etc.) is real money spent, you can make it back in tax deductions and potential liability. If you have a structure in place (another entity that is not you personally), it is much easier to deduct expenses (less red flags) IF you make an attempt to actually generate income -- the government cannot stop you from being a bad business person :)

If you are in a 50% tax bracket, this could easily be offset by $3000 in expenses such as hosting fees, domain names, costco membership, cell phone, even your car lease. If you are renting, you can possibly deduct some portion (~20%) of your rent (do not do this if you own a house). Get a separate bank account + debit card, a separate credit card (maybe a business one with rewards) and pay everything using that entity. You will end up making "owner contribution" from your personal bank account to your business account every month.

The extra wrinkle if you have multiple projects is that you can further separate your different projects into "DBA"s (Doing Business As) which costs an extra $100/yr (County Clerk Recorder, Publish in Magazine, separate bank account, credit card, domain name) 100% owned by your LLC (or S-Corp). If you shut down a DBA, it will cost maybe another $50. You will need a DBA to open a bank account under that name.

While this may look like overkill, this keeps everything clean and if your side project does take off, you will have some history with the business.

On a day-to-day basis, what I usually end up doing is setting aside a day to deal with all these entities. Most bills are on each "company" credit card and I call all the credit card companies to align the closing date. For example, all my credit cards close around the 22nd or 23rd of every month. On the 12th of every month, I pull up each account and pay them all using one screen of online billpay if you have all your business accounts tied together using your SSN.

Note: I have other companies that are their own entity as they are generating income & have other partners. The setup here is specifically just for my side projects.

atwebb 20 hours ago 1 reply      
>have you incorporated?

My state LLC

>Do you pay quarterly taxes?

Absolutely, mail a check with the coupon based on income earned.

>Do you list it as other, unreported income on your returns?

Schedule C and income from business, you pay Self-Employment Tax, SEPs are nice to push off the income to retirement and see a tax benefit if it's supplementary.

I also carry worker's comp and liability insurance, pricey, annoying to setup and deal with but worth it from my perspective.

kkoomi 18 hours ago 1 reply      
If you start an iOS app under your own name, then decide to form an LLC after validating your idea, do your reviews and rankings get reset?
walterbell 16 hours ago 0 replies      
Has anyone outside the US looked into the tax implications of Stripe Atlas? These articles urge caution:



caspg 16 hours ago 0 replies      
For those from EU, which country within EU is the best to incorporate? Estonia with their online residency seems interesting.
jv22222 20 hours ago 1 reply      
I recommend that you do not form a company until you have validated the project. I wrote a blog about it that explains why:


cdnsteve 21 hours ago 3 replies      
Unless you need the liability protection or have very high income, the overhead in Canada of having a corp is very costly. Hiring an accountant to file corp taxes is usually over $1500 a year alone, then you need payroll, etc. Then you're also paying double tax on that income with a corp. Corp receives income and pays corp tax, pays employee (you) you pay income tax.

If you have a small side project with low risk then I recommend sole proprietor for sure.

In any case, soon as you start generating income you need to track income/expenses, register your business, register for HST and setup a separate bank account. I think TD here charges $25/mo just for that privilege.

So yeah, sometimes a fun side project loses its excitement when your stuck doing paperwork and start adding up the expenses, it's not worth it.

moeamaya 16 hours ago 0 replies      
If you're based in California, we wrote detailed steps when we incorporated earlier this year: https://dixonandmoe.com/writing/how-to-form-an-llc-in-califo...

The $800/year is indeed painful but it's cost of doing business (and maintaining continuity).

PaulHoule 22 hours ago 1 reply      
I have not incorporated. It is expensive to incorporate in Delaware and to do it anywhere else is a big paperwork headache. (You'll need a board of directors, annual meetings, etc.) If you are making less than $20,000 a year it is probably not worth it, if you are making a lot more it probably is.

As for taxes, the penalties are not particularly punitive if you screw up and you have years to manage the situation before anything critical happens. In particular, if you go one year without making quarterly tax payments you will probably walk away with no penality.

lcall 19 hours ago 0 replies      
I'm finding that the book by Entrepreneur magazine called _Start Your Own Business: the only startup book you'll ever need_ is very helpful (no connection with me).

EDIT: specifically, in the index entry for "business structures" and the chapter on taxes. I also bought a few "personal MBA" books, & on marketing etc, but this seemed clearly the best one to start with; those others I think I'll come back to, later.

ohstopitu 21 hours ago 2 replies      
As someone based outside the US (Canada), would it be advisable to incorporate in Delaware?

If not, how would I go about the income from my side projects?

patio11 12 hours ago 1 reply      
Obligatory disclaimers: not a lawyer, not an accountant, am employed by Stripe to write about these sorts of topics, writing here only in my personal capacity, none of the following is advice but rather just a pointer for your future Google searches and talks w/ qualified professionals:

I ran my businesses for the first ~6 years as unincorporated sole proprietorships. The exact mechanisms of doing this are different based on where you are (both at a national and local level). Japan and the US are fairly similar: a sole proprietorship exists as soon as you say it does. (In Japan, you should probably walk down to the local tax office and file a form announcing your intention to file next year if you plan on making more than $30k revenue. They'll know which form to file and you are capable of doing it write if you can read Japanese.) Some US localities will want you to file for an assumed name / "doing business as" (DBA) with your local county clerk or have a city business license -- you can usually find out about that with some quick Googling. I filed a one-page form with Lake County, IL saying that I was doing business as Kalzumeus Software (several years before I had that LLC) and then had to pay ~$50 or so to put an ad in the newspaper for a few weeks saying "Heads up Kalzumeus Software is actually Patrick."

You pay taxes on the profits of the business, not on the revenue of the business, which is a crucially important distinction that many HNers do not know when they start and which many do not properly operationalize even if they know it. I cannot underline this enough: no software entrepreneur I've ever met had a good handle on this when starting. If you sell $10k of software and think "Hmm my profits are maybe $9.5k -- the only expense was a DigitalOcean server" I think your profits are ~$0 after you spend a few hours with an accountant walking through credit card receipts. They're going to walk you through things like e.g. depreciation, apportioning business and personal use of your Internet/cell phone, conferences, business entertaining, (potentially!) home office use [+], etc etc. (A thing your accountant will probably tell you, in the US, is that if you want to decrease your tax burden for 2016 buying a Macbook for the business

You should ordinarily be listing income from a side business as business income, at least in the US and Japan, and not as any other type of income. This is both a) correct and b) gives you the ability to deduct expenses, which is not possible on all types of income reported on e.g. one's 1040 or .

The US has you pay quarterly estimated taxes. There are safe harbors which are likely to cover you in the first year of running your side project. https://www.irs.gov/publications/p17/ch04.html#en_US_2015_pu... The calculation of these can occasionally be complicated; this is a great "ask an accountant" question because this is their bread-and-butter and that particularly calculation is something that most accountants would do for free, on spec, as part of soliciting your business for next year. The penalties for not paying estimated tax in a timely manner are very small -- many entrepreneurs of my acquaintance treat timely tax payment as a small discount to the "real" tax bill and elect to simplify their lives by paying taxes once a year rather than by calculating quarterly.

The chief reason to put a side project in an LLC is to reduce the risk of liability of the side project flowing to you. Most side projects have vanishingly little liability. Ask me for a citation some other time, but even software development freelancing is low-risk -- my insurance company calculates than ~0.5% of freelancers/consultants get sued in any given year. Downside: when they do get sued, win or lose, that averages $40k in costs. If you're doing something where you have non-trivial liability or if the prospect of $40k+ vanishing just makes you unable to sleep at night, incorporate and get an general liability / E&O policy. (Costs $1k or so per year as a floor; mine as a comparable is $3k and has the words "patient health information" and "HIPAA" on it, which contribute expense and underwriting fun times.)

If you have additional questions about this sort of thing, I'm writing about it this week (in my employed capacity) and would love to hear what you're thinking about.

[+] Home offices are historically a contentious deduction in the US, but one of the reasons you have an accountant is so that they tell you consequential things about the difference between the regs as written and the regs as customarily applied like "You don't have an office? Oh, in Japan, we just deduct 40% of your rent then. Substantiation requirement? Ah you Americans are such kidders. There's the law on the books which is $CALCULATION but the tax agency basically feels like you don't screw them too much on being aggressive and they won't screw you too much on bringing out a tape measure to your kitchen.")

brownedge 20 hours ago 1 reply      
Does anyone have experience with incorporating a UK Ltd for such a use case?
Ask HN: I have just turned down my first contract. Am I an idiot?
5 points by hamtaroPhD06  4 hours ago   10 comments top 7
yeasayer 3 hours ago 1 reply      
Don't worry, you did the right thing.

1900 euros/month is peanuts. Even considering that you're fresh CS graduate, you're worth more.

Also, the fact that the contract is "non-negotiable" is a huge red flag. This company doesn't respect their employees. Trust me, you don't want to work in the environment like that.

Keep looking for job, the market is huge, you'll definitely find something decent.

gtsteve 3 hours ago 1 reply      
Whether or not that contract is acceptable or not is down to the local market and the cost of living. I guess it depends where you live in Paris but when I was there I found that my cost of living was roughly equal to London, and 1900 EUR/mo would be equal to roughly 20k/mo which is on the very low end of a developer salary. In fact, 20k/mo was a low developer salary a few years ago and perhaps you could only do entry-level testing for 20k/mo now. I feel that even as a new graduate you can get quite a bit more than that.

But if you're happy to take a lower salary in exchange for some other perk then that's OK. I took low salaries to work for start-ups for the first 4 years of my career and that worked out very well for me, as I was given a higher level of responsibility than most companies and I now feel I am further ahead than my peers.

A company should be able to be very specific about what it will offer you. If not, it might be in the early stages and run by inexperienced people, which can be either a good or bad thing depending on your career goals.

If in doubt, negotiate or reject. It sounds like you're in a comfortable position anyway.

eb0la 2 hours ago 0 replies      
1900 Eur/Month before or after taxes? There is a huge difference (1900 gross will be about 1200-1400/month after taxes).

20k/yr is a average salary for a junir developer in Spain. 30-35k/yr for an experienced one (5+ years). 35-45k for a manager.

The red flag for me is the lack of information about your role in the company. This means peope in HR don't have a clue about what is going on. Probably you'd be outsourced to a client (a sign of the non-negotiable money amount).

afoot 3 hours ago 0 replies      
Everything in your post tells me the same thing: Absolutely not.

Honesty is a huge deal in any employment situation. If you feel like that before you even start, the likelihood is that it will only get worse.

If you have no immediate need for the money, take your time and find something that feels right. You'll know it when you do.

factorialboy 48 minutes ago 0 replies      
You can make 40-50K per year as a junior developer in NL. FYI.
informatimago 3 hours ago 0 replies      
Don't have any regret. If you have any doubt about the contract, IME then even if you take the job, it won't last long (and when I say not long, like less than 2 months).
bbcbasic 3 hours ago 0 replies      
Sounds like exploitation. Slightly above minimum wage.
Ask HN: If you were to build a CRM today what would your stack be?
47 points by SnowingXIV  20 hours ago   69 comments top 33
tyre 19 hours ago 3 replies      
Hi! We're building a CRM for local governments (https://romuluscrm.com), in 2016, so I can tell you what we do.

Front end: We use Ember because of its balanced focus on progress and stability. The team behind it is solid and batteries are included.

Application: Ruby/Rails, Elixir/Phoenix. Rails is great for getting up and running quickly, and your problems with #scale won't be on the application later. Elixir (really Erlang's BEAM) is great at quickly spinning up/down lightweight processes that handle raw data. So if you want to build a CRM and, say, manage emails, then it could be a good fit. Or if you want to process a 1,000,000 row CSV import, etc.

Database: Postgres. Binary JSON columns give you flexibility, plus PostGIS for all of your geospatial needs. Structure as much as possible to take advantage of the smart people who have spent countless hours building a world class database. You'll appreciate their focus on correctness.

My overarching advice: push everything as far down the stack as possible. If you can do it in Postgres, do so. Data correctness is your life; better that your DB throws a fit than your application serving bogus data.

Happy to answer any specific questions!

(And I wouldn't be a YC CEO if I didn't take the opportunity to mention that we're hiring! http://seneca.systems/careers)

od14 12 hours ago 1 reply      
I'm just starting a CMS project, which is going to be my first big project. I've done a lot of research, read a lot of material on almost every framework possible, I wanted to make sure I would do the right choice both for my self (ease of use, enjoyable to work with, productive), and the buisness (long term maintainability is the most important thing).

I've gone over Angular 2, React, Vue.js, Ember, Polymer, and so many more. The one I really connected with is Vue. While I realize it's only been gaining popularity in recent months, there are some big companies who start to make use of it in big scale production sites (Alibaba, Laraval, ...), this makes me pretty confident that support will not be an issue.

For the db I would definitely choose Postgres, but I would go for plain old relational tables, and maybe use its JSON features for data which is isolated and does not relate to other data (e.g.saving spreadsheets data).

For the server I would choose NodeJS + Express + SequelizeJS, and I will probably make use of some GraphQL library up ahead too.But honestly, if you choose to make your system a SPA, then your server will not do much of the heavy lifting anyways - it will probably expose an API point and be used as an interface to the database, so I think any back-end stack would fit in. I would also consider Python + Flask + SQLAlchemy, which used to be my stack of choice few years back.

maxxxxx 19 hours ago 3 replies      
The stack is probably the least of your problems. A CRM usually needs to be highly customization so picking an architecture that allows for customization while still being maintainable sounds like the real problem. You can get this right or mess it up with most stacks.
d1ffuz0r 18 hours ago 0 replies      
I'd recommend you to watch this talk https://www.infoq.com/presentations/SalesForce-Multi-Tenant-...

I've been dealing with different CRMs recently (SFDC, Netsuite, MS Dynamics, AgileCRM) and I don't think tools really matter, architecture that will allow you to customize everything is the key for CRM

As my personal choice it would be (I'm a full-time Python dev)

* Java/C# (there's nothing really dynamic in crm, entities, fields, etc with different "name" and "display_name" for each customer, IDE would allow me to manage complexity)

* PostgreSQL (no NoSQL, CRM is all about relations)

* Vue.js

* ElasticSearch (with Kafka for replication from db)

* RabbitMQ for offline jobs

patrickgordon 13 hours ago 0 replies      
I'm building a personal CRM to help me manage my personal relationships (https://simplerm.co)

Stack is two separately hosted apps.

Frontend: react, redux, webpack as a single page appBackend: Rails for an API

Why? I wanted to learn react and redux and I like using Rails for my backend and was comfortable with that.

traviswingo 20 hours ago 0 replies      
I always go with the stack that I'm most comfortable with, unless I'm using an existing stack at a company I'm working for. Learning a new stack because it's "popular" is a recipe for disaster if you're incorporating into a product you want to use or want to charge others to use. You'll spend time trying to figure out how to do things that you already know how to do in another stack.

Any stack will get the job done. Use the one that yields you a shippable product in the end.

My stack is ExpressJS, AngularJS, PostgreSQL, NGINX, DigitalOcean, Route53, PM2. And I fly through it.

danso 20 hours ago 1 reply      
Given that major companies have been built on what was not seen as cutting-edge stacks at the time of conception -- Facebook on PHP, Github on Rails -- maybe Rails could still be the sensible choice? RoR might itself not be fast, but on the upside, its community seems to be pretty forward-facing in building plugins for client-side tech, i.e react-rails [0]

[0] https://github.com/reactjs/react-rails

throwaway2016a 19 hours ago 1 reply      
Whatever one gets you to market the fastest with the features you need. Which is usually "what your team is most comfortable with"

For our team that would be Node.js with a React frontend, with probably MongoDB as the database, but every team is different.

As a side note: APIs are very important for CRMs, but as long as you design your API well you can swap out, move around, and refactor your backend as it makes sense.

bdcravens 19 hours ago 1 reply      
Why does it need a client-side framework? There's a class of apps where that makes sense, but it feels like more and more that's becoming a default at the expense of complexity and time to market.
sachinag 18 hours ago 1 reply      
If you want to be super successful, you build it on Salesforce. Full stop. Two - two! - different vertical CRMs (ServiceMax and Veeva) have BILLION dollar valuations built entirely on the SFDC stack.

It'll answer all technical questions, make it easier to hire, and make it easier to fundraise. Oh! And easier to get customers.

Then think about how people get info into your system - if its email, use Nylas (it's gonna be email to start). If it's voice, use Twilio. If it's directly, then abstract all the complexity and use the right terms for your market.

I don't work for Salesforce, I never have in the past, and I barely use it now. But choosing anything else is nuts.

k__ 18 hours ago 0 replies      
I'm building a front-end stack at the moment as a private project.

The main parts are:

- type safety, in the hope that it speeds up development. TypeScript 2 is my main contender here.

- on demand module loading, so I can shrink the initial page loads, will go with Webpack 2, because it lets me use System.import() and automatically splits these imports into it's own files

- interaction flow control completely based on observables, because they compose nicely and with genertic types ease development quite a bit. Will go for Cycle.js (+xstream), because it's rather tiny and really everything there is an observable, data and UI, also it's written in TypeScript. Feels a bit like Angular2-lite.

- WebComponents based UI-widgets, because I think they should be independent from the rest of the application, don't know yet if I'd go for Skate.js or Polymer, maybe I'd even use custom components directly. But I like the Skate API much more than Polymer or the "native" API.

- data retrieval will be based on GraphQL with the hope that it will lower data-on-the-wire if the client has more control on that. I also hope that the GraphQL subscriptions (based on WebSockets) will integrate nicely with the observables. Apollo-Client is my fav here, it's framework independent and written in TypeScript, too. I'll probably use their GraphQL-server, too.

Every part is pretty much independent of each other (besides everything being written in TypeScript, haha) so I think I can use parts of it in future projects.

Server side rendering would be a nice to have, because it would enable the basic app functions on clients without JavaScript.

geebee 18 hours ago 0 replies      
This is a big question on everyone's mind right now. "What stack should I use" is always a big question, but sometimes web development goes through a particularly notable state of uncertainty.

Although there are a lot of different tech stacks, I think that most of this boils down to SPA vs integrated views with some javascript. In the rails world, this generally means either Rails plus jQuery, unobtrusive javascript, coffee script, and so forth, vs rails-api and Ember (or another javascript front-end).

Right now, I lean more toward the integrated views than most of my fellow developers. Very few people would take an always/never position on single page apps, so this generally boils down more to how far people want to take them. Some are more eager to apply them in a wider range of scenarios than others.

I personally lean toward the integrated view approach, and I advice caution around SPAs - in my opinion, very much an opinion here, I think they add a lot of complexity compared to the integrated approach, and are still in a state of flux. If what you are writing really is mainly a set of forms that you'd like to enhance a bit with automatic page refreshes, drop downs, drag and drop elements, autofill and so forth, you may want to stick with a more stable stack that isn't evolving as rapidly as SPA javascript frameworks.

There are situations where you can find yourself in a real mess with an integrated view, that would be far easier to manage with Ember or another javascript framework, keeping your backend logic in a relatively simple API. Not sure if that's going to happen in a CRM - they tend to be pretty form-ish apps, but perhaps that's because up to now, difficulties with javascript have led us to think of them that way. The rapid evolution of JS frameworks may, for all I know, have opened up an opportunity for serious innovation here.

One other thing - remember that it is relatively easy to expose a rails method as an API even in the absence of rails-api. My guess is that this is true of most integrated frameworks that provide a view tier. You won't be locked into an integrated app provided you keep logic out of those views! You should be doing that anyway. Also, make sure your tests don't rely exclusively on the views to verify logic that isn't in the view (again, you shouldn't be doing this, but I've seen it a-plenty). That'll keep you flexible enough to transition away should you want to at a later date.

Good luck!

merb 18 hours ago 1 reply      
We used Scala, AngularJS and PostgreSQL. Actually except AngularJS we are really really happy. Everything is fast and the development speed is ridicoulus, especially calculations and performing operations on big lists are extremly good in Scala.Actually we are probably introducing Redis (actually we use Akka-Cluster for PubSub) however we think that with Redis we can even be faster and Cache our stuff better.

For our JavaScript stack we will also look into ScalaJS and/or Vue.JS, React and Ember, but at the end we probably handroll our own at this stage, since our feature set is really different from what these provide (we don't need any mobile stuff, really...), at the moment we have zero mobile clients and we looking to build an app for a small inventory service, but thats all.

kyriakos 19 hours ago 0 replies      
For a CRM the database is probably more important than the programming language / framework.
jamesmp98 20 hours ago 1 reply      
It seems your looking for something A) Simple but powerful, B) scalableThis is all my opinion, but I would take a chance to try out Vue.Js on the frontend. If you want to learn something a little different, Elm looks cool too.

On the backend, ASP.Net core is looking good to me. Although, Go and Elixir are picking up fast. Heck, ignore the haters and use Node if you want.

Finally, don't be scared to use something "old" like Java (EE or Spring) or even Rails (personally, I believe the whole performance fiasco is not as bad as you would think)

neeleshs 19 hours ago 0 replies      
If you want a specific CRM solution for your company, anything that your are comfortable with is fine. If you want to make it a platform, and a generic CRM solution that other companies can use, you need to think about APIs, security, customizations (custom entities, custom fields, relations, customizing UI), multitenancy (if you want a hosted solution). The list goes on.

If latter, I would probably choose vuejs/Play2/MongoDB. (Replace Play2 with RoR or Django or anything else).

jasonwatkinspdx 19 hours ago 0 replies      
Given that the bread and butter of CRM is lots and lots of CRUD ui, often showing the same data organized different ways, I'd immediately do a spike on using relay/graphql along with your team's preferred backend technologies. I haven't built an application this way yet so I'd love feedback from anyone who has. My assumption is that investing the effort in getting graphql going would pay dividends.
eb0la 12 hours ago 0 replies      
For me this is a workflow problem. CRMs are beasts that live on top of workflows (both formal and informal ones).

If you can can get a good IBPMS for a nice price probably you have a good solution that will be easily customized.

goddamnsteve 18 hours ago 0 replies      
1. Ruby on Rails

2. ReactJS

3. Foundation for Rails

4. MySQL

This is literally everything you need to get it off the ground as soon as possible.

This is what has helped me build Allt.in (https://allt.in) and UnderstandBetter (https://understandbetter.co/)

neverminder 19 hours ago 0 replies      
Angular 2 or React front end, Scala / Play Framework 2 / Postgres backend for some serious scalability.
anthony_barker 14 hours ago 0 replies      
My feeling is that no one wants to use CRMs. The best type of CRM is one that autoloads contacts and information from cellphones, email, chat, accounting systems,linkedin etc.
warpech 18 hours ago 0 replies      
Shameless plug (I am one of the devs):

Starcounter (http://starcounter.com) is an in-memory application platform, which is comprised of an in-memory database (ACID-compliant) with a built-in app server.

You can compose a complex business system out of small apps (micro apps if you will). Apps don't pull the data from the db - they run in the db. Multiple apps that run in the same db share the data in real time. Our first clients are retail, CRM and advertising tech.

From dev perspective, we like to call our approach "collapsing the stack". There is no ORM. Your code classes become the database tables. You can use our (Web Components based) approach to create thin client HTML views that bind to the data using JSON Patch. This saves you from running huge amounts of glue code, which is typical for traditional software stacks.

Right now we are on Windows/C#. Linux and macOS is coming next year. Other languages will follow.

pasta 19 hours ago 1 reply      
Whatever you choose: for a CRM it's great to separate front end from the back end. So build a very good (REST) API, because CRMs tend to be connected to a lot of other systems.

Edit: looking at what you already considered, maybe: back end: Ruby, front end: VueJS

gorbachev 19 hours ago 0 replies      
Personally I would look into using graph based data models.

I'm not sure how universal it is for CRM systems to be all about who knows whom, from where and what's the nature of the relationship, but the ones I've been involved with certainly all were.

benologist 18 hours ago 0 replies      
The best stack is most likely the last one you shipped a finished product with. Every time you double down on that stack you're getting better and faster at using it, code quality improves etc.
droidist2 11 hours ago 0 replies      
FrontEnd: React, Redux

Backend: KeystoneJS + React, Redux (Universal JS)

cwyers 19 hours ago 0 replies      
If you have to ask a question like that, you probably shouldn't be writing your own CRM.
busterarm 18 hours ago 0 replies      
Vue.js/Weex or Elm, Elixir/Phoenix, Postgres, OpenBSD.
odonnellryan 19 hours ago 0 replies      
Reach out to me: odonnellryanc@gmail.com

I've built the framework to a CRM (Python and Flask) and I wonder how it'd line up with your needs. I'm not currently using it, as it needs a bit more work, but I'd love to talk to you about your project.

Entangled 19 hours ago 0 replies      
Swift from the metal to the clouds. Everywhere.
lgas 13 hours ago 1 reply      
Elm + Postgres.
bronlund 19 hours ago 0 replies      
Check out golang!
jwatte 19 hours ago 0 replies      
The question is: Solving what problems, at what scale?

If you're a profitable company with a sizeable userbase, just buy Salesforce. It's clunky, it's expensive, but you can find contractors really easily to make it do whatever it is you want. Or you can learn the Salesforce platform yourself and build your final CRM on top of that. Welcome to enterprise IT!

If you're a scrappy start-up, or non-profit, with a small number of people to serve, you can use whatever you're most comfortable with. A single database (perhaps with hot replica,) a single application server (perhaps with load balancing for good measure) and you have everything you need. Use whatever you already know. PHP and Bootstrap? Ruby and Rails? Node and Angular? Doesn't matter.

If I were in the middle area -- successful company, lots of customers, but not actually at the point where I need the Salesforce behind-covering and easy contractor access -- then I would probably use React for the front-end GUI, and Haskell with Warp for the back-end services, hosted on top of MySQL or Postgres, with Redis for data caching, plus some scripts to make creating bread-and-butter tables/indices/queries simpler and less repetitive.Like the poster above, I kind of like having an "escape column" for "annottation data" stored in JSON, although it can simply be a plain TEXT. As long as you don't need indexing, it makes adding new columns easy even if you have a table that's too big to change online.

Ask HN: Best encrypted messaging app atm?
30 points by sprafa  3 hours ago   44 comments top 15
mrbiber 1 hour ago 1 reply      
At the moment, Signal and Wire seem to be the best options. They have open-source clients, end-to-end encryption, are easy enough to use that even less-computer savy people can be realistically convinced to use them and they seem to offer decent protection for metadata (not technical, but policy-wise).

There are, however, some upcoming developments which will change the situation in the next couple of months:

1) The main matrix.org client, Riot (https://riot.im) has end-to-end encryption now in beta. This will offer Signal-strength encryption, but in a decentralized, e-mail-like system with federated servers. This will create an ecosystem where people are no longer dependent on the goodwill (and solvency) of a single entity to use a good, encrypted messaging app.

2) Briar (https://briarproject.org) is a new (Android-only) app, designed for people with an especially high need for privacy. It works without central servers (through Tor hidden services, but hides the complexity of that), even works when the internet is down (e.g. when mobile networks are shut down during a protest) via Bluetooth and direct Wi-Fi connections, and it offers extra features, like a panic button that deletes all your data. It's in beta at the moment, with a planned release early next year.

TL;DR: Use Signal or Wire for now, but be ready to switch to a better system when available.

lorenzhs 2 hours ago 1 reply      
Security people recommend Signal a lot (e.g. https://medium.com/@thegrugq/signal-intelligence-free-for-al..., Snowden uses it and repeatedly recommended it: https://twitter.com/Snowden/status/661313394906161152, ...). Personally, I use it all the time and it's nice. Most of the initial problems have been sorted out, so I encourage anyone who's had trouble with it before to try it out again.

It has text (one-on-one and groups) and voice calls. Things that could use improvement: group management, switching to a new device. It doesn't have some of the features some people like (stickers and whatnot), but personally I don't care much about those. Video calls would also be nice.

blyuher 2 hours ago 1 reply      
Signal (https://whispersystems.org/) got a good score from EFF. You may find this guide helpful - https://medium.freecodecamp.com/tor-signal-and-beyond-a-law-...

edit: clarification

urza 2 hours ago 2 replies      
As an alternative to Signal, I would also recommend Threema.

Mobile only, paid, end-to-end encrypted with in-person verification. Team and infrastructure is based in Switzerland


jedisct1 1 hour ago 2 replies      
pmlnr 1 hour ago 0 replies      
This is a vague question: it depends entirely on the protocol you're about to use. I'll try to give a few answers anyway.

First of all, if you want total encryption, you'll need to make sure your connection is encrypted and secured as well (meaning following you back is not trivial), so the whole messaging should go through Tor[1].

There are plugin solutions for bitlbee[2], for Pidgin[3], and many other clients supporting OTR and similar encryptions.

If you want all-in-one solutions, you probably should look at Tox[4], which is a protocol, not just an app, built to be encrypted by default. It's complicated and nasty to use and set up, but it's pretty secure.

Other ideas might be drawn from the prism-break Communications list[5], listing apps like Chatsecure[6] or Xabber[7], both encryption-capable jabber apps.

[1]: https://www.torproject.org/[2]: https://wiki.bitlbee.org/bitlbee-otr[3]: https://developer.pidgin.im/wiki/ThirdPartyPlugins#Securitya...[4]: https://tox.chat/[5]: https://prism-break.org/en/protocols/[6]: https://chatsecure.org/[7]: https://www.xabber.com/

mrmondo 2 hours ago 0 replies      
Signal has had several independent security reviews and has come out on top each time.
jaboutboul 2 hours ago 1 reply      
Check out the EFF's Secure Messaging Scorecard: https://www.eff.org/node/82654

Personally I use Signal and Whatsapp from that list.

sgt 2 hours ago 3 replies      
I am under the impression iMessage is pretty secure and I use it extensively as most of my friends and colleagues have iPhones.

Refer to http://www.apple.com/business/docs/iOS_Security_Guide.pdf which specifies that RSA 1280-bit keypairs are used, and the private key is held on the device. So in terms of transit - the protocol should be secure.

The only remaining option would be to question whether iOS is secure/insecure.

Apple claims:"Apple does not log messages or attachments, and their contents are protected by end-to-end encryption so no one but the sender and receiver can access them. Apple cannot decrypt the data."

yousifa 1 hour ago 1 reply      
I am working on a messaging & email encryption platform (for the reason you mentioned) which will finally make encryption easy to use for non tech savvy people. It is based on PGP, source will be available. If anyone is interested in helping, giving feedback or learning more send me an email (in my bio or my username at gmail.com)
desfan 2 hours ago 1 reply      
I personally like Wickr (https://www.wickr.com). Although they're not as open as Signal, they've also passed several security reviews and I do like their transparency reviews (https://www.wickr.com/about-us/blog/2016/08/01/wickr-transpa...)
biokoda 1 hour ago 1 reply      
The most secure app is Biocoded: https://biocoded.com/home. The reason we claim it is the most secure is:

- Encrypted local on-device storage. We have an always-on mechanism and never store the entire local storage decryption key on the device. It's half on the device and half on the server. In case of lost or stolen device, all data is still safe. In fact you can effectively "wipe" your biocoded app data even if the device is offline by deleting the server part of the decryption key.

- We allow private servers (not for free).

- Double ratchet algorithm for communication.

metafex 2 hours ago 0 replies      
Check this comparison table: http://.eu/bac.html (or the full paper at /bac.pdf)
agounaris 1 hour ago 2 replies      
Aren't all of them encrypted now? I'm using telegram
thinkMOAR 2 hours ago 1 reply      
Doesn't say to require to be instant messaging, so my best suggestion:A pigeon with sd card tied to its leg with PGP encrypted data.
Ask HN: What's your references to learn SEO?
30 points by ggregoire  15 hours ago   12 comments top 7
iyn 15 hours ago 2 replies      
Moz.com has pretty good resources: https://moz.com/learn/seo
rayalez 6 hours ago 0 replies      
I higly recommend Source Wave. Start by watching their youtube channel, and if you like it - entroll into their program. It is by far the best SEO resource I have ever seen.

Also check out Alex Becker's youtube channel(he is the founder of Source Wave). He is really awesome and shares a lot of amazing things.

joshmn 13 hours ago 0 replies      
For content writing, installing Yoast on a WP site does wonders for the whole "what search engines look for when writing content" part. You can score your content as you write and it'll give you actionable numbers "you should have 3 more outbound links" or "this keyword was only found on this page once, try adding it some more".

I'd consider installing it and using it to test my content against, even if you're not using WP as a part of your stack.

cblock811 13 hours ago 0 replies      
Here are a bunch from QuickSprout. I dont know how updated some are but QuickSprout itself also has guides for SEO as well.


tylershuster 13 hours ago 0 replies      
This is part of a much larger project on which I was working, but this checklist is a good overview of the fundamentals plus some details, ordered by priority:


Jugurtha 13 hours ago 1 reply      
- Google: Search Engine Optimization Starter Guide [PDF][0]

- Google Webmasters[1]

- Matt Cutts' blog[2]

- Search Console Help[3]

You also gain a lot by listing the major players (Google, Bing, Alexa, etc) and then telling them about your site (domain verification, etc).

Needless to say that good content and being a good citizen help.

[0] https://static.googleusercontent.com/media/www.google.com/en...

[1] https://www.google.com/webmasters/

[2] https://www.mattcutts.com/blog/type/googleseo/

[3] https://support.google.com/webmasters#topic=3309469

eonw 11 hours ago 0 replies      
seobythesea.com is always a good read.
Ask HN: What could developers do to help the Ops Team?
5 points by victorcase  9 hours ago   5 comments top 5
shermanyo 3 hours ago 0 replies      
I work mostly with deployments and updates to our environments, and the most helpful thing my developers can do for me is provide validation steps to confirm the state after each change.

We've caught issues ranging from expired passwords, missing files / files with incorrect permissions / write failures, sync issues and other obscure gotchas.

Catching a failed step during deployment can sometimes prevent a huge rollback effort and save a lot of time.

toomuchtodo 4 hours ago 0 replies      
Appreciate why conservative technology choices are made when possible (pick boring tech).

Don't rush new features or code into production. Don't deploy anything after 5pm on a Friday.

Documentation, documentation, documentation. If there's a piece of knowledge for your app that's only in your head, you have failed.

antod 6 hours ago 0 replies      
Caring about and fixing inefficient wasteful tests. Stops CI build queues clogging up.

Also, improving production performance/scalability.

And making apps simple to deploy. That's about it for me :)

runamok 4 hours ago 0 replies      
Developers with domain knowledge should often be the first line of response for pages, etc. Noise in logs should be minimized to aid troubleshooting.

Understand why certain security procedures are put in place even though they do create some friction.

horsecaptin 6 hours ago 0 replies      
Learn OPS in order to relieve their workload.
Hackers at Berkeley
4 points by baoskee  6 hours ago   2 comments top
YuriNiyazov 6 hours ago 1 reply      
Volunteer at OCF
Ask HN: Consulting options for technologists?
18 points by JeremyYinNY  16 hours ago   4 comments top 4
BjoernKW 24 minutes ago 0 replies      
Just writing off the cuff here:

Lately, I've been thinking a lot about potential consulting niches in the software industry at large. With many of my clients there seem to be recurring patterns and challenges regarding software development processes and software products:

- dealing with complexity

- improving code quality

- writing reusable code vs. writing disposable code (i.e. code that can be adapted and replaced quickly)

- communication and knowledge transfer

- having to write huge amounts of boilerplate / 'plumbing' code over and over again

Overall, managing complexity, improving communication, doing away with repetitive processes are huge problems. It's not like nobody is addressing them (IDEs, agile processes focussing on communication alleviate those issues to some extent) but these issues probably are still the most prevalent impediments to efficiently developing software that fits the requirements.

So, I think there's an opportunity for consulting companies in terms of reducing the complexity of their software and processes. I'm just not sure exactly how to package this as a productised service.Then again, consulting firms like McKinsey have been doing similar work in the general context of business management for decades - with varying degrees of success.

mooreds 12 hours ago 0 replies      
Training might be a good fit for you too. That can open up consulting opportunities as well.

Writing a book (leanpub is a good place to start) can provide you with some credentials.

I've met a few fractional CTOs who work with startups/smaller groups within a company to provide technical leadership.

Join a startup as a CTO (I've seen 2-3 startups looking for CTOs/founding engineers, and I haven't looked that hard). Of course, the issue here is your risk, and I don't know your risk profile at all.

autotune 15 hours ago 0 replies      
Have you considered looking for "architect" positions? Cloud Academy has a pretty in-depth blog post about it:


tedmiston 13 hours ago 0 replies      
I'm an experienced developer from startups and recently as an independent contractor, and would also like to better understand what kind of tangential consulting opportunities are out there. My hunch is that most are really really niche, i.e., "we need someone who can tune a massive Postgres cluster to run at peak performance next week". I'm really good at doing code audits and helping improve their style but I haven't found a way to package that into a consulting service.
Dear Google, Apple, Mozilla, and MS: Please End Auto-Playing Media in Browsers
1336 points by geuis  2 days ago   315 comments top 85
tfgg 2 days ago 15 replies      
Things that make me just close tabs straight away:

1) Autoplaying videos, especially ads.

2) Pop-ups / overlays.

3) Loading lots of extra elements causing text to jump around.

Especially true if I'm just browsing around and click on something that looks interesting, the above will take that thing from "this might be worth 30 seconds" to "not worth it".

Why kill that little dopamine boost someone just got from clicking on a link to your site? If you're wondering why your bounce rate is so high... though maybe these dark patterns bring in enough ad revenue that it's worth it. I don't see how 3 helps that, though, just lazy coding. Or maybe other people are more tolerant and it doesn't really affect the bounce rate.

Ruphin 1 day ago 8 replies      
What you are really asking is for Google, Apple, Mozilla, and MS to make a better web _for you_. Because you don't want media to autoplay does not mean it is a good solution to just block it outright for everyone.

Some websites have legitimate use for autoplaying media. Some users (believe it or not) actually _like_ their videos autoplaying when they scroll through their Facebook feed or whatever media site they visit. Are their usecases and desires not legitimate?

Your argument is in the line of "I don't like going to Starbucks, so legislators should get together and ban Starbucks stores for everyone". Even if you have a legitimate reason for not liking Starbucks, the solution is for you to just stop going there. If you don't like websites that use autoplaying media, then stop visiting them. Or, like some others in this thread suggested, install some plugin or other software that makes sites behave the way you want to.

A call for browser vendors to implement some opt-in setting that does what you want would be much more realistic suggestion. (As some other comments pointed out, for some browsers this setting already exists)

the8472 2 days ago 6 replies      
firefox -> about:config -> media.autoplay.enabled = false

additionally the dom.audiochannel.mutedByDefault and media.default_volume settings may also be useful if you want slightly different behavior.

If you want a more blunt tool you can also use content blockers to block media content until you opt into it for a particular site.

> I know there are plugins than can somewhat do this, but no solutions are universal or great.

How so? There are about a dozen FF addons covering different use-cases like muting inactive tabs or all tabs but a designated one. If none of them meet your particular expectations that might also indicate that everyone wants something different and it is difficult for browser vendors to cover all expectations. Maybe you should modify an existing addon instead to do what you want.

massysett 2 days ago 4 replies      
This behavior is so bad that I have changed my browsing behavior. I visit only selected, trusted news sites, as "free" sites are horrible offenders here. Google is much less useful while on desktops as it is likely to return obnoxious websites.

So far I have not had a bad autoplay problem on iOS. However a growing problem is obnoxious pop up ads that are difficult to escape.

Overall more of my Internet usage is shifting to apps because the Web is just too annoying. Years ago the Web was like a friendly, boisterous marketplace in a safe town. Now it's like the street in "Casablanca" where I must constantly guard against someone picking my pocket. It's not worth using except for a few sites I trust.

Google in particular had better watch out. With Web hostility their search is not as useful. One reaction of theirs has been to pack more information directly into their search result.

hashtagMERKY 2 days ago 2 replies      
I really dislike auto-playing audio and video as well, for all the reasons you mentioned, but also for a less logical reason: it just makes it feel like the browser isn't on your side. If a site is automatically playing audio or a video advert, its design is not in the user's interest, so in that situation your software has to choose whose side to take. I just want and expect the software I have installed on my computer to take my side, and always act in my interests. It probably sounds silly but I just think software should always be primarily designed for the end user.
fjarlq 2 days ago 2 replies      
There are a couple Chromium bugs filed about this: https://crbug.com/107923 and https://crbug.com/514102

Overriding autoplay can lead to a confusing user experience -- play/pause synchronization issue with embedded YouTube videos: https://bugzilla.mozilla.org/show_bug.cgi?id=1217438

The Disable HTML5 Autoplay extension is often suggested for Chrome, and it has 112,213 users, but it's far from perfect: https://chrome.google.com/webstore/detail/disable-html5-auto...

fgpwd 2 days ago 1 reply      
There should be a media play permission just like there is for accessing your webcam or showing notifications. You give the permission once to a website such as youtube, and from them on videos would play automatically for the domain youtube.com. No videos would play on any website to which you deny this permission.
glandium 2 days ago 2 replies      
My "favorite" case is a site that sometimes embeds videos, and also has autoplaying videos for advertising. You can't listen to anything from the former because of the latter. Even worse, when you pause the advertising video, it autorestarts after a while. So if the embedded video is long enough, you just can't watch it entirely.

So, in fact, while e.g. Firefox has a mute button for each tab, I also wish it had an individual mute button for each <video> and <embed> element.

cyberferret 2 days ago 1 reply      
Another suggestion - enable pausing on video. ANY video. Keep seeing more and more advertising videos that don't even give you the ability to pause.

In the past 12 months or so, I am really finding my web browsing experience hitting new shitty lows. Pretty hard to see the content you want these days behind that clutter of Outbrain ads, pop up newsletter subs, auto playing videos and the like...

ivank 2 days ago 2 replies      
I wrote https://github.com/ludios/mute-new-tabs and I am now happier with a quiet Chrome. The idea is to mute all new tabs and unmute them only when you interact with an in-page volume control (or manually unmute via the tab icon/context menu). This solves only the sound problem though, not the data consumption.
gkya 1 day ago 0 replies      
Nowadays I find I can't use the WWW without JS blocked except on a select whitelist of websites. I can't stand downloading 10-15 megabytes for <=1KiB of actual substance. I can't stand the amount of amateurish design decisions I need to fight using websites, some unfortunately unavoidable like my university's web services, or the stupid Edmodo app imposed to us by our professors, etc. And I detest icons, because each and every app / website have different opinions on icons and a different set of cryptic icons which I fear clicking. Also webfonts in many cases are an abomination as many times they are used where a simple stupid half-a-meg PNG would do the job. "Share" buttons that come with some kilobytes of JS, floating headers that leave me five pixels to see the text I'm reading, well, this is an endless list. I'll spare a separate sentence for history-fiddling, I am disgusted when when I hit back unexpected things happen. Google, Youtube, Github, these fiddle with history and replicate browser's things (page loading, history keeping ...) in JS. And as the user I don't have the chance to affect the actual website makers, so blocking JS / cookies / media is the only option.
emidln 1 day ago 2 replies      
In the past, I was responsible for analytics around a decision to autoplay or not autoplay videos on a media site. The site did both mobile and desktop videos.

 * voluntary customer feedback was universally negative * bounce rate decreased substantially (around 40%) * total interactions with the page increased almost 3x (clicks on significant UX elements such as like/subscibe/additional video plays) * interactions for those using some form of adblock stayed the same (presumably these people also had an autoplay off plugin)
In summary, what users say they like and what they actually like are wildly different. The average user seemed to engage more when we removed the burden of first interaction.

*We did eventually kill autoplay, but only so we could have a consistent experience between YouTube and non YouTube videos (YouTube took efforts to stop counting autoplayed videos for advertising purposes).

madeofpalk 2 days ago 0 replies      
> In the worst cases such as on mobile browsers like iOS Safari

What site does this? You can't (auto)play media on iOS without direct user action for exactly the reason you specified.

iOS 10 changed this slightly to allow silent or muted videos to autoplay when visible on the screen https://webkit.org/blog/6784/new-video-policies-for-ios/

izak30 1 day ago 0 replies      
I make art installations and UI/UX research. A modern browser is one of the best technical canvases. If you are working on browsers and you turn things off, please always allow me a backdoor for my own browsers to turn them back on.

Complex software control of multimedia and the whole browser experience gives me the ability to develop new ways of interacting with computers.

forgettableuser 2 days ago 1 reply      
I am now a victim of the adage, "Be careful what you wish for because you might just get it".

I hated Flash. I either avoided installing it or used a Flash blocker. So I always managed to avoid the auto-playing problem when the Internet primarily used Flash for everything annoying.

Now that Flash is about dead and everything is HTML5 now, neither of these techniques work any more to avoid auto-playing.

IvanK_net 1 day ago 3 replies      
I completely disagree with this proposal.

All websites should be allowed to play sounds any time they want to. Without it, webapps can not reasonably compete the native apps.

I am a developer of web games and being able to play the sound from the beginning, without any interaction from the user, is one of the most essential parts of the game experience.

If you visit a website which unexpectedly plays a sound, you should stop visiting it / downvote it / ask the authors to stop doing it. When you are surprised by the sound, the problem is not in browsers, the problem is in authors of webpages / webapps.

ZenoArrow 2 days ago 1 reply      
In my opinion, the problem isn't with auto-playing videos per se, but rather the audio that comes along with it.

For example, GIFV is a format that uses auto-playing videos to replace the GIF, and by doing so cuts down on Internet bandwidth usage. I'd suggest that's a legitimate use for auto-playing videos.

I only really get annoyed with auto-playing videos when I hear the sound from them, so perhaps the fix should be targeted in this area. It may cause problems for things like YouTube playlists, so I don't think the fix is as simple as 'mute them all by default', but whatever the fix is should rely on some form of user control.

onion2k 2 days ago 6 replies      
This is eating up our data and inconveniencing millions of people using your products.

The data issue can be addressed by only having videos play automatically when the user is on a wifi connection. This is the default for mobile devices already, so it's arguably already solved for most users.

The "convenience" issue is something that I strongly suspect is actually something that people think one way but act another - lots of users claim to hate auto-playing videos but then they watch them a lot. Facebook's video engagement statistics are hard to argue with - a well designed video that works without sound (eg something from Buzzfeed) gets a tremendous number of shares, likes and click through engagements.

I strongly suspect that turning off auto-playing video, even by default, would actually make the web worse for the majority of people. For those who prefer them not to autoplay, browser vendors do provide that, but the functionality is usually buried in the equivalent of chrome://flags somewhere.

wfunction 2 days ago 4 replies      
CNN especially gets on my nerves. They seem to have gone out of their way to do everything they can to make sure all plugins/extensions that try to block it fail.
inian 1 day ago 1 reply      
It is not as simple as that. Even if videos are prevented from being auto-playing, people resort to much much worse techniques. For example, GIFs - which are much bigger that the corresponding video, worse for battery life etc. To combat this, Chrome recently enabled autoplaying of videos if the video is muted on mobile browser. Hopefully this gets the number of people using GIFs down.

Or who knows, people might start animating images on canvas or something. Allowing auto play in some conditions seems to be lesser of two evils according to me..

moepstar 2 days ago 3 replies      
Facebook is IMHO the biggest offender in that category, dozens of "in your face" videos no one asked explicitly for...

Luckily, there's a setting if you can be bothered - and luckily, for many marketing departments around the world many can't...

"Look, how many views our videos have on FB"...

oftenwrong 1 day ago 0 replies      
I wrote a small extension for personal use that can set various <video> preferences on a site-by-site basis. One of the main things I wanted to be able to do is disabled autoplay. However, I found that a lot of sites just start the video from js instead of setting the 'autoplay' attribute. I was able to put in some stronger defense by using MutationObserver to stop a video that was played without the user clicking play, but then I found that some sites have code that will force a video to be playing, so even a manual pause would be overridden, and the site's js would contend with my extension's js.

There's no way to stop autoplay if we allow free, programmatic access to videos (without blocking js too, which I use noscript for).

I had the same problem with the 'loop' attribute. I wanted videos to not loop. I found that some sites loop videos without using the 'loop' attribute. I would disable 'loop' on the <video>, but the <video> would be replaced by a new autoplaying <video> when the original video ended.

This is about the point that I gave up on my extension.

r721 2 days ago 0 replies      
At least "Click to play" setting for HTML5 audio/video would be great.
chenzhekl 2 days ago 2 replies      
Autoplay is a feature specified in the W3C standard. Thus it's not the browser makers but websites should be blamed for abusing autoplay.
ianai 2 days ago 0 replies      
I remember you had to click play on flash at one point. It was an option you could turn on in preferences. I'd love to have it back.
Belenus 2 days ago 0 replies      
There are some sites that display not ads but fake virus alerts. When I visited one of these sites, I got a message blaring out of my computer to call a phone number or to reinstall my computer to get rid of a "virus." (Hopefully it was not.) Every time I closed out of the message box a new one would appear, and I finally managed to close out of the site. It's happened a few times. This may not entirely relate to the topic you were speaking about. :)
hashhar 1 day ago 0 replies      
For Firefox:

For Flash, change the Flash Plugin setting to Ask to Activate. For HTML5, switch `media.autoplay.enabled` preference `about:config` to `false`.

Or try out FlashStopper [1] to stop both HTML5 and Flash.

[1]: https://addons.mozilla.org/firefox/addon/flashstopper/

hobarrera 1 day ago 0 replies      
Video: Arguable, since a lot of times is part of the basic design and very lightweight.

Audio: MUST be muted be default. There's nothing that I hate more than opening something in a new tab for later, and a few seconds later, having to track down there that damn noise is coming from.

Always, always, mute tabs be default!

martin-adams 1 day ago 0 replies      
This happened to Flash in IE I think about 10 years ago. Every flash animation on the page had a some form of 'click to play' cta.

I find that pages that have sound more annoying than video, but isn't a major problem for me as I have headphones plugged in permanently.

I think I would prefer such a feature request as a user option, like a permission request. This is how popup windows, full screen, taking control of the cursor behaves.

I do worry about the data usage on mobile though with autoplaying videos. Even pausing them doesn't stop it from fetching more in the buffer.

I suspect there may be some valid use cases for autoplaying (such as background looping videos, YouTube, etc), particularly when run in some type of kiosk mode on a TV. It's another example of where some spoil the experience and the behaviour of the web ends up getting locked down to stop them.

phobius 2 days ago 5 replies      
Agree this is an annoyance - how would you propose keeping features like YouTube or Netflix autoplay/playlists in this scenario?
thomasdd 2 days ago 1 reply      
There are situations when you need to play video on load. (for example, you want a nicely designed content or DIVs.) But Maybe a browser option to enable/disable video playback would solve this. Maybe disabling audio would be as an option, so as webdesigner you can show the relevant visual content but without sound.
mschuster91 2 days ago 0 replies      
News sites are the worst offenders here. Especially those who put an un-pauseable, unskippable, un-muteable ad in front. I want to read the damn article, not listen to a fucking ad that drones over my Spotify music - so I can't even Fn F10 to get rid of the ad.

Worst thing is that many of these video ads can not be caught by Adblock Plus...

FullMtlAlcoholc 2 days ago 1 reply      
Here is a chrome extension that mutes audio for all tabs except thw selected one: https://chrome.google.com/webstore/detail/smart-tab-mute/dnf...
msinclair 1 day ago 0 replies      
Another problem that Facebook has (and I'm sure others have as well) is attempting to fetch dozens and dozens of videos. At once. This generally locks up even desktop browsers as they try to preload the content. I've seen it trying to grab 130 videos before. Pretty ridiculous.
dustinmoorenet 1 day ago 0 replies      
As an old Javascript developer, I don't see how the browser could do this without making legitimate websites suffer. You have the freedom to run JS code at any point in the DOM load, after an amount of time (setInterval or setTimeout) or after user interaction. And you can start and stop audio and/or video through JS. So you can't restrict automatically playing media without also restricting the ability to programmatically control the media for legitimate reasons, like media control buttons and hot-keys.

I think it is best to avoid shitty websites. My short list: Facebook, and TV network websites and their affiliates. There are lots of websites that do the right thing.

therealmarv 2 days ago 0 replies      
There are use cases where this useful. Not that I like that but autoplaying video (without sound) is e.g. needed for some splash backgrounds (like AirBnB is using) and many ads use that feature too. I would like only sound automatically muted (like Instagram and FB is doing with their videos).
rebootit 1 day ago 0 replies      
I found most addons for chrome were broken so I made a less broken userscript for Tampermonkey: https://greasyfork.org/en/scripts/24811-html5-stop-autoplay/...

Here's Tampermonkey: https://chrome.google.com/webstore/detail/tampermonkey/dhdgf...

Houshalter 2 days ago 1 reply      
How can they stop it without breaking lots of things? Javascript has the ability to play sounds and videos without going through the standard video player. If you disable it, wouldn't it break various web apps and games?
Esau 2 days ago 0 replies      
This is something that used to be easier - practically everything depended on Flash and you could either not install Flash or install Flash with Flashblock.

Now with everything rolled into the browser, the problem has gotten much worse.

zetafunction 1 day ago 0 replies      
Chrome for Android blocks autoplaying videos. To get around this, sites now use JS to decode and render video into a canvas. For example: https://bugs.chromium.org/p/chromium/issues/detail?id=178297.... As one might imagine, this is not so great for power usage
intrasight 1 day ago 1 reply      
In my opinion it isn't the browser vendors who should decide what content gets displayed.

On mobile, I browse with JavaScript disabled. Pages load fast and I don't get anything but HTML.

TheCoreh 1 day ago 0 replies      
Dear browser makers: Please don't. There are legitimate uses for this feature.

If websites are abusing it, simply stop visiting them, or install an ad/content blocker. What maybe browser makers could introduce is a "switch" to disable autoplay and audio, and manually enable it per tab. But this feature should be not active by default.

Also, we should be complaining with the ISPs and Carriers about their data caps, not at sites for using data

lucaspiller 1 day ago 0 replies      
I'm using the "Disable HTML5 Autoplay" for Chrome which works to block it, but it does break some sites. Notable Amazon Prime Video doesn't automatically start playing the next episode, and Facebook videos (and GIFs) won't play even when you click play.

I would suggest at least making it opt-in through the browser-popup. However that's another annoyance - the number of sites I now visit which ask to send me notifications.

Broken_Hippo 2 days ago 1 reply      
This - so much this.

A common scenario in my house: The spouse or I muttering obscenities over the autoplay ads, along with a comment of, "Use your powers for good, dammit! For good!"

I find these intrusive. So much so that I occasionally browse with the computer muted - especially if the source of entertaining sound is coming from the spouse's computer or if I'm looking at cooking sites. Most times, I'm just wanting text.

hello_there 2 days ago 0 replies      
Chrome already require webpages to ask permission in order to use resources like camera and microphone. I think it should do the same for speakers.
Traubenfuchs 1 day ago 0 replies      
Try out the Bloomberg Website. There is an autoplay video on every page and it moves to a fixed position if you scroll away.Someone should be slapped for this.
sdfjkl 1 day ago 0 replies      
Yes please. In fact, let it be a preference if I even wish to buffer that stuff, rather than just not autoplay it. Because, being mostly on low-bandwidth, metered or very crappy connections, I almost certainly do not want several dozen MB of completely unwanted garbage shoved down my (metered) pipe.
amelius 1 day ago 1 reply      
Imho, a better solution would be to be able to disable sound by default, and then allow sound to be turned on per-tab.
skaplun 2 days ago 0 replies      
I think you are reacting like this because you're over using the medium(the web). For the average person its nice that their family's videos autoplay and autoloop without having to do something.Video and sound are big parts of the experience, which happens to not fit a certain advanced user group like you.

So a browser setting would work but not disable for all

nekdev 1 day ago 0 replies      
That's stupid. Many apps really need vido autoplay:

- YouTube- video usages (webrtc)- some apps for people with disabilities...

You may ask for an option of disabling it by default (which will make some apps not working) but not impose your choice and "insult" developers choices that have a far better pov than you. :/

tobyhinloopen 1 day ago 0 replies      
No. Browsers should not interfere with autoplay. It is still a tool. Don't drop features because some abuse it.
jaredsohn 1 day ago 0 replies      
Recent versions of the MuteTab Chrome extension (that I wrote) allow muting all tabs by default, along with a lot of other muting-related behaviors. http://www.mutetab.com
amelius 1 day ago 0 replies      
It's not really possible to robustly implement this, because a browser cannot possibly know if you are hitting a "play" button.

So somebody who would like to trick the system (e.g. advertisers) could just make e.g. a menu item behave the same way as a play button.

untog 1 day ago 0 replies      
I'd be more content with autoplaying videos, but muted. I was glad when iOS 10 introduced autoplaying video because it means people will stop converting every damn thing to GIFs, which are far more bandwidth intensive than videos.
pinsard 1 day ago 0 replies      
Maybe it's about time we start to use the internet less as an entertainment source (web) and more as only a medium to reach what we need, be it business or pleasure. Less is more should help us adjust the industry behavior.
Reverberb 1 day ago 0 replies      
AI will indeed kill humanity.not by going renegade but doing exactly what we tell. Soon enough we gona lose all capability of doing the most simple tasks
dawnerd 1 day ago 0 replies      
I can't way I want this default. I do find it annoying though when sites decide to put a very small 100x100 auto playing video at the bottom of the page. Cnet is one of the bigger offenders
greggman 1 day ago 0 replies      
YC's AirBNB autoplays video on the front page. Drives me crazy since while traveling I'm often on a bandwidth restricted connection
timothyh2ster 1 day ago 0 replies      
I simply leave when it happens; what could they possibly have to interest me when they are dumb enough to auto-feed their stuff.
_RPM 1 day ago 0 replies      
Who decides this? I imagine it's much more than a developer's decision. It may be a higher up decision based on business goals.
ClayM 1 day ago 0 replies      
oh man, auto play on mobile apps that kill what you were listening to, requiring you to switch back the other app makes me want to throw my phone out the window.
hd4 1 day ago 0 replies      
1. Use a predefined adblocking hosts file on your system, if you have Linux, just replace your existing /etc/hosts file with this https://github.com/StevenBlack/hostsThis will kill 90% of popups and autoloading, for the others..

2. If you use Chrome, use the option that stops plug-ins autoloading (search for plugins in the Settings search-box)

3. If you use Firefox, remove or simply don't install Flash. For HTML5 you should look for controls that stop autoplaying.

timdeneau 1 day ago 0 replies      
Agreed. The default behavior for the web audio/video autoplay attribute should depend on a permission request for whitelisting.
Joyfield 1 day ago 0 replies      
And Firefox, please remember the sound volume i set on your HTML5 player for a specific site.
eridius 1 day ago 0 replies      
iOS safari has always blocked auto playing video, so I'm not sure what you're complaining about there. Very recently they've finally started allowing it for video that has no audio track (or that has the audio track muted), which seems to match what you want.
oriettaxx 1 day ago 0 replies      
yes, absolutely

This summer in Greece we had to pay about 500$ f.... penalty for over using our 3G internet access (we just forgot a laptop & brower open for a night).

jarnix 1 day ago 0 replies      
It's not up to the software developer but to the developer of the site, I don't understand your post!
Scirra_Tom 1 day ago 0 replies      
If auto playing videos is a bandwidth concern, perhaps gif's should be treated similarly.
ams6110 1 day ago 0 replies      
I've disabled all media players in my browsers. Problem solved.
jfoutz 1 day ago 0 replies      
how about a :obnoxious selector for links?

autoplay video, please register, and messing with history would be lovely.

I guess it's because there's no good way to populate the selector without visiting the link target.

cmdrfred 2 days ago 2 replies      
The only problem is I want YouTube videos to do this when on that website.
Tempest1981 2 days ago 1 reply      
Or at least provide an option for autoplay, so savvy users can turn it off.
codecamper 1 day ago 0 replies      
agreed! investing websites are terrible for this. cnbc starts a video playing for every article. there goes my bandwidth.
hartator 1 day ago 0 replies      
Or bear a world where ad-blocking will be 100%.
ricardobeat 1 day ago 1 reply      
Actually iOS didn't have auto play until recently. Back then the outcry from developers was the opposite - "y won't you implement the standard!"
nextos 1 day ago 0 replies      
media.autoplay.enabled=false does the trick in Firefox about:config.
dredmorbius 1 day ago 0 replies      
Yes, absoutely, and please.

I filed this bug myself July 2015, though I believe others have existed for years.


In the meantime, I've taken to blocking hosts and/or domains which are used to serve autoplay media. A small list generates exceptionally high mileage.


I implement this on the router via DDWRT, which protects the entire LAN. You can also add this to your own /etc/hosts file(s) on individual machines, or go further and have a local DNS server be authoritative for these services.

The block is intentionally global, and encouraged, as media providers themselves will find that they cannot reach anyone, anywhere so long as autoplay is a default.

Again: the Internet and Web are ultimately a user-determines-policy system. And if servers say "fuck you" loudly enough to users, then users can say "fuck you" back. And win.

DD-WRT instructions: https://www.dd-wrt.com/wiki/index.php/Ad_blocking

mproud 1 day ago 0 replies      
Apple has been going so far as to automatically disable Flash, which really helps.
ccvannorman 1 day ago 0 replies      
Last night I watched episode 8 of Cosmos (I highly recommend Cosmos with Neil deGrasse Tyson) and learned that for 2+ decades (from 1920s to 1940s), oil industry knowingly propagated bad science that poisoned millions of people in pursuit of profits.

Sadly, pop-ups and auto-play videos lead to more profits, at least perceived/short term. No amount of whining by us will change a board meeting at a medium-large company result. "We need to do X that will piss off Y customers but result in Z more profits." Companies always choose profits.

I'm on board with getting these things changed but appealing to big corporations because "it sucks" is never going to amount to "but it makes us more money." We need a different strategy.

ffggvv 2 days ago 1 reply      
Ask this on their bug tracker.
quakephil 1 day ago 0 replies      
Step 1. Install adblock.

Step 2. ?

Step 3. Profit

FloNeu 1 day ago 1 reply      
boubiyeah 2 days ago 0 replies      
Can't agree more.
thetinman 2 days ago 0 replies      
Turn off flash. 99% of your problem solved plus other benefits.
necessity 2 days ago 0 replies      
You should be using NoScript anyway so just use it.
Ask HN: Why are FOSS projects beginner unfriendly?
3 points by thewhitetulip  8 hours ago   3 comments top 2
itamarst 26 minutes ago 0 replies      
dvhh 8 hours ago 1 reply      
As it is for even closed source project, documentation and support are a major pain, and are not as rewarding as aligning correct lines of codes.

I will try to use a gross misrepresentation of a new-comer, but chances are they will ask trivial question that do not concern the project ( or are already answered ), some resources ( developer time ) will be used in favor of answering/guiding the newcomer ( who probably did not have search the usual sources before asking the question ).

Documentation is quite a pain to maintain, as it requires a good grasp of the English language ( mostly ), and quite a lot of empathy to figure out who the documentation is for.Additionally you have to make sure the documentation is accurate as the software change.

Returning the question: do you accurately comment the code you write for fun ?

Ask HN: I will quit my job as a PM to join a coding bootcamp. Am I crazy?
155 points by tigertheory  2 days ago   213 comments top 111
tschwimmer 2 days ago 5 replies      
Yes you are. I'm a PM and researched this decision myself a few months back. Most of the "well regarded" bootcamps teach basic front skills (HTML/CSS/JS). You're going to struggle to get a job in any of the the exciting technologies you've listed with this skillset. It's also not widely talked about, but I get the sense that there's a bit of negative signal associated with these boot camps a la ITT/University of Phoenix. I'm not saying this is justified, but I do believe the association is there.

I think your general premise (that management is becoming less relevant) is true, but you're approaching the problem incorrectly.

If I had your goalset, I would cram hard on EdX, OpenCourseware, etc. You need a good first principles education starting with Algorithms, Data structures, etc. I'd also start to learn how to do SWE interviews, which are a whole other skill set.

One last note: even if you do all of the above, the best way to ensure you're working with cool technologies is to start your own company. I work for a major SF tech company, and our ML team is two orders of magnitude smaller than our monetization team. At the end of the day, companies exist to make money and a lot of the stuff you've highlighted is currently speculative/nascent. There's just not going to be many jobs until these technologies prove their financial value.

noname123 2 days ago 4 replies      
Yes very crazy. I have a anecdotal survey of all coders I know: most of whom all graduated from only median Tier-2 US & News Report Ranked Nat'l Universities (>15) and whom have on average, earn only median Fortune Magazine's Best Jobs annual ranked salaries as Application Developer, and only very few employed by Forbes' Most Admired Companies list or who are on the Mattermark's Top 100 Startup Index.

Most don't feel like they're building lasting career skills, as agism persists in the industry and most people work on web applications to satisfy enterprise project business specification and project managers. During lunch, I hear conversations about the future of technology and the type of technology that we can work on if we only quit to start or work for a cool start up (e.g., Tesla, SpaceX). The consensus is that there is a tremendous opportunity for these emerging technology area's while other disciplines such as closing JIRA tickets will become marginalized. So I'd advise you to stay away from the enterprise coding bootcamps and only apply for the specialized tech bootcamp that emphasizes on these emerging technologies. The few that come to the mind are, creating new cryptocurrency payment models (for Paypal), writing self-driving cars hardware/software (for Tesla) and harnessing deep/learning AI (for Google DeepMind).

dontJudge 2 days ago 1 reply      
Yes, you're crazy. Keep your high paying job. Learn computer science on the side.

The really interesting stuff usually requires deeper knowledge and skills. For problems worth solving, 15 years experience as a CRUD developer is no better than 15 years experience as a project manager. Making this career change won't necessarily help you gain the skills you want.

ageitgey 2 days ago 1 reply      
A coding bootcamp is fine, but it won't get you much closer to doing block chain or deep learning work.

The analogy is you wouldn't necessarily take the Olive Garden line cook training class if you wanted to be a French chef. Sure, it won't hurt to learn how to use a knife and it might be a decent Step 0, but it won't get you much of the way towards your goal.

You should really consider a more in-depth CS education, whether that's through a traditional university or something like a Coursera / Udacity nano degree in your areas of interest.

As a practical matter, it might be better to stay employed while you pursue that. But that's up to you. Plan on spending some significant time learning (1-2 years at least) before you can do what you want, not just a few weeks.

You're very smart to consider getting into something like deep learning. The opportunities will be good over the next 10 years like you said - but only for those who are really good at it. It's a very technical field that requires lots of continuing learning. The competition for the best jobs is high. Don't get into coding unless you are very excited about it and willing to invest in learning it for the rest of your life.

If you are excited about coding and willing to put years of learning into it, go for it! But otherwise you could take the impressive skills you already have and find a way to reinvent yourself and apply them in the deep learning industry without becoming the actual coder yourself.

DelaneyM 2 days ago 3 replies      
I'm a CTO and active developer with a Harvard MBA, and I think you're nuts.

Not because the opportunities you see aren't there; they are. Not because management isn't losing its lustre in tech companies; it is. But because coding is hard.

I have a great software education (top school, top program), I've had tremendous opportunities to learn from the best and build amazing things from scratch, and I've been coding professionally for 20 years next year. I'm only just now starting to really "get it".

Having a top-3 MBA (I assume you mean Wharton) puts you pretty advanced on the product/management track, one it will take a decade to catch up with as a developer. Embrace that, dive in, enjoy it.

Here's an alternative suggestion: you don't need to code to understand crypto/blockchains/AI/etc. Those are complicated and sparsely understood, and they are math. Knowing what you can do with them and how to apply them in products is much more rare than being able to implement the algorithms. Why not focus on the theory beyond the code?

keeptrying 2 days ago 0 replies      
You're not crazy but your math is wrong.

Calculate the opportunity cost of doing this in dollars. That cost is REAL.

People seem to think opportunity cost is an abstract concept. It isn't. Your retirement and your personal situation will be less $Oppurtunity cost.

Other false assumptions I see in your thinking:

1. Underestimating the difference in competition in engineering versus PM

2. Large error in the number of years of low beginner status in programming

3. Your personality as a PM puts you at a disadvantage when trying to get technical buy in from other engineers

Investigate other paths:

1. Study on the side.

(If you can't do this for 6 months, you won't be able to sustain it full time either.)

2. After Work 1-on-1 face to face engineering coaching

Use the money you make now to have a full time tutor who sits right next to you (I.e. they only have 1 student and thats you and you sit side by side and code) after work. I think this is a much cheaper and much more effective way to learn that isn't available even at bootcamps. You keep your optionality but you also learn more/faster than at a bootcamp.

(Ping me - I'll do it for $150/hour. :)

iamben 2 days ago 1 reply      
I avoided replying to this earlier, but I've thought about it a bunch, so here's my 2cents.

You're crazy to do this. I've been (largely) a developer for years, and I struggle to get excited about client work now. It's amazing to be able to MVP something myself, or throw up a project over the weekend, but that's kind of it. Kids are younger and hungrier than me. Having experience is fantastic and certainly helps with day-rate, but I just don't have the time or the energy to keep on top of everything anymore. Now it's time for me to transition to other things.

In your position - keep the job. But invest time outside of that to learn to code. Build fun things. Experiment, learn, grow. Having an idea of what can be done, how it can be done and the time it takes will make you 10 times more valuable in your roll and moving forwards. You will be better positioned to talk to clients and talk to developers.

If or when the time comes that you want to run your own business you will be in a better position to recruit and to muck in yourself.

But for now, spend your spare time learning, and save as much money as you can to take a chance when and if you're ready.

That said, good luck with whatever you choose. Right or wrong, you can only learn from your choices :-)

FullMtlAlcoholc 2 days ago 2 replies      
PURE INSANITY, even if you are TRULY passionate about it You work at a top 3 tech company. You are in the best place in the world to learn exciting new tech. I'd kill to get a peek at the codebase of a top 3 tech company. Leverage your job as your coding bootcamp. Maybe you can negotiate 1 day/wk for learning CS.

If you can, take a sabbatical. If you can't and live in an ethical gray zone, go to a psychologist and get disability time off of work. Depression and some other mental maladies are treated as disabilities, at least in the state of CA.

Otherwise, find time outside of work. I assume you are able to teach yourself if you graduated from a top 3 school. Teach yourself to code. There's more than enough resources on the web that show how to go from 0 to capable engineer. Keep in touch with devs from work. Hang out in dev chat rooms/forums on IRC, discord, slack, or MOOC forums.

Coding bootcamps and online resources don't teach you truly how to code. The ultra basics they teach. Only actually coding, failing, refactoring, repeat teaches you how to code.

ghufran_syed 2 days ago 0 replies      
As someone who has had several 'crazy' career moves over the years, it may well be crazy to do it, and yet still be the right thing to do for you. I think the best way to do this would be to keep working, but to study part-time with Udacity. Continuing to work in a good tech company gives you a big advantage in that your "professional network" (aka "people you know") contains a lot of smart developers, a small number of whom may have made similar career moves. It would be worth asking around in person or on your internal work chat groups etc to see if anyone has experience with Udacity courses, then meet up for a coffee and a chat. Don't say you want to change jobs, just start by saying you want to understand better what developers do, and that's why you want to learn to code. That makes you a more valuable PM, while at the same time you are building the skills that would let you make a career change.

As you learn more, you should keep in touch with those devs, and you can ask them for feedback on the projects you work on (clearly, the onus is on you to not abuse their time, but most people like to help someone who is hardworking, enthusiastic and respectful). Then, by the time you've developed your skills to the point you could take an entry level developer position, you will also have a bunch of developers in the company who know you, know how hard you've been working, and will often be willing to pass on knowledge of openings, and put in a good word for you in the hiring process.Also, don't ignore the possibility of joining a startup once you have sufficient technical skills, a growing startup is exactly the kind of place that would greatly benefit from someone who understands team and project management and can deliver good code. They will hire you for the technical skills, not the PM skills, but that doesn't take away their value.Email me if you'd like to discuss further, and best of luck!

blacksqr 2 days ago 1 reply      
Bootcamps are for people who need employment quickly. Since you are employed, you can take evening and weekend programming classes to see if you like it before taking the plunge.
zoom6628 2 days ago 0 replies      
You have a MBA and you are a PM shows you have the skills to reserch, and put in some deep thinking. On that basis it would be folly to think you havent given seriously analytical thought to this i.e. you know what you are doing. But is this question a confidence crisis or you want some support?

My 2c is that if you dont have any dev skills right now then work night and day in your own time to get it. Choose a language, any one will do because you need to learn the fundamentals soundly. Do not be swayed by the tech-du-jour or you will never finish anything nor learn anything in depth. tschwimmer advice is sound. However know your learning style first - i got more out of 3 months messing with C on Arduino then i ever got from a textbook because i like learning stuff with sleeves rolled up and the coffee strong.

And lastly, follow your heart. npostolovski did it. It is far more important to enjoy what you do than much anything else (practical considerations of food and housing aside). Happy and comfortable is a whole lot better than miserable and wealthy.

Disclaimer: Im a PM, have an MBA, and dabble in C# at work, Python/C on home projects.Experience: Im a much better software PM because i can also code/hack some of my own ideas.Have been co-founder of a corporate restructuring company and my ability to code meant i could get the data and calculations needs to make turnaround decisions while others just drowned in their spreadsheets.Im now 53 and learning new things - currently IPC and mesh networks(home) and cost accounting(work).

eagsalazar2 2 days ago 0 replies      
If you want to become a dev via this route, right now that is a risky move and a long road to real expertise that would carry you through an economic downturn where very junior people are let go. If it is your passion to be a dev, maybe, but expect it to be difficult. Maybe just consider going back to a proper university for that CS degree you probably should have gotten to begin with?

If you want to become a much better PM and have the tools to start building apps on your own, then yes DO IT! Right now the economy is great, if in 3mo you are back on the job market saying "I'm an awesome PM and I did a coding bootcamp to increase my understanding of the products I manage so I can be an even better collaborator" you will just have increased your value significantly. Probably you could just go back to your old job with a promotion.

soneca 2 days ago 3 replies      
I am on a similar path, if with a much lower opportunity cost. I am 37 years old, one failed startup as a founder, a few marketing roles on other modest startups and some years as social project manager on the resume.

I decided to quit my last job and study full time to become a developer. Not through a bootcamp, but through cheap or free resources online. I chose freecodecamp.com to go for now.

I did an Ask HN too and I did not receive much support either from the HN crowd. I don't know if people here think being a developer is not a good career path, or they are tired of wannabes and impostors, or they consider a developer career is just for a few selected ones; but I was expecting much more support here for people wanting to learn to code.

My answer to your question: I think you should go for it. Just consider very carefully if a bootcamp is the best way. But if you have the cash reserve to use, I think might be a good first step. After that, keep searching for knowledge in other places. And follow with laser focus the exact field that you consider interesting.

If in one year you regret this decision, it is not too late to reverse the career change and go back with your great resume as a PM, with more added value by your experience learning to code. Go for it, it is not a path of no return and it will be a valuable experience either way.

ivan_gammel 2 days ago 0 replies      
Yes, you are. The best opportunities are in cross-field expertise, so keep working as a PM, but learn coding and other software development disciplines in parallel. Don't underestimate the management contribution to the quality of the code and to the final result: through building the right process, through the deep understanding of development team needs, weaknesses and strengths you may influence the resulting product much more than one of the coders. Everyone can code or learn to code - it is much harder both to possess the coding skills and manage people at the same time.
furyofantares 2 days ago 0 replies      
I'd think the answer would depend on which of the top 3 tech companies you work for: Apple, Samsung, or Foxconn.

Edit: Let me try a more helpful response (though I did intend to make a point there). You seem very focused on what you have: a good salary, a top 3 education, a job at a top 3 company. Things you expect should make you happy, basically, but you aren't, and this is confusing, and it's always scary to give it up if you haven't figured out why those things don't make you happy. But IMO, if that interpretation is correct, it's more important to attempt to find things that do make you happy rather than dwell too much on why the things you have, which are often equated with success in our culture, are not doing it.

RandomOpinion 2 days ago 1 reply      
> e.g. block chain, deep learning, etc.

Most bootcamps that I'm aware of are for training web developers, with a few going into mobile app development. That will give you some basic coding skill but is probably not going to get you very far in the direction you want to go.

You'd most likely be better off seeking an online CS degree.

throwthisawayt 2 days ago 1 reply      
Sounds like we are of similar backgrounds. I was a well paid PM, I've worked at a top tech company, and I had strategy consulting experience before that.

I quit my job went into a bootcamp and have been a software developer for a year plus. I've been pretty happy with the decision. My reasons were completely different though and were more about understanding what I was good at and passionate about.

I think I can help. Ask me anything.

vamsinator 2 days ago 0 replies      
Strongly discourage this move.

I've made the transition from developer to PM over the last 7 years and it's enabled me to work on progressively larger projects and to set direction.

Being a PM is about making sure the right thing is built at the right time.

Admittedly my technical skills have gone stale and to do any of the really interesting technical things would require 6-12 months of intensive learning if I were to do it on my own. This is with undergrad degrees in Comp Sci and Physics too.

So I decided to hack the problem and join a startup in SF thats doing novel hard tech !(business process automation, ecommerce, apps, small marketplaces etc). Here in Sydney they're few and far between.

I'm pretty excited to be working with them, its an opportunity to work and learn with a smart tight team.

So advice to you would be to is find a smaller business unit in your current company where you are closer to the coal face or go join a 100 person company working on a hard problem. Usually they'll have a team of 5 PM's supporting a tech team of 30.

ioda 2 days ago 1 reply      
As someone who runs a startup,here are some personal observations.

I would say, a PM has to understand the user needs, and drive the product.The former has got two parts1. Understanding the user needs which the user can articulate2. Understanding the user needs which the users cannot articulate.

I have had the opportunity to work with some of the best coders. Though I greatly admired their intellectual capability, I was not a big fan of their ability to think from customer's shoes. I have figured out that "Common sense is not so common". Now, having an MBA does not guarantee common sense, but if you think that, you can communicate effectively with your users, understand their needs, empathise with them, and can comfortably put yourself in their shoes, your are definitely adding value as a PM on Point No 1

Understanding the user needs which the users cannot articulate - This is where innovation begins. Now, if you are a PM without the ability to code, you may be at a slight disadvantage here. The ability to code, or perhaps the understanding of the fundamentals, would help you to structure your thoughts. It gives you a clear picture on what is possible and what is not possible at the present, from where, you can start to innovate.

To me, Quitting the job appears certainly crazy.

codeonfire 2 days ago 1 reply      
Companies have this ridiculous idea that you have to either be a PM or a developer but you can't be both. Virtually everybody in an organization except developers wants to reinforce the view that developers are just dumb coders who's only purpose is to implement the whims of everyone else in the company as fast as possible. Every PM thinks they would be successful if only they had more devs to boss around. Becoming a developer is not going to be like you think.

Even as a former PM, PM's at your company will try to exert power over you if you are a dev. They will be backed up by executive management, board members, investors, the media who all have an interest in maintaining this outdated view of the programmer who takes the specifications and simply types in the code. Why not fire PM's and just hire PM's that code? PM's don't like that, executives (who don't code) don't like that, even the janitor doesn't like that. Nobody likes that except for devs and devs have no power in companies because of self reinforcing old school ideas about job roles.

theflork 2 days ago 0 replies      
I think about the future and get excited about technology and the types of things you can build and contribute to if you know how to code (e.g. block chain, deep learning, etc.)

You will learn none of these things at a coding bootcamp. If you are really interested in going deeper, check out Georgia Tech OMSCS - you can do it while you are holding your current job (employer may even pay for it for you if yr lucky) and more importantly the courses are relevant to what you state actually interests you about future of tech.http://www.omscs.gatech.edu/current-courses

I have a feeling tremendous opportunity will be available over the next 10 years to software developers while other disciplines such as management become less and less important.

I disagree, solid managers and leaders will always be important. Perhaps you are focusing on the negative, rote aspects of yr job too much?

fullshark 2 days ago 1 reply      
This is like a construction foreman deciding to take a step down and become a construction worker because he's insecure about not getting his hands dirty building. It's a bad career move.
jupiter90000 2 days ago 0 replies      
No, not crazy, people change careers all the time. My suggestion would be to go over your reasons with someone like a counselor to determine if they are true for you or not. What I mean is, you said some things that are made up meanings. If you're cool with what you made up, then no worries, it's just something to look at, that you may be convincing yourself that "if I do this, then I'll finally feel fulfilled." (Not sure if this is true for you)

Like "I don't feel like I am building tangible skills as a PM, it is more about project management and coordinating." Perhaps you are learning many tangible skills (just not ones you prefer). Also, "I have a feeling tremendous opportunity will be available over the next 10 years to software developers while other disciplines such as management become less and less important." That could be true, but maybe it won't be.

My 2 cents

NetStrikeForce 2 days ago 0 replies      
I'm surprised you dismiss serious skills like "project management" and "coordinating" like if anyone could do it at all, not to speak of doing it at a top 3 tech company (we're talking Google, Facebook, Apple level).

They either come very natural to you, hence why you think they're easy, or you're not good at your job and oblivious about it or you have a very junior position and someone else makes the difficult decissions.

Either way, I would love to be a PM with an interesting product, not to mention being in a top 3 tech company. The money must be really good and the feeling of fully conceiving and creating a product has no equal. Coding it is fine and feels good too, but steering the ship is where it's at.

maxtudof 2 days ago 0 replies      
Do whatever the fuck you want. It's your life and your career. Opinions are divided here as voters in the USA so no one will help you make a decision in this better than yourself. :)
mifeng 2 days ago 0 replies      
No, you're not crazy. While I disagree that managers will be less important, I think that you're making a good decision because technically differentiated managers will be more valuable.

Even if you go back to PM, the ability to code will help you communicate with engineers and identify the right solution for a given problem, enabling you to transcend the project management aspects of PM.

Also, many executives struggle with strategies that entail deep learning or blockchain, because they simply don't understand them. To position for a future where those technologies are critically important, it's a good idea to invest time today to learn how they really work.

mrborgen 2 days ago 0 replies      
Nope. But you should make sure you actually enjoy coding. I did the switch like you (from running a small startup to doing a bootcamp and becoming a developer).

Several of the people in my cohort didn't become a developers though, as they didn't seem to have the proper motivation to put in the necessary work (at least not to manage it in a 3-5 month period).

You can read about my experience going from non-technical to technical here:https://medium.com/learning-new-stuff/from-non-technical-to-...

shoefly 2 days ago 0 replies      
If you've ever done a job search in tech, there are always 10x more software engineering jobs than PM jobs. There is that.

A thought... I have worked at monoliths, a mid-sized corp, a hatchery, and my own. At a monolith, your job is very narrow. I was bored out of my mind and left. At a smaller company, the role of a PM is much more interesting.

I was a PM but I had a coder's heart. I took the route you are thinking about. I would never go back to being a PM.

Two words: software architect

bluebeard 2 days ago 0 replies      
If my PM was interested in improving coding skills and went through a code bootcamp I think at the very least it would foster some mutual respect and understanding. Also in my limited experience using ML and deep learning frameworks the tools aren't about knowing how to code, they're more about "turning the right knobs" to achieve desired results. That said I think if you find the right code bootcamp it will teach you how to use the tools you're interested in. And yes you're crazy. But it helps to be crazy to do this kind of work.
guifortaine 2 days ago 0 replies      

Definitely go for it. Especially, please have a look at my previous comment in the thread entitled "Sorry, developer bootcamps: I was wrong" :


To resume: to my knowledge, the best training to start your journey as an aspiring Software Developer is the one suggested by Founders & Coders :


(Note: Codewars is just so awesome... https://www.codewars.com)

By the way, if you can get into it, I would strongly advise you to apply to FullStack Academy, they seem to have the best teaching around there (at least their students have very high rankings on Codewars) :


Good luck :)

Trs cordialement / Best Regards,

20andup 2 days ago 0 replies      
Quitting your job isn't the problem. It's takes courage to do what you do. The problem is coding boot camps. They promise things they can't deliver. As a programmer I can tell you all the things you learn in those three months can be learn from any beginner textbook you download from amazon. $50 versus $10,000.

Some of the problems I deal with in programming can take months of thinking to solve and any course that says yo can become a professional programmer in three months is a joke. What happens when you stumble a problem that doesn't have a ready made answer for you or you encounter a bug take days to discover.

If you want to become a professional programmer, just start coding. You don't need certificates to tell you who you are. Programmer is an occupation based mostly on meritocracy, It's a well known understanding in the industry that the best programmers are self taught.

Start by learning some text books and doing side projects. Try and get a job from there. It will take you 4-5 years of hard work to get to the level you mentioned. And note. There are many bad programmers out there that stop learning after 6 months and just accumulate time. Don't fall into that trap. Learning is hard but the personal reward is great.

wanderr 2 days ago 0 replies      
As a hiring manager who has interviewed many many bootcamp grads and supervised a couple, I don't think they're are worth it. They're vastly overpromising what skill level you will be at when you graduate and how easily you will be able to find a job.

Because they are trying to compress a lot into a short period of time, and because they are trying to keep it interesting and give students early wins, they seem to not spend nearly enough time on the basics, and jump straight in to using frameworks that do everything for you, the end result being that a bootcamp grad can quickly whip up an ok looking app that has basically no functionality but as soon as you ask them to do something complicated, they get stuck. Sure, that's not true of all grads, but I'd argue that the ones who come out of a bootcamp with serious skills are the passionate ones who would've done just as well or better on their own, so at best they wasted a bunch of money.

You are much better off going the self taught route to start off, maybe take community college classes on the side. If dabbling like that doesn't inspire you and give you the fuel you need to learn what you need to know on your own then software engineering may not be the ideal career for you anyway, what you know is a small part of the job, what you can figure out and learn are also huge factors.

pfarnsworth 2 days ago 0 replies      
You'll become an experienced coder just in time for you to be old enough so that no one will want to hire you anymore.

Then you will think "Fuck if I were a PM, I would be a VP at this point, and my skills would be more sought after as I got older, not the opposite for a coder."

Stick with being a PM. If you like technology read up on it or program on the side.

dwaltrip 2 days ago 0 replies      
You can do it, but it will most likely be very difficult. Learning how to write software well is quite hard. On a fundamental level, we still don't know exactly how some people write much better software than others -- there are no perfectly objective measuring sticks to compare two pieces of code.

Boot camps are like dipping your toe in the water. Most people are not qualified after only a few months of learning. It might take a year or longer to become skilled enough to get hired . A small number of very talented and lucky folks can get there in 6 months with no prior experience.

Before quitting, it seems important to validate the assumption that you will actually like programming and have some success in it. Try building a few toy/example applications on the nights and weekend for a month or two.

That being said, after much consideration, if you want to do it and feel strongly it is the right path for you, go for it. I personally love writing software. It feels like magic sometimes -- you type some words into a file, and very cool things happen :)

cocktailpeanuts 2 days ago 0 replies      
First of all, "crazy" is a good thing if you're trying to make a difference. Think about that for a moment. It's not that obvious. When I realized this, I felt extremely liberated.

Anyway, one good way to do this may be to:

1. Take a hiatus. You may either tell your employer that you want to learn coding, or you may decide not to. Either way it's fine. Even if you tell your employer, if they are really top 3 tech company, they will understand and even encourage it. You can spin it as "I want to be a better PM and want to understand coding."

2. Learn coding

3. While you're learning, you may feel the urge to really jump in and become a professional programmer. Then be so.

4. If no spark comes during your time at those bootcamps, come back to work and continue. But even in this case, the world will be a completely different place for you than now.

Don't worry about people telling you that's crazy. Crazy is good.

edimaudo 17 hours ago 0 replies      
Please do not jump blindly into becoming a programmer/developer/software engineer. You should try out a few classes to see if it is something you are interested in and want to do for a long time. Don't forget that after 35 most programmers are moved to management roles since programming is a young persons game. Good luck!
tigertheory 2 days ago 2 replies      
Thanks for the responses guys. A few more points of clarification. PM means product manager. Top 3 tech think Google, Facebook, Amazon, Apple. In terms of my motivation I think today we are where the internet was in 1994-95, at the cusp of the next big technology wave. I think technologies like deep learning and AI more broadly will fundamentally change every single industry and the next big tech companies will be created during this period. Not knowing how to code I think places me at a big disadvantage when it comes to the software jobs that will open up and at a disadvantage if I want to take a stab at starting a company using these technologies. It is a risky bet for sure, but if I think long-term I have a feeling learning to code and being immersed in engineering by working as a software engineer will be a very smart move. But I could be completely wrong lol :)
nul_byte 2 days ago 0 replies      
Don't quit your job, and learn coding on the side. That is what I did. I was an architect in a well paid senior role, so I learned to code and got familiar with the modern frameworks and tools and then found a job (or rather it found me) that recognised my professional experience with my knowing the development world and meant I kept my same level of salary. I now get to work more in engineering where things are more creative and their is lots to learn, and not services (which I was growing to dislike, due to the same old bullshit around 'escalations' and dealing with 'customer expectations').
ChemicalWarfare 2 days ago 0 replies      
You're not crazy per se but have you ever written any code? Try to get your feet wet do something like a weekend project type deal to see if you have it in you :)
asafira 1 day ago 0 replies      
This might get lost in the comments, but I wanted to ask anyway: I am actually currently doing a physics PhD, and am considering becoming a PM. Am I crazy?
mathgenius 2 days ago 0 replies      
I don't mean to sound elitist here, but if you were really a dev then it probably would have bitten you in the ass already. What you are saying here sounds completely backwards to me. So here is my advice: spend some time testing the waters, if it doesn't completely intoxicate you then go back to PM. Real dev's go through so much pain and agony in their work, if it isn't also pure joy then it just doesn't work. Getting "excited about technology" is very much not the same thing as actually doing it.
bitwize 2 days ago 0 replies      
I would suggest that rather than a "coding bootcamp" you take courses from your local community college, state college, or similar (do you have something like Harvard Extension School?) in actual computer science and software engineering.

But yes, by all means, if your goal is to learn to write software yourself, go ahead and get that extra education.

Coding bootcamps produce people who are conversant in the hot technology of the week, but if they were weak on fundamentals going in they're still probably going to be weak on fundamentals coming out. If you want to be a leader in the field, and not in the rank and file, you need strong fundamentals.

peace011 2 days ago 1 reply      
A successful career switch depends mostly on your ability to support yourself with money throughout the process, your ability to be dedicated to your goal, and ability to do lots of hard work. There is a tremendous opportunity to make the switch to many other fields, but a switch to our field is a lot easier in regards to bureaucracy because many companies in our field tend to focus more on the value that you can provide and a lot less on your background (this also depends on physical location). I made a career switch myself about six years ago. I can hardly call it a career switch though because previously I didn't have a solid career; mostly I did odd jobs for a living.

In my experience it hasn't mattered that much where knowledge has been "downloaded" from (college, bootcamp, self-teaching, etc). What has mattered is maintaining this "downloaded" knowledge and having it always updated to keep up with current times. Also, having actual projects to show to employers has helped me tremendously (e.g. open source contributions, client projects, personal projects, etc).

I'm self-taught and work at a BIG-BRAND company now as a Front End Engineer and make a six figure salary in the SF Bay Area; no college degree whatsoever, just a high school diploma. My resume says "Education: self-taught" and I'm happy to explain what "self-taught" has meant for me in the past six years to any employer. I've been able to work with people from all kinds of backgrounds: devs from bootcamps, self-taught engineers, devs with degrees unrelated to CS, devs with BS and MS degrees in CS and other subjects, and from many more backgrounds.

I'm contacted by many other BIG-BRANDs and small companies all the time to interview with them, and before I even accept to interview, I make it clear that I don't have a CS background, and that I'm unwilling to waste each other's time white-boarding algorithms - usually they're fine with this as they can clearly see my experience and instead they focus on the value that I'm able to provide. Many times I come across companies that ass-u-me I'm incapable because I chose a different path than them, but I've learnt to ignore the ignorant, and instead I focus on improving my skills and bettering myself as a programmer and a human being.

Any path you choose will lead you to a similar result. That's the beauty and uniqueness of our industry. As a final note, don't bother with comparing your salary with other people's salaries when/if you make the switch, as it won't matter at all if your income will allow you to live a really good life.

ecesena 2 days ago 0 replies      
No, you're not crazy. But if you desire to learn how to code and you're surrounded by top talent coders, why should you go for a (possibly mediocre) coding bootcamp?

Maybe do the bootcamp to get started, but keep your job and the opportunity it gives you to meet other great developers and learn from them.

My recommendation is: 1. learn the basics however you prefer, 2. study open source code, 3. build something medium-size that you can use, either home or work. If you're very good & lucky this may be your next gig. If not, you'll be a PM with coding skills, which usually is a pleasure to work with from a dev perspective.

zubat 2 days ago 0 replies      
Nobody can say! But the main thing technology is doing now is pushing us to engage design skills and critical thinking. Just "knowing ML" or "knowing blockchain" makes you a potentially useful product or service, but not a change agent. And being good enough to command the big bucks is a superstar game played per subfield and specialty. The people who are really, really into engineering work latch on to a challenging problem and can't let go - it's a pretty rare mindset and most working programmers don't actually have it, as they are there to fill seats and go to meetings and unambitiously do enough to get by. And most businesses employing them don't need a level of technology much above that either - that's why bootcamps are succeeding.

This is a world where you really need to aim to be the best in what you are doing, though. It's so competitive and there is no reason to expect that to let up. If you aren't doing that you can get stuck or hit a career deadend when the market shifts and those surface-level bootcamp skills become irrelevant.

So in my own space I am focused on a mixed stack of design, coding and leadership skills that is more in line with founders. The ability to pitch, to write up planning documents, to prototype and hold a vision, to study the marketplace and identify opportunities, to hone the vision through philosophy, as well as PM-type managerial duties. Those things are robust to changes in the technical landscape and they build on my own background.

orthoganol 2 days ago 0 replies      
I agree with your projection for the future and that PMs in general develop only limited skills for building products or contributing at the ground floor, but I would not get into programming unless you feel like you're wired for it, because you may invest years only to become mediocre, and can even grow to hate it.

Why not contribute by launching a startup as CEO? If a Harvard MBA with deep pockets and PM experience reached out about her startup idea, that is a beer or coffee I would take seriously. In other words it sounds like you have the background to attract a talented programmer cofounder.

sumanthvepa 2 days ago 0 replies      
Well I made the transition you talk of. Although I didn't have to go to coding bootcamp. I was a developer before I went to business school and became a PM. While I found the job of a PM interesting, I loved coding, and always kept my skills current. So when the time came, I quit to do my own startup, where I play the role of the CTO (initially the only programmer.) It's a wonderful feeling. I haven't really given up my PM function. I'm very much in charge of the product. So try this route. You may find it works better for you.
paulftw 2 days ago 0 replies      
I'm going to get downvoted for my "elitist" opinion but have to say this, to warn those few who'll listen.

Recently I was hiring on a tight budget. I've interviewed a dozen people from various coding boot camps, self taught web developers, etc. None of them could solve a Fizzbuzz level problem on a whiteboard.

(One thing I've learned after 15 years in industry, 8 jobs, 2 continents - a person who can't do fizzbuzz-type problem is not worth having onboard even for free).

It seems to me that even with best training in the world and a ton of prior IT experience it always takes people at least 2-3 years to start thinking in code in a way where you don't waste everyone's time.Learning to code is not about a bunch of syntax rules. It's about retraining your brain to use different mental models, developing intuition about where a bug might be, finding your way around a large and hostile codebase, anticipating how your today's decision will interact with all the features you'll implement over next 6 months, and so on.

Basic rules of programming are simple, but so are the rules of golf or snooker, or making bespoke suits, or wine tasting.

If you are prepared to spend next 3 years aimlessly poking around the debugger struggling to figure out the simplest thing only to realize at 11pm you were looking in a wrong place - go for it. It's frustrating but also rewarding.

If you think in 6 months you'll be able to build the next facebook with AI - only thing you'll learn in that time is how much there's still to learn.

baccheion 2 days ago 1 reply      
Well, if you're not sure, then do it over the weekends and at night. Are the hours at work enough that you won't have time in the evenings to work on this other skill?

Is this something where you could first try some of the online courses (Udacity, EdX, Khan Academy, etc) to see if you're actually interested and also able enough to do the job well?

Also, while I worked as a Software Engineer, I was not really doing much in the actual job and felt I was stagnating and falling behind. Most of the advancement in ability came during my free time where I'd try to learn new things, dive into new interests, create software I actually wanted, etc.

Eventually, work hours resulted in less and less time to do things on my own, and the crap at work got more and more irrelevant, tedious, and stupid. Also, management was all about trying to rid you of any competitive edge or anything else that makes you worth anything (or that brings you happiness), so in addition to all that was in place, it was known/realized they were going around each day looking for more ways to ensure every path would lead to a dead end.

It wasn't long before I wanted to quit and before I realized the only way to make it work would be to create my own company (or maybe become a freelancer/consultant).

dasmoth 2 days ago 0 replies      
I can certainly understand wanting to make this transition. One thing to bear in mind, though, is that corporate programming jobs can end up having a lot of focus on process and highly-structured modes of collaboration that make it a very different experience from coding on your own. As a tech PM, you're probably more aware of this than people coming from some other backgrounds, but still something to watch out for, especially if you're tempted because you enjoy hobby coding.
gyardley 2 days ago 0 replies      
You're almost certainly crazy from a financial perspective. You're unlikely to catch up, salary-wise, and will hit the ageism wall a lot faster as a developer.

But hey, we all get a little crazy when it comes to the things we love. Just be aware that a bootcamp is just the first of a great many steps before you can contribute to something you'd consider the 'future' and not 'move the button 10 pixels to the right'.

bsg75 2 days ago 0 replies      
Why quit your current gig? Can you find a bootcamp that you can complete over a "vacation"? If not, consider a program that you can acomplish evenings and weekends.

Unless you feel your PM role is a complete dead end, build on your experience instead of trading it away.

Edit, adding: A PM who understands software development, or a developer who understands project management, is a good set of skills to have.

johncch 2 days ago 1 reply      
Yes and no. My question is, what do you want to achieve by going through a boot camp? Using the certification as a pivot for career change? Having an short period of time where you can focus and intensely study the subject? I think it's important to consider what specifically about the boot camp route is important to you, because there are a lot of other ways to be proficient in coding.

Tutorials on various common "patterns" (RoR web apps, iOS apps etc.) are of good quality and easily available these days. As a PM in big tech, you can try to find little ways to contribute into the product's code base, which will teach you both programming and engineering practices. In my experience (disclaimer: was a PM), engineers are delighted when PMs show interest in code, and at least a few would be excited to hand hold you through the process of setting up your dev box, building the product etc. It's not a bad way to get better while making hand and fist full of money.

That said, like any other craft and practice, programming is layered and specializes. It takes 5-10 years to be "good", and it takes equals amount of time to be good in a specialization (say machine learning for example). Even for a good ol' engineer to move from building web apps to building machine learning systems, the barriers are still non-trivial. Furthermore, consider that a career in software engineering is perhaps more akin to spending 20% of your time building somewhat sexy* new thing, and 80% of your time doing boring boiler plate work, trying to pull your hair out digging through other people's APIs and code, and wondering why the build and CI system is so broken. If that's what you want to do, then go for it.

* most likely it's just a boring CRUD app using somewhat unfashionable technology.

sumoboy 2 days ago 0 replies      
Keep your job and fund a company on the side hiring people to do the hands-on stuff your dreaming about. The software industry is full of challenges and tech so it's endless and extremely diverse. You could spend the rest of your life on deep learning or whatever discipline. Today your just another drone PM, if you want to make a difference build a company, don't be another drone techy dude.
wasd 2 days ago 0 replies      
I personally think you are better off trying to learn this on your own. It seems like you have the enthusiasm. It sounds like you're also unhappy with where you work. You could try changing jobs to something where you have lots of free time (good/work life balance, no commute) and work on learning to code. Coding boot camps are very web development focused.
bernardino 2 days ago 0 replies      
I think it's definitely okay. Though part of me thinks you should have kept your job as a PM. You could have approached the engineering team at your company and learned a bit about the process to see if it was something you would like to do for a career. And possibly you could have learned some programming skills at home and maybe built some side projects with your coworkers (to get your foot in the door in regard to getting a job as a programmer while still having your job as a PM). After all, you do want to code for a living, right? You ought to think about how you want to use your time. On the other hand, if you have the money, I say why not. I hope you chose something you are excited about though (things like back-end, front-end, or mobile engineering, etc).

Otherwise, it's quite odd. It seems you ought to be in my spot and I ought to be in yours. I plan to pursue a career as a product manager after I graduate (hopefully join a rotational product management program). I am currently studying computer science at a University of California. I have yet to have my first internship though but I plan to attend Recurse Center (https://www.recurse.com/) this upcoming summer to work on some iOS projects (I am more interested in mobile than say back-end or front-end engineering). And while I have good grasp of a few programming languages and tools, I do not think I would like to code for a living. It's fun building things and the future of software is indeed bright. I just find the aspect of programming on a daily basis will result in burning out, personally. Plus even when I do a gig as a product manager, I will still would like to develop mobile applications (particularly iOS).

Above all, there's nothing wrong with changing your mind and learning more. Plus you have an MBA and now you are going to have some coding skills. You are golden. So long as you are excited about what you are pursing, and not let that excitement fade.

cheriot 2 days ago 0 replies      
If current tech managers have a hard time over the next decade, it won't be that management is less important. Instead, there will be a growing number of people that have written software and are going into management that will be better at it. They actually understand what's going on around them. Software is an outlier in that front line managers can't do even a little bit of the job their direct reports do. This only happened because the industry grew so fast that the bulk of programmers were so young.

That said, make sure you actually want to write code. Boot camps prepare you to make simplistic websites and mobile apps not the interesting stuff you mention. You'll have years of learning to get into those in a meaningful way.

swivelmaster 2 days ago 0 replies      
Well, you've got a lot of answers here already.

I've worked in startups and the game industry as a programmer, designer, producer (probably more like your version of PM), and kind of as a PM (which, in gaming, is probably like some percentage of your job now, but not all of it).

It's definitely true that having worked as a designer and programmer was INCREDIBLY helpful in making me a better producer. The ability to communicate with people you manage or need to make decisions for at a passable level of their domain knowledge will be very fruitful and will help you command their respect. You'll make better decisions too, of course.

Feel free to email me if you want to know more. (That goes for anyone here, I'm always happy to give advice.)

olegious 2 days ago 0 replies      
Maybe you're in a place where Product Management (I'm assuming that's what you mean by "PM") is done poorly? If most of what you're doing is project management and coordination, then you're not really doing Product Management. PM work is about knowing your market, knowing your customers and their problems, knowing the tech that can be used to solve those problems, building a strategy to deliver validated solutions to the problems and then delivering the solution, all while considering company and stakeholder goals. It is a incredibly fun, sometimes, incredibly frustrating job.
colinmegill 2 days ago 0 replies      
I think you should do it. No one's an expert in these technologies yet, really, since they are moving so fast. There's a lot of room left. Excitement and meaning are much more important to long term happiness.
lazyant 2 days ago 0 replies      
In most best scenarios, if you are good enough as developer after a few months of training you'll be able to land a job in a random software company at 1/3 or 1/2 your current salary doing probably 'boring' stuff, you know, the things that 99.99% developers do.

The chances that you happen to turn out very good at programming and that you land a job doing exciting stuff that you love in a cutting-edge company are virtually zero.

You may have an idealized picture of what developers do. You can try and learn some programming in your own time (yourself, with tutor etc) and see how it goes before taking the plunge.

snowwrestler 2 days ago 0 replies      
Management will only become more important in the future. As technology gets more complex, it will take greater numbers of people to create and maintain it.

And truthfully, most companies today are really bad at management, particularly related to technology.

Learning to code is a great idea but I would think of it as supplementary to your management work.

You're right about all these amazing technologies that are being developed, but truthfully, the stuff you learn in a bootcamp is not going to put you in a position to do much in those fields. It might be a small step in that direction, but you would need to go way beyond it. Advancements are coming from folks with deep knowledge of math, algorithms, systems engineering, etc.

apapli 2 days ago 0 replies      
Your are crazy. I taught myself rails part time using Lynda.com. I'm a sales and marketing manager, but love tech and wanted to build stuff.

The skills you pick up learning to code will be tremendous for managing others to build what you need.

Coding is hard to do well and takes years to get really good at it, and you will likely need to start at the bottom of the food chain to get the right coaching and support. I'd recommending learning enough code to be dangerous but get experts to help you do the hard stuff.

That said if this choice is about happiness, then go with your heart. Money shouldn't factor into that decision, it will come over time.

jdavis703 2 days ago 0 replies      
By PM do you mean product or project manager? If you're a project manager can you move over to the product side? That way you'll be able to leverage your MBA by learning a new set of skills. These will include SQL and data analysis, whatever field your product serves, and I even knew a couple of product managers who would occasionally sling code, write copy or design mockups when the project deadline was slipping. I feel that coding is going to be a dead end career field in 10-20 years, because everyone will simply do it as part of their job. Better to work on those soft skills, rather than just a pure technical skill.
rebelidealist 2 days ago 1 reply      
NOT crazy at all. Actually this is a very good idea. Being able to code makes you a much better PM and help you gain respect of engineers. It will also will help you become a better tech entrepreneur or exec if you ever choose to be.

Having some kind of hard technical skill very important. It help you tackle harder problems that arises in the future. For example let say AI becomes increasingly important. Since you know some code, you ability to lead in this a new technical field will be better than someone with no technical ability.

FYI i'm a coder and founder of a software company. Most of my time is spend on PM now.

GavinMcG 2 days ago 0 replies      
There's a self-paced in-depth program I can highly recommend that might allow you to do/explore this in a moderate way - that is, without quitting. I'd be happy to chat about it. My email is in my profile.
msurocks 4 hours ago 0 replies      
bootcamps are not a good option.
Hydraulix989 2 days ago 0 replies      
I fundamentally believe that programming isn't something you can learn at a "bootcamp" -- instead, it requires years of concentrated practice, much like learning to play a musical instrument or to speak a foreign language.

You're not crazy to make that career switch, but you are crazy to attempt to do so in that manner.

Start reading books on programming and teaching yourself instead, and start working through the actual exercises. I think Python is a good language to start with.

eachro 2 days ago 0 replies      
You are not crazy to make that career switch, but I'm not sure that a dev bootcamp will really help you get there. Dabble in the aforementioned areas in your free time. I'm guessing you probably have at least a few software engineer friends who could probably give you some pointers along the way. IMO it's not worth the $$ and time to attend a dev bootcamp to learn how to build a few web apps.
jonathonf 2 days ago 0 replies      
> I have a feeling tremendous opportunity will be available over the next 10 years to software developers while other disciplines such as management become less and less important.

We're in a period when everyone is "learning to code". This means the potential pool of developers (ignoring their actual talent levels) is growing.

Someone has to check whether the stuff people are making is following whet needs to be created. Someone has to be able to manage the teams of people making these things.

I'd suggest your premise is the wrong way round.

readme 2 days ago 0 replies      
Shit dude. Just code at home for fun and keep doing your job. Save hard for retirement and stick out a decade and some change or so and then you're free!!!

Or, go back and become an expendable framework of the week coder and then find yourself needing to relearn those skills every 5 years to do the same rote job.

Coding is great fun, until it becomes a routine. Then it's just like anything else.

bdcravens 2 days ago 0 replies      
You're not crazy, but temper your job and income expectations. (though you may get hired because of your PM experience, to do PM) Most bootcampers when they come out are ready to be an intern and start learning. Your life will be much different than your used to, but if you're in it for the long term, that's not a problem.

As for learning to code because of things like the blockchain, etc, keep in mind that bootcamps teach you to build web apps, not that level of programming.

fouc 2 days ago 0 replies      
Learning to code will make you a better software project manager. Unfortunately coding can take a long time to get good at.

Take the coding bootcamp. Do one of the longer ones, like the 6 month one if you can. Or do one of the online ones, and be disciplined about it, such as teamtreehouse.

And then go back to being a PM, but use your knowledge of the difficulty of coding to leverage many developers to work towards an important goal.

fillskills 2 days ago 0 replies      
Please don't do that if your goal is to learn Block Chain or Deep Learning. The goals of most bootcamps is to get you a job in software. If you can find a bootcamp that can match your goals, then it might be very worthwhile, otherwise you can probably start by learning on your own online and practice by developing your own projects.
CodeWriter23 2 days ago 0 replies      
Crazy, yes. But is it the right kind of crazy to drive your success? There are no rewards without risk. Bottom line, if you can sustain yourself through your proposed experiment, then why not? But I would preface that with some soul searching. Are the things driving you away from being a PM generic in nature and likely to follow you? If so, it probably means the remedy to your woes is working on yourself.
wkoszek 1 day ago 0 replies      
You're absolutely insane and you need help. Seek professional advise from your school counsellor, if required. Below I wrote some paragraphs to help you. If you do this, someone should go, figure out who you are in real life and revoke your MBA. Or you should just request a refund of your $150k tuition.

If you really work in top 3 tech firm, your colleagues are Stanford/Berkeley/MIT/CMU grads, who ate rice and ketchup writing operating systems and compilers. This will be the level you have to get to to contribute to any technical project in a meaningful way. But basically: when you were doing business case studies and traveling around the world to meet world leaders and learn from the best CEOs how they handled corporate crisis, they kept hacking algorithms in a black window with grey letters. I know--I did that too.

I have 15+ years of UNIX experience, 10+ years of programming experience and 5 years of real-world software engineering experience. I'm thinking how to get your job all day long :-) This requires reading tons of books: http://www.koszek.com/reading/ which I do and I sacrifice time with my gf because of that. If you look at this list it's business, management, investments, people stuff. You'll have to do the same, but read about software and hack code in front of the computer, etc.

Most of HN experienced crowd are smart technical people with worse credentials, who are attempting to move from coding job to architecture/design/management job, which you now have. You are our target :) You can see it in many threads. It'd be like moving from a coffee shop manager to a waiter. Ask some senior buddies from a random technical team whether they'd like your job. It's good to see people appreciating each other professions, and we appreciate that too, but don't do this job switch yet or we will crucify you :)

My advice is this: take a break from work (just because you can -- you have a shitload of money anyway, or maybe just "enough" due to loans; go on leave, but for god's sake, don't quit your job), join the bootcamp if you really like, and don't tell anyone you did it. You see from this thread bootcamp, unlike your MBA, don't have established value in the industry yet. It won't harm you, for sure, but you won't be a software engineer. Bootcamp sounds good for you--you're a smart person and wants to learn more, since I think you haven't hacked much code before.

Better idea is what other guys say: just get yourself all online programs there are. All of them. They are $30/month at most, and Udacity is $200. Get them all for a month. You'll spend maybe $200 + 5*$30 = $350, but maybe $0, since first 2-4 weeks are free. You'll pick one that you like, because it'll fit your learning style. Stick to it and just do exercises. On top of that get books. Books are dirt cheap compared to value they bring to your portfolio. Whichever books you need; all of them. I think you'll have to end up doing bs I do for business/management books: google "top 10 programming books" and get them. Even if you don't read it, get it. It'll be maybe $350, since you may end up getting 10 books. So it's $350-$700 investment at most -- you'll get a grasp on what's going on. Then maybe $30/mo for 6 months to teach you one thing well and 2 in a sloppy way you'll kinda understand. And repeat it maybe 2 times. Basically: watch classes, do exercises and immediately after that write your toy programs on the side or (better) real products.

So you'll spend at most $1k to learn something you want. It's also spending $1k to save your $150k investment you've made by doing MBA in top 3 school. It's 0.7% cost of what you've spent on school, and still much, much cheaper than a bootcamp.

If you're a good MBA you're a cheap, stingy bastard that can get people to pay for your stuff. And top 3 high-tech companies have educational grants. Some up to $9/yr. They pay you for your education. So have the company pay for this bootcamp, if you come up with good enough reason, it'll be all free.


If you absolutely truly love hacking code and are obsessed with it and you think that yes -- this is your 2nd calling and you basically don't see yourself talking to people anymore - congratulations. You are eligible for leaving your job, retraining yourself and entering coding workforce. Trade your suit for dirty sweater and you're all set to apply for a junior dev role.

But I think it won't happen.

What will happen thanks to my advise instead is this: you'll make yourself be in like 0.1% top category of MBA people who truly understand what software is all about AND have a PM job. People who you work with will see that, so you'll be getting good reviews etc. You'll come back to this thread, see how wrong about PMing you were, and you'll apologise. You'll then keep studying and getting better at being a PM and being technical manager. You'll learn how to manage technical people, how to partition tasks, build features, build products and build tech companies. And no, it's not very easy and it's not fading away. I see you posted some stuff about machine learning in the past. If that's your field of interest: go and get TensorFlow original publication from Google. It's a paper where you see an abstract is shorter than a list of authors. Do you think these guys would have built Tensorflow without any PM of some sort?

Anyway, story goes: then you will quit your top 3 high-tech firm, and start a high-tech startup, get $20M in funding. And then you'll come back here, DM me personally and offer me 1% in your new enterprise for having a profound impact on your life and you'll offer me a PM role in your new startup. I'll gladly accept it for this 1+ hr free of charge advising.

willcate 2 days ago 0 replies      
Quite possibly, but consult professional help if necessary.
ben_jones 2 days ago 0 replies      
Universities are pumping out like 50k CS students a year. Not boot camp grads, computer scientists already exposed to machine learning, advanced algorithms, databases, etc. I really don't see a tangible benefit of boot camps that only teach web development beyond short term web development jobs. This is just my own opinion obviously.
Klasiaster 2 days ago 0 replies      
Quitting a job might lead to something nice, but my understanding is that programming and computer science is overestimated. It's very interesting to learn how things work, but really doing something meaningful with it is mostly very very hard and one has lack of time or not intended all and thus you end up writing things you would never use yourself.
novaleaf 1 day ago 0 replies      
Crazy, if you are primarily interested in salary, and you are a good PM.

Not crazy if you hate PM'ing, or you are not good at it, or are not motivated by climbing corporate ladders.

CalChris 2 days ago 0 replies      
Yes, this is pretty insane. No one of merit will hire you on the basis of a coding boot camp. It's a good idea on the basis of skill set enhancement (you'll know more about how your charges think+work) but as a career change, utterly completely insane.

Most technical careers are competitive and short.

sushirain 2 days ago 0 replies      
If you don't have financial obligations, you could quit. Otherwise, maybe it's better to join an open source project on the side for a year.It takes years to go from noob to proficiency in coding, machine learning, cryptography. Some software positions are very selective.
ivan_ah 2 days ago 0 replies      
Learning coding takes five yearsat least. Do you really want to invest this time?

Like several other commenters have said, a better approach would be to learn coding on your own time. (Choose a languageany language will do, learn the basic from a introductory book and codecademy.com, then work on small weekend projects)

dba7dba 2 days ago 0 replies      
Try taking a class in udemy. See if you can get that much first before quitting. Speaking from experience.
overgard 2 days ago 0 replies      
You really don't need a boot camp to learn coding. I would stay at your job and learn on the side.
coldtea 2 days ago 0 replies      
>I have an MBA from a top 3 school and have a high-paying job as a PM at a top 3 tech company. But I don't feel like I am building tangible skills as a PM, it is more about project management and coordinating.

And how are those not tangible?

Lordarminius 2 days ago 0 replies      
What future role do you see yourself playing in the industry? Well paid geek, founder, investor, researcher ?
tehlike 2 days ago 0 replies      
If you feel that way, use your business skills to build a business. I am an eng, a good one perhaps, and I lack the skills of a competent PM.

Find someone to complement you, then try changing the world. one small project at a time.

theparanoid 2 days ago 0 replies      
No. You only have one life.

Instead of something like a coding bootcamp, I've taken courses at the local university. Almost all universities (including Berkeley) allow non-enrolled students to enroll in 1 or 2 courses.

dman 2 days ago 0 replies      
What is driving you to seek this change? What do you want to be doing 3 years from now?
codingdave 2 days ago 0 replies      
The only crazy part is thinking you need to choose between the two options. Job descriptions can be flexible. Keep your job, learn to code, and work for someone who lets you do both.
mcs_ 2 days ago 0 replies      

Keep the job, join some open source projects, solve some issues and enjoy the process if you can.

You can learn how to solve digital problems by coding while you work full-time somewhere else.

Good luck in any cases

atmosx 2 days ago 0 replies      
Learn everything you are excited about on the side. No need to take risks courses and general info is available everywhere, you are smart, you can learn everything on your own.
ryanSrich 2 days ago 0 replies      
I'd think the complete opposite of you. We'll need a few PMs around to manage the army of AI programming bots.
nikanj 2 days ago 1 reply      
As a programmer, you'll encounter much more ageism than you would as a PM, to the point of being unemployable from 40 or so.
piyushmakhija 2 days ago 0 replies      
MK999 2 days ago 0 replies      
just hire a mentor 1 on 1 dont throw away a good job to become a front end dev or mobile app dev its madness
blairanderson 2 days ago 0 replies      
Not crazy. I did it and couldn't be more happy. I switched from sales to engineering.
Bladtman 2 days ago 0 replies      
What's so bad about crazy?Do what makes you happy OP, what else is there?
fizx 2 days ago 0 replies      
You are crazy from a careers perspective, but do whatever makes you happy.
crististm 2 days ago 0 replies      
Read Cal Newport on career capital. Do you have enough of it?
trentmb 2 days ago 0 replies      
I'll trade my front end dev job for yours.
maverick_iceman 2 days ago 0 replies      
look around yourself. How many of the SWEs you see came from a coding bootcamp vs. a traditional CS background?
known 2 days ago 0 replies      
Developers respect Senior Developers
sgentle 2 days ago 0 replies      
Wow, a lot of negativity here. To me it seems like this is something you really want to do and, assuming you have the resources to give it a try, why not? Worst case scenario you go back to what you were doing before but with some new skills and experiences.

The two points I think are worth considering are:

1. Coding bootcamp vs postgrad qualification in CS or similar. I'm not in the coding-bootcamps-are-the-devil orthodoxy. In fact, I've seen a lot of great juniors come from bootcamps, but you do have to recognise their limitations. A bootcamp will get you to the point that a self-taught highschool code wizard will be at just before they hit university and realise that they don't know anything. Employable, sure, but lacking in fundamentals. You don't have to learn CS from a university, but one way or another until you learn it there will be a ceiling on how far you can progress as a developer.

2. Part-time vs full-time transition. One thing I will agree with is that you are going to be a way worse software developer than you are a PM, just by sheer weight of hours put in. For that reason if you're looking to make a switch I would do that wholeheartedly rather than learning on the side or moonlighting. Otherwise you'll be pulled in two different directions, and the one that you are better at, have more experience with, and can earn more money from will probably win.

If you genuinely want to be a developer to build stuff, I would do the coding bootcamp, get any job as a developer you can find, then teach yourself CS as quickly as you can while on the job. The CS will mean more and be easier to understand because you already have the practical skills and you'll be able to call yourself a developer sooner. Just be aware that the stuff you build straight out of a bootcamp will not be deep learning blockchain automation algorithms for SpaceX, it'll be web apps with questionable business models.

Another option is to just bite the bullet and get a real CS education up front. This will take longer to get you to a point where you're actually building things, and keep in mind that CS doesn't give you practical skills, so you'll probably still need to start with entry-level dev work, but your trajectory to doing interesting stuff will be steeper from there.

Ultimately it's down to your resources and your priorities. If the drive is to just make stuff then go with the bootcamp, it'll get you there sooner. If you mostly like the cutting-edge ideas and high-level work (and you can afford it) go with CS first. Deep learning isn't bootcamp material.

And keep in mind that either way you're 5-10 years out from being good enough at this stuff to really live up to the picture of it you have in your head, so make sure what you're doing in the mean time is going to make you happy.

JakeAl 1 day ago 0 replies      
I highly recommend you take an hour and a half to watch this Lynda.com video on Leadership Fundamentals. It's focus is business, but first and foremost we are all leaders of our own lives and the lessons apply as much to personal as professional development. It may serve as a good refresher as to what you once learned makes for good leadership as a manager and help you identify your strengths and weaknesses as a leader of your life as well as in your organization. They have a ten day free trial and there are many videos you can watch after this one that will help you no matter what path you choose to follow. It is well worth the 90 minutes. It helped me understand and resolve a lot about myself and my dissatisfaction with own career, my organization, and what was wrong with both.


Pay particular attention to the segments on emotional intelligence, motivation, engagement/disengagement(!), and professional development. It'll not only help you understand what is affecting your motivation and disengagement, but you may also realize your greatest strength is that you are motivated to solve these problems not just for yourself but others in your organization. Understanding the way things should be could just cause you to double down as a PM and master the challenges of the role while further developing your skills to advance your career.

Good leadership focuses on the health (and happiness) and growth of the individual as much as the organization. Maybe you are just in a poorly run organization or one that has poor leaders. Discontent is usually a pretty good indicator this is the case, because even if an individual is the problem, a good leader has the awareness to recognize this and have a good relationship with their staff that enables them to make the staff member aware of their strengths and weaknesses and the source of their discontent so it can addressed be remedied.

It sounds to me like you want to more authority and control, or at least more challenges and your organization's leadership is not addressing that. Without that your growth and personal development is limited. Being a coordinator is little more being an admin that tracks status and doesn't require much tactical or strategic decision making. Your manager should understand this and being stretching your abilities in every area little by little until they trust you to make those decisions. They should always be preparing you for the next level up. Maybe you aren't aware of your weaknesses and they are not identifying them and working on them with you. Maybe your desire to quit and become an individual contributor is just an Escape Coping mechanism for dealing with stress instead of a Control Coping mechanism which is positive and proactive. Or maybe they just have poor leadership skills.

It would be terrible if you quit your job and lost the opportunity where you are to address your weaknesses and strengthen all of your skills in an attempt to start over because you feel it would give you more control over your happiness, especially given all of the capital you have built up in that role over the years. Besides, if the problem is your desire to leave is a just an unhealthy response to stress or a challenging situation, it won't solve anything.

Just a thought, but one from someone who has been there.

What did I do in your situation? It took me a while but I watched that video, combined my awareness from it with formal knowledge of PMP (Head First PMP is good start) as a reminder of what project management is all about and what my organization did wrong as leaders of a functional versus projectized organization (a weak matrixed organization), and then I studied stress management to help me understand my own (unhealthy) responses to my situation.

If I had done that while still at my organization I would have not only felt empowered by the evidence and knowledge, but challenged to work on myself and the organization at the same time, and could have been perceived as someone with greater leadership potential that would have allowed me to level up. Even if I still decided to leave, I could have improved my skills while there to prepare for a move to a healthier organization that I would have been better equipped to recognize and excel at.

FYI I strongly considered a Masters in Data Science which would have had a narrow focus either as a developer, data analyst, or data scientist, but at the risk of competing with people who were younger and/or smarter, and rooted in those disciplines from an earlier age. I decided I should master my management and leadership skills instead, leveraging and building upon my knowledge and experience at a better organization. I am unemployed and working on that now. Once I get a job, even if it's a contract position, I can still take the online courses to get that masters degree from a top university and also take advantage of being around people in the industry that do what I aspire to do as mentors.

I sincerely hope this helps.

heisenbit 2 days ago 0 replies      
Twice in my career I moved from management to more technical roles. Both were somewhat forced by corporate reorgs and I found both quite difficult. Tech is some sort of meritocratic place and if you want to have an impact you need to contribute on an appropriate level. One of the hardest things in these transitions is to be patient enough with myself and not judging myself too hard for not meeting my expectations.

It took me 2-4 years to get on a level I was ok again with what I contribute in my role (lead architect). In these transitions I had the benefit of solid coding skills from way back plus having worked at a tier-1 corporate lab for a few years. I had the benefit that the company supported me but that came also with constraints on freedom and focus in recovering the skills.

Coding school may give you basic coding skills. The deep knowledge you would need to be a good coder however will take many years to acquire. I would be surprised if someone got to a more senior developer role in less than 4 years and going to architect before 6. Only then you will again be able to shape things. Until then you will have to implement what other - often a lot less qualified product managers have thought up for you to do. Often of the code will be for /dev/null as most projects fail in any case before hitting the user. I sometimes think salaries in tech will always be good as frustration tolerance is never going to be a commodity.

I found product management a very difficult proposition. It can be incredibly hard to add value in that role but then on the other hand it can be one of the most powerful and decisive roles too (Jobs do I need to say more). There is a lot communication and coordination and that can be fun but also can feel void. Shaping from that position takes serious political skills to acquire the necessary power and to wield it.

The way I think about these changes:

- what can you leverage into the new role?

- is there a plan B?

- do you truly like that type of work (tools, processes, travel, challenges, conflicts)?

- do you like to work closely with these type of people?

- what drives you? Long term vision?

- what are your strengths?

- what technical and interpersonal skill you want to learn? Will you learn anything new?

Would I have hired you when I was team lead way back? Iff you showed up with lots of enthusiasm for coding and passed our structured technical interview - maybe into a junior developer role. Willingness and ability to change was a key criteria for me. But I know I probably had to argue both technical staff and HR. I never worried about someone going for my role but maybe with you I would have worried about that on my side.

By all means learn coding. You may however want to give some thought on possible paths, risks and contingencies. Coding - considering your starting point - is certainly one option but comes with a high risk of significantly lower ability to contribute and ultimately benefit from it. Project management may be another. Consulting in the area of requirements may be another.

gabosarmiento 2 days ago 0 replies      
Yes you are crazy and Please Don't Do it. I'll try to make the story short so bear with me. Almost 3 years ago I took a Bootcamp Online at Bloc.io, quite recommendable and I was supremely obsessed with learning. I needed to make a fast change in my life knowing that I was going to be unemployed in about 6 months, my wife was pregnant and I had to make a quick jump not to drown. I do not regret it at all, in fact, I greatly appreciate having learned so much with my mentor. You can not imagine how many things I did after investing +90 hours a week for 6 months. I still had to learn on my own for another year testing ideas before I was able to launch a startup that has allowed me to keep a decent income higher than the one I had before. But this scenario is not what I wished for when I started 3 years ago. I did not conceive that learning to code was a permanent and continuous process where you needed concentration and long hours of focus instead of playing with my daughter who is almost 3 years old now. I love writing code, words can't describe what you feel when tests pass and you see it live in production (only to realize a few days later that you were reinventing the wheel and there was a better gem that did it faster and better). I thought this new world was my dreamed land where I could build things without asking anyone for help but that's really the problem. That window I opened 3 years ago showed me that if I continue to develop the way that I did I would spend my life without actually living it as I wanted to. I confess my lines are not that sofisticated, I even consider them quite amateurish, my tests are light, and I guess If I would really want to be a pro developer I would have to invest much more and that sucks because you can't think how many nights I've spent being away from my family because it truly is very absorbing. I do not say that it is bad idea to spend a life in front of a computer but man that is not suited for me.

I can see through your words that your interests are to participate in those great new ideas and to achieve greater things but you can make it happen without that Bootcamp especially without quitting your job. If you decided to attend to a good university it was because you really wanted to leave a dent on the universe. There are cases such as the orchestra director where although he does not play any instrument he must at least learn to play one to understand the essence of music before being able to lead. But in our ecosystem what is rewarded beyond our vision is our ability to execute.I believe that you as a PM have one the most valuable assets because you can take any talented team and give them a vision towards execution, that they will appreciate because people do not know how to execute complex Things step by step the way that you do. Besides that if you give them that strong desire to accomplish excellence that breaks the molds. And that stamina to persevere even in the darkest hours you are set.

If I could go back 3 years in time, I would ask for the refund even if I had to pay something. Instead I would use that money to spend more time observing regular people, maybe participate inside university activities, labs, study groups and invite complete strangers to take espressos or beers with students or teachers and bond with them. Instead of being a solo learner I would encourage myself to be a part of a group. My job would have been to create any initiative with them on the topics I sought were worth it and even if I knew it wouldn't work I would put all my experience to support the implementation of these ideas. I might not knew how to type a line of code but I would have felt more alive to be able to see those ideas become a reality, even if it wasn't 1% my vision, even if if wasn't my code, even if I only was able to sit on a table with just one talented person and be able to keep him motivated and enthusiastic after the first prototype was made and help him with the first sale to come, that would have been enough. Instead of investing in Bootcamps you could interact more with humans, learn more about human behaviors, spend more time with your family or children, travel more to meet with more people and take advantage of the work you have right now to find mentors or talk with your peers about your expectations in those topics that you like to execute instead of being in front of your laptop fighting with your lines of code that someone you work with can do much better in less time.

Finally I have to say it surely was a blessing to become a developer, right no I'm working as CTO/CEO but I 'm about to let go, and I know it's going to be hard, anyways in your current situation where you have much more knowledge and experience, only quit to carry out your ideas but if you definitely want to play don't forget that sooner or later you'll need to delegate and learn to orchestrate and for that you don't need that Bootcamp.

P.S.: Forgive my bad English.

nzjrs 2 days ago 0 replies      
gaabytzu 1 day ago 0 replies      
Do what your heart wahna do!
boatymcdickwad 2 days ago 5 replies      
what is a PM? you're the prime minister?
Ask HN: What should I plan to do on a 6 month sabbatical?
82 points by fred_is_fred  2 days ago   69 comments top 34
dv35z 2 days ago 1 reply      
I recently had a 2.5 month break between jobs. I, too, wanted to make the most of it. These opportunities don't come that often in life.

During my break: I learned squash (so much fun - can't get enough of it, and it's so good for you), studied Spanish (lovevto travel in Latin America), learned a bit of Scala (not really that much, to be honest), took some salsa dance classes (tough, but so much fun. Met lots of new friends), and did some Lynda courses on video editing (for making fun travel videos). I also spent a week and a half doing a road trip through southern France and Italy. Read a lot of books that were on my "someday" backlog - almost 0% TV!

As someone else mentioned, the quasi-unstructured time in the day was so refreshing. I loved just doing some random boring errands, bumming around the coffee shop talking to people, taking a long walk in the park with the dogs (I live in NYC)

I'll tell you: I'm 2 months i to my new job (technology job at a startup), and I really miss the feeling of this unstructured "regular life", or whatever you want to call it.

Cherish it, but don't overdo the planning, as it'll stress you out!

All the best!

GuiA 2 days ago 0 replies      
I am about to embark on a 1.5 month sabbatical - not quite as long as you (I'm jealous!), but here's how I prepared it - perhaps it'll give you ideas.

Over the past few months, I've been keeping a list of things I'd want to focus on. Ultimately, I decided to trim this list to 5 things, because I don't think one can focus on more than 5 things at once. Here they are for me (unranked, equal importance to all):

- Working on my Japanese (I'll be in Japan)

- film photography

- sketching/drawing/painting

- reading

- programming

For the last two items, I've been keeping a list of books to read, and topics to investigate/projects to work on over the past few months as well. Then I trimmed theses lists to end with 1 book per week to read and 1 programming project per week to work on.

Of course, I'm likely to deviate from it, but having these lists and priorities as my guiding star will be helpful.

If I were to do this for 6 months, instead of 1.5 months, I'd probably break it down in 1 month chunks, with varying priorities per month, and a bit of loose time in between said chunks to account for unexpected things/rabbitholes to go down.

I also have a 5 day mountain hiking trip in the middle of it all, because in my experience there's nothing better for your brain than disconnecting absolutely from reality, and centering your days only around walking/eating/sleeping/looking at beautiful landscapes.

spudlyo 2 days ago 0 replies      
* Go to a pawn shop and buy a cheap electric guitar, then go to Amazon and buy a cheap USB audio interface, a classic Shure SM57 dynamic mic, a pop filter, and some cables.

* Learn how to play three open chords on the guitar. I would recommend E, A, and D.

* Watch this video[1] on how to write a song using GarageBand. It's easier than you might think, and a fun thing to do with kids.

Compose, record, and mix a song! Also learn about fun technical audio stuff like levels, EQ, compression, reverb and the like.

[1]: https://www.youtube.com/watch?v=ZNCAGYENNc8

jbot29 2 days ago 1 reply      
- Learn a new skill/craft. If you are in tech, maybe something more physical, cooking, woodworking,etc. Six months is a good amount of time to build a base.

- Learn a foreign language, again 6 months is a perfect amount of time. Highly rewarding.

- Work on holes in knowledge, build a self-course around it. Algorithms, dbs, whatever.

- Pickup an new programming language.

- Build a side project, doesn't have to be commercially viable, could be open source or not. Build a redis replacement for no other reason than to understand it.

- Travel. I understand the constraint of wife/kids, but there are ways to fit it in. Don't have to live in Southeast Asia, but travel, I feel is a great brain boost. Awesome rush of new.

cheriot 2 days ago 0 replies      
The greatest part is doing whatever captures your imagination in the moment. Lists and project plans are important even for personal projects, but the freedom to follow my thoughts for days and weeks on end is amazing.

I'm wrapping up a self declared sabbatical right now. Most of it was traveling and reading history books on the country I was in. There were a couple career inspired prototypes (web and mobile). Now I'm on a a coursera and reading kick for stats, probability, and ml.

Enjoy the "break"!

baccredited 2 days ago 0 replies      
Learn about practical paths to Financial Independence. Saving 25 times your annual spending would mean you could take a permanent sabbatical next time, if you wanted that. You can either increase your salary (harder) or increase your savings rate (easier) to get there. More: http://www.mrmoneymustache.com/2012/01/13/the-shockingly-sim...
ahmadss 2 days ago 0 replies      
Get involved with a local community organization, even if it's temporary. Whether it's the local homeless shelter, the local Rotary Club, or a religiously affiliated organization, the thing that recharged me the most during my brief 3-week break between jobs wasn't the hikes, the long drives, or extra gym time, it was spending time helping people who had a lot less than I did.

Now that I'm settled into my new job, it's the one thing that I'm still doing more regularly than going to the gym or going on hikes.

npostolovski 2 days ago 0 replies      
This question is eerily similar to my current situation: hoping to go on a 6 month sabbatical starting in 2017. My goal is to, basically, work on things that I've always dreamed of doing but haven't pursued because of the demands of everyday life.

See Jeff Bezos' regret minimization framework for inspiration: https://www.youtube.com/watch?v=jwG_qR6XmDQ. Imagine yourself at 80. What would you regret not doing?

NumberCruncher 1 day ago 0 replies      
Your list seems to be too simple for me. Do you really need a sabbatical for doing those things? Maybe I do not get it because I am not married and here in Germany we have more holidays, but for me life without such basic activities is not worth living.
icey 2 days ago 1 reply      
Have you thought about picking up any hobbies? Six months would give you plenty of time to learn a hobby and really get into it; you have enough time to try a few. It might be nice to think back on your sabbatical while doing your new hobby in the future.
neom 2 days ago 2 replies      
Consistent, frequent, long, unstructured thinking time. Enjoy listening to your thoughts.
FullMtlAlcoholc 2 days ago 0 replies      
Learn to meditate. Few activities, if any, offer greater rewards for such a minimal time investment.
krosaen 2 days ago 0 replies      
Depends on what you are most hungry for. For me this past summer it was to have time off to study without interruption, I absolutely loved it. Also have a family, enjoyed having extra time and flexibility. Took a few vacations.


anotherjesse 2 days ago 0 replies      
I recommend meditation in addition to your list. Developing a daily practice and perhaps an extended retreat.
Kaizyn 2 days ago 0 replies      
I would recommend you focus on only 1 technology/software project to tackle. Spend the first 4 weeks doing no programming at all. Over the weeks 5-8, think about the project goals, what tools are best for it and do your research into project feasibility but don't actually dive into starting to do actual programming work. By the end of 2 months you should be pretty refreshed and rested, but you will have also done all the background/prep necessary to hit the ground running with your project. You may also want to limit your programming project to 3 of the 4 remaining months, however you divide your time so that your project doesn't consume your every waking moment.
Programmatic 2 days ago 0 replies      
I'm curious about how most folks get and/or negotiate a sabbatical? I'm getting to the point that I would really love something similar but would not want to derail my career in order to take one if possible.
_kyran 2 days ago 1 reply      
I understand the family commitment, but could you travel for a shorter amount of time? Even spending one month somewhere else can have a profound affect.

Have you travelled much outside of your home country before?

seb_b3lair 2 days ago 0 replies      
Improve your health. I have never enough time for that while working.
tictaktoe 2 days ago 0 replies      
I am in a similar situation. I am doing the following:

1. Finishing real estate course so that I have the license to pursue alternative career in free time/ weekends, etc.

2. Buying groupons for unlimited Yoga classes. Never been able to stick to a workout routine so hoping will get something from yoga (hot) to be in a little bit better shape before Jan/Feb comes and things get crowded.

3. Planning to travel for few weeks.

4. Talk to some startups (I have been in corporate world) that are really making a difference to just know about 'em!

Kluny 2 days ago 0 replies      
Take a neat course! I have on my list of courses I want to take:

- Powerlifting (one session, teaches you good form for several lifts)

- Small diesel engine maintenance (6 weeks, evening)

- Professional bike mechanic certification (5 weeks, full time)

- Upholstery (workshop format, as many as you want, $100 per session)

- Cobblery (haven't found a course yet, just really want to learn how to make sweet shoes and bags)

- Linux sysadmin (online but with a human coach, costs a few grand)

- Welding C certificate (evenings, 3 weeks)

- Swing dancing (Monday and Friday nights before the mixer, 8 bucks/session!)

nicolaslem 1 day ago 0 replies      
I recently had one month and a half off between jobs. I had many things to do in mind. I started by tech stuff first, and well, tech eats your time.

I ended up doing way less than I expected. So my advice: leave behind everything connected with your job and focus on the unusual.

bbcbasic 2 days ago 0 replies      
I'd say don't do any tech. Can you challenge to live a week like the 80s? No cell phone, no internet, etc.
matt4077 2 days ago 2 replies      
Are you American, or similarly to only have two and a half free days (yes, hyperbole) when you return to work? Then I'd recommend traveling anyway. I'd recommend either Europe or Southern Africa, three or four weeks if possible.

(if you're not essential for childcare or similar at home, and more important if you have not seen the world before).

atomical 1 day ago 0 replies      
I recommend Josey Baker Bread for some good recipes. I make great bread by leaving the dough in the fridge for 4-5 days.
sn9 1 day ago 0 replies      
Try to read 50 pages per day of something you want to read.

Learn new things you've wanted to learn. Master new skills. Take a few MOOCs.

Spend more time with your kids.

gniv 2 days ago 2 replies      
Brew beer. It is rewarding, (mostly) fun, non-trivial, and the result is surprisingly good.
eecks 16 hours ago 0 replies      
xantroad 2 days ago 0 replies      
Are there any projects you've always wanted to accomplish but thought you'd never have the time?
farm_code 1 day ago 0 replies      
Learn to Grow food.
zzoozzoopp 1 day ago 0 replies      
Nothing is something worth doing.
marknutter 2 days ago 0 replies      
Why, plan your sabbatical of course.
cheiVia0 2 days ago 1 reply      
Play Nethack.
FullMtlAlcoholc 1 day ago 1 reply      
misiti3780 2 days ago 0 replies      
travel, read, and work!
Ask HN: How would you choose which language to learn?
7 points by tvanantwerp  19 hours ago   7 comments top 7
milkytron 19 hours ago 0 replies      
If time allows, I'd prefer both. If you have an arsenal of popular languages and unpopular languages (assuming you are sufficiently skilled in them), it will give you a leg up over the competition that knows fewer.

But as the other comment states, B tends to be more exciting, and allows for deeper social connections more frequently. Sure, millions of people might know java and you can say, "Hey I know java too!" But I doubt the conversation will go any further than that. However, if you have experience with a less popular language and meet (or are interviewed by) someone that also knows that language, it will create a much deeper connection.

All in all, do both if you can. If you have to choose one or the other, learn something new and become a part of a smaller community and watch it rise or fall.

tboyd47 19 hours ago 0 replies      
I would consider your own personal preferences over purely economic concerns. How does the language "feel" to you? Does the community inspire you?

But if you want to look at it from a purely economic standpoint, the factors you mentioned interact in a complex way. Another one to consider is the salary curve for a language over years of experience. Not every language has the same pay. I would also consider the number of entry-level jobs over the total number of jobs.

I have an article exploring all these factors here if you're interested.[1] Enjoy!

[1]: https://medium.com/@tboyd/which-language-should-i-learn-answ...

itamarst 16 hours ago 0 replies      
There's also just whether you have the time to learn it. It's easier to find time and motivation (and maybe even support from your boss to learn it on work hours) to learn something that's tied to your job in some way: https://codewithoutrules.com/2016/04/27/which-technology/
tedmiston 18 hours ago 0 replies      
Focusing on one of the most popular languages on GitHub (see the annual top 10 list etc) is a good approach, especially if you don't have tons of industry experience. Once you have that foundation I think it's easier to choose general or specific. I've done a little bit of both but mostly generalist most experienced in Python.

If you're going to focus on a specific language, make sure you're applying it to a problem where it makes sense.

ohgh1ieD 19 hours ago 0 replies      
Both, knowing Java/C++/C# opens doors but exotic languages keep them open.
dudul 19 hours ago 0 replies      
I usually favor B)

First, as you point out, less competition.

Second, these languages are usually a little younger, and there is a chance to be part of a nice community from the beginning

Third, learning an "exotic" language is sometimes a great asset on a resume even if you interview for a position involving a different technology. It shows intellectual curiosity.

AnimalMuppet 16 hours ago 0 replies      
Let me ask the question a different way: What do you need to be learning now for the next five years of your career?

That may not be a language. That may be a programming style (functional? reactive?). It may be a library or a framework. It may be a platform (Android?). It may be a "language" that we don't think of as a language (SQL?).

My current answer is Android (not that I'm making much progress on it...)

Credit where due: I got my version of the question from my wife. She's asked it a couple of times over my career.

Ask HN: Has it become harder to rank on the front page of HN?
8 points by throwawaz  20 hours ago   3 comments top
minimaxir 20 hours ago 1 reply      
You're hitting a confirmation bias.
Ask HN: How to improve vim productivity and workflow?
4 points by shincert  11 hours ago   6 comments top 4
yefim 11 hours ago 0 replies      
Different strokes for different folks but I really love vim split views. I have Ctrl-h, Ctrl-j, Ctrl-k, and Ctrl-l mapped to navigate between my splits with ease as well as using the vim plugin Golden Ratio[1] to make the current focused split larger than the rest. If you really need the tree view, I've heard great things about NERD Tree[2]. Feel free to check out my .vimrc[3] for other neat tricks and plugins :)

[1] https://github.com/roman/golden-ratio

[2] https://github.com/scrooloose/nerdtree

[3] https://github.com/yefim/dotfiles/blob/master/.vimrc

vanboxel 9 hours ago 1 reply      
I really enjoy vim tabs for multiple files. Especially if I don't need to see all of them at once, but just quickly switch between them. `:tabnew foo.txt` to open another file, then `gt` to go to the next tab and `gT` to go back.

If you work interactively with data, you might also enjoy Slimux (https://github.com/epeli/slimux), a vim plugin that allows you to send lines from vim to an arbitrary tmux pane. I usually have IPython running in such a pane so I never have to copy+paste. I've got an ebook I've been kicking around describing this workflow in more detail here (http://dvbuntu.github.io/compute/posts/2050/01/01/workflow.h...).

jneumann004 9 hours ago 0 replies      
Use the editor that works best for you. I have used Vim every day for almost the last two years and I have learned to work very quickly inside of it.

As far as plugins, if one sounds interesting or useful to you, install it. If it doesn't work out, then you can delete it later. Over the years I have tried all of the popular plugins, but I have managed to whittle it down to 4 plus a couple of language specific plugins

Here are a couple of handy youtube videosVim Navigation Commands https://www.youtube.com/watch?v=Qem8cpbJeYcHow to Do 90% of What Plugins Do (With Just Vim) https://www.youtube.com/watch?v=XA2WjJbmmoM&t=3477s

vkdir 5 hours ago 0 replies      
Vrapper (http://vrapper.sourceforge.net/documentation/) lets you use Vim inside of the Eclipse IDE.
Ask HN: Best things happened to you just because of HN?
8 points by introvertmac  17 hours ago   7 comments top 4
keviv 16 hours ago 1 reply      
I just started freelancing and a lot of people contacted me after seeing my comments on various discussions on HN. They usually go through my blog where I've mentioned about all the XSS vulnerabilities I found in various Indian sites. These posts are very old but still validates my experience and my skills.

Indirectly, a lot of good things have happened to me because of HN as well. Things change very quickly in tech space. Yesterday's anti-patterns are today's best practises and best practises of today will become tomorrow's anti-patterns. I owe a lot to HN which keeps me updated with ever changing tech ecosystem. Being a full-stack developer, I've to keep up with both frontend and backend changes happening everyday. Without HN, I'd not have found out lots of things for sure.

sumitjami 7 hours ago 0 replies      
Found a job listing on who is hiring. Was the only way I could find one in my "branch" of tech. Was glad that I applied, and finally got the job.

The whole experience was really amazing.

Thank you HN.

pryelluw 16 hours ago 0 replies      
Got Jobs, contracts, and most importantly, friends. I've met lots of great people by just sending them a simple email. This community is amazing.
nicomfe 16 hours ago 0 replies      
got my first remote freelance project thanks to HN and one of those who is hiring posts!
Ask HN: Best Git workflow for small teams
164 points by tmaly  2 days ago   86 comments top 35
grk 2 days ago 5 replies      
We've been using the Github flow (or some variation of it) in teams of 2-10 people for a few years now. We work on feature branches, merge after code review using the github web UI. Here's a few things that help us:

- Make a rule that anything that's in master can be deployed by anyone at any time. This will enforce discipline for code review, but also for introducing changes that f.e. require migrations. You'll use feature flags more, split db schema changes into several deployments, make code work with both schema version, etc. All good practices that you'll need anyway when you reach larger scale and run into issues with different versions of code running concurrently during deployments.

- If you're using Github, check out the recently added options for controlling merging. Enable branch protection for master, so that only pull request that are green on CI and have been reviewed can be merged. Enable different dropdown options for the merge button (eg rebase and merge), these are useful for small changes.

- It takes some time to get used to those constraints. Make sure that everyone is on board, and do a regular review of the workflow just as you would review your code. It takes some time to get used to, but I think it's worth it in the long run.

qertoip 2 days ago 2 replies      
Continuous integration AKA trunk based development is the workflow you want to have. Ensure you meet the prerequisites first though (reliable automated tests, solid code reviews, feature flags, etc).

To be precise, small feature branches are perfectly fine. They are meant to be reviewed and squashed into master ("trunk") in a few hours to a few days maximum.

Squashing instead of merging has a big advantage of being able to quickly revert the changes if things go awry despite all best practices in place.

PS Avoid gitflow and similar workflows as they introduce leaps and thus risk. As everything in software engineering, you want your workflow to be as incremental as possible.

idieeasily 6 hours ago 0 replies      
For my team of about 10 people per app -

 1. Never commit to master 2. master is always deployable and gets built and deployed (CI/CD) automatically so its sacred 3. Everyone codes in their own feature branch (username/feature) 4. These are merged into a topic branch (origin/topic_feature) if there are more than 1 person working on a feature together 5. That topic branch is treated as a master - no force pushes, everyone rebases and merges from their personal branches 6. Topic branches are rebased with master periodically/sensibly and often times get built and deployed as beta for feature testing 7. Topic branches are merged into master
There is a code review process at each step.Developers create merge requests for their personal feature branches into the topic branch and then merge requests for the topic branch into master for periodic code reviews.

We don't force push and maintain history. Proper commit message formats are enforced to ensure that everything is standard and readable.

radicalbyte 2 days ago 2 replies      
I had a lot of success with a master branch, all features built in feature branches.

Feature branches were rebased then merged with a --no-ff. This creates a merge commit on master which includes the ticket number and short description.

The rebase is done by the feature branch developer who is usually best qualified to do so.

The advantage is that changes are isolated from each other, so nothing is spread before it's reviewed. The rebase makes the history easy to follow because it becomes linear and you can always easily see exactly what was changed in the branch. You still retain the full history of the feature branches.

Disadvantages: it doesn't scale to a massive team because you need to linearize the merges back to master. So it works for upto around 20 people.

I'd recommend against Git Flow because their method of merging makes it very unclear exactly what was changed in a branch. I actually prefer no feature branches to using Git Flow.

dasil003 2 days ago 0 replies      
I generally like GitHub Flow (https://guides.github.com/introduction/flow/) because it gives you isolation for individuals, but with only one ceremonial branch (ie. master). It might not be sufficient if you have formal release and QA cycles where you need to batch a bunch of changes to push to a staging environment, but all else being equal I prefer to optimize for branching, merging and deploying to production quickly. And with current cloud and/or containerized setups, it becomes possible to have on-demand staging environments (or even using ngrok with dev workstations!), but YMMV.

The main cherry I like to put on top is to always rebase before merging then merge with --no-ff (which is the default with GitHub PR merge button). This gives linear history for purposes of git bisect but preserves the topic branch structure so you don't have to read the tea leaves of the individual commits to piece together the overall development timeline. That one little piece goes a long way to addressing the concern that "rebasing destroys history" (which I don't agree with anyway, but that's the topic of another post).

This might not be worth it for certain types of contributors who are not programmers by trade, but for career programmers I believe mastering git and rebase in all its flavors (-i, --onto, pull --rebase, etc) pays big dividends that your team will appreciate more as the years go by. For git beginners maybe you start without rebasing, then learn the ins and outs of rebasing with local branches only before pushing, before finally going the whole hog and rebasing topic branches with force push before merging.

One last idea I like is Zach Holman's recommendation of deploying topic branches directly and then merging if there are no issues (https://zachholman.com/posts/deploying-software) in order to have easier rollbacks. Then you have 100% guarantee master is always stable.

bas_ta 2 days ago 0 replies      
At my previous team (5-6 people worked simultaneously) we used CI & CD and we relied on feature flags, so we could merge our branches more often and make smaller pull requests on Github. Each part of the feature had its own branch with a clear goal and tests written for it (we never pushed to master, every time you start working on something, you create a branch prefixed with your initials, make a PR, merge after review and then do it all over again). Of course, master branch was always deployable.

Right now, I work on a smaller project, we use similar workflow - we haven't implemented feature flags yet, but I suppose we will in the future (the project hasn't been released yet actually). I personally don't like developing an entire feature in a separate branch and then merging when it's all over, because code review becomes tedious (and ineffective) and the risk of merge conflicts increases. I would suggest you invest time in writing tests, so you can become better at it (if you aren't already) and it becomes a natural part of your development. Same goes for feature flags :) I was a junior when I started working like this (I still am, kind of) and it meant the world for me :)

neandrake 2 days ago 0 replies      
Paul Hammant has some interesting blogs about the topic and he has been talking and promoting Trunk Based Development for a while. We use a variation of it at work, though we have several teams of ~5 working on the same repository.




a_alakkad 2 days ago 2 replies      
We work as small team, 3-5 people max.

We just keep it simple like:

- No one pushes to master.

- For every feature (or update on a feature), create new branch.

- Send pull request for reviewing (one of us is the reviewer).

- Merge pull request into master.


You could try git workflow, but it's just too complicated for small team (and for large teams too?).

JimDabell 2 days ago 0 replies      
Your master branch really should be your master branch. A branch that represents the most up to date working version you have, that everybody works in relation to.

Only working, tested code should make it into master. Code reviews and automated tests are great tools for this, but ultimately, it's up to the individual developers to not be sloppy.

Avoid long-lived branches and big merges. If you've got big features that take a while to complete, break them into smaller things you can deploy sooner or use feature toggles.

Don't leave it too long between deployments. Small, frequent updates are far easier to manage and far less risky. A dozen deployments a day are better than a dozen a year.

Everybody should stay up to date with master. Rebase on top of master before merging instead of having awkward merge commits that only obfuscate history.

If you have people working on features that take multiple commits to implement, use feature branches. These should be rebased onto master and cleaned up before merging into master.

If you combine all of the above, you're heading down a path similar to GitLab Flow or GitHub Flow, so strongly consider using one of those instead of coming up with your own from scratch. Don't use Git Flow. It overcomplicates things and offers zero benefits over the alternatives. As far as I can see, it's only popular because a lot of inexperienced Git users were feeling like they were adrift without a workflow, and a blog post with a snappy title came along at just the right time to catch their attention.

If your team don't have good VCS habits, you need to do something about this. Small, frequent commits that do one thing and one thing only, good log messages, push and pull frequently, etc. If you can't describe the change briefly, you are doing too much in one commit. There's lots of best practices articles for Git that have been written read them. Also read Pro Git, which is free on the Git website.

atsaloli 1 day ago 0 replies      
Start out by ensuring your CVS refugees understand Git basics. We've got a free talk on this (outline: http://www.verticalsysadmin.com/git/git-intro.html video: https://www.youtube.com/watch?v=j6Se3jH60dA) and provide professional training.

Also, the Pro Git book: https://git-scm.com/book/en/v2

shocks 2 days ago 1 reply      
This is what's working for us:

 - Branch off master to make your fix/feature. Prefix branch name with "fix/" or "feature/" accordingly. We occasionally use a "script/" or "migration/" prefix too. - Do work. Use "git app -p" so commits are fairly small. - Make GH PR into master, get code reviewed. CI test are run automatically. - Deploy branch to staging environment and test. - Merge with GH, deploy to production.

 - master is always in sync with production, and so is always deployable. - never commit to master. - we don't use a develop branch.

contingencies 2 days ago 1 reply      
No branching at all + integrated CI/CD.
M2Ys4U 1 day ago 1 reply      
My team comprises 4-5 Software Engineers and 1 Developer-in-Test. We develop three (related) websites + a bunch of back-end services.

There is only one long-lived branch in each of our repositories: master. All other branches in our GitHub repos exist only to perform a Pull Request/code review.

PRs must not be merged in to master until all unit tests are passing (the unit test suite is run for each new commit to a PR branch) and the change has been reviewed by another member of the team. In almost all circumstances the person who raised the PR is responsible for merging it. Once the PR has been merged in to master the GitHub branch is deleted.

Our CI server creates a new build for _every_ merge commit to master, automatically pushes this build to our integration environment, and then runs a series out automated integration tests on the system. If the build or automated tests fail then only PRs that fix the build are allowed to be merged in unless they are trivial.

Once our DiT is ready to perform a test, she promotes a build to the test environment and does her thing. Tickets that have been tested are then reviewed by a product owner and if they are happy the build gets promoted to the Live environment.

uniacid 2 days ago 0 replies      
I've used both gitflow and the feature branch workflow which is explained here: https://www.atlassian.com/git/tutorials/comparing-workflows/...

both work well I think for small teams just depends on how well you want to organize things.

qznc 2 days ago 0 replies      
Git can adapt to any workflow. Why not start with whatever they are used to from CVS and then tailor it to your needs over time?
mattmahn 1 day ago 0 replies      
For my senior design team of 5 developers using Scrum and JIRA:

master ("production") branch:

- this is deployed

- nobody (not even GitHub Org administrators) can push; master is only changed via approved PR

dev branch:

- the base "working" branch during each 3-week sprint

- pushing is allowed iff the change is trivial or already has team consensus (e.g. changing linter rules)

- this is where we demo to our Product Owner

"story" branches:

- branched from dev

- named along the the lines of "alternate-checkout-TFF-75-story"

- base branch for any work that needs to be done for a user story

"task" branches:

- branched from the corresponding story branch

- (usually) named along the lines of "item-unavailable-TFF-92"

For all branches:

- CI must pass

- all PRs require >= 2 approvals, unless it is a trivial change then only 1

- require PRs when merging upstream (i.e. task -> story -> dev -> master)

- merge freely when going downstream (i.e. master -> dev -> story -> task)

- do not merge from story-A to story-B nor task-A to task-B

- squash commits when going task -> story and story -> dev

- do not squash when going dev -> master

Having stroy & task branches help keep the changes for each new feature in easily digestible chunks. The story branch is particularly helpful when two tasks need the same code, but the story, task-A, nor task-B branches are ready to go to dev. So we merge the shared code to the story branch, then the other task branch can merge down the required code from the story branch.

Currently, there is some contention over our verbose branch naming scheme. Previously, when 3/5 of the team was working on a different project, the branch naming scheme was "name-of-story-TSS-XX-story" for stories and "name-of-story-TSS-XX/name-of-task-TSS-XX".

kevinherron 2 days ago 0 replies      
We use what is basically the "GitHub" flow... forks and PRs on an instance of GitHub enterprise.

This is nice because in addition to the isolation it provides when everyone is working on their own fork it's easy to code review changes BEFORE they land in the "blessed" repository.

It's also nice because junior developers aren't pushing directly to the blessed repo either.

This model is really nice for maintenance and small feature development.

For major new development (new version, major feature that multiple people will work on) we tend to revert back to the behavior of committing directly to the blessed repo.

richerlariviere 23 hours ago 0 replies      
The link is down. Here is the cache version https://webcache.googleusercontent.com/search?q=cache:Vk2On-...
adipirro852 2 days ago 0 replies      
GitHub flow is the ideal way to go IMO. It is simple, easy to understand, and widely used.

In the end, however, it is going to come down to the specifics of your app and environment. What sort of CI do you have set up? Do you have anything that controls when or how you are able to release code? These types of things are what generally push teams to other models.

HHalvi 2 days ago 0 replies      
For 5-10 people it depends on what everyone is doing. I typically push some code out in the wild (master) for stuff that wont change and do releases or branching for incremental updates and patches. Git Branching + Git Releases should help you out mostly also bonus if you are using github throw in some good 'ol kanaban action using projects.
zachrose 2 days ago 0 replies      
Like others are saying here, the branch named "master" is always deployable.

Feature branches are named after a ticket. Pull requests are across branches in the same repo, not across repos. (It's marginally easier to collaborate on feature branches if they're all in the same repo.)

We don't (yet) do full continuous deployment, so many feature branches get grouped together before a release. Our strategy is to test* each feature independently and then merge all the tickets together to a branch named "staging". The staging branch then gets run against some extra regression/acceptance tests and whatever manual tests we may want. If they pass we merge to master, tag, and deploy.

Seems fine so far. Specifics about our tests and deployment process drive the Git workflow more than anything else.

*Run the test suite, test manually, whatever.

golergka 2 days ago 1 reply      
I think that a lot of people here make assumptions about the project that are not necessarily true. For example "everyone can deploy from master at anytime" is a great rule for a website that can actually be deployed by one click of a button, but a very bad practice for an iOS app, each new version of which can, theoretically, spend up to two weeks in review.

Also, what's your QA process and what is the usual quality of your builds? How R&D heavy are your new features, and how long do they typically take to develop? Are your programmers own different parts of the codebase, or is every one of them able to work on anything?

Without all this details it's impossible to know which workflow is ideal for your particular team.

cdevs 2 days ago 0 replies      
Quarterly website release cycle with 3-5 developers. usually one liner bug fixes are the only thing pushed to master without a branch as in master -> master. Everything else is a branch / independent feature each developer is working on and we pull them all into a staging copy of master to pretest Which makes it easy to just delete the staging if we want to repull a feature or two and scrap what other features we pulled, once staging is well tested we merge with master on bitbucket as the new release.

The biggest change for us when we starte was do not push features for the 3 month release into master so at any moment or bug fix master is always ready to go live anywhere without some dumb new feature we don't want. Keep master clean dammit :)

segmondy 1 day ago 0 replies      
You need to figure out your release cycle first, before creating/picking a workflow.

Will you only have one version of the app released at a time, (websites) or multiple versions (native, mobile apps). Will you have just one team or multiple teams working on the same app at the same time?

Answer these questions first, then and only then should you seek for a workflow.

znpy 1 day ago 1 reply      
From my experience working in a small team (3 devs + 1 designer). Here are some tips:

1- every dev works on a topic branch

2- always rebase before committing

3- have a jenkins running somewhere\

4- everything that gets merged into master gets automatically built and tested

5- everything that gets merged into -RELEASE gets automatically built, tested, packaged and deployed

6- Use issues from gitlab/github

7- Did I mention to always rebase before committing?

This isn't much and isn't exaustive, but it's a start.

aikah 1 day ago 0 replies      
I'm going to say something not popular but I miss SVN when working with teams. Git is great for distributed open source work but it sucks at being centralized/mono repo . SVN made it easy for instance to lock some parts of a mono repo or to even manage who can access to what. I don't get tall that for free with Git.
rorykoehler 2 days ago 0 replies      
We use develop branch as a pre-master. All feature branches get pushed to origin and pull requests created to merge feature branches to develop from there. Once a sprint is finished we merge to master and deploy to staging. Staging gets promoted to production using pipelines. As we are in early stages the develop branch is good but I can see us dropping it and using only master once we start doing daily releases.
quintes 2 days ago 0 replies      
Master, dev, feature and release. Mostly always in fact.

An admin merges a release back into Master and back through to dev after a milestone build, demo or production release.

Keep the same Workflow with other teams in your organisation if it exists - unless it is fatally flawed - so that team members moving around have the same experience. Consistency and all that

zoul 2 days ago 0 replies      
I am currently solving the same problem and what helped me a lot was the Git manpage about workflows:


Walkman 2 days ago 3 replies      
Everyone says what Git branch workflow should you use, but honestly, it can be complicated especially for junior developers.

Just commit everything to master and that's all! Sound stupid but worked best for us. I have seen a big software company using this, I learned this from them and never looked back!

gkya 2 days ago 1 reply      
If most know CVS already just use it. The burden of switching a tool and learning a new one is not worth it if the old one is good enough. I'd just set up a CC list for patch reviews, put a TODO file in the repo and go on with whatever VCS my team is used to using.
NicoJuicy 1 day ago 0 replies      
I Have 3 main branches, alpha, beta and master.

Next to feature branches.

Jenkins for updating

Beta = production databases, but automatically copied, to avoid production errors ( lots of parameters to customize stuff)

No develop in master, just merging

qznc 2 days ago 0 replies      
There is the philosophical discussion, if you should rebase or not. If your team comes from CVS there is probably no bias yet. Pick for yourself if you prefer a clean or an accurate history.
sdrothrock 2 days ago 2 replies      
Any advice for a workflow using Gitlab?
Ask HN: How do news networks get election data?
241 points by source99  6 days ago   56 comments top 24
Steeeve 5 days ago 5 replies      
AP and Reuters pay people to check the results locally. Between them, they feed a LOT of outlets. A significant amount of the data is available online pretty quickly, but some states and localities simply don't publish the data in a timely manner.

Some news organizations will have their own staff checking results, especially in areas where it is known that the results will be slow and the results are going to be within polling error margins.

You'd think the data could be crowd-sourced more effectively, but private citizens get the data more slowly for a few reasons ... First is that there is red tape involved in obtaining the data (i.e. forms to fill out, fees to pay and it all must be done ahead of time) and second is that after-hours early access to data is just plain limited logistically. If it could be efficiently delivered to a large quantity of people, it would be presented online.

There are a few areas where the government decides that it's more efficient to let private parties distribute data, and it's generally pretty good business to become one of those parties. NMVTIS data comes to mind immediately (carfax and it's competitors), but there are many similar instances.

Maxious 6 days ago 1 reply      
Associated Press offers a data feed http://ap.org/products-services/elections/FAQshttps://developer.ap.org/ap-elections-api

"Shortly before the polls close, over 4,000 stringers report to county election centers. When the first polls close, theyll be ready to start phoning in the raw vote as it is reported by the counties. Theyll place their calls to AP election centers around the country.

At the centers, a total of over 800 vote entry clerks will answer those calls, and walk each stringer through a dialogue as they enter the number of precincts reporting and the candidates votes into our election night system. "

imroot 6 days ago 1 reply      
I did this in the 2014 election cycle, reporting a county in Ohio.

They pay $50 for someone to go to the county and report the election results. There's an iphone, android, and mobile web site, as well as a call center that takes that input.

Honestly, it was a really fun evening in the middle of nowhere Ohio...

timwis 5 days ago 0 replies      
In Philadelphia, the city government publishes election results to phillyelectionresults.com as they're counted. The local civic hacking group (code for philly) built a nodejs scraper of the site (and an API for it) and a mobile-friendly front-end that auto-refreshes. It was available at whowonphilly.com, but the city government office that oversees elections has since adopted it as the official live results site.


Disclaimer: I work in philly's city government. It's really cool, and we'll soon be hiring a product manager (for beta.phila.gov), a data engineer (for open data), and a front-end/wordpress developer.

jtcond13 5 days ago 0 replies      
The NYT had their code on GitHub: https://github.com/newsdev/elex-loader
zodPod 5 days ago 0 replies      
Does anyone know if this data eventually becomes a dataset somewhere uploaded possibly free? It seems like AP's stream is for live data. I'd like the full break down by demographics and counties and stuff but clearly it's too late for it to be live.
rwc 6 days ago 0 replies      
They do -- in the form of staff on the ground collecting the information from the individual county-level offices. They collect that data as it's announced before it's even reported up to state election bodies.
emcrazyone 5 days ago 0 replies      
I'm curious about this myself but more so on the voter registration side. For example, how do they make sure each voter is casting a single vote?

In Illinois I registered to vote well before the deadline. I showed up to cast my ballot but my name wasn't in the "database." The folks managing the polling station had to manually re-enter all my details into an Android tablet. While this was happening, I took out my phone and scanned the WiFi network of the church I was in. I assume the tablets were connected via wifi. I saw no other connection to the tablet besides a power connection. To my surprised the WIFI was running WEP. Hmm, this day in age you would think WEP would be default=off. This was at a local Church too. So perhaps the tablets use cellular data plans?

They get all my PII data entered, I get my ballot, fill it out, and pass it through a machine. The machine is in the corner of the building in a large box so I can't tell if it's hardwired to some network or using the wifi.

Later that day (about an hour later after re-entering my details into the Android tablet) I went to the Illinois voter registration web site to look up my name and I can find my details.

Anyone have any information on the tablet software? Who writes it? How it's transmitted and stored? What about the electronic ballot counting machines? Are the phoning home some where?

The whole setup seems sketchy to me.

As an aside: I know a couple people who have homes in different states and claim they can cast multiple votes by driving/flying to the state where they have 2nd home to cast a 2nd ballot.

namank 6 days ago 0 replies      
The other one is Reuters. AP and Reuters are the two largest networks for gathering news. Most other brands that you know and recognize are in the business of distributing news.
robinwarren 5 days ago 1 reply      
I have some experience of this in the UK at least. Here we have feeds from the likes of the press association as well as the official results coming from the electoral commission. However, networks may have their own people at some or all of the counts. These would be local journalists who are attending the counts and will feed news stories back to the studio during the night. They will also get the results from the returning officer and call them in.

In the UK at least we aren't meant to release the results until the returning officer reads them out so waiting for any of the above while showing a live feed of a result would mean we don't have the result to show on screen immediately. For this reason you would likely also have people in the studio watching the live feeds from counts and entering the numbers which would then be double checked against the official feed later. This can be tricky when the result is drowned out by cheering from a crowd of supporters! ie "Labout party, John Candidate 22 thousand... <WOOOOOO - YEAAAH> ...hundred and 1 votes"

The focus for news orgs is getting these results out accurately before their competitors, no one wants to be slow to announce the results.

bitwize 5 days ago 0 replies      
Back in the day it was via the News Election Service, which was a joint venture of the major news networks and AP. These volunteers (I was one of them) would go down to the voting precinct and once the votes were counted, the election officials would announce the totals for each candidate. They would write down and then phone in these results to a central office. There was a computer automated system at the other end that would ingest the results.
ardacinar 5 days ago 0 replies      
Well, the US seems both more advanced and more ass-backwards compared to here in Turkey. Our way of getting data is very archaic, with people checking the results locally etc. (Internet might or might not be internally involved in that). But the trust in the elections are very low, and so the coverage of the elections has been a BIG issue since 2014 or so, many news networks have a few sources in parallel, and had the numbers for each reporting outlet and their biases on screen at the same time (different outlets converge in the end, but the intermediate numbers they report can be VERY divergent)

In addition to all those, there is Oy ve Otesi, a non-profit does the entire thing with only volunteer work. Their coverage is pretty minimal in rural areas, though.

jimmyswimmy 6 days ago 0 replies      
The state of Virginia has a json feed. But several times I saw news results reporting more votes than the state's website did. So it's at least not just that, if that helps.
ambirex 5 days ago 0 replies      
In MN the Secretary of State makes data files (mostly csv) available to media outlets.

We transfer and process them, for national races we we the AP Election API

VT_Drew 5 days ago 1 reply      
I don't know why there isn't a live data feed. I wish when you went in to vote there was a big screen that shows the current vote count for each candidate. You should be able to stay and watch the screen until the polls close and know exactly how your town voted.
qz_ 5 days ago 0 replies      
Usually the state board of elections reports directly to the media.
namank 5 days ago 0 replies      
Btw, Twitter definitely has the potential to rival and I think, dominate, AP and Reuters if they design the business that way. Just need a reliable way to decide trust worthiness of the tweet/source, and a way to put context around a tweet or a bunch of tweets so the headline can be derived from the tweets.
csommers 5 days ago 0 replies      
Decision Desk > NEP/NEAT for us
stratigos 5 days ago 0 replies      
They get the data they are told to regurgitate from the same centralized authority that produces all other mainstream news... though they are pretty good at making it seem like true journalistic endeavors actually produce the information theyre droning out to the masses of TV zombies.
pboutros 6 days ago 0 replies      
State and county websites, I think?
dvdhnt 6 days ago 1 reply      
My impression is that pollsters, people surveying voters during the election, report via the AP or directly to networks; seems basically like the traditional news wire.
billconan 6 days ago 2 replies      
I previously read an article about this, too bad it is in Chinese http://www.wenxuecity.com/news/2016/11/07/5747980.html

basically it says it is based on exit poll. and it is costly, so many media companies formed an entity called NationalElection Pool to do the report.

And they also hired a company called Edison Research to do the exit poll.

namank 5 days ago 1 reply      
Btw, Twitter definitely has the potential to rival and I think, dominate, AP and Reuters if they design the business that way. Just need a reliable way to decide trust worthiness of the tweet/source, and a way to put context around a tweet or a bunch of tweets so the headline can be derived from the tweets.
Ask HN: Self Hosted Google Inbox Alternative?
7 points by kolemcrae  23 hours ago   1 comment top
luxpir 19 hours ago 0 replies      
That'll be a no, I think. If you can carry over your discipline in inbox-zeroing, you can set up mutt with gmail and never have to suffer a clunky, slow interface again... Tagging and saving 'do later' messages into a 'Snooze' and 'Done' folders wouldn't take much setting up.
Ask HN: Will we have time to understand that singularity happened?
5 points by arisAlexis  1 day ago   11 comments top 3
T-A 1 day ago 1 reply      
To call it a "theory" is a wild stretch. The only honest answer is that we don't have a clue, because we don't have a theory of intelligence. Without that, we have no rational way to estimate how far we are from human-like AI or how fast it could evolve past that point, once attained.

My wild-assed guess? Based only on the ridiculous amount of computation needed to simulate neurons, the first roughly human-like AI will stretch the hardware it's running on, and the budget of the organization responsible, to its absolute limit. It will probably not even run in real time, more like 1:100 or worse, with its creators rationalizing that ratio as actually being good for their scientific purposes (a slow-motion process is easier to control, study, debug). Hardware is hard and expensive, and attempts to scale up to real time will only be made once there is a convincing case that there are no easy design gains left to be had. It will take years.

And once that happens, you will have a roughly human-like AI who has no more of a clue how to make itself smarter than you and I do.

usgroup 1 day ago 1 reply      
I don't really get this. What is it that super intelligence is supposed to be able to do that cannot otherwise be done?

We are pretty well compartmentalised against 'superior intelligence' anyway so it seems. Not too many philosopher kings around these last few millennia.

BjoernKW 1 day ago 0 replies      
As far as estimates go (if such an event can be estimated at all) the usual time frame is "a few weeks up to a few months" starting from the first strong AI.

Exponential growth starts very slow, even slower than linear growth at first.

Ask HN: An idea that you could not implement?
82 points by ninjahatho9  3 days ago   114 comments top 41
viraptor 3 days ago 1 reply      
Bubble burster bot. Identify cliques with few "outside" connections, that talk about politics on a social network. Start engaging both groups with content "acceptable" to both of them. Continue until direct connections are formed and move on. "Content" can be trivial - like finding a link posted by one person and responding "similar to this, right? <link to other person's post including related link>"

Potential risk: choosing bad content could cause more conflicts than new connections.

Why not done: just came up with it, also unlikely to be profitable unless you get a research grant for it.

Trigger: this idea is similar, right? https://twitter.com/Aelkus/status/796845589254275072

tmnvix 2 days ago 1 reply      
An idea I've had kicking around for a few years now is an app that presents famous artworks in the context of time and place.

For people like myself who like great art but have very little knowledge about the relationships or even chronology of the various movements, it would be great to have a broad range of artworks representative of the various movements placed on a map. Together with a slider type interface to choose time periods I think you could get a really good idea of how and when the different movements evolved and how they relate to each other. You could easily see for instance that there wasn't much happening in city x in a particular decade but a lot going on in city y. Move forward a decade and while y might be in decline, you can easily see that city z is becoming active - and that the newer works have clearly been influenced by what was happening in city y a decade earlier.

I have a fairly clear idea of how something like this could be monetised, together with how to get the necessary content. Haven't given much thought to how it might be marketed though. You could call it 'Art in Space and Time' (artisat).

I like that it presents a great challenge from a UI perspective - it could be done really well or really badly.

Anyhow, work keeps getting in the way...

If anyone likes the idea, go for it. Get in touch if you'd like to hear a little more - I might even be willing to get involved.

faddat 3 days ago 3 replies      
Inverse Commerce -

Customers simply type what they want. GPS locates the customer. Companies submit reverse bids both manually and algorithmically. Customer accepts what suits them best. Yay, money saved, time saved, customer happy.

Specifically, I don't have enough experience building android apps to make it as slick as I would like. Happy to talk with anyone about it. Can build back end, will travel, etc :).

TAForObvReasons 3 days ago 2 replies      
The recent election should have made it clear to everyone that many communities, centered around industries like manufacturing or fossil fuel energy, have been decimated in the last few decades or so. These are obviously large trends, but in our technological and economic progress we should figure out how to make sure these communities are not left behind.

I would like to see a larger effort for the SV community to expand into some of these communities and help give some of these communities a much-needed economic jolt.

slinger 3 days ago 3 replies      
I don't think these ideas would take over communities neither the world, but they are awesome:

1) Some kind of crawler that goes through YouTube videos indexing them and its subtitles and then when a user searches a word or idiom the web app would show some part of a video that speaks exactly that search term.I know there are other services that does that, but I want something more natural since these services use some kind of text to speech with a robotic voice and not a real life situation.

2) An old school open world MMORPG with modern graphics and a mix of Ultima Online (PVP) and Diablo III (Dungeons) gameplay. Nowadays every mmorpg is a copy of World of Warcraft with a different story. There is no innovation...

EDIT: add another idea :)

photogrammetry 3 days ago 3 replies      
I can't implement an asteroid mining program now because the cost of space launch for the preliminary/prototype mining equipment would be prohibitively high.

If I had access to a space launch capability for less than $100/kg, however, I could bootstrap the whole business from my basement with an investment of ~$100-200k from some friends. [0]

From SpaceX's perspective, they can put ~5 tons in lunar orbit for a cost of $200k in fuel [1]. $40/kg is great, but it's not what they charge their customers, and it's not what they'd charge me - demand from comsat operators with a much higher willingness to pay means that I have no access to the market, and SpaceX needs to make a profit.

Give it 10-50 years, and I'd expect real asteroid mining will become economically viable. [2]

[0] assuming zero NRE for mining robot fabrication and a single person salary.

[1] ignoring actual launch costs, personnel salaries, and assuming the whole booster stack is paid for through infinite perfect recovery.

[2] see also Planetary Resources, and why they should be in hibernation mode, not burning $2m/year developing camera sats. but hey, VCs have money to burn.

Razengan 3 days ago 0 replies      
We should have a regular "Suggest HN" or "Ideas for HN" post where people suggest ideas or projects for other hackers to make, similar to the SomebodyMakeThis subreddit [1].

[1] https://www.reddit.com/r/SomebodyMakeThis/

farright 3 days ago 0 replies      
A voting system for websites based on "liquid democracy"[0], where a pagerank like algorithm is used to let a person assign votes to others. The catch is this system would deliver personalized scores so each person sees a personalized ranking based on the votes they cast rather than an average of everyone's votes.

The idea is that people get a "bubble" but that when people vote, hopefully they take into account both quality and how similar the post is to their own. So people get a better version of their own views, which hopefully also allows them to see similar but non-identical views.

You can see that sites like reddit which tend to have high quality posts, but many subreddis have very strong biases as well. Letting people live in their own bubble means that people can write the best quality posts they can without worrying if their bias matches the subreddit they are writing in.

[0] https://en.wikipedia.org/wiki/Delegative_democracy

judahmeek 3 days ago 2 replies      
I've been dreaming of creating a platform that used crowd sourcing to map concept & procedural masteries to higher level masteries and to occupations.Basically, a giant graph database mapping concepts, procedures, systems (versioned), and occupations. I think such a database could be used to improve learning management systems for school faculty and autodidacts alike. It could also serve as the basis for a performance/competency evaluation system that could replace resumes eventually.
afarrell 2 days ago 3 replies      
A couples' reading list.

Step 1: My wife and I both download an app.

Step 2: We link our accounts.

Step 3: We each find and read articles in the app, Pocket-style.

When done with an article, swipe right if I think my wife should read it. Swipe left if I don't want to pass it on.

Step 4: Open the queue of articles that my wife thinks I should read. Read them. Swipe right if I want to chat about it with her. Swipe left if I don't.

Step 5: On the weekends, as we're going for our walk, talk about the articles we both found intellectually stimulating.

andrewtbham 3 days ago 0 replies      
I have wanted to build a chat bot that acts as a counselor. I am quite sure it could be created with enough training data or at least be used for training. But it is difficult to convice anyone else that it's a good idea.

Here is an outline of the technical requirements and how they could be achieved.


chiliap2 3 days ago 2 replies      
A Reddit alternative where the ranking for posts was personalized to each user. The ranking would be based the similarity between the voting history of the people who've voted compared to your own voting history. Think Netflix recommendation algorithm for Reddit.
old-gregg 3 days ago 2 replies      
I always wanted to build an indoor navigation system for a phone. Large office buildings, hotels and especially department stores can be hard to find stuff in and you have to rely on navigation signs of inconsistent quality.

I couldn't build it because I a) lack hardware expertise to figure out tricks to navigate without GPS or/and map buildings and b) never figured out a realistic GTM for this.

alan-crowe 2 days ago 0 replies      
I'm intrigued by the Futamura projections and the possibility of getting a compiler for a programming language "for free" by using partial evaluation to specialize an interpreter. It appears that fully automatic theorem proving technology isn't powerful enough for this to work well enough to be interesting.

But what about proof assistants? It struck me that using a proof assistant to guide the theorem prover inside a partial evaluator offers an opportunity to repartition the coding task. The idea of "end user programming" always fails because we cannot sufficiently separate the idea of a program that serves as specification (here is what we want done, its a shame that this specification isn't really runable because the implied algorithm is too inefficient (think about PROLOG, where a naive program may well be logically correct, but backtracks itself an exponential runtime)) and a program that describes a tolerably efficient algorithm. The poor end user has enough trouble with writing code that specifies the computation correctly without worrying about computer-sciencey stuff about how the computer should actually go about computing it.

If only there was some way the person rewriting the code to make it go fast could do so at one remove. He works with the end user programmer first time through, but subsequent revisions by the end user get rewritten automatically...

This was the vision I tried to articulate in https://groups.google.com/d/msg/comp.lang.lisp/5p8oVP5dGbU/V...but my health has failed and I've not got any further forward :-(

supercoder 3 days ago 3 replies      
One JavaScript framework to rule them all
buzzybee 3 days ago 0 replies      
Yesterday I got myself enthused for personalized intelligent agents, user-controlled systems that would be a generalized filtering and mediation point for communications. A concrete example is to take a user's Facebook feed and automatically detox it: scrub it of the ads, content marketing, and fake news, and reprioritize the remaining content in a way heuristically believed to aid user well-being, rather than engagement metrics.

A polished, credible implementation of that would mark the beginning of a new marketplace centered on agent services that prey on existing Web companies and tear open their data silos and adtech, one user at a time.

But what ultimately stops me from further consideration is that the level of AI know-how needed to do this is not a commodity at this time - you'd need a full team of top talent, and it probably wouldn't be cheap/fast/customizable/secure enough for users if done now. I think it will happen though, the signs of it happening are gradually emerging, and when it does, watch out!

kmf 3 days ago 0 replies      
I had an idea a few months ago that I liked a lot - a drop-in service for Amazon-style recommendations for your web app. It was going to be Stripe-like in ease of use, where you could just drop a lib in and start getting recommendations immediately.

On the service-end, it would have basically been an Apache Spark instance doing collaborative filtering as data comes in. It seemed like a pretty sweet idea, but I couldn't find the time to work on it.

If this seems like a cool idea, you should definitely steal it and start working on it.

Related to this -- I wrote a blog post about a lot of my random ideas I haven't finished and why you should steal them. Complete list and blog post here: https://kristianfreeman.com/post/steal/

FullMtlAlcoholc 2 days ago 0 replies      
A dating app where after a first meetup, each participant rates each other on how accurate/truthful their profile was. If you misrepresent yourself too many times, you are suspended from the platform until you update your profile/photo.

My single friend tells me of dissapointing dates where the profile photos are years old. She especially dislikes guys who lie about their age to date women in their 20's.

brg 3 days ago 0 replies      
A mouse droid.

In more detail, an innocuous autonomous droid that reminds me of meetings and takes me to the right location. Intelligent enough to correct for diversions to the wc or coffee machine, and stay out from under foot.

johnnydoebk 17 hours ago 1 reply      
A platform where random people are collaborating with each other to bootstrap startups.Not difficult from a technical point of view. But it's not clear whether anybody needs it.
_nalply 3 days ago 2 replies      
Natural language understanding. This will open Pandora's can, sort of, because really intelligent surveillance and ad targeting becomes possible. Combine a neural network and a lexicon and map an uttering to a graph with probabilities where the graph nodes are entries in the lexicon.

Note that this is partly independent from speech recognition. Perhaps speech could be translated to a string of word alternatives with probabilities, and language understanding gives a hint which alternatives make more sense.

In other words, language understanding could help speech recognition.

meesterdude 3 days ago 2 replies      
For me, it was a brain for my brain. I slung a lot of code to get what I wanted, but at the end of the day the encryption options are just not robust enough - or do not fit with other toolings needed.
cdvonstinkpot 3 days ago 0 replies      
I'd like to be able to mod comment sorting methods for various sites to mimic other sites. ie. Sort Facebook comments based on HN's comment sorting method, & vice-versa.
fillskills 3 days ago 1 reply      
iPlantTrees - kind of tree sharing. You want a plant, post location. You know how to plant or have money, go there and plant a real tree. 8 billion people and counting. If every 8th person plants 1 tree, we can have a billion trees.
smrtinsert 3 days ago 2 replies      
A mood indicator for every person within a nation. Takes into account technical know how and intent to thwart. Think of everyone from people who dont even use phones to a SF techie. The goal is to share in parseable data what is important to you on a daily basis (or as often as you like) so that sentiment is not a surprise to fellow countrymen or governments, advertisers, entertainers etc.
cb21 3 days ago 0 replies      
Images are so hard to search for. So many times I've tried to rediscover a hilarious gif I saw the other day and failed.
Sir_Cmpwn 3 days ago 1 reply      
A self-hosting static Linux distro, with pacman. It's bloody hard to bootstrap a Linux userspace from scratch in general, but when you add that you want everything to be static it just gets stupidly difficult. I'll try again at some point with another strategy, it'll be the fourth such attempt.
Grom_PE 3 days ago 0 replies      
An algorithm that takes two downscaled images of different resolutions and rebuilds a higher resolution image.
wilbertliu 3 days ago 1 reply      
Back then I wanted to implement an internet provider, since my country sucks on providing it with a proper plans
antoineMoPa 2 days ago 0 replies      
An open hardware FPGA. Limiting factor: building integrated circuits costs a fortune.
talktime 3 days ago 2 replies      
Reputational Review Network - A review network where users can rate local restaurants, services, goods and other reviewers' credibility. Ratings are personalized based on your own reviews and who you find credible - this gives a user an incentive to keep their reviews honest.
thescribe 3 days ago 1 reply      
I want to build a meta-layer that sits on top of basically every cloud platform be it dropbox or facebook. The best one sentence pitch I can come up with is "A dashboard for your online life" it should ideally do things like present all your storage as a single filesystem, present all your social networks as a single feed, and beyond that allow interactions between services like saving an image from your social network to storage as easily as moving a photo from one folder to another on a local machine. I want to commodify all these web sites and make them as easy to script as bash.
jackyb 3 days ago 0 replies      
I would want to have something like Wikipedia that takes account of the user's context and knowledge to present transformed text that is customized for the user so it's easier to digest.
bobosha 20 hours ago 0 replies      
a stair climbing/hauling robot - most households have indoor staircases and lugging heavy stuff up/down is a big pain point with rapidly aging populations.
bobosha 1 day ago 0 replies      
mobile ad-hoc ephemeral groups : you are at a concert/conference, and someone launches a group , others with the app are notified based on the various criteria (geolocation, interest etc.) . you can subscribe and unsub as soon as an event or session is over. This protects privacy etc. as only an avatar is shared with others, you can message and talk with them, but disconnect once done.

Can be used for announcements, notifications, 2-way comms etc.

bootload 3 days ago 2 replies      
good question, going through these ideas I keep in mind: "The winds of change originate in the unconscious minds of domain experts. If you're sufficiently expert in a field, any weird idea or apparently irrelevant question that occurs to you is ipso facto worth exploring." [0]

1/ So the idea I haven't done is build a hacker search engine. I'm not sure what this would look like, but I'd bet being able to search through source code at high/low levels might be interesting.

2/ Another idea is I noted on the the Amazon/NES classic thread, arbitrage by Amazon/users resulting in instant sellout. Could this idea be used somehow?

[0] http://paulgraham.com/ecw.html

paukiatwee 3 days ago 0 replies      
Machine/deep learning based github/gitlab/bitbucket issue bot that auto label issue with "bug", "enhancement", or "question" label. Currently implemented machine learning(no tuning yet) part but no time implement bot part.
ruliov 3 days ago 0 replies      
I'm currently cannot implement my own programming language with dependent types, because there is no fully formalized type theory in type theory itself. And nobody didn't formalized it for 40 years.
talktime 3 days ago 2 replies      
SimVillage - A building simulation game of of a village of up to say 1,000 villagers. Like Simcity/Skylines, but with the emphasis on detailed human simulation rather than on large scale.
michwill 2 days ago 0 replies      
Drone with a camera which flies and indexes physical world (like your house) automatically. So that you can find your stuff :-)
       cached 15 November 2016 13:05:02 GMT