Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How can I be productive interning remotely?
63 points by startupintern on Sept 5, 2016 | hide | past | web | favorite | 40 comments
I'm a senior undergraduate Computer Science student, and I recently began a paid internship position working remotely with a startup during school. It's been a bit of a rough start, and I'm having trouble getting clear tasks with well-defined requirements. The company has only begun working with interns in the past few months, and had very little in the way of established workflows. I effectively report directly to the CEO, who is an alumnus of my school and doesn't seem to have experience managing software projects. They only started using task tracking and workplace communication tools in the past few weeks, and so far I've primarily communicated via email and calls. I'm beginning to feel quite useless, as I have no real idea of what's expected of me or what the acceptance criteria are for the feature I've been tasked with implementing. Said feature had a rather unrealistic deadline to build from scratch, even for a professional working full-time, let alone a college intern working remotely for maybe a dozen hours a week. There are a number of other things regarding the company that strike me as red flags, and at this point I'm not sure it was a good idea to accept the position. I'm interested in the work being done though, and I think it could be a beneficial arrangement for all involved if the managerial/logistical issues can be sorted out.

So how can I make the most of this experience and provide as much value to the company as possible?

> I'm having trouble getting clear tasks with well-defined requirements. (...) I effectively report directly to the CEO.

FWIW it's a common symptom of too busy a manager. Most managers are too busy, btw.

What's happening is that the CEO is probably thinking something "I need to take some time to itemize this task so he can work faster" but doing so is lower priority than that day's urgent fire.

> How can I make the most of this experience and provide as much value to the company as possible?

The best way to provide value to the company in your situation also happens to be the one where you'll make the very most of the experience: manage yourself to the point of being nearly or entirely autonomous. Examples:

The task itself is vague or unclear? Expand a bit on what you feel the task is, what it's for, etc. in writing, and submit that for review.

Next steps are vague or unclear? Expand on the DoD (Definition of Done), itemize the way forward, and submit those for review.

Does the usefulness of this/that new feature sound fishy? Ask about it. Not satisfied with the answer? Ask if they don't mind you getting in a Hangout with a few end-users to validate the idea's merit? Assuming they accept, then do so and report on your findings.

Every little step where they don't need to think for you is a step where you'll learn more and where you'll make yourself more useful. Have the company's end-goals in mind at all stages, take initiative, put things in writing (this is crucial for remote work), and you'll do fine.

Couldn't agree more,

This has been my strategy for years working for busy managers.

You have to make the life easy for them. Try to avoid sending open ended questions to them, instead send something that they can either sign-off fully or partially.

If you can't detail out all the requirements on your own, try to reduce the scope of the task until you can and try to give enough context for the manager to say Yes/No.

Also, if anything is vague and you manage to setup a video call to clarify it then make sure to create a slide with your topics on and walk them through 1 by 1. My experience is that visionary minds like startup CEOs have a tendency to go completely off-track otherwise.

Most CEOs can make a zillion choices a day. The best strategy is to give them options to choose from: "We could do A, or B or C. What route do you want me to take?" (where A,B,C are well defined)

It's even better if it doesn't matter what they pick (because all of the options are excellent choices) ;)

This is great advice for any stage of your career, remote or not. If you are able to do this as an intern then you will be in a much better position come graduation time to convince prospective employers of your work abilities.

this is excellent advice. for better or for worse, this describes most startups to a tee.

being an individual contributor (i.e. dude with a job) at a startup is different than a big corporate job or government work. you have to be able to define your own tasks given vague requirements. you have to be able to actually get shit done without someone telling you to get it done. after working in startups for decades, many other jobs seem like adult daycare to me.

for people who thrive in autonomy, have decent common sense, and an understanding of what the business or the customer is actually trying to accomplish, it is a wonderful environment. this doesn't mean lots of experience -- some people just have this knack, others don't.

fwiw, a large contributor to employee churn at startups (to the extent that it exists) is because you can find out so quickly whether or not someone is full of shit -- they actually have to deliver working stuff fast. in larger organizations they can just hide in the decision-making lagtime/chaos for up to years at a time.

There are a couple problems I see here:

1) The biggest one that jumps out is having an intern working remotely. First, I am surprised your school would even allow this to happen. To be honest, this almost sounds like a favor from an alumni CEO to the school and he/she could really care less about having an intern. Internships are supposed to be learning experiences. You should be immersed in an environment to give you experience. In another post, you said something about the company is in Silicon Valley and you are in the midwest and that you can't spend any time with them. To be blunt, that is a lame excuse. You should ask them to fly you out, or even cover your own travel expenses if they won't, to even spend a day with the team. Meet them, work with them in person.

2) Most startups themselves don't always have a clear path and they still may be working on defining the tasks that need to be done. Are you the only one working remotely? If not, you should see if you can be involved in their meetings. See what they are working on, how their tasks are defined, and what their deliverables are. Find ways to work with them or emulate their delivery process. If you are the only one working remotely, the company probably could care less about you as an intern. I don't mean that rudely, just that they look at it as they will give you a project, if you get some done great, if not oh well nothing lost.

I agree with #1 and was thinking basically the same thing. Most of what I did during my internship, and what I help foster in the inters today at the same company, is the idea of socializing with other coworkers and other areas of the company. An internship is a taste of moving away from college in to the corporate life, and help determine if that's something interesting to the intern (and it's sometimes not, admittedly). A remote internship sounds effectively like a class with no lecture sessions, which will make it feel effectively like college. It sounds like a neat opportunity, but also like they're definitely missing something by not being onsite. The OP should definitely try to spend a week onsite - I work remotely now, but didn't always, and the weeks onsite are invaluable to the interpersonal relationships that make working remotely possible.

Absolutely. As much as working remotely can be rewarding, like you said, there is a need for some level of interpersonal relationships. A remote internship to me, would be like doing an online class without a syllabus or professor. Here's your book, figure out what you need to learn and how to learn it. If the company isn't willing to have the intern on-site, even for a day, that to me says more about the company.

I'm having trouble getting clear tasks with well-defined requirements.

Having worked remotely for a number of years, and having run a startup, I think this is the root cause of your issue. You're not going to get well defined requirements because the definition of "well defined" varies from person to person, and because startups generally don't plan features in great detail (tbh, as a rule established businesses don't either).

If you want to make a bigger impact, start being more proactive in asking what features need to do in order to be accepted. If you don't know something, think about it, then write a clear document that sets out what you think you need to do and points to specific things that you need clarification about. That's what I'd expect any developer to do, regardless of whether they're an intern or an experienced lead developer. The key thing no one in a business is simply there to execute instructions. You have to think for yourself.

tl;dr If you don't know what you're supposed to be building there's no way you can build a thing that works, so think through the problem and ask good questions.

> If you don't know what you're supposed to be building there's no way you can build a thing that works, so think through the problem and ask good questions.

It's important to mention that this is independent of being remote.

Thanks, I've been trying to be as proactive as I can but I could probably do more. A big issue is that the feature in question sounds simple but is really quite complex (e.g. tell whether a picture is of a bird) and I'm not sure I'm conveying this effectively to the CEO. It's really a confluence of problems: lack of communication due to high friction, lack of organization, lack of documentation, and lack of mock-ups or user stories. What I'll try to do is create and assign myself tasks on our task tracker so we all at least have some idea if what I should be doing, and I can use this as a starting point to ask for clarification.

Don't expect others to produce user stories or mock-ups, especially if this isn't already part of the culture.

If you want to have user stories and mock-ups, start spending your time making those yourself and push them back to whoever is giving you the requirements for comment.

If they question the need for you to be spending time doing that, it's an opportunity to ask for more specific direction on what you should be spending your time doing. Chances are it's a classic case of not knowing what they want, but knowing what they don't want, so by having their requirements reflected back to them they'll come back with "Ah, but what I meant was..." and you'll get more clear requirements.

If it's still murky after that and you really can't get more concrete requirements than "We need this magic box made" then consider that some places genuinely just aren't good places to work, and consider this a learning opportunity and point for future comparison.

I suspect the issue is one of two scenarios: 1) CEO has low bandwidth, hands off a nice-to-have-but-not-critical feature. They don't have to invest much time; if it works, awesome, if not, no problem. If you don't complete the feature, it may or may not get done. 2) Company is overwhelmed, feature is perceived to be easy(-ish). It will get done, you're just a first pass.

If (1), you're probably best served not asking for much help. If (2), you need to educate & manage expectations about the complexity and necessary steps for the feature. Either case, you would probably be best served by prioritizing the input/output functionality (input a picture, output a prediction) over optimizing precision/recall on the algo. This allows you to 1) show progress to others and 2) you can start having conversations about false positives/negatives by showing different images and the prediction output.

I'm afraid it's not going to work.

Turning vaguely defined task into something tangible is usually the most difficult, and most important part of the task, but it requires some experience.

In the beginning you need to learn the internal know-how, and this requires regular prompt answers. Otherwise, you will stay blocked and frustrated most of the time.

Remote work is fine when you already know the domain, but that's not really what intern programs are for.

That said, you can try to write design docs where you put your questions. Note that it's not really about writing a specification, but about writing down what you know and what you don't. You can speculate about answers to your questions, and this way make your manager understand what you're missing.

> Remote work is fine when you already know the domain, but that's not really what intern programs are for.

I'd argue that it depends on the rest of the team. The OP didn't mention whether he was the only remote or not, but if so then I agree; it's a lost cause, and there's no way this is going to work. But if he's joining a team of other remotes they can make it work if others are willing to try.

Let me a bit blunt. An intern that is still in school working a dozen hours a week, is not going to produce anything of real value, realistically. Any reasonable company (start up or not) knows this and is willing to take a hit on their productivity to help you out (and also evaluate whether or not you might be worth hiring in the future).

So the question of how to be successful should be whether or not you can do something positive, showcase your skills and learn about industry at the same time. If you even get a hint that it's about you producing value to the team, I would consider moving on (given what else you have said). There is no point in being set up for failure.

Most of the time with interns, I have to scramble to try to find some vague connection with what we are doing. The intern will feel bad if they realise that they are doing a make work project. In reality, though, it's all about the intern. Especially with talented interns, we just want to make the experience really positive and don't care at all what they do.

I would disagree with that assertion. My internship proved to be extremely valuable to the company. An intern was actually a pretty important part of our culture. It allows higher risk R&D or to get things done which bypass the normal, sometimes slower process. And even if an intern fails, they'll have gained a lot of experience.

I think there might also be an issue with what software development is made out to be - well defined tasks with outcomes and deadlines, supported by a manager and easily achievable in a the desired timeframe - and the realities of working in startup and early stage companies.

Self direction is the key here. All you really need is the outcome desired and the 'why?' - these should enable you to start and hopefully feel you are making an impact. Take it as an unbelievable opportunity, you're basically being given a project to go wild with, manage yourself and make your own decisions. Things might fail, it might take longer than they thought - but as many others have mentioned communication is the key!!! Write out YOUR plan, tell them what you're gonna do, give them an idea of time of the first few parts - and be realistic and transparent. This is pretty much all they can ask of you. Have fun and learn :)

This is the beauty of working in a start up. You get to self manage your work. Some people love that other hate it. If you are someone that loves it then it is amazing.


> Self direction is the key here. All you really need is the outcome desired and the 'why?'

This perfectly sums up the life of a developer working for a startup. If this isn't a thing that you're comfortable with then you should probably find a company a bit further down the line where they're able to nicely bundle up tasks for you.

First, I would suggest being more open. Take some of the concerns you've raised here — feeling useless, not knowing what's expected of you — and go to the CEO with them. Don't be critical or overemphatic. Just tell them the situation you're in and how you're feeling. If they're worth their salt they'll listen and be understanding and try to make things better. If not, at least you’ll know who you're dealing with.

Communicate more frequently. If you’re not sure what to do, ask someone. If they don’t know, ask someone else. You certainly don’t want to bother people every 5 minutes, but if you’re stuck for hours each day that’s not good for anyone.

If possible, get them to tell you the most basic subset of functionality you can build at first. Build that. Take it to them and see what they think. That will probably give them a far better idea of what they want.

I've had similar issues doing remote work for people who aren't really good at managing projects. The solution depends on how much you care about the product itself - you can either take charge, send constant emails, follow up on missed promises and generally push people to actually do something, or you can just ride this thing out. The management probably won't improve in time, and the product will most likely crash and burn. I've "saved" a few projects by doing most of the work myself, but often there are factors beyond your control that will drag the project down anyway. Another thing to think about - even if you build it, your CEO isn't guaranteed to make good use of the product and all your honest effort might be wasted by bad leadership anyway.

Congrats, you are getting a first hand perspective of a startup; there are no syllabi just a vague sense of which direction to walk. What you describe as "lack of guidance" can also be described as "hands off delegation". The presence or absence of task tracking, feature specs, etc mean nothing right now. Your success depends on your ability to take ownership of the feature, anticipate requirements, deliver the code, and ask for feedback. You've been thrown into the deep end of the pool while your peers who took normal internships are in the kiddie pool with floaties. Have fun and make time to come up for air every so often!

Most startups fail. Many startups are train wreaks. In many cases, talented individuals can only watch in horror as events unfold.

As a junior, remote employee you're not in a position to significantly effect the outcome of the business.

Many companies also don't know how to communicate with remote employees well. Not replying to emails.

So... try your best to engage with company and observe how the company works. Learn the warning signs, learn what issues they face. These should all be hugely useful lessons.

But don't expect the company not to be a train wreak or to be massively successful. Those things are quite rare.

After years of remote working, albeit as a technical writer rather than a developer, I've learned a couple of techniques for dealing with vague and ill-defined tasks.

i) Write down exactly what you think the task might entail and email the CEO / manager. If you're off the mark, you'll get corrected. If you're on the right track, you'll get the go-ahead. Either way, you'll have a clear path forward.

ii) YMMV vary with this because of the different job roles, but I'll often just figure out a good solution to the problem, implement it, and see what happens. In my experience, tasks are ill-defined and vague because the manager has only an ill-defined and vague idea of what they need. In solving the problem, you do the thinking and clarification so the manager doesn't have to.

Have you spent any time at all with this new team in person? If not, I suspect it would be valuable to meet with the team face to face. Sure, you can do calls and such, but it's a lot easier for them to think of you as an outsider if you haven't actually occupied the office space.

You might also consider getting a mentor within the company. This is how we do it at $employer; you report to a manager, but your tasks and assistance come from a single mentor whose purpose during your tenure is to guide you towards completing your assigned project.

Have you been given a large but attainable project, or are they expecting you to just fix bugs and the like?

I have not, and practically speaking I can't; they're in Silicon Valley and I'm in the Midwest.

The mentor system was extremely valuable for me in my prior internships, but as I transition into industry I feel that the impetus is on me to learn how to work without a mentor, which I think is what I'm struggling with.

It's a large, attainable project but on an unrealistic timescale.

"practically speaking I can't; they're in Silicon Valley and I'm in the Midwest."

Planes exist. This is a trivially-solvable problem. Yes, they cost money - but the time savings from improved communication will amortize that cost very rapidly.

If what they're paying you won't cover a plane ticket in a week or less but they're expecting you to ship features solo, GTFO. There's a clear line between "internship that pays below market because learning" and "bullshit job that pays below market because interns don't know any better".

On a final note, the whole "I need to learn how to work without a mentor" thing is really odd. That style of learning, IMO, actually becomes more important post-graduation...

>as I transition into industry I feel that the impetus is on me to learn how to work without a mentor

There are plenty of non-intern employees who have mentors, that's how we do it at where I am currently working at least. I see nothing wrong with that, there's no reason why you wouldn't have one either.

I don't think you need a mentor to say "I'm not confident that I can deliver that functionality within the timeline provided. Help me understand the most important parts of the feature so I can prioritize and deliver ASAP."

To me, through no fault of your own, this is sounds like a low quality internship. Not because there's little productive work being accomplished, but because there is little professional interaction between the student and experienced professionals and about zero chance for constructive personal interactions.

Hopefully, you're at least getting paid.

Anyway, the big lessons here are that most people ignore remote workers because managing them is significantly more work than when co-located and perhaps more importantly, the most important aspect of developing a career is meeting people and getting to know them.

Good luck.

1. arrange a 1:1 skype call with anyone and everyone on the team who might be either interested in what you are creating or to whom you might be able to contribute something useful. 2. try to find someone who clearly understands the needs of the organization and who has some painpoint you can help with. this is unlikely to be the ceo, because their painpoints are very high level and abstract. it will be some technical guy who has a bunch of tasks to do, some of which theyd be happy to offload. do those tasks for them, earn karma, youre in.

Make sure you know what they want from you. Not clear requirements could mean there are problems inside the company or they don't want to deal with you too much. In either case not clear requirements could be beneficial or very non-beneficial for them since if you aren't sure what you are building you might build anything that works from your point of view. Make sure you sort this out before you build it.

Although a very different situation company wise I did a similar remote internship once. My coping strategy was to find small bugs that you understand and fix it if given no direction - it's great way to learn, assist and keep out of trouble.

Honestly having a startup take on an intern sounds nuts to me... I don't really have any sound basis for advice since my only experience with interns was having them join my team at BigCo this summer, so other comments here are probably better suggestions. Still here are a few thoughts that come to mind you might want to chew on.

Imagine yourself as a part time employee rather than an intern. Imagine if you don't figure out how to impress, you'll be fired. (As an intern you're basically fire-proof.) This means that you need to become more autonomous and take the initiative. If something is unclear, creatively interpret it into something that is clear, and work on that. Make some progress, or write up the more concrete version, and get feedback. While waiting for feedback make more progress. If you are blocked, ping other people on the team to see if you can help them out with anything, or if nothing else find bugs, fix bugs, and/or write test code. There is always stuff to do.

You mentioned an example task "tell whether a picture is of a bird", if that's all I had to go on then I'd search for a few online image classification service providers and write a shell script or whatever to send the picture to them and report back. Done. When showing the implementation or the write-up in review, if there's something that the CEO doesn't like about the solution (he wanted you to do it by hand, or wanted you to use a particular machine learning or computer vision toolkit, or integrated with a web api, or wanted you to go out and take a bunch of reference pictures to train a neural net on...) then his complaints will make what he originally wanted more clear. Repeat.

For the remote aspect in particular, schedule a daily (or at the very least every other day) one-on-one meeting over Hangouts or Skype with the CEO. Time box it to 15 minutes though 30 might not be bad either. If the CEO can't make these, ask him to find someone who can and who will effectively become your new supervisor. You want these meetings to first be about any concerns you want to raise (like feeling directionless, or that some deadline is too hard for the vagueness of the task) and second about your general activities of the previous and coming day so people are in the loop with what you're up to. Also encourage the whole team to get on irc/hipchat/slack/matrix in an all-team channel. Assuming the company consists of more than just you and the CEO, it's crucial you have contact with some portion of the rest of the team, and be able to ping them in real time to ask "can we jump on a hangout meeting real quick to discuss x / share my screen and look at y?"

i don't think your institution should allow this. reason is an internship should be about learning. if you are on the floor you will learn by osmosis. if you work remotely you won't. as for you, skype or slack a lot. maybe you will still get something out of it. try your best to implement the feature anyways even if it is a tight schedule. you will likely be evaluated on that.

This is a core issue on remote working. Not many people talks about this because still remote working is something quite new.

Look for an internship which is not remote.

An external intern?

Something seems awry.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact