Closed alexliinc closed 7 years ago
I'll try to tackle the first one, and I'll let @nickandersonr tackle the second one.
A typical day for me at Imprivata...
7:30-8:00am, get in earlier than most to focus on clearing merge conflicts and broken builds. Stare at code side-by-side to find bugs and inconsistencies. Make small fixes until "everything turns green". 8:00am-9:00am, try to tackle my biggest project at the time. I created an employee shout-out board, a test machine management dashboard, I tried to create a Jenkins plugin, .... This is 50% Google, 25% coding new stuff, 25% debugging 9:00am-9:30am, stand-up and follow-up meetings. I was a Scrum Master so my job was to unblock team devs (get them better software, intro them to another dev, debug shit i'm familiar with that they're not). Other devs this is basically, "I did this, I will do this, here are my blockers..."
Now the schedule gets a little crazier, so I'll break it into proportions (6.5 hours left)
~1 hour resolving those problems I mentioned in the stand-up meeting ~.5 hour : various meetings ~.5 hour: talking to other devs 1:1 that I know have more expertise than I do in a thing I need to do ~.5 hour: putting out build fail fires or merge conflict fires ~1 hour: scripting shit--(e.g. "wouldn't it be cooler if we could migrate all the folders from PreRelease to Release with one button instead of dragging files one-by-one? yeah, it would) ~1 hour: necessary build stuff--(e.g. configuring the MSI (like an EXE) with new install keys or adding files to the package, adding a new build job for the new release (each version needs its own build)) ~1 hour: eating food, cuz not starving ~1 hour: hodgepodge (e.g. get back to that big project, professional development, "all-hands-on-deck" customer issues)
To that, I'll add a couple pieces of advice I wish I heard when I started a few years ago:
1) Establish boundaries of communication. For example, I checked email 3 times a day. That's it. If someone wants a quicker response, they would come to my desk or Skype/Slack me. Be sensitive to other people's needs, but be clear and stick to your guns, people understand. 2) Whatever you need to do to go "heads down", figure it out as early as possible. For me, it's headphones. But it could be taking your laptop outside or into a phone booth or conference room. Separating those times of "I'm working now" and "I'm talking to you now" is huge. 3) Any time you feel like you have time, and you overhear or get wind of a cool project, sign up immediately. That is how you'll learn, and how you'll get to know your co-workers, especially if the company is larger than 10 people.
Hey Alex,
What your day as a freelancer looks like depends on your client.
Some freelance contracts will require you to work onsite - in which case, your day looks much like what Zeb described above. You'll probably get paid more; companies generally pull in a free agent because they've realized their inhouse talent is not skilled enough and need an expert quickly. This can be kind of fun because you're given a bit of baseless respect/admiration as being a "solution", and can distance yourself from company culture you don't like. I would regularly skip company-wide meetings with top brass simply because it "didn't apply to me". On the downside - you might be left out of things you actually wanted to be a part of, like company picnics and other social events. I was often inadvertently reminded that I was not REALLY a part of their team - and that I'd be the first one to go when there was layoffs. That can get to you after a while, and make you feel uninvested in your work.
Working a TRUE freelance job, offsite from a company, can be really rewarding and challenging. Generally my day would start when I woke up naturally, had coffee and some breakfast, and had surfed the internet a bit. I would either pick up on whatever task I'd left off on, or start with emails/phone calls to get my general outline for the day. Time management is key here - without other people around, you might find yourself working only 4 hours a day, or maybe 14 - you'll have to make your own schedule and stick to it if you want any hint of routine. You'll also have to balance multiple contracts, as well as a future-work pipeline, in order to be profitable. On the upside, you have a huge amount of freedom, no real boss (you can fire your clients when they get annoying), and can take off time basically whenever you want. On the other hand, you won't have other developers to ask or escalate issues to when you get stuck; you might hit months-long dry spells where you're unable to drum up work. Even worse, you'll be your own project manager, accountant, and CEO - you might find yourself spending an entire day chasing down an invoice instead of spending time doing billable work. That being said, some people work this way really well. It really depends on what jobs you like performing.
Does that answer your question?
Awesome thank you guys!!!
What is it like working as a developer for a company?
https://www.sitepoint.com/full-stack-developer/ http://andyshora.com/full-stack-developers.html
What is it like working as a free-lance developer?
https://freelancing.stackexchange.com/questions/3479/looking-for-junior-full-stack-developer-job
Lols I asked me but I have no idea.