I made https://www.myothernumber.com (online temporary sms/mms/voice numbers) about a 1.5 years ago, was making ramen money within 3 months.
Now tracking in the 5-figure/year range.
It's a very, very crowded market so primary cost is user acquisition, but then again that's exactly why I built it, to better learn (consumer facing UA) and have a platform to experiment with.
About to officially launch http://artistic.af (neural artistic transfer meets instagram + canvas printing). I expect this one to take a bit longer to scale, but it was just an excuse to learn DNNs.
After the first few months it was only making enough income to cover basic hosting costs and not much else, so I ended up getting a job (well, co-founded a different startup with good funding). In the next two years, I was just doing the bare minimum to keep it running, and it grew 80% each year. Start of year 3, other startup failed and I had spare time to invest in the site and it was making maybe 8000/month in revenues, and the decent yearly growth has continued so that now in year 5 I can comfortably live on the business, and have a few employees / contractors to help with support and development.
Costs are incredibly low, as I have ~15 low end box-type servers running as check servers interacting with Drupal via a private API, and one DigitalOcean droplet running prod, with a hot backup droplet. Everything was automated via Ansible early on, and I don't have to touch anything except for patching/updating from time to time.
I also have run Hosted Apache Solr for almost double the time, and it actually earns a decent secondary income. Up to about 25 DigitalOcean droplets now, also all managed via Ansible/Jenkins, and it has a few hundred clients (a couple who have been stable clients for over 5 years, and a few very large names that made me realize even a side project can be stable/good enough for 'big companies' to trust them).
I haven't advertised either except for mentions here and there and having them in some of my social media profiles, but I've learned so much from running bothand even turned some of that knowledge into a book that gives decent passive income on top!
Link and free coupons:
$100 for a nice microphone (not necessary) but didn't want to record a bunch and have it be garbage$100 for Screenflow (to do video editing).20 hours time (split across a couple of weekends
I've made $1405 on it so far. It is almost completely passive income.
If you know any of the topics in the Hot Topics list and can do desktop recording, maybe you should think about teaching others and making some side money while doing it. Best of all, the Udemy community is awesome. They are very supportive of each other.
I built a Slack bot called Standup Jack (https://standupjack.com). It's a ton of work upfront but if you launch early, keep an open dialog with your users, iterate on their feedback and keep your costs low, it's a nice way to earn some side income each month.
Udemy is a pretty easy way to start since they do the marketing for you (for a pretty big cut).
It has been profitable since January after quite some legwork, on the technical side as well as the sales and persuation side.
* Wakeup.io - Simple Phone Wake-up Calls @ https://wakeup.io and it is fully automated and runs itself with actually really good profits. It was built in 2-3 days.
* GetProve, Simple Phone Verification @ https://getprove.com and it is fully automated and runs itself with again, really good profits. It was built in a week or so.
* Teelaunch, Kickstarter/Indiegogo Fulfillment Service (exited/sold) http://teelaunch.com (the site is different now than it used to be here https://web.archive.org/web/20140110204830/https://teelaunch...). As you can see from Wayback Machine, the site was just a landing page when I had it... took me day to put it up!
* Standard Signature, Email Signature Automation for Gmail Business @ https://standardsignature.com/ (built in 48 hours)
* Glazed, a Rapid MVP boilerplate for NodeJS @ http://glazed.io (built in a week or so, but this was work/thoughts accumulated over like 5+ years of hacking - this landed me paying clients, so I still consider it a side project)
* Asynchrosend, a MailChimp competitor (site is down now, but I did have paying clients and successful startups like Notehall.com had used it), built in a week in college!
* I have a bunch, at least 20 more on my list TODO still, if you want to build one with me let me know! I really would love to find super talented people, or people that are motivated. It's really hard to find good people if you know what I mean. I am not working on these right now though as I'm solely focused on one big project.
I have a bunch more projects I've built, that are also profitable that I can share. Email me and I can share more!
Update #1 - I really wanted to mention the most important thing about this. I read a Max Klein blog post that flipped the switch on me before to get into this hack and ship fast mode; it was something like build small little projects, but build a dozen of them. Once you build and release one quickly, it's addictive. You soon start to release more and more, and you get so creative and confident. You can literally build ANYTHING you want in a matter of days if you truly focus and WANT to.
Update #2 - I added a few more side projects since this topic is fun!
I was spending way too much time on eBay, so I wrote something for myself that would scrape the web pages and use a kill list to filter out the junk. I wanted a better UI to add words to the kill list and realised I could make money via the eBay affiliate program.
So I took two months off between contracts and wrote the first version of AuctionSieve - http://auctionsieve.com
There was a D&D forum, the Acaeum where a bunch of people started using it and giving feedback.
It was making me money from day 1 but it probably took about a year to repay that 2 months of time investment.
It's now been 13 years(!) and it still makes me money - not enough to live off (the payout calculations from eBay have changed several times) but a nice chunk of change. And I only have to occasionally prod it. And add the occasional new feature.
I launched on HN and sold out (75 seats or so, $1500 each IIRC) that same day. I had designed the syllabus over the previous couple days, but there was no product -- because I honestly thought that only a few people would buy it, and I'd just have to refund them.
I built the class over the next few months and that went really well (not perfectly, but definitely well), but subsequent runs never got anywhere near the same success in terms of sales -- just couldn't get it in front of enough people.
I recently relaunched it at $150 in more of a self-driven form. It's profitable by all means, but it needs marketing behind it. I've been thinking a lot about selling it to someone that can give it the love it needs, but I'm still on the fence there.
I continued to work on the game on the side over the years, and I released the game on Steam in July 2015: http://store.steampowered.com/app/354200/.
It does not make near as much a normal software engineer's full time salary, but it is profitable.
If you want the full income report, here is May's: http://mattsencenbaugh.com/postcard-panda-may-2016-income-re...
I'm still in pre-release but early-access has been available for mailing list subscribers since January. Release should happen "soon".
Profit-wise: ~$500 a month (apart from the first month which was ~$5000). If I include my own time, I've roughly covered my costs.
It's taken about 3 years (!) to write the book in my spare time, usually an hour each morning. In a lot of ways it wasn't a great side project:
- Hard to make - Small market - Complex
(Previously I've written a programming book published via a traditional publisher and my day job is as a game developer.)
I am now working on big, highly functional, fully working on launch utilities for DevOps people. Hopefully this will result in building something people want.
It seems the startup world is made up primarily of people pumping out easy to build shit.
If the downloadable version takes off that would really help as well.
I don't know how many hours you work, but I have a wife, a kid, a full-time job that I drive 1.5 hours to each way + I'm a reservist. I still find time to learn new things. It would be faster if I didn't have a job, but its still doable.
If you're stressed about the fact that your career hasn't gone the way you imagined, you should remember that it isn't too late. I switched careers at 30, quite a few people do it much later than that. Just don't give up and eventually someone will give you a shot at your dream job.
I don't think your "dead-end" job is hopeless as you think. You didn't clarify what the "professional services" entail, but if it is related to IT (as is your troubleshooting skills), then you could look at jobs where your existing skills and experience is valuable and you will able to refresh your CS skills. Maybe a DevOps job which is more Ops than Dev initially.
Sometimes the route to the dream job requires a detour.
I wouldn't even consider leaving until you have something else in hand.
Just a .02 from a guy who works remotely and has different preferences at times.
It has been retracted, but the retraction applies only to the grander claims made based on the results. The experimental results have been replicated several times, and to my knowledge have not failed replication in meaningful ways. (One study, for instance, found "no effect" because the cohort scored ~100% on the assessment questions, which means any useful variance was above the test ceiling.)
You can find the paper here (http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20t...), a good-if-overzealous discussion here (https://blog.codinghorror.com/separating-programming-sheep-f...) and the pseudo-retraction here (http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hu...).
If you're designing a programming language or programming tools, another resource that I've found helpful is this collection of syntax choices across languages:
[software engineering research][psychology of programming][empirical research on computer language productivity][empirical research on programming methodology effectiveness]
Basically they ask a bunch of non programmers to describe how a computer should do discrete tasks in PacMan. They also cite a number of older but relevant papers on this topic.
I was a very hands-on CTO for years after a decade of coding, and broadly enjoyed it. But as the teams I managed grew it became increasingly unfulfilling. When you're CTO, you're often excluded from business decisions which have a bigger impact on your team than any tech innovation, and the input you do have can be hard to relate to the shared business context of the CEO/COO/CFO.
So I went and got an MBA (Harvard).
Now I know exactly how to frame (and improve!) my non-technical contributions, have much more context on what "success" means, and have the credibility to really be a part of the senior team.
Unfortunately, there's no real place in the world for a highly technical business leader. You have to leave code behind at a certain point and spend your time on people/financial/planning issues. The ultimate end of that road is CEO, and not everyone wants to go there.
Also, I'd really misdiagnosed my malaise. What I'd been missing was not strategic input, but the opportunity to build things. To weave together inspiration and ideas into innovation and growth. I love building things and challenging assumptions, it fulfills me.
Now I'm off to start a new venture as a solo entrepreneur. The only truly successful technical leader is the founder, and that feels right. My last day at my day job is June 30th. :)
Quit. Just leave. Go back to coding. It's obvious you don't enjoy management, there's no shame in admitting that. Rather than inflict your misery on the rest of the team, get back to your wheelhouse where you can be happy, your team can be happy, and ultimately your company (current or future) can be happy.
I have worked in a job where the CTO (my boss) was in your exact position (in fact, if it weren't for your style of writing - English was very obviously his third or fourth language - I would almost bet money that you were him, your stories are that eerily similar) and it was a miserable experience. $CTO was an otherwise brilliant coder who was on his first cto-gig outside of 'team leader'. Outside of work, he was a great guy - warm, personable, funny. At work, he resented not being able to code in many different ways, often with the team bearing the brunt of his misery. He'd often make decisions for others to implement, then second (or third) guess himself days or weeks later, insist we throw out all the work, and start again. He'd often be irritable, make rash decisions, have temper flare-ups, ask for feedback then get upset when he got it, etc. It was a bad scene for all involved, but the dude was a walking personification of the Peter Principle. He would have been infinitely happier remaining a coder, and his team (myself included) would have been infinitely happier with a CTO comfortable in a leadership position.
Well, that's just bonkers.
I used to be a coder. Now I'm in management and I've learned, the hard way, that management is it's own specialty ... and that the best managers don't see them self's as "above" their team, but the "team coordination & external communication" specialist of the team. The only reason for the extra pay is the expectation that a manager take the brunt of the "external" crap (aka. having responsibility for the team) so that the rest of the team don't have to and can keep working.Which means that just as you need knowledge and experience to be a good coder, you need knowledge and experience to be a good manager. I find the notion of going from "best in your field" back to being "the green guy" at the height of your career as utterly crazy.
But that's just me.
Take a mental step back, and look at the business as a large computer, everyone's crap as bugs, fires as serious bugs and dealing with other managers as a high level architectural/resource allocation problem.
Then get to hacking! Refactor the program (your role and tasks) until its running smoothly (i.e. you're happy) then start adding features. Learn to apply (not so shiny) new technologies (management methods, time management, people management). Set up a test suite to compare what you want to what you actually get. Red - Refactor - Green. (Seems like all your tests would be a solid red at the moment:)
Do top down and bottom up analysis - make specs for what you want as a CTO, and make specs for what you'd want (as a programmer) from an ideal CTO.
Set up your own performance benchmarking suite with the metrics that matter to you: Fun factor, coding opportunities, battle to relax ratio, etc...
Just make sure to stay ethical, DRY and most of all, keep it interesting and fun. No black hat hacking when dealing with people.
(Oh, and if you know parallel programming, start a new thread called $JOB_SEARCH to run concurrently while you do all this)
P.S. I've trained (successfully) quite a few new managers, specifically highly experienced technical staff that move into new positions of management. The most recent one I did was for a global telco hardware provider. I can send you some of my workbooks (for a 3 day course, covers the main basics about moving into management and being happy and great at it) if you want to hit me up - email is in my profile. I pinkie swear I won't out your real profile, or you can just set up a throwaway email if you're really worried.
You mentioned the idea of management being about cleaning up crap and dealing with people instead of writing code. A few thoughts on that. There is a lot of people and management work involved in making code pay off for an organization at scale. Code by itself doesn't offer any value. It has to be in production, it has to be used by the customers, it has to be something that adds value for the customers. And it has to be managed in a way that the code is delivered before the competition gets a chance to sink you. Also code doesn't write itself, teams of people do, and those teams need to be built and maintained and recruited and taught. Making all of those things happen involves people relationships and soft skills. Your job is to make those things happen smoothly, guide and grow the engineering teams, prevent the fires, and establish the relationships that make that all happen smoothly and scalably.
It's a different set of skills from writing code, but it can be learned if you apply yourself to it and recognize the value it'll provide to your organization if you do.
CTOs generally don't write code. But, in a typical startup designations don't matter so much. How different is your current role from the one you were offered during the negotiations?
> I thought perhaps being CTO in a startup would give me some of that same ownership, control and enjoyment but it just feels like another job.
Do you feel connected to the overall vision of the company? If you did, then you should look at the things you're unhappy with as bumps on a road worth traveling.
Since you do have the ownership (through your designation), you have power to change things that bother you. It's only when you start making visible impact, you will start truly belonging.
Finally, I would urge you to talk to other senior folks in the company openly about what's bothering you. Maybe you are missing another perspective that they will be happy to share with you.
I think the key when you achieve product market fit is filling the roles in your technical organization with stronger leaders than you, and stepping out of those management positions. Plus, you can learn from and partner with these people.
If you're a technical CTO, and want to code more than manage/build a team, then hire/promote a VP of Engineering with strong soft skills to grow/manage your team. If its the reverse, hire/promote a VP of Engineering who's technically stronger.
If you're constantly being pulled into engineering battles, hire/promote an architect you respect to negotiate.
If you're running engineering meetings (ipm's, retros, etc), hire/promote a SCRUM master or equivalent.
If you're battling sales, operations or marketing, hire a Director of Product Management with solid communication skills. That person will 'fight' your battles (and probably love it!).
If you're putting out fires in production, hire/promote a Director of QA. They'll work on designing systems to catch those bugs.
If your infrastructure goes down a lot, hire/promote a senior devops engineer.
On the engineering/coding front, I find it super helpful to rotate into teams and pair one-on-one with engineers. You get exposure to their day-to-day code battles/challenges/environments, the tech decisions at the lowest levels, the ability to code/manage daily and respect with your team. You can then prioritize stories/epics to fix problems that you see across your organization that plague a technical team like debt, environments, knowledge gaps, etc.
Don't step away, stay positive and solve for the organization you want to lead.
As a CTO, I code about 30% of the time, but I expect that to go down as our company grows. Much of the time I deal with people who were offended that so-and-so shot down their new design, or they think their career is being harmed because they can't rewrite the entire product in Clojure, or senior management is freaking out because of one minor bug that hits an important customer.
If you can see a path to where you want your company and team to be in a few years, then stay and try to move down that path. It is very rewarding to see tangible progress in your product and your team. If you want to be coding all day, find another job.
On the other hand, being that high should indeed get you ownership and control, if you don't have it question your relationship with the CEO/rest of the company. You should own and be responsible for all the technical stuff, that is the upside of eating all the crap you can eat.
On a related note, if you are a good coder, you can and should schedule some time to do pair programming with the team to stay on top of things and actually write some code. But only as long as you are more of a help than a hindrance.
Welcome to management! You're dealing with the crap so your people can do their job. If you get to code a few weeks a year then you're lucky.
If you really don't enjoy it, go find something else. There are a lot of highly technical jobs that should prove a real challenge.
...Suffice it to state: YOU ARE NOT ALONE with the remorse you feel with direction of your professional career! The only tiny bit of advice I can provide to you: find a healthy mix of non-work-related distractions in your life AND jump around to different companies. The fact that you have such great experience is something some relevant company will find useful; you simply need to tell them your goals, and hope things align.
If you love coding and solving problems, you may find yourself less fulfilled farther down that line.
We're also talking about titles that end up being somewhat arbitrary and non-transferrable once we take companies of different sizes into account. CTO of a 10 person startup might translate to Tech Lead in an enterprise software business. CTO at a startup might still get to write code (I know many that do), whereas CTO at a company with a couple hundred developers might not even see code.
If you aren't happy, find somewhere that you can do what you enjoy doing. If this is truly your first senior management position, it might be clear that senior management isn't for you - or this isn't the organization that you should be in a senior management position. You could certainly find Sr Mgt or CTO roles where coding is part of the everyday routine.
Check out this post about transitioning to hands-off position http://www.elidedbranches.com/2016/04/ask-cto-navigating-han...
I've now resolved to just go out on my own because it's too painful working for anyone else in this curious position of great responsibility but not enough power.
I've worked with a few people along the way who were senior enough and wise enough that they easily could have found themselves a management position if that's what they wanted. But they either had tried it and decided it wasn't for them, or they just knew they would be happier coding and maybe doing some mentoring of the junior staff.
tl;dr: Transitioning to management may be the 'normal' career path, but why do it if it makes you unhappy?
I'll offer advice but it comes from someone with no experience:
Take this opportunity and grow from it. So it's not the job you wanted or expected; you can still find a way to be successful. Really get to know the teams, figure out who has the emotional and intellectual capacity to deliver for you, and reward those folks. Good luck!
CTO is all about leadership. If this doesn't work for you then I suggest your "what next?" is a return to Lead Architect or Lead Developer roles at another company.
Thing is there are many forms to the CTO role and different people see that role in different eyes. To me the CTO is a technical leadership position. You are meant to decide the technical strategy of the business. Decisions from which servers to use, to what language to how things are done, architecture from the top down, etc. Someone mentioned about the VP of Eng. role which I can't agree more - That role is there to support you with the crap. That person needs to be more manager than tech. He is there to make sure your time is dedicated to the core of your position. Not everybody saw this roles as I did which is why I was happy to stand down than try to fight it. I was there from day 0 to acquisition about 7 years later.
Usually a failure of process, expectations management, or both.
You've mentioned feeling a lack of control. Is that lack of control over the fires being set in the first place or a lack of control over being able to appropriately handle the arsonists? Have you clearly identified the arsonists in your case?
Is the arsonist the CEO; by making insane external sales or Board promises?
Are the arsonists your customers; by making product/pricing/support demands that render the overall value proposition of your company moot; i.e. getting you to focus too many resources on basically charity work to "get their logo"?
Are the arsonists your team members; by having a strained relationship with best-practices, consistency, reliability, velocity, productivity, etc.?
What I am trying to say is assume your leadership and do what you want to be done. If the company likes it, then great. It is a win-win situation. If not, then next steps are clear.
Good managers take crap so others don't have to.
Ideally, we get good enough to prevent the crap from happening in the first place. But it is most certainly the job. It's entirely understandable if you find it's not for you.
Why does this happen? I have found it has a lot to do with the investors and management team. I've seen the definition of the CTO varies as far as "The CTO should be the technical evangelist, super SEO." all the way to, "The CTO is in charge of Product and delivery."
IMHO giving CTO titles to the "evangelist, super SEO" undermines the role, because that role does not warrant either "Chief" or "Officer" in their title.
As far as myself, i retain the CTO title because am the owner of the technology; in that i make sure that technology is all the things we are trying to achieve as a business; looking beyond the current implementation and plan out how we need to build the product over the coming years. This goes alway down to components required, system architecture, external interfaces and how we can do things better, faster, cheaper. I also write pieces of the code and help out in engineering task as needed. This keeps my competency in day to day ENG high. Involvement with ENG tasks and coding is what keeps my sanity.
If someone asked me if i liked my role as CTO i would say yes but there is all the things you listed (fight fires and battling with managers and tech team).
In 2007, I got my MBA in Finance, which is the worst time to get one at the beginning of great recession.
Anyways, I taught my self to code in 08-10 and somehow convinced people to pay me to code!
After being unemployed for so long in 2009-2010, I was happy to move down this coding career path cause the money was so easy.
But only in the last year or so I have come to realize (after all the money wore off), I have no desire to be CTO or a coder, I'm having a hard time being a coder, lol.
I'm a entrepreneur, that knows how to code, is my new catch phrase. I have a enough leadership and communication skills I'm just wasting those talents when I'm just a heads down coder.
You're coming to understand what executives do and how that's necessary in a company, at least until humans find better ways of working together. This isn't something you really see clearly when you're the CEO because you're above the fray. And this isn't something you see when you're an individual contributor if the executive of your group is doing his or her job well.
People are paid in part based on how poorly a job can be done. The CTO is a role where real catastrophes are possible. It's a job the rest of the business often doesn't understand well, managing a team the rest of the business understands even more poorly. It's easy for bad choices to do a lot of damage to a company over a long period.
If you're the rare individual who can bridge both worlds and do this job well, then it's likely your company and your team won't find anyone who can do this better. And if they have to look, it's quite possible they'll find someone who does it a lot worse, makes your team miserable, and drives the company into the ground.
The reason to do the job is to make the company successful and to make the lives of those on your team better. If you believe enough in the company's mission, the other executives, and your team, then you'll figure out the rest.
Humans can endure a lot of hardship if it fits within some context we find worthy. It's not an easy job. But if it's a worthy cause then carry on.
Several different jobs can be assigned the title CTO but they are all technical leadership positions, not direct execution. The company should be getting leverage from your position -- you should be enabling the growth of the company, by being th external technical face of the company, by helping direct technical development internally, by representing the technical / architectural issues in the management team, or by defining the technical direction based on the exec team's decisions on company direction. Different companies need different mixes of these. BTW it's often a way to retire a founder without losing their technical input, or to keep them from meddling :-).
In your case you were hired on, so they wanted you to use your technical expertise to help guide the company (or keep the tech from getting into trouble -- but even on the execution side, that's the VP of Engineering's job).
So if it turns out this isn't what you really like doing, there's no harm in that: you should find something you would enjoy more, and help the company find someone else to do the job they need doing.
There are various ways to cast the role too; many organizations also have a VPE (or VPD) and other mid-level leaders. These roles can allow some flex in what a CTO is responsible for, though ultimately the role is responsible for direction in technology.
I think it's wrong to generalize - a CTO experience can be good or bad depending on several factors. It is entirely possible that you could be VERY happy in a similar situation, but with a different company.
Usually CTOs can be divided into engineering types, and outward-facing types. The former is hands on, codes, handles the engineering team, or at least has a strong bond/influence with the VP of Engineering. The latter is more in touch with customers, does more public speaking activities, and tries to condense feedback and requests in a way that the VP of Engineering can translate it into the product.Right now I'm the outward-facing type. I am enjoying it, mostly because the two co-founders are great individuals and leaders.
Let me know if you have questions - I would be happy to try to answer.
I've been in a similar situation, and for me, the right solution was having the right people under me that I could trust to fight the fires.
You should be deciding how the fires are fought, but your team should fight them. At least some part of your day should be available for steering your team/organization/product.
(But code, not so much. :)
While success in an engineering role can generally be described as "write good code" (with all the nuances therein), technical managers are measured on totally different things, and it isn't obvious how to improve most of them.
When I transitioned and realigned myself to these things, my outlook changed, and I started really enjoying leadership roles:
* Embrace the idea of being hands off technically. I have never seen a hands on technical manager that worked out well - politics will always come into play. Instead, encourage friendly inter-team debate, which you can coach and steer into a healthy dynamic to make the right decisions. Feel satisfaction that the team you build creates better engineering than you could alone.
* Focus on helping your team lead fulfilling careers and lives. See in them what they could become in 10 years and help them achieve it, even if it sometimes conflics with your short term interests.
* Build amazing products - The leader is way more instrumental in this than often credited.
* Create a great team environment that people want to be a part of.
* Get a seat at the business table - you should absolutely be a big part of the product roadmap. Done right, eventually you should have sales/customer teams coming to you for advice and input like 'Customer X wants Y, what do you think?'
* Create great communication flow - make sure everyone else knows how important your team is, and help your team see how what they do contributes, and how the market/product is changing and why.
On your comment about fighting fires and other managers - you can change this. These things make any job unpleasant. I strongly recommend reading The Phoenix Project to get some ideas from an IT perspective - it can easily be read in a weekend and addresses exactly these common problems.
I've managed websites for years, overseeing design and development teams, setting product roadmaps, negotiating contracts, even testing and debugging websites and server configuration. I understand the stack of technologies that make up a website, although I have not written web applications myself. The little bit of code I've written is on the margins: shell scripts, one-off JS widgets, etc.
I'm not bad at managing people, and I enjoy it. I'm not bad at managing peer and executive relationships, and I enjoy it. These are the sorts of things that a lot of developers seem to really dislike about elevating into CTO.
So: is it possible to land a CTO role without being a experienced and expert code-writer? Or am I thinking of the wrong thing?
There are some people who enjoy it. But I found it to be exactly as unfulfilling you described it, for much of the same reasons (spent too much time fighting management fires and not enough time solving technical problems), and it ultimately drove me back to being a software developer. Thank goodness my skills hadn't atrophied completely, but I'm definitely behind my cohort in terms of expertise, and I spend too many cycles regretting the lost time I could have spent growing my skills.
Find a good professional coach that can help you with finding this out. Pay money for it. You probably can spend several thousands $$$ on this. Not that it needs to be that expensive, but $1000-$2000 is easily spent.
If you quit this good paying job, while it may actually have the opportunity to bring you to your dream job, it's worth staying there long enough to get your things together.
http://simainternational.com/coaching/strategic-life-career/This is a link to SIMA, about motivational assessment. There are more methods. This is just a starter, but it may be right for you. Be sure to find an experienced coach.
Welcome to any senior/management/executive position ever.
I am dealing with the same problem, though I am not sure what makes me happy exactly. I think sometimes we get into this carrier path thing and just move forward through inertia. Things are good on paper, but in reality you feel like crap.
I don't know, I am slowly trying to move away from my current job. I am planning to use savings to buy websites, the idea kind of excites me, which is a great feeling to have.
I LOVED the first year. I was solving difficult problems, working productively, coding like crazy, learning a lot about business and startups. But it was just me and a contractor or two.
In the second year we were growing and I started to recruit. I didn't really like finding people, but I loved creating a great culture and productive environment, so it wasn't bad. I found some great people to hire and continued to be the lead dev. I started to experiment with process and getting teams to run themselves.
By year three we had 12 devs, and multiple teams. I was spending a lot of time cleaning up after unwise decisions and trying to implement process to keep us productive. Our apps and team got big. I loved being in flow and coding so much, I would drop the ball on management tasks to finish features I was shipping. I was involved in too many things: product decisions, partner deals, traveling, and our customer development research (we were floundering and making the wrong product at this point).
I hated it. Every time I procrastinated something I got more stressed and depressed. I tried changing my role to lead dev, but it was a mess and I left.
After wandering around and experimenting with different things for years, I think I've figured some things out. I'm contracting with multiple long-term clients. The skills and network I earned doing my startup have been great for finding work. I only take projects where I can have a high level of ownership and creativity (no team to deal with). I have been able to work with fun technology across multiple disciplines (in the last year: React, Haskell, Elm, iOS, Swift, Clojure, among others).
I do mess around with my own ideas sometimes, but I realized that what I really love is to create products, and I don't like management, or selling things I've created. So I'm most effective creating products with/for other people who are taking the business risk.
Not sure if there's anything in there you can use, but good luck! Figure out what you love to do, keep experimenting. I hated being a CTO too. There's no shame in figuring out it's not right for you, but it IS hard to allow yourself to go down in status. For me it was this big ego thing holding me back. Don't make that mistake :)
Start cold-emailing CTOs in the same portfolio as your company. They'll be happy to help.
You mentioned you have done some small management as senior/lead. Then think back, which part do you enjoy when you were there.
Your leadership should help people avoid that fire fighting.
> I haven't even written a line of code in months.
That's a good sign for a CTO.
Not sure how old you are but a CTO role might make more sense later in life.
I try to pursue it when it seems like it appears in companies I'm around but it feels mostly like crapshoot.
My other best guess is start my own company, which I think about all the time.
This sort of thing happens surprisingly often-- the typical solution is to approach the CEO/board and seek a transition: quietly open a search for a new CTO and you find something that matches your passion. It's better for everyone: startups are no place for people without deep passion.
hope this helps!
The CTO's job is about half technology and half business when it's a small startup. As the startup grows, you can't possibly make every technology decision, and so your job is more about getting the right people in place who can make the best technology decisions on your behalf as long as you keep them appraised of what the business needs are driving each of their decisions. And because getting those people in place and managing those people is almost all on the business side, your role becomes more about active business management while maintaining an in-depth awareness of the technology so that you can step in and correct course as necessary.
These are all just generalizations of course, as every startup is different. I imagine if you're the CTO of a startup that caters to software developers and code, you probably get to continue devoting some portion of your time to coding. Even in other startups, I've seen a lot of CTO's (myself included) get to actually do some code occasionally, but it's more like once every 1 to 3 months, which sounds about in line with what you're doing.
I think the CTO role you desire does exist, but it's in a specific, somewhat narrow stage for a startup. It sounds like you desire to be a co-founding CTO of a very early-stage (possibly idea-stage) startup. I think your desired traits for the responsibilities of a CTO can also continue to exist years into a startup's operations if the startup remains bootstrapped and self-funded.
From my experience (both with bootstrapped and venture funded startups), when a startup takes venture funding and forms a board, the CTO role becomes more about managing expectations, facilitating understanding of the technology to the depth needed to those who need to understand it to make the proper business decisions, and more importantly, contributing to and making the business decisions that require the knowledge of the technology that only you bring to the leadership and management team. The smae change in responsibilities happens to bootstrapped startups that become big enough, but the change is more organic and occurs over a longer period of time (which actually makes sense when you consider that venture funding is intended to make non-organic growth occur over a faster timeframe).
More cynically, I guess this management of expectations and facilitation of communication could be described as "dealing with everyone's crap," but really, it's probably what the startup needs. If you truly think it's not what the startup needs, then speak up! You are the CTO after all, and that's now part of your job to make sure the company is making progress. But recognize that the business side of a startup is as important (often more important depending on what the startup does, how it's funded, what it's milestones are, etc.) as the technology side, so make sure you understand the importance and motivations of what everyone else is trying to accomplish in the company before dismissing their actions wholesale.
If I was a CEO or founder, I would of course tolerate this kind of thing.
The story is about KILLING ANTS.
(Note: I lived in mostly peaceful coexistence with "my" ants - they had their roads through my living room and I ignored them, unless they started to crawl around my food. So no need to get upset, no excessive ant-killing took place in the development of this example.)
You kill a few ants in your kitchen. You can do that with your thumb or any object. However you do, it is a physical interaction between you and the ant(s). To kill more you repeat the same physical action. Killing one ant: one thumb press. Killing one hundred: one hundred thumb presses.
So the critical skill and the concrete action you will be doing throughout your ant-killing career is the "thumb press". Or if you use poison your skill is thumb pressing the spray can to distribute the poison.
Let's jump a few layers.
You become so good you attract the attention of the California governor. He puts you in charge of ant-killing in California.
Will you do the same thing you did before, only more of it? A billion "thumb presses" instead of a few hundred?
Of course not!
You will never see or even touch a single ant yourself in your new job.
Instead of with ants you now work with a) humans, b) lawyers, c) regulations, d) logistics, e) statistics(!!!). You need to hire thumb-pressers, you need to organize poison - tons of it. You need to distribute the poison. You have to create maps and tell the middle managers where they should send their troops. You need to deal with absentees, internal politics, laws regulating work hours and poisons, people who were poisoned by your ant-killing troops because they misused the poisons. You need to collect numbers: Where were ants seen in the state? How many before the killing, how many after a week, a month, a year? Were the measures effective?
Compare the skills you need to control - kill - ants in your apartment or house with the skills you need to kill ants in ALL houses all over the state or country.
It SOUNDS like it is the same task - "kill ants". But human language is deceptive - 100% context dependent. "Scale" changes a problem completely.
If your ant-killing employees see any benefit at all in seeing you too kill an ant occasionally it is purely subjective "he's one of us", objectively each hour you yourself spend killing ants means you don't do your actual job of managing. It helps when you have past(!) experience - but joining your workers now really means that a) your are not doing your job or b) the problem still is low-scale (small startup - or, in the case of ants, even though you are responsible for ant-killing in the state there only are a handful of houses where there is anything to do).
Or another example, moving soil: If you need to move a tiny bit of earth you can use your hands. If it's a little bit you use a shovel - already you will no longer touch the soil directly. If you need to move even more soil you use an excavator - you now are even farther from the actual soil, and you need to know a lot about the machine, organize diesel fuel, spare parts, etc. If you need to move a vast amount of soil you get to the same problem as above, you don't even see the soil any more, you direct an organization, people, logistics, statistics, etc.
If you like the money, keep the money and do your job well.
If it's not about the money, get a coding role somewhere and know that your goal is to be a great coder, not to work up the company ladder.
Being a coder is great, but realize that different jobs have different work and different values attached to them. Make sure what you want to be and what you do are aligned correctly so that you get what you actually want.
It seems like what you think you want, what you are working towards, and what you are really doing aren't aligned.
That's 99% of what management is.
If you're not enjoying it you should go back to being a lead developer. You may make less money but you'll be happier.
Please tell me you are trolling.
1) Are you ok with not coding and just have a technical vision and dealing with people constantly ?
2) Does the CEO respect technical part of the project ? that means he doesn't think that he can imagine anything and then the CTO will do it with his team.
Let me explain each point:
The first one: as a CTO most of your time is spent on:
- [Hiring] this part will probably take 20% to 30% of your time. you have to interview them technically and be able to sell your company and motivate them.
- [Communication] Communicating with the CEO and other key roles: this is everyday, you have to be involved in every decision concerning the product. and you should be able to explain clearly why you are against or for a feature in the product (this one takes maybe 30% to 40% of your time!)
- [Technical] Macro architectural decisions, code revision, etc.this is paradoxically the easiest part ! it should not take more than 20% of your time.
- [Management] Making sure that developers are motivated enough, talking to technical team every morning and trying to understand their feelings and vision and deciding if they are in line with the culture of your team. this part should take 20% of your time. if it takes more than that, that means that you didn't do the hiring very well. so you should spend your energy on firing and hiring again.
The second one: Does the CEO understand that technical decisions are vital for the project so he has to include you on any business decision ?
If yes, then it is a good news. but if the CEO is that old school guy who thinks that any idea can be implemented by engineers and the CTO is the responsable for any non respected deadline then just run. quit, don't even try to change his/her mindset cause you cannot. usually it is really easy to figure out that the CEO respects technical part or he just pretends to respect.
Hope that helps :)
PS: Most people (myself included) cannot dive into code and dealing with people at the same time. When I am coding I don't even here what people is telling me. so I cannot be good at management. that's why I think that a CTO should not code at all.
In my day job I do 100% of Gogobot's Devops.I feel that statup stacks are too complicated to bootstrap on the cloud so I am working on the-startup-stack
It's a framework to get things started, it's a toolset of other open source tools to consolidate everything under one roof with a set or production-ready bulletproof recipes.
I realize it's a mouthful, docs attached.
I've been working on this during my spare time for a long time now. I have 3 startups already running on earlier versions of this and it's a work in progress.
Looking for contributors and early adopters.
Startup 1: Media monitoring - Cassandra, Kafka, RabbitMQ, scikit-learn, nodejs, AngularJS, Python, Cython, Postgres, Spark, Hadoop
Startup 2: Forex Trading - Keras, TensorFlow, Kafka, Spark, RabbitMQ, nodejs, postgres, Pandas, celery, scikit-learn, iOS App, Flink
Firmware developer with some scripting on the side. C, shell script, Python, ARM/Thumb ASM on occasion. Mostly C.
Probabilistic programming in Haskell and Venture. This involves using Haskell and Python to do most of the coding. Writing a paper involving some information theoretic properties of certain probabilistic programs, which involved translating a bunch of estimators to get them working quickly on larger datasets.
Also eventually going to finish formalizing the correctness of my type-inference algorithm in Coq.
I eventually want to learn enough of how monad-bayes and Clash work to write a compiler that takes monad-bayes probabilistic programs down to hardware descriptions I can flash onto an FPGA and use it as an accelerator for probprog.
Main side project is Tablesaw, a dataframe for "large" data (100M to 1B rows) in Java (https://github.com/lwhite1/tablesaw). Although, it might be better described as a personal, in-memory, column-oriented, data warehouse. :)
Side project - a concurrent stock exchange written in Haskell. Could potentially be used as a component of a bitcoin exchange if I get time to fully flesh it out.
side project: working on a crossword editor, intended as a complement to the (fantastic) open source app qxw [http://www.quinapalus.com/qxw.html]. qxw does one thing (grid filling) and does it well; v1 of my app will import a grid from qxw and deal with adding clues to it, and publishing it in a variety of formats. v2 will add support for importing a blank grid and clues in various popular formats, and letting you solve the crossword interactively. (i might add a web frontend somewhere around then too; right now it's a desktop app in F#/Gtk#/.NET)
Side project: a "long serverless" crossword analysis website. Python3, AWS.
working on a meal planning tool to help people eat healthier and a collaborative music streaming app.
elixir - clojurescript - rethinkdb.
No hardware was announced yet. There have been occasions in the past that speed bumps and minor changes (i.e., not worthy of announcements) just appear in the web store without fanfare.
Some managers also setup impossible deadlines to try to squeeze all the productivity they can out of their team.
But you can work on improving meeting deadlines or raising a flag early on with your manager that you need to bump out a deadline a couple days. He'll appreciate hearing it earlier rather than the day it's planned to be completed.
If there is a topic you're curious about set aside a couple hours in the evening to research it and play around with it. Run through some dev ops tutorials.
As you do more and more projects you'll get a feel for how the design UI/UX should be. As a backend engineer I would expect you're not doing much design. But for mocking things up use a framework like bootstrap or one your team uses for projects.
Try to learn from senior developers around you.
Start doing some side projects at home. Sometimes the most learning occurs trying to build an application you are interested in for your own use instead of following a todo list tutorial.
Pick topics you are interested in. Google some tutorials. Don't just watch them or read them. Dig in and do them, extend them, take them beyond where the tutorial stops.
Get involved/netowrk with forums, user groups, bloggers and podcasters who develop in your language creating similar things.
Check if your company sends employees to conferences.
Development is definitely a continued learning experience.
One thing I did when I felt I was stagnating was doing Lunch-And-Learns. I lead a few and for each one, I would research a topic and then teach it during the lunch.
Lastly, don't waste time. Go home and read and program. Go to meetups relating to the topics you are curious about. It's not easy after a long, frustrating, and possibly demoralizing day (especially when missing estimates), but watching online videos will only do so much for you.
An MBA is a master's in business administration. It teaches you how to administer an existing business effectively. It does not teach you how to start a new business, nor does it really teach how to innovate or develop new products. Coursework includes things like accounting, corporate structure, financing, market strategy, leadership, power & politics, and a general grab bag of skills that help you optimize the efficiency of an existing enterprise where the customers are known, production processes are in place, and you have a lot of data available. The networking opportunities are often very important as well, although like most networking opportunities, they are what you make of them.
Some of the skills can be mildly useful for an entrepreneur or technologist that's just looking to plan out their career and build cool things, but the price tag is really steep if you don't need it as a credential. You can usually get the knowledge for a fraction of the price if all you want is the knowledge. And it won't teach you the core skills needed to innovate and bring new products to market, which largely depends upon comprehensive domain knowledge, technical skills, and courage.
(It actually could be counterproductive in that regard...my wife is doing an MBA, and her boss told her "Y'know, doing an MBA at a top school self-selects for the most risk-averse people you can get, because it is probably the least risky path to career advancement.")
I've heard many comments that are confirmed by my own experience that bright people enter business schools to spent few years of their life to learn very few useful skill, most of which can be learned in a month by reading "... for Dummies" style book.
Leave immediately, take your IP, and don't even consider doing anything else until things are in writing and the backpay, etc are resolved.
I would go a step further and get the hell away from these guys. If they've scammed you, they've likely scammed others and/or will scam people again. This could be you again, customers, or your investors. You do NOT want to be part of a team that scams their investors.
No. The CEO's actions negatively affected your co-workers, not yours. Do you suppose if you don't report this that life will become wonderful for them, that they'll suddenly get millions of dollars from their equity in a company that can't pay its employees? That seems very, very unlikely to me. And if the situation is this precarious, than any nudge could break the company.
Definitely get a lawyer. Ethically, though, you have no reason at all to feel bad about reporting them. You'd be doing the right thing.
When I was involved in the startup scene in Silicon Valley, there were a lot of clowns who didn't understand what it means to run a company. They were charismatic; but at the end of the day, they didn't understand that they have to pay their employees in exchange for their labor. Often, these clowns assumed that things would work out in the end, and that hard work will always reward itself. They wanted everyone to make a sacrifice for their own dreams.
My opinion: I would have walked away at the two month mark. At day one, I would need to know that everyone under me is working for equity; because that changes the work dynamic significantly. The demands made on someone working for money are different than someone working for equity.
Furthermore, a tech startup is a for-profit venture, so you always need to do what's in your best interest, and your subordinates best interest. Ideally, you can torpedo the clowns enough so they can't pull this kind of stunt again; but it's also import to look out for the people working under you.
> The work that I produced for them is still mine, as no copyright transfer has been signed.
That is likely untrue. If it was made while you were an employee, during the scope of your employment, in the US (rules in many other places on this point are likely to be similar, but may differ in important ways) it would seem to meet the definition of a "work made for hire" which would be owned by the employer unless there was a signed agreement to the contrary. 
> It's not legal to work only for equity in my country, there's a minimum wage, and each employee has to be registered and tax paid on them to the government.
Depending on the laws of the jurisdiction where you are working and the laws of the jurisdiction where the firm is incorporated, as a person with knowledge of this violation, and/or as an employee with knowledge of this violation, and/or as a corporate officer with knowledge of this violation, you may well have legal obligations to (1) bring the violation to the attention of the government, and/or (2) bring the violation to the attention of the corporation's board of directors. You may be liable for sanctions if it later becomes discovered that you knew (and maybe even, as a corporate officer, reasonably should have known) about the violation and did not fulfill those obligations.
For that reason, I would recommend consulting with an attorney as to your options, and the risks and benefits of each, in this circumstance.
 See the definition of "work made for hire" at 17 USC Sec. 101, and 17 USC Sec. 201(b) for ownership of such works.
I kept asking for the reimbursement and back-pay promised earlier, some months later they just refused, and I was not paid. I was offered stock options (not even stock/equity) instead of money. That's when my team and I saw the crap going down and started preparing for the worst.
You need to have all your communication about this problem documented, including if possible the responses from the CEO and others.
You may need to consult an employment advisor or lawyer for advice, if your department of labour can't provide this to you. You need to be crystal clear about your situation and repercussions if you choose to torpedo this company.
If things are really as bad as you say they are, you don't need to be too worried about your reputation - I have been through this situation and it is not hard to manage. As for co-workers, I sympathise with their plight, but you need decide for yourself how much you value your career (or don't) by not taking action now. Also, your co-workers ought to be smart enough to see what's happening.
In my situation, I went and spoke to a government officer in our department of labour. She told me that I needed to engage a lawyer in my situation. Legal fees would have been greater than the money I was owed. In the end, I filed a police report for the record, with complete documentation on everything that happened and details of the compensation owed to me.
I lost a few thousand dollars, chalked it up to experience and moved on. The company's office in my country had to close, their hardware and other equipment was seized for non-payment of rent, and they wasted many times the money they could have just paid me to build a great product. As for the product, their launch was delayed 20-24 months but I believe they did get something out.
What's even more pitiful is that they had a few million in funds, were already cash-flow positive on a previous product, and could easily afford to pay what's due.
Bottom line - if the company is run by a money-grubbing skinflint with a tendency to shaft his employees, you have every right to do what's good for you.
Regarding the government compliance, I think it's safer to err on the side of the law than on the side of someone who is only promising future rewards, with no commitment on their part.
If you're in a different country than the company, it may be hard (and costly) to assert your rights, so keep that in mind: it's a liability for you to do too much for free. You're basicaly extending them a line of credit hoping to be paid back but with a non-certain process to recover your investment if they don't stay true to their word.
Gentlemen/Gentlewomen take responsibility for their actions/agreements and sign contracts.
Again, basing on my experience, if somebody does not want to sign a contract, they're already planning on taking advantage of you. In this cases, my approach is to backtroll and say: "okay, I'll work for you without a contract, but you have to pay me in full, upfront and in cash". This suddenly puts them in your position (all risks and no guarantees) and usually ends the discussion, with them either agreeing for reasonable terms and signing a contract or stopping wasting your time (in any case, it's a win).
Note: I have to admit that "they" agreeing to pay in full, upfront and in cash never happened to me, and if that happened I don't think I would agree.
Thank you to all who commented. The general advice of get a lawyer is absolutely correct, I had not considered the potential backlash this could have on me if my name is associated with their illegal practices.
Calls to 'name and shame, while cathartic, probably aren't going to be very useful. There isn't a database of bad actors that has any reputability, and the legal consequences may be dire.
I'm just about scraping by without wages, so the ideal course of action seems to be to try and get a cheap/free initial consultation from an appropriate lawyer before deciding on what to say to the unemployment services. I think, however, getting a new job pronto would be a better use of my time, though both may be possible. Luckily, I have no dependants so the mistake is mine.
I don't expect to see any wages from this company, the CEO appears to be living in another world to the point of giving me more work to do after bluntly being told I couldn't make rent this month, and I'd borrowed to make last month's. As many have said, never work for free, never work without a contract in place (or cash in your hand). Why assume other people's risks when there's information asymmetry?
With respect to the code, IP suits are probably the most painful type of suit, so I'll hold off on pursuing them unless they happen to hit it big. And if they don't, there's nothing to claim for anyway.
I'm not happy about the prospect of ruining the equity of my co-workers, worthless as it may be, so unless I'm really having a hard time getting another job, I won't apply for unemployment benefit. Painful as it is to continue to suffer a loss for this, I think the relatively small amount might be worth avoiding the fallout.
For those requesting the country, as this has quietened down a little I can tell you it's Ireland. The laws on employee/contractor and IP assignment are relatively clear here, but, obviously, a lawyer is required.
I have been taken for a fool, please learn from my mistakes.
What is it about software developers that makes them think there's even a question about this?
IANAL, and this is not free legal advice. My advice is to talk to a lawyer ASAP. Your inital consultation is likely to be free of charge. Consult.
I've been in a similar situation myself up until very recently (hence the throwaway)... Was initially (briefly) paid as a contractor, money supposedly running out, volunteered to take equity instead to help keep the project afloat, equity never materialised. After 2 years the whole enterprise is now in the final stages of falling apart. Speaking to employees of another of the owner's companies, they're in a similar situation of being massively underpaid with vague promises of equity that have also failed to materialise. Any attempt to confront the owner on this is met with a lot of hand waving and/or an abrupt change of subject.
Thankfully in my case I maintained some independence and kept up enough other contracting work to stay afloat, but it still leaves an awful taste in the mouth. Unfortunately I can't say the same for the employees of the other company who are still being strung along day by day.
No IP assignment contracts, broken verbal contracts, broken laws... you're not the one torpedoing the company.
> it will negatively affect the co-workers who have previously worked for low wage and equity.
You've already established that it's actually "no wage" and effectively "no equity" - the only thing guaranteeing equity is a verbal contract / handshake deal, and they've already reigned on one of those. What will negatively affect your co-workers is continuing to work for this company.
And while I might hesitate to take unilateral action on behalf of others - I hate people making decisions for me - taking action on behalf of yourself is entirely reasonable. Hell, taking action on behalf of others is sounding rather reasonable here.
If you don't report them more people will be victimized by their antics. So you have a moral duty to stop that from happening.
IMO they are intentionally trying to screw you. Do all you can to protect yourself, but be formal / polite where possible.
No good can come from allowing criminals to go about their crimes without justice.
Perhaps you should name this company here, since this has made the front page of HN.
They could be considering you as a contractor. Research the difference between contractor and employee. Depends on your working relationship with them.
EDIT: You can only be a contractor if they are actually paying you. If you are getting no money, not sure what that means.
Best of luck. Definitely leave, should probably talk to a lawyer, and 100% follow their directions.
Immediately consult with a local attorney familiar with employment law in your locale.
What you are describing is both crime and tort. Even if you decline to attempt to recover your personal damages in a civil action, you do have a moral obligation to your fellow workers to report the crime. And your own attorney will help you report it to the state's prosecutors such that it is crystal clear that you were not a willing conspirator.
I have trouble believing you'll be hurting your coworkers. If no salaries are being paid, they'll be in the same boat as you very soon when they start trying to claim unemployment.
Detailed specs have been written before, try searching.
Capturing ideas and visualizing your problems is something they don't teach you in IT school. Over my career I've leaned that an on-hand notebook is way more useful than carrying a laptop around. I can sketch out ideas, graph out signals, and do dozens of other things quickly and silently. It's a lot less intrusive in meetings. Plus, you can doodle.
I've used everything from pocket steno books to college spiral notebooks. Moleskines are nice, but way too expensive.
My current go-to notebook is a college notebook I picked up in Germany for a couple of Euro. It's the right size (not a toy steno book and not a massive 8x10 binder). Side-spiral bound is critical, you can fold it open on a desk without taking up twice the space. Grid paper is killer for mapping out things out. A nice touch is the microperfed edges.
Looks like they're on Amazon but in packs of 5. Still, not a bad deal:
I do translate my notes as I work through the problems and put them in a tool like OneNote or Evernote etc. But I always start off with sketches and notes in a notebook. My bet is if you looked at the pattern of those who use notebooks vs those who don't, you'd find those of us using notebooks still skew to an older average age. 40ish+ likely.
Personally, I also jot down pseudo code on paper to get my thoughts right before starting to code the problem. This lets me get my thoughts straight before coding it and I find I make fewer mistakes, plus I am faster when I do this. It is also one of the reasons I dislike coding interviews where someone wants you to just start writing code in the IDE. I don't do that well, because to me the process is, understand the problem, design the solution, engineer the solution, then start coding.
I don't have boxes of notebooks, but I do have couple of small shelves filled with years of notebooks. From time to time I like to go through that stuff - it's actually very interesting to see your though process from years ago.Besides notebooks I have small binder filled with hundreds of post it notes for projects which I store.
Overall I vastly prefer handwritten notes for projects than some kind of digital notes. It's easy to open page for the recent feature, easy to see what you have in mind, how something should be done or what should be considered. ON the same page I could have multiple "data structures": reminders, lists, summaries and descriptions which easily show state of the progress for project/feature.
I very much like Moleskin-type notepads with dot-grids with around 100 pages. I have 2 notepads - one for work and one for personal projects.
Step 1: get 3"x5" (~8cm x 12cm) index cards. They can be ruled, gridded, blank, colored, whatever.Step 2: Get a binder clip.Step 3: Clip the cards together.
It's pretty easy to get index card storage bins, and it's convenient to take around a little stack in your pocket. If you have a lot of cards, a rubber band works almost better than a clip, but it works better with fewer cards. There's a lot of templates you can print onto cards, but I usually just use gridded / blank cards for code ideas. An added bonus is, you can rearrange cards with different functions to help structure out code ideas. Or you can print out code, cut out relevant bits, and glue them onto cards.
I tend to manage task lists/todos, mind mapping, and pseudo-code on cards. Very handy on long bus rides.
I usually keep notebooks, but I am ever more convinced of using one because of Rich hickey's talk: https://youtu.be/f84n5oFoZBc
and we have a better chance of remembering something if we write than type. http://lifehacker.com/5738093/why-you-learn-more-effectively....
I have previously read that people like Martin Gardner had an awesome system of keeping notes. I would love to know more about your tips.
How do keep your notes? How do you organize stuff, while retaining the freedom to doodle. How do you find stuff again(which is the killer feature for typed notes). Would love to learn from the masters - do you have any books to recommend?
I've been going back and forth lately between keeping notes in a Markdown file on a shared drive and using my notebook. The Markdown file is much better for searching and ease of access (I'm on 4 or 5 different computers around the office during a week), but for some unknown reason I keep going back to pencil and paper to sketch things out. When I had to do some light mathematical derivations it was all on paper though.
That's why I use blank gridded A4 paper sheet. Then I put together project related notes. If a project starts to be big enough, it will naturally lead to a pack of papers that I can carry along. Otherwise the project can kind of fade away be laying around or being mixed with other sheets.
I mainly draw application architecture and app screens. I also tend to note in natural language problem related to those. So this is design notes.For technical notes about deployment for example, I use One Note.
But about 3 years ago, I bought a Samsung Galaxy note 8.0. Because it has a pen.
I had the original iPad, and a stylus, but you either try to write with your finger (no good) or use a stylus (write holding someone else's finger) and it sucked big time.
But with the Note, and actually the stock S-Note app, I had everything I needed - nice size, pressure sensitive pen - plus extra benefits: I like to diagram out stuff, draw circles and squares and link between them, and the old version of S-Note has a great feature where I can draw a crappy circle, and it will automagically turn it into a perfect circle. Same deal with squares and lines.
So now I use it exclusively, have my ~200 notebooks backed up in various places, native form, image and pdf.
Shame though, it looks like it is going to be EOL'd. I am seriously considering buying a bunch of spare parts to mke sure that I can keep mine running for a while.
But to sum up: best of both worlds - like writing on paper, but with the convenience of all that is digital.
My job is half hardware/firmware so I put a lot of meeting notes, specs, and calculations in it.
I usually don't need to refer to those notes for more than a few days after I write them, so it's usually not much more than an archive of thoughts.
I try to digitize some of it, but I don't do that enough.
Early in a project I use a pre-punched pad and file the pages into a ring binder, under categories, topics. Once the project is well underway, I tend to use those pages to write up the detailed documentation in files which are stored in the same directory hierarchy as the source and other files.
Discard pieces of paper when done, or file them (or scan/photo) when need to retain. Can discard in groups, creating small folders, clipped together with other bull-clips.
A never-ending, revolving notebook.
At home, I've always used large, letter-sized books of drawing paper. I have about 10 of these filled with diagrams and notes, mostly for 3D engines and games I've worked on in the last 15 years.
I couldn't imagine life without it.
#!/bin/bash echo $( date "+%Y%m%d%H%M%S" ) $( \ curl -A ReaderCheck https://www.reddit.com/r/news/ 2> /dev/null \ | grep -ho "<span class=\"number\">[0-9,]*</span> <span class=\"word\">readers</span>" \ | grep -ho "[1-9][0-9,]*" \ | sed "s/,//g" \ | grep -v "^32$" \ ) \ | tee -a Reader.log
And they were successful in not going too far with their 'moderation'.
I'd still be on Reddit had that platform been as easy to use and not taken to shitty 'moderation' tactics.
There is evidence to suggest such events can "inspire" others to do the same.
I don't know why the mods have not clarified this as the reason, maybe admins sent the message and told them to keep silent, maybe it's even higher.
That said, I know for a fact that Xing is as popular (if not more) in Germany. So, perhaps there are other similar professional networking sites with a local focus based on where you are.
Fintech is solid. Wish I worked there.
Being able to buy into the company's near/long term vision is vital for start-up life. That vision gives you juice!
Areas to consider-- which role will provide greater career leverage 24-36 months from now? Which role will truly stretch you professionally?
#1 sounds like you just want to build some from scratch. While I understand the appeal of that, I wouldn't make a career decision based on it.
Where ever you work you'll learn new skills even if some environments promote it a little more. You also have free time if there is a specific skill set you want to master.
I ask because its probably question number 2 when I'm looking at things, its #1) I wonder if I could build a product to ... (is it even feasible) and then #2) I wonder if anyone would pay money for it? (is it any good)
There are lots of ways to figure out if it is any good, but the best is by far to talk to the people who would buy such a product and tell them what your idea is. If they think it is something they would buy (or subscribe to, or exchange any sort of cash for) then as others have mentioned try to prototype something which can be really simple (like sheets of papers that you shuffle around when people select "items") to an actually wireframe running which gives a view of what it would look like.
If you're still getting positive feedback, take what ever you think it would cost to provide the product, multiply it by 10 and ask people if they would pay that for it. If they say yes, offer to sign them up right now for a 10% deposit. If they decline it would be helpful to understand why.
The thing to remember is that for a product to be successful, the customers have to both "need" it (at lease in their own mind) and they have to believe that giving you their money is the best way to get it. Not a lot of ideas pass that particular test.
If you can sign up 10 customers with 10% deposits you'll have some cash to start putting things in place for the minimum viable product (MVP).
StartupsForTheRestOfUs.com podcasts have lots of great info.
Also check out the microconf videos.http://www.microconf.com/past-videos/
This is a good one too.http://businessofsoftware.org/2013/02/gail-goodman-constant-...
There is lots of information out there on SaaS but it comes down to execution and hustle.
Basically you need to start marketing, building an email list, put together information on property management on a blog to build up content/traffic and your email list.
Do this before hand leading up to launching your App.
Do you have any potential clients that would sign up right away? Get them in to a beta program early sign up to work out issues, give you ideas to improve it, what works, what doesn't.
Sounds like you have a good proven idea, from there it's just execution and hustle.
Here's some inspiration:
DHH Startup School Talkhttps://baremetrics.com/open
Not sure what stack you work on I would recommend building it with Rails or Laravel(Checkout Laravel Valet/Homestead, Forge and Spark) using Stripe, SparkPost, host on Digital Ocean or AWS. Lots of great tools out there.
I've built and managed SaaS apps for clients and am starting to work on my own this weekend looking forward to building my own.
Good luck with your SaaS!
You can test if you really have an understanding of the problem you're solving and if it's even worth building in the first place. I've personally gone down so many dead ends following my business ideas without validating first and I won't be caught dead making the same mistake.
Another benefit of talking with your customers is that you can collect information about how to market towards them. You listen to their problems and the solutions they're using and you instantly have ideas about blog posts you can write and other ways you can provide value for your target customer.
If you have no technical skills, then there is still a lot you can contribute. Every non technical person who comes to me with a "great idea" gets told the same thing by me:
"That sounds great, the best starting point for you is to go build some wireframes for us to look at. There are tons of wire frame tools out there, that you can check out, or even a note book and pen will do because we can scan them in."
Some people ask me what a wire frame is, I have a few places I can point them.
No one has ever sent me a wire frame.
If you are technical, then start with wire frames. It shows people that you are serious, that you have thought this out. If a picture is worth a 1000 words, then a page of wireframes is worth 1000 lines of code.
Or if you're looking to target bigger apartment complexes, you could get a job at a property management company for a year. That will give you a good view of the administrative side.
Your local community college might have a course on taking care of your home(to help with tenant turnover or knowing what your contractors need to do), or might be able to hook you up with a business mentor.
Once you've spent a year or two doing something related to property management, then you can write the code and probably will already know someone who can use it.
1. Who're your competitors?
2. Who're your customers?
You can also create private projects if you want to work on something stealthy with people. :)
Working a full time job, I had gone from my usual "doctor visit every 10 years" to "doctor visit at least once a year", with an added flu or something each year on top of that. So when kid #2 came along, I used the excuse to drop down to 4 day weeks, and once the family was ticking away on all cylinders again I started using that extra day for climbing, cycling, and other "selfish" things. The idea being that this was "my day" and not just an extra day to do errands.
Boy what a difference it made. I haven't had more than a case of the sniffles since. I'm healthier, happier, and get to spend more time with the family.
I've since packed in the job entirely (to live off my business stuff full time) but if I do ever take another full time job, I'll be sure to negotiate 4 (or even 3) day weeks in to the contract. It's just night and day.
 FIRST http://www.firstinspires.org/robotics/frc
I'm now looking at getting a BrickPy for it as the EV3 brick doesn't do FP, so not good for NN's.
Figure out what you want to build first. Then send me an email and I'll try and guide you in tve right direction.
My hobbyist alternatives right now are lego or pulling stuff apart.
Next, you probably need to go back to the basics. Pick up an introductory programming textbook, in PDF form if you are cutting your expenses. Learn basic OOP, basic algorithms and data structures, runtime complexity, functional programming, understanding when you would choose what tool. There is nothing worse than a senior programmer who can only think in the paradigm of the programming language they have accidentally built their career upon. If you don't demonstrate a basic understanding of these things, and aren't able to speak to the above within the context of jQuery, then you are at a disadvantage.
Learning another framework is not the solution. It's a bandaid at best. You will just find yourself in the same position again in a few years when your tool of choice falls out of favor. Break the cycle by becoming a software engineer.
In terms of your living situation, congratulations on buying a place. If you run out of time or money then rent out your apartment and move abroad where you can live on a lower cost of living, but I think you can and should make your stand now against becoming a useless lamer.
The next step is to figure out what is hot and learn it. React is a good candidate. So is native app development, although native app developers are finding that the indie market is basically tapped out and most of the opportunities are in contracting. Rust may bring a resurgence of system programming & low-level development. Hardware is hot but I don't know if it'll last. VR could be big but who knows whether it'll actually take off.
You don't even have to lie about past experience. Just build a portfolio project that shows you're competent in the new tech, put it up on GitHub, and explain that you were a JQuery dev but have recently updated & modernized your skillset. Companies love employees who are willing to stay current on their own time.
Remember that you can't ever settle down in today's economy. Your classmates who are doing so will have their own rude awakenings in a decade or so. That doesn't mean life has to be miserable though; it just means learning and uncertainty needs to be built into your life. You're far from the only one without plans for life; indeed, oftentimes the ones with the firmest plans are the ones most adrift when those plans inevitably don't pan out.
Yes some jobs may require specific experience, like they want extensive React experience for example. If this they are this fussy they should pay more. Most companies will happily see evidence that you know JS well.My advice is to disregard anything a person who calls you a 'useless lamer' has to say as this person is probably not an authority and needs to grow up.
Learning OO is a good idea. C# and Java are probably to most popular and are quite easy to transition to from JS.In a nutshell fuck this douchbag who called you a lamer. I'd listen to a donkey's opinion before I take this guy seriously. Go to more interviews, find out where your knowledge is missing and fill it in.
Finally don't lie on your CV, you won't need to.
You had a bad interview that drove you to be sufficiently uncomfortable to reach out for advice. It happens, it sucks. I'd hate to be anywhere near the person that interviewed you, based on your description. An interviewer is a flagship/ambassador for a company.
Technically, I have no advice. Go your own way. Understanding a need and delivering a solution is far more important than choosing a particular stack to do so with. Because you've delivered a solution. Iterate, absolutely. Don't get all waterfall about what framework is best.
jQuery is far from dead. Indeed, it is 'cutting edge' in consumer finance. Stay with serious people, they're genuine. They may also wear hoodies, or sandals, or whatever they like, but probably don't carry 3 days of stubble because it's fashionable. Because doing a good job, and delivering a good product, is important, regardless of technology. Even PHP still rules the web!
1. Make sure I know where do I stand with my personal safety net. Will I have problem with visa? What is my 'runway', i.e: when will I start having problems with paying rent/morgage? You say you have money until the end of the year.
2. Then I would plan for some sort of worst-case scenario, probably something along the lines "If I don't get decent contract in 3 months I am moving somewhere cheaper", and plan accordingly, probably selling the apartment, making sure all my paperwork is in order, e.t.c. Probably would start searching for positions abroad in 2 months time?
3. I would try to polish up my resume. Maybe find a way to pivot from "I an awesome jquery guy" to "My UX design is awesome and I can talk to the 'serious-people'" (Basically the main idea of patio11 http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pro...)
4. I would probably try to get at least some visible experience in something else than jquery. On one hand this would be to prove myself that if if I would want to pivot myself to "I am a UX guy and don't care about underlying technology that much" to try out if that is actually true. Second, to have a $NON_JQUERY project on my resume. I would probably try to call some of my friends (maybe at my local church) if they needed some landing page or something, and hopefully in a month I would have something like a "React landing page for $local-church-url" on my resume. Ok, might not be react, might be angular 2.0, or whatever. (Disclaimer, if somebody asked how did I get Xamarin experience on my resume, I wouldn't be that far from this made-up example :)l
- for interviews (and to be a better programmer) take a data structures/algorithms course, there are many free online. I've got a big list of resources here:
- React is getting more popular, but I do extensive research on the job market and in California at least, AngularJS has about twice as many jobs as React. I'll add that Node.js is an absolute juggernaut. But if you've only done front end, stick with it for now. Plenty of work for an AngularJS expert.
- if you can't get paying work, contribute to an open source project any way you can. That always impresses hiring managers.
My second piece of advice is to never let yourself get in this situation again. Continually research new tech as they come out. You don't have to jump on every new bandwagon, but when something piques your interest, set aside some time to learn it. Once you master React, you might think that learning a server side language would be useful, so you could dig into Go or PHP or Python. But no matter what, don't stop trying new things. Read documentation religiously. Pretty soon it'll be relatively easy to jump from one platform to another, since a lot of the concepts (MVC, OOP, etc) are transferable across languages and frameworks.
Finally, don't argue in interviews. You can have a healthy debate, but if you sense any pushback whatsoever, drop it and move on. If I'm interviewing someone and they argue (read: pushing back with the intent of "I'm right and you're wrong") with me about something, that's a big red flag that we won't get along and I won't hire them. Instead, perhaps another skill to work on would be to determine how to debate calmly and rationally and somehow learn the art of persuasiveness (I've never mastered this, myself). As one of my mentors told me recently, try to divorce yourself from the notion of "i'm right". It might be true, but it's not useful when making friends or impressing people in interviews.
Don't let it get you down. Good luck.
If you like where you are, own your apartment I don't think moving is the answer. Moving is expensive. I think most developers can work remote.
So you have 6 months of run way right now till the end of the year. Cut back on spending and expenses to stretch that out and preserve as much of your savings as possible.
Network, network, network. Do you have any past clients who have a remote project you could work on? Or even a remote full time position. Even at a reduced rate that would extend your runway. Maybe improving or a re-write of an old project or app over to angular or react?
Should you expand your skills beyond front end? Learn Rails or Laravel with React, Angular or Vue on the front end to become a full stack developer or maybe focus on front end with backend skills.
You always need to be evolving/learning. jQuery is awesome but declining in use. So think about what you want to do next.
As far as your resume polish it up to show more specifics, UI/UX, front end engineer, then just a section on technologies you use rather than a showcase of jQuery this and that.
jQuery will always have a place in projects but It is waning. Also no arguing technology in interviews. If you're joining their team you're drinking their kool-aid and doing what they do as a team player.
I would spend the next six months getting some remote work and learning a new skill. If you could find a previous client/project looking for a re-write that might be a good fit as you can learn and make money (even at a reduced rate would work).
Do not worry about what your classmates are doing. Remember you are a successful developer, $90k/yr, just bought an apartment, moved to a new country. Maybe stay off Fbook the next 6 months till you have things sorted out.
Sounds like you have the skills, focus on getting work and learning expanding your skills.
oh, one more thing you mentioned mac. If you're not a mac user you should consider switching. It seems like a small issue but moving to mac definitely improved my development experience and helped me leveling up my skills. When you're learning Rails, Laravel even React/Angular/Vue most tutorials are OSX. Doing them on windows you always seem to run in to unexpected errors and issues when running through the tutorials. Then you'll spend hours tracking it down on your windows machine. Do the same tutorial on a macbook and you'll sail right through. So I think there is a huge value moving to OSX. A 13" macbook air is enough for a developer. I would consider making that purchase, they definitely pay for themselves in time savings.
And since you'll have a mac consider a hoodie too, it might help you with your networking. = )
Good luck sorting it out.
Functionality and ascetics are just better than any of the other text editors that I've used in the past, plus I'm happy with it so don't really go looking at alternatives these days.
When I first went to OSX a few years back TextMate seemed to be the dominant editor, Sublime for me just naturally replaced that with improved visuals and features. When your watching tutorial videos and the person is doing magic in a text editor, you start to question why am I still using my current one that doesn't have them features.
Marketing was just word of mouth, and how much support do you really need for a text editor? If it breaks it's not like you can't find another one to use...
If you're a heavy Sublime Text editor that hasn't bought a license yet and don't care that much for Atom/Visual Studio, consider buying a license. It supports the author and you're getting your money's worth, imo.
That's my two cents (or more to the point: 3 days of Sublime Text usage).
I think it gained traction on OS X. The dominant text editors for OS X at the time were Textmate and Coda. The development of Textmate stalled and people were looking for an alternative. Coda had a very different approach from Textmate (you were either a Textmate or a Coda gay/gal, never both), and Sublime really comes close to Textmate.
- textmate- BBEdit
Before I was an OSX user, my editor of choice in Windows was Crimson Editor.
All of these have two things in common: simplicity and speed. They are extremely simple to use, but also have some powerful features (if I didn't have to resort to perl most of the time, I was happy). And they didn't hog system memory or hang when editing large files.
Textmate added something to the mix: It was pleasant on the eyes. I'm a big fan of dark themes.
When sublime text came along, it added the absolute killer feature: "do anything" typing. I'm a HUGE keyboard navigator, avoiding mouse pointing a lot in favor of keystrokes. The ability to hit Cmd+P and type a couple letters of what I want to do and sublime text prompts. I can open files, edit in several ways, find and replace, do a build, whatever I want, all from the home row.
If there's ever a better editor than sublime text, it would have to be an IDE that brings fast, efficient, memorable keyboard-only navigation. And current IDEs do a decent job of this, although they're way sluggish compared to sublime text, and not as feature rich.
Recommending it is pretty easy: Less crashes than Eclipse/Atom; less setup, tinkering and learning curve than vim/emacs. Just works, cross-platform.
Finally, in a professional setting, the cost of Sublime is completely negligible vs e.g. losing work from crashes or even messing around with vim for two hours.
I'm curious though, since TextMate 2 is open source and is regularly updated why is it not as popular for OS X users? What's the turn off that makes Sublime that much better?
Notepad++ was text editor for me. ST was a sexy thing. I was drooling.
I am yet to buy a license for ST but I use it always.
As a guy from an IDE heavy dev background, I was impressed that I can carry around my dev tool in a USB and also keep it in a folder on the network. Plus if a version is acting weird, I have can just trash-&-switch. I had many issues with VS acting nuts and it took more than 1 day to repair it. That is what push me to leave IDE oriented development. I am happy with a customized/tweaked text editor approach.
Now I am playing more with Atom (ST clone) as its open source and more than 1 dev is involved. So, I will not be forced to change if the dev suddenly decides to stop. That is the main attraction for me in terms of the app being open source. I know that someone will continue and if I am desperate, I can attempt to tweak the app.
Despite the huge size of Atom, one thing that attracted me to it was the aesthetics aspect. ST was missing something.
So in my opinion, it found a niche but growing market in OS X that had network effects in other platforms.
Regarding the business side as lost opportunity to get more revenue, it's important to know that success is a state of mind. I'm quite confident that the current state of things regarding ST business fall within the comfort zone of its creator and that he has amassed more money than he can spend.
I never thought it needed support, it just does what it is supposed to.
It is cheaper than alternatives (time, licence)
It was introduced in right time (surge in web boom)
It have easy to use API (Python vs Elisp)
It is cross-platform (*nix comeback)
1- The chilling effect of people being scared to click on a link that may do searches their government cares about
2- The idea that if many people used a browser add in like this, it would make surveillance of search history much more difficult
3- Google accounts getting banned
All from one silly site.
I showed ruinmysearchhistory.com to a Pakistani Muslim friend, not having clicked it myself, and he thought it was funny until the ISIS application parts started coming up, when he consequently freaked out, as you might imagine.
But this got me wondering -- it seems to be widely accepted that googling things like "how to make a bomb," "bomb materials," "where to buy guns," etc will get you put on a government watchlist.
It's never been clear to me whether this is superstition or if there's truth to it. Google is fully HTTPS-- how could your searches be monitored unless google was handing them over to the government?
What I'm saying is, if you're not a US citizen, don't participate in those kinds of actions. The problems these campaigns highlight are real, but being foreigners, we have no legal recourses in the US in many areas, and can end up seriously fucking up our lives.
Also it'd be nice if US folks sharing those links and encouraging actions of the kind could be considerate of non-US people who don't necessarily have the leisure of getting on all kinds of list.
I still don't get why something so malicious was upvoted so much.
I did open it in an incognito window and saw what it does. It doesn't look like a big deal. It's probably the web-era version of sticking red-alert keywords in your Usenet signatures back in the 80's and 90's.
You'd think that someone reading this topic could get that cleared up pretty quickly.
It probably I ran it without signing in Google.
Ran it, wasn't too impress with the 'choices of words' being used for the Google searches, so I stopped it.
i've been planning on switching off of google products soon, towards fastmail, but haven't gotten the right domain name yet.
I doubt my lack of a Google login and random UA spoofing does anything to help this, though.