VAT MOSS only applies to B2C sales.
Comprehensive, concise, and beautifully written.
Another set of books I consider to be "one" bible are Edward Tufte's (1) The Visual Display of Quantitative Information, (2) Envisioning Information, (3) Visual Explanations and (4) Beautiful Evidence.
It is hilarious and informative! Described in more detail here: https://hackernoon.com/how-to-become-a-hacker-e0530a355cad
Principles of Digital Audio, by Ken Pohlmann
Handbook of Model Rocketry, by G. Harry Stine.
(p.s. if anyone has any suggestions for the field of imaging, I'd love to hear them as I don't know of a good imaging "bible".)
70% of the money will come from the enterprise/offline sales you do and the rest will come from your website.
On the other hand, if you want to have more control in the long term, I can recommend to use Hugo  as a static website generator.
They have plenty of themes  to choose from. You can still adjust it with basic knowledge in HTML/CSS. Afterwards you can chose where to host it. You can use Github Pages  for free or pay for a service like DigitalOcean . I wrote a technical cheatsheet  on how to setup your own website with these ingredients.
-  https://gohugo.io/
-  http://themes.gohugo.io/
-  https://pages.github.com/
-  https://www.digitalocean.com/
-  http://www.robinwieruch.de/own-website-in-five-days/
Having your site content live in the git repo instead of a database is amazing. In fact, this is the approach taken by most documentation sites these days. It makes it so much easier and faster to make changes, updates, and experiment. I use Netlify as a static host; they have features to make any commit, pull request, or branch into a hosted preview. It's an awesome way to work.
(For less technical editors, you can plug them into the process with something like NetlifyCMS, a clever open source project from the same folks that basically is a CMS interface running on git / github.)
I've been hearing a lot about Hugo lately, but my main concern as a blog editor with static website generators is the fact that they are great for, well, static content. If you want to update your site with new content and features (posts, pages, sections, widgets, comments, web statistics) WordPress make that easier.
On static websites generators at least the ones I tried a couple of years ago, octopress/pelican/jekyll these systems are great if you want to just have a good/superfast landing page and a few other pages laying around. Once you want to add new pages and posts you had to recompile everything again, something that wasn't a good idea with sites that grow dinamically through time with hundreds or thousands of posts (like my blog, for example).
Please let me know if Hugo (and others) solves the "recompilation" issue to rebuild the site each time, I'm probably wrong or not updated here. In your case it seems that static website generator could be a good fit though.
Squarespace is really nice too, btw. Good attention to design and detail, not so versatile as WordPress.
However use other things for your SaaS platform, WordPress is too slow for that kind of thing. Instead go with something lightweight like Slim Framework.
P.S. This is from working with Joomla, Drupal, and Wordpress sites in the past. Static sites are the way to go.
One example. ConvertKit is killing it these days, right ? See their marketing website. It is WordPress.
this is one of the few times that the right thing is also the easy thing.
Basically, how important is human involvement in your sales process?
If it's really important, focusing on your website at all is probably a waste of your time. Just choose whatever involves the least amount of work (probably SquareSpace or Launchrock) and crank something out quick.
Revisit it later when the website is actually interfering with your sales.
So far the best options look like WPEngine, Wordpress.com, or Pantheon.
I've also worked with Squarespace and would caution that developers can find it to be frustrating--requires a lot of hovering and clicking to configure pages and post content. Not really a fan now--too much of a pain.
You don't have to have WordPress as the go-to resource for everything, but also you don't really have to roll your own CMS every time you build up a site, which is quite a time consuming task.
Grav offers a light experience to a CMS, and you can decide if you want to just work with markdown files, or rely on the Admin panel for easier editing.
(Disclosure: I'm a dev team member).
If you want other non technical people to edit or make changes, choose a CMS.
Your goal is to get your message out there asap so you can solve problems.
End of day, the customer doesn't care, only you do. You can always change it later.
At present, I do wish I had spent more time on trying to make products. I do not really see what traveling got me, other than a way to impress certain people. To me, experiences are fleeting, and memories might just as well be daydreams. I can have those for free.
It will, however, with near 100% certainty reduce your bank account balance, and will potentially put you in a jam down the line unless you have something to show for it at the end.
I spent a year traveling in South America in 2010. I was aimless. It was one of the best experiences of my life. However, if I'm really being honest with myself, it cost me a career trajectory that probably would have meant retirement type money by now.
I depleted my savings, my knowledge became obsolete surprisingly quickly, and it was a slog to get back into the groove when I got back. I can't say I regret it, but I definitely would have done it differently in retrospect.
> 1. part of me feels like I am pushing myself to travel not because I am truly excited about it..
> 2. I also have plenty of side projects I've been itching to work on.
> 3. I rent a very affordable place that I really like in a very high COL city
You aren't crazy about travel. You're burned out on your job, but NOT on your side projects. You have a nice place in a nice city.
To me it's very clear. Quit. Stay home. Veg out until you feel ready to play at your side projects. Play with your side projects when you feel like it. You have all the makings of an awesome "staycation", if people are still using that word. Like you, I enjoy working on my own stuff and I've made a great living at it. Even if you don't, you're looking at some low bandwidth time off. Feel free to contact me to chat. I've been in your place.
> I am worried that I will seem less attractive to future employers when I return
That's not my experience at all. Me and many people I now have huge gaps in their work history, either from travel or startups, and it hasn't hurt anyone.
Also, it's not a black and white decision. Start taking time off and go travel. If you decide it's not for you after a few months just go back early.
Dude, life is a long. Work will always be there
If you are a decent software engineer I wouldn't worry about employment. Mid way through my year of travel I received a job offer, and negotiated that my start date would not be for another six months.
Also, this does not have to be an all or nothing decision. Why not sublease your place for two to three months, spend that time traveling, and then re evaluate at that point?
Moved to Australia, not only because I've always wanted to visit, but also use it as a hub to Asia Pacific. I have one side project I am working on. Also by random came across a cool part time job for a start up in Melbourne. It wasn't part of my plan to be employed but again I have an open plan. The new gig is adding to my professional and personal growth. Also, have plenty of time to live, work on my side project, and also work on my personal goals. I'm not worried about my career. As others have said, if you have the skill set you'll be fine. but your new road may lead you to something better.
If your gut is telling you travel is something you need to do right now, don't have your mind talk you out of it. Do it and if it doesn't work out you can always go back home.
Some of your worries I wouldn't worry about so much -- if you want to keep some of your things, you can put them in storage or give them to a friend you trust, if you know someone with some spare room. Ditto for the place, if you want to keep it you could most likely sublease it to a friend or someone else for the amount of time you'll be gone and get it back when you return. I wouldn't worry about future career prospects; when you're interviewed, of course you'll be asked about it, but you can spin it in many positive ways. One year of salary loss is probably the only important issue in your third paragraph, so I would be careful and conservative with your calculations. And the feeling that you're doing it because you can rather than being truly excited about it is a real one, and is maybe partly due to the length of time you're considering, but it is something you really should consider if you are planning to have a family (especially with kids) in the future.
If you're worried about the length of time (although you didn't mention this directly in your post, it was one of the reservations I had and a feeling that crept into me as I started a 6 month journey traveling to a few different countries) you could most likely feasibly travel for 2-3 months to somewhere new, while keeping your apartment. Then if you want to travel for longer, you can figure out what to do from there.
On a more philosophical note: don't live to work, work to live. Your career is not in jeopardy for traveling for a period of time, the only thing that you're going to be missing out on is an income during that time. Your career will be there when you get back, and so will your friends, family -- plus you'll have a lot of interesting stories to tell.
You will never regret this trip and you'll learn way more than you think you will that will help you in your career. If you're really worried about your career then spend some of the time working on new skills.
You'll also have ups and downs but learning to manage these times will help you so much in your life.
You have two options: travel or not travel.
Looking back, which choice might you regret least? Choose that one.
I've been a hiring manager and I love people who do things like this. Shows independence and initiative.
It's good to do something while you travel, as it gives a focus.
I spent time away learning graphics (ordinarily I do back-end). It was really good and at it meant when I came back I could put what I'd been up to on the gap in my CV.
TBH the my original plan wasnt nessacarily to come back, but it turned out to be a year.
(edit) of course you don't need to do something tech related when travelling anything will do
It doesn't sound like you really want to travel for a year. I'd suggest taking a month off to reflect and decide what you want before you commit yourself.
Write down the good scenarios.
Evaluate them, and keep in mind the worst-case.
It's probably not very bad. I hope you go.
This is not a situation where you need to make some big, final decision today.
Which regrets do you prefer?
Worked on some side projects, saw different places.
Picked up light weight contract work (think... like 15 hours/month of website/app maintenance for $1500/month)
It's gonna be tough to pass the recruitment process in a year from now for so many reasons. The competition is stronger than ever and will increase over time. Everyone applies for dev jobs today. Add-up a lack of practice, being outdated and wanting to take a year off. All these are red flags for recruiters (not even interviewers). Personally, it will feel even worse when you'll start re-applying if you're burnt out today. Dev interviews are ridiculously annoying now and require a few months of practice.
If I were you I'd do that if you have a strong plan coming back and not simply applying to jobs. Or, if you're planning on building products while traveling, you won't carry that one year gap in your resume.
Desktop applications can avoid security problems inherent in web apps that are run through a general purpose browser.
The commonly cited tradeoff with desktop apps is they are harder to deploy and update. I don't believe this is necessarily true. You can tell a desktop application to periodically check for updates and notify the user to restart before allowing further writes to any central data stores. If fact many already do this. Problems arise when the OS prevents updates from being applied by non-admin users and you are deploying within a locked down corporate environment.
Java SE/Swing is a good platform for writing cross platform desktop applications. I work on an engineering simulation tool with a complex UI written in Swing. With Nimbus Look and Feel it looks and works the same across Windows, Linux and OS X without changes. Some people (devs) complain that is doesn't look native - none of my users care though.
The few times I have ventured into web development I have been horrified by the amount of work required to get web apps to look and work the same across different browsers. JQuery and Bootstrap deal with a lot of the pain but web dev still feels very hacked-together compared to desktop development to me.
As for the stack, c# and winforms is a good bet, particularly if you need to target older versions of windows. If you need a bit more performance or cross platform support then c++ and qt would be better. You could go c++ and win32, but MS dropped the ball on creating a nice api.
Deployments are another area MS dropped the ball, click once is sort of ok if you are using visual studio, but either way chocolatey is better. You may want something better for release management, in which case look into octopus deploy. These suggestions apply to electron apps as well.
Basically, had windows XP come with a better programming APIs (more like qt/gtk) and a better deployment model then web apps would have never been a thing. OSS has made windows a viable desktop.
I see most of the companies I work with moving towards AWS or Azure with all the scaling support and APIs that really make web apps easier to work with.
Instead of dealing with dozens of IT rules as to what can be installed on the various corporate images (which now include Macs), it's easier to just point users at a URL and make sure whatever single sign on they've got is integrated.
Another point: desktop apps are just as complicated as web apps these days, especially when dealing with Mac, Unix, Windows compatibility along with mobile. It seems like nobody has really done a good job of replacing VB6, Delphi, etc, and I haven't touched (as a Java developer) Swing or JavaFX in years.
1) first, grab a real pen(cil) and paper (even if it's scrap), sit down somewhere comfortable, and take some time to write down what's bothering you. How it makes you feel, and why, and what you want to do about it, and everything that's been running through your mind about it. Until you have no more to say. This helps your mind feel like you have given the problem the attention it deserves.
2) write down 2-3 finite, specific tasks that are important for you to get done today, and that you know that on an ordinary day you can complete all of in just half a day. This is a point of focus for your workday. Even if you accomplish nothing else, completing these tasks should be considered a victory on a bad day.
3) take a walk or meditate for 15 minutes to clear your head and refocus. Don't beat yourself up if your mind wanders or even returns to what's bothering you, but if you can empty your head, do. The purpose of this time is to create a mental break between the thinking about this problem and thinking about work.
4) don't force yourself to start coding. Do force yourself to open up your text editor to the place you need to be to get the first of your 2-3 tasks done.
5) if, at this point, you're still unable to code, take a mental health day or two. Focus on taking care of yourself, because you'll be more productive tomorrow if you heal yourself today.
I am going to take a small break now to mindfully approach all the problems and think of what I can do to solve them today. If there's nothing I can do today, I can at least know that I did whatever I could for now and can move on from the thoughts temporarily.
Listening to music which you usually listen to while programming can put you back in the zone, if the problem is not too serious or not too distracting.
At my company, I switched over to our new stack (all ReactJS) at the end of last year and then had a whole bunch of personal/family drama hit me right after. It was so overwhelming I had to ask my supervisor to move me back to our old (Ruby) stack. I'm grateful he did. Not having to suddenly learn 10 new technologies at once gave me back the mental space I needed to deal with the other stuff.
I find myself more energized getting straight to work after a run.
Hope you work it out
The Algorithms and Data Structures course is one of the foundational courses of a CS degree. Even if you think you don't need to be able to implement the algorithms you learn in your work later on, it is important to have some idea of which algorithms exist for a given task.
Also, and perhaps even more importantly, understanding how these algorithms work really hones your problem solving skills. You learn how to abstract the information given to you as part of a problem into an appropriate data structure, and what kind of operations you can carry out with which data structures. You learn how to cope with several different layers of abstraction and develop an intuition for programming approaches that are fast and/or light on memory. Basically, the ADS course doesn't teach you how to be a programmer, but how to think like one.
As for studying for this course: there's nothing like doing it yourself. Chances are, you already have to do so anyway as part of your course work. Take the programming tasks seriously and really do try to do it yourself. (Get friends to help you by all means, but don't let them do the work for you.)
I would advise you not to slack either: based on your information and the ADS course at my uni, I'm guessing that you're still at the very beginning of your degree. It isn't going to get easier in terms of workload, and the algorithms you learn about later on in the course are a lot more complicated than those at the beginning. But if you've made the effort to understand the first bunch of algorithms, you'll be in good shape to understand the latter ones too. So yes, it is hard work, but you can do it :-)
1. Merge sort. Given two sorted sequences, they can be merged in linear time. Given an algorithm that does so, we can sort a list in O(n log n) time, as follows: split the list into two equal halves, merge sort each half, and then merge the result. (The base case is that sorting lists of length 1 is really easy.)
2. Insertion sort. Let's say you want to sort in increasing order. To make things concrete, let's say your given list is
[3, 1, 4, -1, 5, 9, 2, 6, -5, -3]
You start by walking through the list: 3, 1, ... WAIT. That's not right, 1 should come before 3. Let's drag it to the front of the list where it belongs. We now have:
[1, 3, 4, -1, 5, 9, 2, 6, -5, -3]
Now we again walk through the list: 1, 3, 4, -1 ... WAIT. What's -1 doing here, let's drag it to the front of the line:
[-1, 1, 3, 4, 5, 9, 2, 6, -5, -3]
Again: -1, 1, 3, 4, 5, 9, 2, ... WAIT. What's 2 doing here, we need to drag it forward, but not all the way to the front:
[-1, 1, 2, 3, 4, 5, 9, 6, -5, -3]
And so on. Is this what you meant by essence?
However if you still want to study them, there are plenty of resources online, like this youtube channel.
Taking 2 days to understand insertion sort is fine but you just need to practice learning more often and use the things you learn more often. Even if it's on toy projects.
It's silly to burn up that little bit of $ that you will receive on an outside chance like this.
Like jacquesm says, finding a new job and running your startup on the side is the safer bet. If that's viable, then I'd suggest you find a new employer that has a contract friendly to side projects.
As an aside, there should really be a list of companies that are friendly in this regard. GitHub was recently in the news for allowing employees to work on personal projects using company resources, which is awesome.
Go meet your customers in the first week. Ask lots of whys. Do more structured IN PERSON interviews in the second week. Look at how it has been solved in the past and what competitors do. Draw up a rough solution (e.g. landing page) in week 4 and test it out in person as well as drive some traffic to it from online communities (reddit and FB groups do get you some traffic to have an idea about conversion rates).
GV has some good articles around cust dev interviews on their medium.
You probably have higher chances finding angel money for a well validated idea in the market than a product you built for 3 months full time without knowing exactly what to build.
You should know that getting even a small angel investment, for many, is quite tough -- and it takes time. If I were you, I would consider instead just focusing that time on getting the product far enough along that people either can use it or get excited about it. Get to know startups in your area and make yourself known in that community. Just chasing investment without an MVP that has clear growth is usually a waste of time.
I don't know what format they serialize to; native object, XML, json...
But here is an example tool that can do migrations via XML serialized data for Java. As an intermediary step in the XML serialization they create a document of XML that simply contains a version attribute alongside the schema. A similar approach would work for other serialization formats (json, native, etc).
I'll bet they use something like Across internally:https://grisha.org/blog/2013/06/06/avro/
You compile it down to a single executable and then you do whatever you want with it.
I can't provide the autodeploy part though...
Alternatively you could try IBM OpenWhisk or Azure Functions, both of which are open source.
I would argue that this website covers both hardware/software in the natural proportion of hardware:software developers. If I had to guess then that would be 1:30.
Why is it 1:30? Because hardware developers have way more at stake than their software counterparts. One injection mold costs $8000, one PCB assembly run costs $12000, one PCB costs $900 and one week, one wafer costs $400,000 and six months. So there are just a lot less hardware developers than there are firmware/software ones.
Look at the distribution of posts on the HN two front pages 9 Software optimization (compilers, language features)9 Business/ IP6 Other5 Cutting Edge software like AI4 Information Security /Privacy 4 Show HN or similar (a product or dev tool)4 Historical Computers3 Non-Technology news3 Design2 Other Technology news1 Ask HN
Only 17/50 of those are actually pure software posts. (Software optimization, Cutting Edge software like AIDesign) The rest would likely be on a hardware website too.
Software changes much faster than hardware. Software can be acted on by individuals and posted on HN by individuals, not just companies/universities with $1m research labs. But when new hardware comes out that is intellectually interesting, like IBMs quantum computer, or an ESP8266, or Google's Tensor Computer Units, you'll bet you can find it on HN.
Articles include the problems of being obsolete at age 30, and a comment that Huawei is "cleaning up" the staff over 34. There's an online course on how to become an embedded systems developer by writing your own RTOS, and what questions Huawei asks in interviews. Somebody wants help with their square wave generator, which is producing a poor waveform. Somebody else wants to know how to drive a 12V brushless DC motor 300mA 2000 RPM. Nobody posted a useful answer, which is disappointing.
All in Mandarin, of course, but that's what Google Translate is for.
To start you off, I subscribe to the following:
Note that there subreddits related to a specific product where discussion focuses on that specific hardware. They tend to by hobbyist, but that's as close as you can get.
Because all the clueless people have dropped Usenet, it's mostly people who know what they're doing. comp.lang.* groups remain useful.
r/electronics is rather lame. Current top articles:
* Join fellow redditors in delivering happiness to one another around the globe! (AD)
* Interesting7805 at the heart of a Super Famicom (SNES).
* Organization Tip: Old Cassette Cases w/ Labels to Keep Parts Sorted!
* Modded Gopro clone sees through Blu-Ray player
* NJ based Components Distributor with NO minimum order quantity (AD)
Not too helpful.
Electronics people usually get Electronic Design magazine. Mechanical engineering people get Machine Design. (Those are free. New Equipment Digest arrives whether you asked for it or not.)
https://hackaday.com/ is good for hardware hacking, though it leans heavily towards Arduino and Raspberry Pi platforms. Most articles that aren't about one of those platforms tend to be about retro-computing, 3D printing, repurposing hardware, and similar topics.
https://phoronix.com is great for Linux-specific hardware reviews, and is worth a subscription; Michael Larabel is one of the hardest working people on the Linux news scene.
A strange difference is that for me, software news is much more actionable than hardware. Somebody has to turn a new hardware development into something like a breakout board, often with support software such as drivers, before I can really do anything with it. The stuff that I can support myself, such as peripheral IC's and analog components, doesn't evolve as quickly.
I suppose one could say that software also requires support software (such as Python wrappers) before I can use it, but that seems to happen more quickly.
I think if we could get a couple engineers from each HW manufacturer from different departments to help put together articles, then I think one as entertaining as HN could be built. People just don't hash out HW specs like they used to - and we need a resurgence via an injection of top-skilled onslaught articles written by the actual innovations of today. I'm happy to help coerce them to participate in such an adventure - if some of you will help me :)
I certainly did take advantage of an Apple discount though, at the time, it was way better than it is today. It was 2009 when I bought a Macbook. They gave me a printer, an iPod Touch, and $100 in Apple credit which I applied towards the computer. I think I also opened a credit account with them which took off 10% more from the total price.
Sold the printer for $100, sold the iPod for $250.
So a $1500 laptop ended up costing me $1200ish with tax.
I think they have since changed all that and give you a $100 discount.
It isn't a lot but free is free.
edit: and Adobe stuff like Photoshop and Illustrator
If I'm recruiting it's generally for a specific full stack developer. i.e. Ruby on Rails. Personally I would see your background as an advantage but I'll still need to be able to see that you can hit the ground running.
So ideally you'll need a project on your CV targeted at the recruiters development stack. Perhaps an open source project or a side project, or freelance on upwork.
You're age is an advantage, don't forget that. We grow wiser every year.
If you enjoy developing pick a framework (Rails or Laravel) and start building apps. Learn all you can. Work toward obtaining a remote developer position or working on contract projects to learn more/get a better taste of what the work is like. If you enjoy it and are successful work toward transitioning to it full time.
Another option is to create your own app/business and be your own boss if you're interested in that. Then you don't have to worry about being hired or ageism.
Inspiration: @DHH Startup School Talkhttps://www.youtube.com/watch?v=0CDXJ6bMkMY
Good luck, don't give up on your dream.
Interviewing varies widely among companies. Some places only want to hire people that are experts in some tech they are using (say a js package), others want to hire people that are generalists, or have worked on mostly frontend - ui, or backend (not ui). Some places want people who can learn anything. There's no uniform thing.
Most companies in the US would not consider you for a senior coder, unless you were very very advanced in some aspect of cs. Since you don't have much experience, you could look for an introdutory role. I don't know about signapore, but in the us because of the huge demand its generally easy to find a starting programming job. You could also look for a job that takes advantage of your dev ops/admin background while have some easy programming required, but you'd want to make sure it was really a job that had programming.
Good luck! I'm 50+ and have many years of experience and have no shortage of jobs. Just program, try for an hour a day if you are still working in your admin job, and in a few months you'll be much more fluent.
1. Your age is NOT an issue
2. Many professional developers do not have Mastery in any specific language. That may be sad, but it is a fact.
3. The biggest difference between what you've done to date and being full time is finishing. By that I mean having the stamina, interest or sheer bloody-mindedness to finish medium to large software projects. Starting is fun, scripting is fun, algorithms are fun...slogging through hundreds of modules, building interface after interface, implementing api after api, creating tests for everything can become very much like ... hard work ...
I think it'd be better to gain some experience in your home country first, but I understand it might not be possible.
I think your best bet would be to look for a DevOps position which would provide you with more opportunities for coding while valuing your sysadmin skillset.
You really never know where you are going to end up and anything is possible, no matter what age you are. It is always worth it and will always be worth it. Since I started, I have built two semi-popular websites at http://www.confessionsoftheprofessions.com and https://mypost.io/ and after those, began developing real web apps that I charge for. I just started my own business that specializes in apps for memory and communication. We have a few apps in beta testing, about 4 of them ready to go out with 4 more side projects in design and development stages.
Most companies want to see your experience. Just make sure you have a portfolio and a little documentation regarding work you have done. Have references available upon request and get a LinkedIn and have them write recommendations for you and return the favor. I remember I used to be willing to give all these PEOPLE references, but after they see your work and know it is yours, they usually need not see any more than that.
It can be scary, moving to another country. But believe in yourself, know that this is another path in life and an adventure you are going to take, and make the best of your situation. You have a lot of knowledge and based on that knowledge, it seems like you are always willing to learn more and go beyond. There are tons of position to be filled that go unfulfilled, even if it may seem the market is saturated with developers. You are in demand as long as you make yourself in demand. If you get tired working for the boss, work for yourself. In this day and age, more than ever, WE have the power to do that.
Regret doing it. That is a much better regret than the regret for not doing it.
That being said, I see some similarity in your position to the one I was in a few years back. I had just finished a degree in computer engineering and I wanted to start a career as a software developer. I had some background developing basic sites with PHP/HTML/CSS/jQuery but I found that employers were looking for more. I ended up studying a few modern frameworks for a few months and found a job much more easily after that. I'm sure that will be the case for you. Just research the job market and find out what skills are demand and what skills you are lacking, it is probably a lot less work to catch up than you might think. Good luck!
In terms of age, most newer companies (mine included - London) don't associate title to time served or your actual age, but your abilities. We've hired a junior who was then 29 and made a switch from being an accountant. He had the gist of how things worked and his personal projects looked promising. He completed the coding exercise in a language he was not familiar which demonstrated well his ability to problem solve; guidance was needed but he was were we'd expect a junior with no comp sci background to be. I myself am the youngest in our team by quite a margin (mid-20s) and am the Technical Lead - age isn't a worry. Just be prepared to be outdone/tutored by people young enough to be your children; at previous companies I've met people that have fought me on every aspect bc of that fact even though i was brought in to advise and fix their architecture issues.
You might have also missed an important part: Do you need to put food over the table?
There is always a market for 40+y.o junior software developers. It probably is not as rewarding as you might need it to be.
Relevant: If you are a thick skinned guy with lots of deduction and perseverance; there is a market for SaaS/Products which require little marketing and sales. Can earn you a decent income. No location dependance and no boss (though customers can be as much annoying)
I'm all for age being of no importance as I'm about to hit 30 in a few years. But it's worth mentioning (maybe).
Because of that, I firmly believe many people can work as a software developer and contribute meaningfully to a company's bottom line.
State your ambition and let the results of your work do the rest.
Figure out a back-end language and web framework you like - I'd recommend Python+Django or Ruby+Rails - and build a web app in it - if you spend a few months and put in a few hundred commits and build a large enough application, you're good to participate in a team and start adding good value. That by very definition should land you a full-time programming position.
The mechanics of learning to code simply takes determination and hard work. In my experience, the vocabulary is the first major hurdle.
By the time you're 50 you'll have a decade of experience
Then, you say you are/were an administrator. I say that this is a very, veryconvenient position to do programming. (1) You have tasks that warrant writinga program; (2) you will be part of your own audience, so you know when yourprogram is good enough and what the heck should it actually do; (3) you'renominally not a programmer, so nobody will expect you to adjust your toolboxto the company's vision. Language choice will be your decision, so if you deemErlang to be much better for something, you write Erlang, not C# or Java justbecause the rest of the company uses that.
I am such a sysadmin myself (was? my title now is "programmer/Linux systemengineer"), so I speak from experience. Most of my day is spent on writingcode for managing systems, not on administration itself, though I do some ofthat, too. And there's a lot of tools that would be helluva useful forsysadmins (or for me, at least), but they are not written yet and I don'texpect regular programmers to write them.
Proprietary software gives you zero security against its owner/developer.
FLOSS is the only way we can have real security.
If your first sale happens within the next few months, I would keep a 50/50 split just because they will put in a lot of effort in the future. Alternatively, you could start your vesting now and and the other founder could start vesting as soon as he joins full-time. Not sure if this is legally possible.
Another option would be to count the difference in time you spent on it and translate that into equity and ask your co-founder to give you that (like 45% vs 55% equity split). I wouldn't go more than 5%, since I prefer to keep things even. Again, you've got a long road ahead of you, so make sure both of you feel comfortable with the split and with future obligations as well.
If your employer decides, now or in the future, to take a substantial interest in what you are doing it can cause you no end of headaches. Also please note that it only takes one or two individuals within an organization to stir up trouble. The founder/ceo may not be that interested but if one party along the line decides it is best for that work to cease it will be a HUGE pita.
I don't see any issue with it. But of course a lot depends on your sideproject and the environment in which you work
There isn't really any specific moment when a company goes from un-founded to founded. Often this happens over a period of several years.
So while colloquially we say that a founder was there when the company was founded, in practice that's really a proxy for someone having done a substantial amount of work that was compensated in equity before the company was derisked. So e.g. if you own 40% of the company by the time the company raises a seed round then you're clearly a founder, regardless of whether or not your signature is on the articles of incorporation.
2. Exercise and eat right.
3. Set goals. People with goals vastly outperform those without.
4. Track your progress. This will involve determining the right metrics. "What gets measured gets done."
5. Look for more efficient ways to do things.
6. Read the book "The 7 habits of highly effective people."
7. Learn some time management techniques.
8. Read up on how to plan things backwards: Start with where you want to be and figure out the step before that and the step before that, etc. Otherwise, you may be "climbing a ladder leaned against the wrong wall."
It also has a companion book.(Book came first anyway). It's well researched and has many tricks on boosting productivity e.g Pomodoro technique.
P.S. See also Max's earlier blog post Measuring Developer Productivity: http://www.codesimplicity.com/post/measuring-developer-produ...
The biggest insight is that it's far more important to work on big, important problems.
If your goal is content, then you should worry about being consistent with content.
The platform will only matter later in the future.
I'd go with WordPress.com and that's it. From 0 to 60 in a second.
Most people will spend time playing with platforms and tech and forget the most important part which is writing.
I'm a big golang user so I recommend Hugo for the site generator.
If you're interested in systems programming and want to try something new, I can recommend learning Nim: https://nim-lang.org/learn.html
If you're into PL implementation, you can't go wrong with: http://buildyourownlisp.com/ or http://www.craftinginterpreters.com/ or http://aosabook.org/en/500L/a-python-interpreter-written-in-...
If you want to try your hand at front-end web development, VueJs is pretty great: https://vuejs.org/
"How Learning Works" (I review it here: https://codewithoutrules.com/2016/03/19/how-learning-works/)
Gar Klein's books, in particular "The Power of Intuition" https://www.amazon.com/Power-Intuition-Feelings-Better-Decis...
With that in mind, focusing on all the soft skills, topics like public Speaking, interacting with coworkers and clients, leadership, and time estimating. https://www.mindtools.com has a lot of info on everything but time estimates, and I can't honestly give you any credible sources on improving that.
That and design patterns.
I also think it can be learned in a weekend. At least up to a certain degree.
Here are some resources http://stackoverflow.com/a/2759417
Just tutorials: https://hn.algolia.com/?query=tutorial&sort=byPopularity&pre...
Online courses databases: Edx, Coursera, Udemy, Skillshare and Youtube.
These work well for weekend learning, because they tend to stand on their own.
EDIT: If you're looking for something along the lines of technologies or framework or something else, refer other comments.
I don't belong to them now but I really enjoyed them in the past
Your question is way too broad. If you mean tech topics, it's perhaps time to find another job; if any topics at all, just follow your interests.
1. Check if people are doing it already, if yes then how well and how you can differentiate/ carve out a niche.2. Cold email startups, small organisations.3. Meet college authorities4. Call anyone and everyone you think can be a prospective beneficiary.
1) Put some effort into a side project, in my case a SaltStack tutorial that I'd wanted to do for a while.
2) Go to a conference (PyCaribbean) and meet people.
3) Reach out to recruiters in the cities I was targeting.
4) Reach out to recruiters who had emailed me in the past 2 years and to ask if they had any contacts in Europe.
#2 and #3 seem to have been the most valuable. If you want to move to Ireland, Michael Diver is communicative, ethical, and responsive.
Also, some logistical tips:
- Use https://calendly.com/ to schedule phone interviews across timezones without off-by-one errors or a lot of back-and-forth.
- When interviewing over skype, have a phone line or page on https://appear.in/ room at the ready.
- If you decide to stay in a hostel rather than hotel or airbnb, it is worth asking what type of mattress they have. http://rainymood.com/ and an external battery charger are a necessity if you want to do this.
I'd be happy to help more if you give me a bit more detail on what type of company you're interested in working for. If you're open to living in London, I really like the place I'm working and would be happy to introduce you. Our interview process looks a bit like https://gocardless.com/blog/redesigning-the-devops-interview... My email is in my profile, so feel free to get in touch.
1) You don't need a degree from Europe, but you do need a degree. There are multiple types of work Visas, but typically you need a degree from a program that takes at least three years.
2) Currently software developers are officially "scarce" in Austria, so they made it easier to get a work permit. You will need to have all your documents (eg. your diploma) translated to German by an official translator, but apart from that it should be easy.
4) Your work permit will be tied to a specific company in the first year. After one year, you can apply for an "unlimited" work permit.
5) The biggest hurdle is going to be finding a company that wants to hire you. If you don't care where you work, in Europe, I suggest to also look at smaller companies, and look at companies that are outside the big cities. For example, here in Linz (small city in Austria), there are currently dozens if not hundreds of open positions for software developers. Every tech company I know here in Linz is trying to hire people, but we just don't have enough developers that live here, and nobody wants to move here.
6) For jobs in Austria, have a look at http://karriere.at
7) Applying from India shouldn't be an issue, but make sure that you have a proper setup for Skype. Many Austrians will have a hard time understanding English with Indian accent, and echos / noise / etc won't help.
Might be worth checking with a selection of these companies to see if they have something for you. Good luck!
So to answer, "In other words, can I get a work visa anywhere in Europe without having an offer in hand?" Theoretically yes, practically - highly unlikely.
Maybe its better in other EU countries but I wouldn't know.
To #2: just flying in and hoping you'll land something even with a very solid portfolio is a bad idea, since its highly unlikely any company is going to go through the hoops so you can work for them and time will be against you since the process takes a while.
I'd say if you can suck it up you should go the student route since its the path of least resistance and all you need is to be enrolled, you don't have to finish. Then get an internship since thats easy enough and make a good impression, then that company will want to do the legwork to hire you. This whole process might take about 2 years but at the end of the day you'll be set.
1. You'll need a bachelor's degree in your field, but you won't need a masters. That said, getting a masters may give you a leg up. Postgrad education in Germany is free even for international students, the standar is high, and it gives you the opportunity to get your German up to an acceptable level. Additionally, you will have 12 months following graduation to find a full-time job. If you're looking to work for a bigger Germany company like Siemens, BMW etc., I'd seriously consider the masters.
2. Research job openings before you go. Tailor your CV. Two places to look are AngelList, and also http://berlinstartupjobs.com/ Applying online has always worked for me, but you may also want to go to some meetups while you're there. Berlin Tech Meetup https://www.meetup.com/b-tech/ is one of the largest.
3. Develop your portfolio. I had plenty of Indian colleagues at several of the companies I worked at.
Try RemoteOK as well.
A history of breaking immigration rules won't help your eventual visa application.
2. No, if you start living somewhere illegally you'll be deported. The first step is to visit Embassies.
- The display technology is very nice. I was very impressed by how good the object permanence was: when you put an object somewhere, there is no lag or jitter when you move your head and it stays anchored to the spot. The holograms are reasonably bright and opaque.
- Also, when you pin an object somewhere, it stays there even when you walk around the room. It even stays if you pin it in like the middle of the room where there are no obvious reference points or anchors to use.
- The field of view is neither great nor terrible. It's usable but more would of course be better.
- The major downside is the interaction: "air-clicking" is not great and the gestures to trigger various actions aren't very reliable. It really needs hand controllers like the Vive has.
- The unit itself is comfortable, much more so than the Vive. There was an annoying lens-flare-like glare below the field of view. Not sure if that was my unit not set up correctly or a problem common to all of them.
Overall I'm quite impressed, although I probably wouldn't buy one even if I had $3,000 to burn. V2 will probably be the one to get, if they expand the FOV.
Clicking/selecting objects with gaze is often an antipattern. Much better to use alternate input.
Analytics is kind of a mess.
Everybody recommends unity but performance will suffer. I wrote my own framework instead. Most of the open-source code is bad, if you have figured out how to make apps it's a competitive advantage. MS wrote literally thousands of new APIs for UWP and mixed reality so many many features are barely documented with no real world examples.
It's a totally new paradigm in UX. Most designers fall back to poor decisions like using small buttons or overly detailed models.
Feel free to ask anything specific I'll do my best to answer.
Things I like:
-Let's you have an infinite number of virtual monitors with applications such as word, outlook, browsers etc.-Developing for it is really easy with tools like Unity-Battery life is not too shabby, rarely have to take it off to charge while I'm doing something-Great demo piece
Things to work on:
-Field of view isn't terrible, but could still use improvement-Price point precludes a lot of consumer applications-Feels like you're always wearing sunglasses indoors. This takes away from the augmented reality bit as it can be pretty hard to interact with the real world sometimes (e.g. hard to read my real monitor when I have it on)-Gets kind of uncomfortable on your nose after a while, though that may depend on your face morphology-Interacting with voice commands in an office setting can be awkward/amusing-My colleagues think I'm never working
From an application developer's perspective, the only difference between HoloLens coding and Mixed Reality coding is that when constructing 3D scenes your HoloLens app should have a transparent background so the person can see their room through the viewport because that's what they're buying the expensive headset for and in Mixed Reality you should have an opaque background because it's VR not AR.
The really big thing though is that $299 is roughly what you'd otherwise pay for a pair of big monitors. Full on virtual desktop support with floating windows for these devices is being shipped to every Windows 10 machine starting this week via Windows Update with the intent being you don't need old-school monitors just work in the headset, or with your monitors, or however you want.
Windows now has (or will shortly depending on your Windows Update timing) a built-in developer mode simulator for application testing of Mixed Reality code without a physical headset. The simulator is still a little buggy and incompletely undocumented (remember to shut it off when you're not using it) but it's pretty incredible and more than enough to start building and testing applications.
Pros: Very intuitive controls after maybe 5 minutes of using it.Building in voice commands is easy in Unity, can't speak for other platforms. AR has more practical applications (but VR is more mature).Microsoft listens, and will try and add features that people ask for. The forums were very helpful for someone a year out of programming to come back and learn.Spatial mapping was really cool. I didn't think something could be that accurate in the space of a few minutes.
Cons:Controls can be a steep learning curve for older individuals (based on my experience).Development setup was hard when I started, but has gotten much better from what I hear.Trying to show what you're doing in the hololens live was very hard. Had to build that in, but I think now they've cleaned that up as well through Unity.I think the previous con points out that this is a very new platform, and things are going to change. Keep that in mind, and don't get too mad if things break.It's not super powerful, so you'll have to move to directx if you want to pull every inch of performance out of it. Shaders are your friend (I'm a newbie when it comes to game dev, so this was a lot of learning for me).
I know that people mentioned that FoV is bad, or could be improved, but honestly I didn't have a problem with it. With AR, and how you can still see the world around you, it wasn't a hindrance for users that would demo. That being said, I wouldn't oppose an improvement!
It's surprisingly good at "drawing dark". It can't, really, so it just puts a neutral density filter in front of the real world to dim out the background. This, plus some trickery with drawing intensity, allows overlays on the real world. At least the indoor real world; the grey filter is fixed, and the display will be overwhelmed in sunlight.
The field of view is too small for an immersive illusion. The resolution is too low for the "infinite number of monitors" some people want. It's useful for putting an overlay on what you're working on, which suggests industrial and training applications.
It's not clear there's a mass market for this. Certainly not at the current price point. If it became cheap enough to sell to the Pokemon Go crowd, it might work for that.
A useful metric is, "Is it good enough for Hyperreality?" As yet, it's not. But it could get there.Watch that video. What hyperreality needs is 1) really good lock to the real world, 2) adequate but not extreme resolution, 3) wearability, 4) wide field of view, 5) useable under most real-world lighting conditions, and 6) affordablity. The Hololens has 1 under good conditions, has 2, arguably has 3, lacks 4, 5, and 6. Not there yet.
And I was able to try on on at a meetup.
Considering all the whole thing is self contained and is handling the rendering on the device is amazing. With some of the dev tools you can see it building models of everything and one in the room in real time.
I played the Conquer game which was fun to watch the characters hide behind chairs and stuff. And the maps sort of build them selfs to the room and worked even with lots of people in the meetup.
Getting the hand gestures take's a second but are pretty intuitive with "clicking" stuff sort of pinching your index and thumb together.
The field of view is actually only the glasses under the visor. The visor I believe is more to help with improve contrast and block a bit of light.
Currently I'm working on a large HoloLens project for the aircraft industry. But the amount of possibilities I can think of with a HoloLens (or similar device) is limitless.
The HoloLens has amazing tracking and latency. In a couple more years, when HoloLens and/or competitors release a device with a large field of view, HoloLens-like tracking/latency, and leap motion-like hand recognition, it's going to be very exciting.
-While the FOV is less than ideal it is not experience breaking
-The device is more comfortable than most headgear technology out today(there is also adjusters such as a nose piece and headband that make it more comfortable for a long duration)
-It is intuitive. This device can and will be easily picked up by many people. We found older people who could barely stand trying to operate a smartphone throw it on and almost instantly understand it. There is just something about this device that makes people feel like they can handle it without too much work. And the fact is that they can, it is very simple to use and the hand gestures may be the main reason for it.
-While the hand gestures may not be the most reliable it does come with a clicker that remedies this quite satisfactory. To give this Vive-esque controllers would completely ruin the experience and what Microsoft was trying to accomplish.
-The UI and operation are unobtrusive which means that while it doesn't have much productivity use right now, it will in the future.
If you would like to get a better idea of what the HoloLens does and can do we urge you to find our YouTube channel. We try and deliver our content in a non-technical way as to explain how an end user really see's it without all the tech jargon getting in the way.
To speculate, I'd say VR will find its killer app in gaming/entertainment (similar to TV), and AR will become the next great I/O interface between humans and computers (similar to phones/tablets).
Very narrow field of vision: I had to fish for objects turning on myself and looking up and down. Not good for AR.
No black, obviously. They can't block light from going through rendered objects. This in turn makes colors somewhat ghostly.
Very stable. Once I get an object I can walk around it and it stays there like a real one.
"Clicking" on an object is hard, but maybe it was hard with a mouse when I used it for the first time.
And Lego/Minecraft on the tabletop.... no thanks I don't want games set in my lounge room, that's an incredibly boring place to set a game in.
From a developer standpoint, it's terrible. Unity only just now supports UWP apps and only just, many many libraries just don't work. We are making a collaborative 3D app that needs access to the entire screen and a lot of system level resources. The only nice thing is that the anchor system is an operating system level abstraction.
TL;DR: After using one regularly for a few months, I'd say pas on this device, it's a barely usable AR platform with poor battery life and poor FOV, and it's absolutely unusable AR gaming platform.
After playing with it for a while though, I have to conclude it's not yet a consumer product and probably won't be for many years. Maybe it will find a Place in the enterprise.
Positive:Voice Commands,No Computer needed,Unity is great - development is easy
Negatives:Field of view is just weird,Not as intuitive as it could be,Cannot sell it - dev only
Getting it to recognize my air clicks is the bane of my existence.Object permanence works very well.
Before I used it, I thought people were hyperbolic when mentioning the narrow AR FOV. It really limits the experience.
Moving objects around is very annoying when it doesn't seem to recognize half my gestures. However when it does recognize my gestures it's fairly straight forward to move objects on each of the three axis.
Peers make fun of you for wearing something cumbersome.
I would say info isn't that sparse (as it used to be). Search the Holographic Academy, watch their youtube channel, and subscribe to the Windows MR blog/newsletter.
Have demos of stuff I built, feel free to DM if you want to see.
It's a fun proof of concept, but not much more.
Get a Vive now, wait 2 years before getting an AR device.
If I want to watch a movie in a public area for instance, I'd love a VR mode to tune out everything else.
The user experience--------------
HoloLens is mesmerizing. I'm not big into VR or anything, and will often make the arguement that VR hype will die out and is a fad. But there's something very different about what Microsoft is doing. The ability to incorporate reality as a first class citizen in your 3D applications (or vice versa) is groundbreaking. People often complain about the FOV when they first try it out, and I had the same complaint, but your brain is able to compensate once it gets used to it, and then you stop noticing it. That's something you don't get from a short trial of it at a tech demo. The user inputs are indeed very clumsy still. We'll need vast improvements in this area before HoloLens can feel immersive. But the amazing thing is that this first pass isn't that bad. It can track your hands and it's a computer that sits on your head. I mean, come on! I'm only 22 and even I think that's amazing.
The developer experience------------------------
One of the major short comings of HoloLens development is its dependency on Unity. C# isn't the problem. I love C# and use it daily now for web development. The problem is Unity uses .NET 2.0, and good luck finding C# libraries that are compatible. So for every new thing you want to do, you're going to have to find a "Unity compatible" C# library, which is very annoying.
Unity will work for what you need most of the time, but it turns out if you want to try something custom (like your own gestures) then you're out of luck, because the Unity APIs are limited in that way.
I suppose I'm mostly just not a fan of Unity's component model. Constantly switching between adjusting settings in the IDE and coding feels like a bad way of developing.
Okay, so maybe you want to try something a little lower level. Microsoft offers a C++ API as well, and for the most part this is what you want if you need to harness the limited power of the HoloLens. I haven't played around with all of the APIs, but I know of one in particular that left a bad taste in my mouth (this applies to Unity too) -- the spatial anchor API. For those of you who are unfamiliar, the spatial anchor API is the only way to acquire a durable and persistent reference to a real world location. This is done (I think) with sensor data (orientation, lighting, and images captured by the 4 on board spatial mapping cameras.) This is really an incredible feat of engineering, however it produces a binary which is around 15MB. Far too large to store in a database at scale. I'd like to see MS open up raw access to those sensors so middleware developers can try their hand at improving this aspect of HoloLens.
If C++ isn't your thing, there's a library called HoloJS. You guessed it, it's a JS runtime for HoloLens with access to native libs. I actually started my own variation on this (called HolographicJS) before Microsoft released theirs, but I'm happy they've taken over.
So what does this all mean for a device that seemly has its share of problems to overcome? Well, after trying it I'm fairly confident that MR as Microsoft calls it, is here to stay. The ability to mix reality with virtual reality, and augment that with a layer of environmental understanding is really incredible. I think we're just scratching the surface of the possiblities.
HoloLens is the first in a new field of devices that I believe will come to replace all forms of computers we currently use: phones, laptops, desktops, tablets, etc. Even things like IOT devices. Why spend time building your own interfaces when you can just augment the users'?
If v2 had better FOV and improved input tracking, I'd consider it a major success. But if it also included improved spatial mapping and a reliable GPS, that could bring us into a whole new world, quite literally.
The way I see it, the first company to solve outdoor use of an MR device, and solve what I'm calling the "universal spatial map" problem, will run the world of tomorrow.
Imagine every machine being capable of interfacing with you without the need for a screen or separate device. Imagine walking down the street, gesturing to a restaurant and placing an order before you even get inside.
Further down the line. What if we could transfer consciousness out of a dying car crash survivor into a computer. What if that person could then be virtually transferred back to the scene of the accident, to be greeted by those who are augmented.
Anyway, that's all crazy futurism; but the point is that reality starts with what is being done with HoloLens, and I think it's an incredible thing to be a part of.
To me, HoloLens feels like the Apple II.
I notice that messages notifications for private message sent to me not longer include the content of the message. Instead I get the following"You'll need to use Messenger to see and respond to *'s message. With Messenger, you can text and make voice and video calls for free."