I can't speak for ESOFund, or similar companies, as I have never used them. My best recommendation would be to talk to a tax accountant and explore your options. You may also consider a secondary market sale now if you are allowed by your company.
That said I recommend Chade-Meng Tan's 'Search Inside Yourself'.
Chade-Meng Tan began his career at Google as software engineer and later transitioned to teach a course that this book describes on emotional intelligence, mindfulness, and self-awareness. Allegedly, the course was quite popular at Google. I highly recommend the book.
It has completely changed my thought process and helped me with self-realization.
Not CS relevant, however an interesting read.
Perhaps Dropbox will open source the project and the community can keep developing features and maintaining it.
It doesn't matter how much you are going to pay, someone paid more (Dropbox) and now they want exclusivity on the garbage can they are going to put this in.
I would love to see more companies shutting down services open sourcing them, but it's a lot of work and once you decide to shut something down you want to also cut the losses.
Having spent a lot of time assessing my team's needs and trying to figure out a solution that works, I'd add that picking a tool is the easy part.
Since most of these tools are very flexible in how you use them, without enforcing incredibly strict workflows/process of their own, the really tough part is defining your own workflow/process. The even tougher part is getting people to actually follow that.
A task management tool is only as effective as it is religiously used by all involved. The moment a project conversation gets side-barred into an email thread, communication gets scattered and is no longer consolidated. Someone consistenly forgets to update their project status every time something changes? Suddenly others are out of the loop, and others stop updating project status because it that seems to be acceptable.
While you don't want to be a control freak about this stuff, it is critical to make sure any user is committed to using it religiously. It is also important to make sure the process is clearly defined in a simple, SHORT, and easy to find list somewhere. Expect lots of questions on edge cases for "how do we handle X," and think of good ways to give friendly reminders to those who forget to do something, and less-friendly reminders to those who are frequent offenders.
But, as a non-engineer, I don't think it really affects you enough to factor into the equation.
1) Will Clojure provide a competitive advantage in terms of cost savings and productivity?
Maybe. If they're experienced at Clojure and are good engineers to begin with. But its not likely enough to base your decision on.
(I argue and hope that it does provide productivity advantages for a variety of reasons, but I wouldn't be confident enough of this to base your decision on)
2) Will Clojure provide a hiring advantage because engineers are excited to work with it?
Maybe. Are there excited Clojure enthusiasts in your area who want to work on it? In my own experience, this may very well be true - I interact with a lot of enthusiastic programmers hoping for a job using Clojure in the user group. But, again, I'm not sure this is proven enough to base your decision on. Again, in my experience, the global Clojure community is exceptionally skilled and talented and have good sensibilities about what makes good, understandable, solid code and all Clojure developers I have spoken to are very happy writing Clojure. So if you can tap into these people, then that is definitely a positive for the company, but I'm not sure it will make or break the company.
Bottom-line is that Clojure is unlikely to be a top 3 contributing cause for success or failure, so, as a non-engineer who doesn't get any personal satisfaction from the language, I don't think it should be a major factor in your decision.
Great developers can be passionate about niche languages and in the short term it could be a recruiting tool for exceptional developers. But you have to balance that against the fact that if your chosen language is too far outside most other developers' experience you're greatly reducing the pool from which you can hire.
Let's say somehow you are able to find a team of five truly energetic self-managing Clojure developers. Yes, I would back that team if they were up against 25 average developers and associated managers.
But then how're you gonna scale? You can't just take normal developers, teach them Clojure, and expect them to get Clojure fever the same way your group of self-selected experts had. I mean, they are professionals and they will learn it, but you will end up with an ordinary development team simply using a uncommon language.
You cannot beat regression-to-the-mean simply by choosing a different development toolchain. You can only beat it by hiring the right people, often those who tend to fall through the cracks of traditional HR processes, and letting them recommend the tools.
Depending on the application there is probably a productivity advantage and you're certain to find a small number of very talented engineers. After that you may have to train engineers. If its a more interesting / profitable project you can expand the hiring pool by looking globally. Famously, Jane Street uses OCaml and it works out well for them.
I'd say yes in two scenarios, if you want a smaller team (and dont need to scale up too much in number of engineers; although you can switch languages later if the company begins to succeed) or if you have a more specialized project that benefits from the language and probably needs more of an academic background.
And I think you mean Clojure: https://en.wikipedia.org/wiki/Clojure
In some cases, choice of tech-stack can provide competitive advantage.
You could ask the CEO for specifics on competitive advantage Clojure provide and evaluate for yourself if it actually does.
I'd say the main argument against it, is that a decade ago the divide between LISPs and stacic languages (basically the mainstream at the time) was indeed huge. While today if you don't use a LISP you're probably going to go with a fairly dynamic and functional language anyways.
I'd only be wary if he has an absolutely religious conviction it's true. If it's an educated bet then it's fine in my book.
Using Clojure will not prevent the CEO from turning out to be a maniac and hothead.
Other unrelated questions:
Are they going to pay you at market rate? (Are they going to pay you??)
How much equity would you get? (My usual joke is that if it's more than 20% you are a cofounder and if it's less than 2% you are an employee.)
2) It will have some appealing for some developers yes, but the pool of talent will be smaller than a more mainstream language
2.If salary offers are ridiculously low side, this usually indicates that there are problems with money in the company,or that company is offering something which will substitute for the low salary (really cool tech, everyone wants to work there, remote work, perks, etc.) Recently, it is mostly been the former.
3. Worldwide talent availability and competition from multinational corporations has made the engineering job market less lucrative in the US for engineers.
I prefer the "meet and greet" approach to job hunting. If we have a good conversation about their needs and how I'd satisfy them, I'm inclined to feel a little insulted when a resume is asked for.
My first job: my high school CS teacher knew I was good with computers anecdotally. (He heard second-hand from another staff member that I had looked at another student's buggy code, written in a language I had never seen before, and identified and fixed the bug in a few minutes, before I had ever taken a formal CS class at the high school.) One of the teacher's former students had a small business that was hiring people to do some one-off data entry work over winter break and asked if I wanted to give it a go. (I said yes.)
Boss liked my work ethic, and offered to hire me back the following summer to work on their C#/ASP.NET code base (even though I'd never coded C# in my life).
There is no desktop app, and the settings aren't as customizable but the bundling feature makes up for that.
The shortcuts are Gmail compliant so you can use whatever you are used for with motion/archive/delete and more.
I've used Postbox, MailPlane3, Mailbox, Mail and a lot of others, Airmail is the best one so far.
Too many different users from one IP
the VPN provider uses IP space from their hosting provider and normal users normally don't have IPs from a range where you'd expect servers
Someone ran bots from the same IP range (hosting provider)
Eventually we were able to pinpoint this to specific toolbar that was bombing Google with PageRank requests.
After removing this toolbar- all went back to normal, so perhaps some users that using the same VPN provider are using some sort of tool and abusing google.
God only knows how bad this is going to be for kids that are now growing up with youtube.
You're probably used to extracting information you want in a very short period of time via sites like StackOverflow or Wikipedia or whatever. If you're like me, when you encounter something that isn't going to give you the gold quickly, you probably move on to something that will.
You're used to the quick turnaround, so when something takes longer it makes you feel like you're squeezed for time.
For example, I have plenty of physical programming books. A lot of the time I know that the answer I seek is in one of those books. Sometimes I even know which book and the location in that book. But guess what? I still go to StackOverflow first because it's quicker and someone will have already summarized the book. I'm so used to getting information quickly, that actually having to look for it is unthinkable. It _feels_ like I don't have enough time to read the book myself, but that's really not true at all.
That nonsense aside, I was doing what you're doing until I learned an important lesson. I found that I will not gain anything of value by reading quickly and inattentively. If I am spending my time skimming articles, forum posts, stack overflow, without doing something like taking notes, I'm just teaching my brain that most information is useless to me. The sooner I learned that lesson, the sooner I was back to reading books.
I started reading again when it became a lot more convenient, thanks to the kindle.
I think I finished reading all the Wheel of Time books because of the convenience of the kindle (it gets boring around book eight, before a well deserved end).
Paper books are heavy and expensive.
It doesn't work for all books, as it is not a good PDF reader, but for anything that's more text than graphics or layout, it's a huge improvement.
That sort of hits on the other major reason for cyclic reading. My tastes and interests change. Sometimes the right book comes along at the wrong time...and sometimes the same right book comes along twice, by which I mean that one of the interesting things about getting older is that rereading books is not rereading the same book. The greater narrative of which it is a part has changed as I have changed.
One of the other features of getting older is that not finishing a book doesn't bother me anymore. I'm ok if a book doesn't speak to me or stops speaking to me. I enjoy finishing books, but don't see not doing so as quite the moral failing I once did. Maybe I'll come back. Maybe it wasn't that good. Maybe it's overdue. Reading for pleasure is supposed to be pleasurable and the suffering of a hard book or long book or a challenging book has to be worth it, and making it worth it is the author's responsibility, not mine.
Anyway, not having time is the biggest constraint, e.g. currently the time slot that I had been using to read is being used to journal. It's a tradeoff.
2) Try to use small moments of free time. As an example, if I have more than 30 minutes of free time, I read some pages of a book.
If you stop to think about it, you are probably going to remember recurring moments in which you had 30~ minutes of free time. Instead of using it to read Hacker News or browse Facebook, read something. Commuting is a great example.
In a nutshell, he argues that our brain gets better at things that we do a lot, and worse at things we used to do a lot but now do a lot less. Reading is not different from any other activity in that sense.
And many people nowadays don't read many long, hard books anymore, and instead quickly skim short articles and then switch to the next.
So we get better at quickly getting bits of information from short articles, and worse at staying focused for an hour on the same demanding text.
I find it hard to argue with.
I've enjoyed this article that was recently on HN http://www.nytimes.com/2015/11/29/opinion/sunday/addicted-to...
I think your comment about "squeezed for time" probably explains it. You're probably slightly stressed or burned out through working too long hours. All the evidence suggests that working too many hours is detrimental to productivity, and your inability to focus seems to be proof that your productivity is suffering.
Try relaxing more and reducing your working hours.
I would suggest reading some books from 'A Very Short Introduction' series. Each topic is written by an expert in that field; and is about 130-150 pages. I have read books on Marx, Foucault, The History of Life. Next up is Metaphysics; followed by Logic, Planets and Fractals. I am enjoying reading these in a cafe!
What I find myself doing now with most long-form Web or mobile content, as well as printed magazines and newspapers, is skimming to get the basic facts or quotes and then moving on. I just don't have the time or attention to stay focused anymore.
As for books (fiction and nonfiction), I find myself skimming when I using the Kindle. The Kindle Fire is even worse because of the easy access to other distractions. For printed books I can focus but I have found my threshold for abandoning a book is much lower. I did this recently with a novel by an author I used to love; I just felt the characters in the new novel were wooden and I noticed some basic editing errors. I returned the book to the library after about 40 or 50 pages.
As for the reasons behind this: I am not a programmer so for me the issue is not related to dealing with short lines of code. I think it is a combination of information overload, easy access to screens, and training our minds (through exposure to text messages, tweets, online updates, short video clips, etc.) to prefer condensed communication.
The trend makes me uncomfortable, but on the other hand, I also see it as part of the evolution of media and society. If we look back through history, we can see how other new media had a similar impact. Newspapers, film, and television changed styles of writing and peoples' preferences for reading materials and storytelling. Then, as now, there was great discomfort in the way media and storytelling evolved. A 1961 speech by the then-chairman of the FCC called television a "vast wasteland." If you go further back, there was negative reaction to the introduction of radio, the use of photos in newspapers, and even opera, which was seen by 17th-century British intellectuals as "chromatic torture." There has been a lot of thoughtful expository writing about this; if you are interested (and can manage to read an entire book) I recommend checking out Mitchell Stephens "The Rise of the Image, the Fall of the Word" (1) and Walter Ong's "Orality and Literacy" (2). They are somewhat dated now, but I think they really documented important transitions from antiquity to the end of the 20th century.
Jokes apart ; attention span going down is certainly a concern but do you think we all are getting way more lazier? Shortcuts, one line stack overflow answers, instant results and 2 min quick fix tutorials are not just killing attention spans but also making us lazy and bad developers.
I've concentrated more on slimming down my book shelves by getting to all of those books that I always wanted to. I'm finding them more illuminating and enjoyable than any short article. I find them more likely to change my viewpoint than any catchy article could because someone dedicated months, if not years, to put their work out there.
As far as finding time, unless you're busy from when you wake up into when your head is back on the pillow you can find time for what you feel is important enough. For me I've cut scrolling through articles and social media for something more substantial.
It works the same for me with sleeping. Whenever I start being uncomfortable on my bed, I switch to sofa for a while.
If you want to read, read paper books or read on kindle. Don't read on your phone.
I have a hard time finishing articles and, even, comments.
It's a very bad situation.
You might look into taking a few supplements or improving the quality of your diet. We tend to become deficient in certain things as we get older and this can reduce our ability to focus. Reversing the deficiencies I suffered has helped me get my brain back, at least somewhat. It's not like I can calculate math problems faster than you can type them into a calculator these days like I once could, but I do function better than I did when I was really ill.
Walk more, eat better, consider switching to a kindle reader. Perhaps it is health related, as it largely was for me.
Best of luck.
Reading, assessing, and learning are massively important skills.
You might have to write some logic to check the validity of the webcam, but I think that might be your best bet.
You rarely see a situation where a newcomer can take from day one on any well established player, on any sector.
I still remember the buzz when Toyota was to join F1. "Experts" where predicting a championship in 3 years time, because of bigger pockets compared to others teams. Well, never happened.
:( Sorry to see it go.
I did my first few years of school in Ukraine, where the importance of math was drilled into us regularly. My grandmother was a retired teacher and insisted on us learning our multiplication tables before we started first grade. My mom absolutely loved math and drilled its importance into us. At school math seemed like one of the most important subjects. We'd get a lot of homework in all subjects, but my most concrete memory of homework was sitting sometimes for hours in my room at home solving math problems.
In 1999 we moved to the US. School was very hard, but mostly because of the language barrier. I excelled at Math because a) it was something I didn't have to know much English for and b) it seems like for the first few years the things we were taught in Math class in the US were things we had already learned in class in Ukraine. Aside from the other kids laughing at my "weird" way to do long division on the board I was really good at it. The thing is - I wasn't good at it because I was enthusiastic about math at that point, just because we were going over stuff I had already learned in Ukraine.
As I started middle school I was still ahead of everyone for a couple of years, but eventually our US schooling caught up with our Ukrainian schooling. Suddenly we weren't going over stuff I already knew anymore, and our teachers didn't seem to drill math into us as much as they did in Ukraine on the whole. My grandmother was no longer there to insist that we practice aggressively and my parents kind of adopted a more Americanized attitude as well, I think.
By the time I graduated high school (by that time in Australia), I was "ok" at math - maybe a little above average. But I wasn't excited about it and didn't go out of my way to really internalise the concepts we were going over in class.
I now regret this deeply. I had the perfect opportunity to learn, both with that original approach from Ukraine and parents who were _very good_ at math. But I fell into complacency when importance of math wasn't pushed onto us as much anymore and didn't learn as much as I wish I did. I think I would be a much stronger programmer today if I had, and now I'm considering taking some sort of math course independently to get better.
Junior year in highschool, I bombed the first math test (37/100 points) and was about to drop the class, when the teacher pulled me to the hallway and urged I stay with it.
This guy was known for being the toughest teacher in the school and I was afraid of him, as was just about everyone.
I gave it a 2nd chance, still convinced I'd fail because this guy was impossibly hard. He'd assign 4 hours of homework each night, that even the smartest kids couldn't regularly complete. I'm not kidding, I'd regularly be up past midnight working on these assignments. You were afraid to not complete them.
So I tried real hard, and got better. By the end of the year I had the highest overall average in the class, mainly because his expectation of hard work urged me to put in effort I didn't know I could do.
Years later I took on Math as a 2nd major in college, directly because this guy taught me I could do it, even though I wasn't good at it.
The learning experience taught me that I could solve any problem if I had enough determination.
Then came my last high-school year, and I got the worst teachers ever. I started neglecting math in favor of more enjoyable subjects like Chemistry and Physics. And my grades started dropping.
After high school I got into software engineering, and I aced most courses, but math.
And until today, I say that those teachers may have cost me a lot. As I screwed-up many interviews when math questions came up. (I'm talking signal, and Fourier series, etc, ..)
I may be in a totally different career now if only I had teachers that cared a little more.
I really learned calculus 1 after taking it during summer classes for the third time in college. Learning it really well did something for me. It gave me confidence that other subjects within math were within my reach as well. I am not a mathematician. My eyes glaze over when I see funny symbols. But I know I can learn it if I have to.
So my advice: Give yourself a really good chance to learn some core math concepts. It will do wonders for your confidence.
So it is possible to get past this, if you want.
I had my sons play math based games, read math books full of paragraphs and not problems, and so on. You might try engaging in math as recreation. Read books like "The Number Devil" and "Alice in Flatland" and "The cartoon guide to statistics" (or any cartoon guide book ever on any subject, because they are all basically awesome) and "How to lie with statistics."
Try to figure out what pieces make you stressed and look for a way to fix that piece of it. For example, if it is about dealing with people face to face, then email them an answer. Something like that can help break the pattern of stress and help you reboot your emotional relationship to the subject.
It's clear that it's a psychological thing. If I were you, I would go watch 'Good Will Hunting' movie (and watch it again if I think I had already watched it) and substitute Hunting's negative 'personal experience' with 'mathematics related experience' and assume that I'm 'Will Hunting' (while watching the movie :-).
My personal experience is little different. I didn't have any negative experience/memory when I was learning mathematics (and science) at school; instead, I always felt comfortable with any STEM related course/subject. But I had a very miserable experience when I had to learn English as a second language at school.
At that time, I started strongly believing in the idea that no matter what I do, I will never be able to learn English as ESL as it always felt like an alien subject (literally :-)) and there was nothing I can use to get a handle on it. No wonder, I felt nervous and hopeless in my English classes.
Somehow I was able to reach college (in my country it corresponds to the grade 11-12 of high school education in most western countries) with shear brute force. In the 11th grade, for the very first time, I had an English language teacher who gave me some hope that one can learn and overcome all language related problems. Though he only taught English literature (which can be more intimidating when one is at beginners' level with lots of self-doubts and anxiety), his teaching style was really inspiring and it changed my whole perspective about learning a new language. Later on, I realized that it wasn't my (or other students who couldn't afford tuition fees of private ESL teachers) faults that couldn't learn the language, it was the teachers' fault as they were not really qualified to be English language teachers, at the very first place.
Now I feel quite comfortable with English language and afore-mentioned story is only a memory now, one from the distant past.
1- to be precise, it was my third language I had to learn at school in a non-English-speaking country; I lived in a deprived part of the country and had a financially humble background.
2- memorized anything English related to get into the next class and didn't let any English language related handicaps stop my progress.
3- at-least that's how I felt at that time. I distinctly remember, some of the students, I personally knew, were only finding insignificant flaws in his English language related skills.
4- I'm very far away from being an expert in English language but I'm very happy with my progress I've made till now.
Sure. Use a browser whose creator isn't an Ad serving company with a business model built entirely around capturing and analysing massive amounts of product (you. you are the product) data.
That would make you one of the 600 million people using that service, whether you realise it or not.
Alas, other browsers use it too without any warning, although you can turn it off it is not easily discoverable:
As suggested, add sb.google.com or whatever endpoint is used to /etc/hosts or HOSTS file.
There's all manner of things that it will do.
1) try to see if there's a real internet connection2) check if it's the latest version3) log in with your google account4) sync passwords5) update shared history6) update chrome apps
I've probably missed some things out, but that's what I can think of, off the top of my head.
Tools like Fiddler should allow you to see this data in plaintext, though identifying what information it contains is another step.
If you are on Arch Linux, binaries are available on the AUR: https://aur.archlinux.org/packages/inox-bin
Don't use Chrome?Build Chromium from source.
- Don't ask things you can easily find yourself. I've had junior engineers asking me "does git blah has a flag for ...?". It's disrespectful of that person's time.
- Don't question every tiny little thing you come across. Organisations can't maintain perfection, there's gonna be ugly things and people are aware that there's always room for improvement. Sometimes there is complicated history behind things that look stupid on the surface. Some things are the way they are just because they are. Not everything has some grand reason or justification behind it. Sometimes people keep asking questions like "Why was this written this way? Why was it not written that way? Why can't we make it better? Why can't we make it faster?"
- Remember the ugly crap you are seeing today was someone else's shiny shit some time ago and you are not an exception. The cycle will continue and the perfect little happy function you are writing today that's gonna solve everyone's problems is going to be the next person's ugly crap to rewrite and refactor and clean up after you have moved on.
Rule #1: Never ever stop tinkering or hacking on your own interests.
Rule #2: The passion to code will come and go, but keep your mind and body razor sharp with quality food/exercise/sleep.
Don't try to reinvent the wheel. Every problem you're trying to solve has probably already been solved.
Verify all of your assumptions - ask questions, and realize the context the answer was given (i.e. the same answer may literally not apply to production vs development enviros or one language/API vs another).
Learn how to debug (this is an art), write tests, formal and informal QA procedures, write documentation, and how to get your code pushed upstream (the process) without breaking the system or anyone else's code.
Even if you've mastered the problem domain, most teams limit the ability to contribute too much the first couple of weeks because you need to earn the trust of your team (usually via a combo of defect-free code, humor, and general geek knowledge). Once trust/confidence in your ability is established, you will have plenty to do, and lots of guidance if necessary. But you may not be able to implement your idea for a new foo() in the product until you have reached that point. But watch out for NIH syndrome too.
Rely on more experienced members to help you organize your code files and assets to begin with - align with whatever the team expects. There are project standards, naming conventions, etc. and most of the time it's not written down. Or self-conflicting / clear as mud.
Don't be the dev that delivers sub-sub-standard code that's full of bugs. It's OK if it happens at first, but understand why it happened (root cause analysis?)
If you get stuck, please ask for help (or pseudo code) sooner rather than later. Like an hour or less. Some team members will be better teachers than others.
Good luck and happy coding.
 Consult experienced wheel builders first to make sure that it's your ONLY option.
Companies, divisions and teams are inherently social and political. Communication is very important. Understanding other people's perspectives, even if you disagree. Keep your emotions in check. Take the high road. Don't assume malice when incompetence is a sufficient explanation. Go out of your way to help other people. It builds good karma that will pay you back. Get to know other people in the company. Talk to them and show interest in them.
Perception is king. The only thing that matters is other people's perception of your you and your work. That said, the best way to increase people's perception you is to be a hard worker. Manage the visibility of what you're working on and look for visible things to do. When a department is being downsized, it's the people who are perceived to be of high value that are retained. Remember that you're being watched, even when you think you aren't. Don't look at porn at work. Don't be the last to arrive at work or the first to leave.
Knowledge should be your main goal at this point. Knowledge increases your value. Learn new technologies. Absorb as much as you can. Become the expert in niche technologies used by your team/company. It is your responsibility to make sure you understand what needs to be done. Don't expect someone to explain it to you. Make an educated guess about what are the relevant for next year and learn those. Code at home. Follow your interests.
With that mindset, you'll know the product inside and out. No one will be thinking of you as Jr after a few months.
you can't ask too many questions, BUT when you do get an answer, write it down!
There is nothing that shows lack of effort when you have to spend your time as a senior developer repeating yourself because the junior developer did not write it down or could not remember it.
That is the only thing I would say to you!
And good luck and keep hacking!
Participating in code review is great: if they're OK with it, try reviewing senior teammates' commits as well. You can learn a lot by questioning why particular decisions were made, and you might even uncover a bug or two.
This is in contrast with senior engineers, which are expected to be able to handle responsibility for a large system or subsystem, and to be able to design and coordinate execution of work at a larger scope.
In consequence, junior engineers usually are not expected to have necessarily a very broad knowledge of different disciplines, methods and tools; they need to have sufficient knowledge to execute the tasks that will be assigned to them, and the ability to execute them correctly.
One particularly important skill to develop is how long one should try to find out things on their own, before asking for help. Many people fall into extremes -- either ask for specific help at every step (which hints at incompetence for that task) or waste many hours or days following a wrong path when a 5-minute chat with someone could have pointed them in the right direction (e.g. "use this library").
So my advice would be to find out which are the kind of tasks that you are expected to do at this point, which tools (including programming languages, database, web server, etc.) that you need to know, and focus on doing a good job in those specific tasks.
At the same time, slowly start increasing your scope (e.g. by doing reading and playing with different tools in your own personal time).
My main practical advice would be to make sure you understand the requirements of the tasks that are assigned to you. It's very common that senior engineers take something for granted, as obvious, but junior engineers miss those implicit requirements. E.g. "of course it needs to be highly available, fault tolerant, and with sub-millisecond latency, duh!"
Every engineer and every team has different styles and preferences, and the only way to learn is to ask (and also work with them for a while). Alternatively, ask if there are any documents that outline established team behavior/culture.
People are always willing to praise, help out, and even promote guys with good attitudes.
Companies do not pay you by value, generally speaking. Rare ones do, but most often you are paid whatever they can get away with.
That is why you are paid close to your junior colleague. Everyone has base living expenses that drive much of salary demand. Anyone without a job will undercut you towards that level.
But if you look at it another way, your pay is not much higher, but your savings rate is, after all your expenses subtracted.
Maybe he had a better sense of what he was worth, or what the company was ready to pay for his skills.
Ask for more money and that's it.
This book taught me how to create compilers. The author started from simple principles in grammars then slowly introducing a very simple compiler eventually adding more features to the compiler. I was able to adapt his method in developing a compiler. In later chapters, the book does a great job in presenting an application of what was learned from the previous chapters by implementing grep using automata theory.
I haven't read a lot of language books, but this one has good information on the various design choices one might make when building a language. Like the others listed in the comments, it's more implementation-focused than semantic design-focused.
About the language design itself, you might want to have a look to: http://www.drdobbs.com/architecture-and-design/so-you-want-t...These are very interesting guidelines from Walter Bright, the man behind the D programming language.
You can also use http://lmgtfy.com/?q=sicp for a deeper understanding of interpreted languages and language structure.
Engineering a compiler by Cooper and Torczon.
To answer your question, lftp  on the command line, cyberduck  on osx. Both of these tools are capable of connecting to sftp servers, too.
Also, sshfs (+ osxfuse for osx)  is definitely worth a try.
I've convinced several coworkers to buy it as well because it's so easy to use. My most favorite features is the ability to mount a server as a disk.
On a more serious note. If you ask for GUI clients here, Filezilla is still quite good. But better don't get it from SourceForge, as the package it with malware, adware, trojans and what not. Oh man, crazy how much SF messed things up in the past decade... but different story.
The Android framework team could theoretically make the necessary work to allow Swift code to :
-dialog with the framework APIs (so we would need need some kind of API bridge)
-compile to oat or bytecode format so that it can be read by ART (the vm used by android).
They would have to throw away and restart from scratch a lot fo the tooling though.
The Android frameworks team discussed the adoption of a new language during the fireside chat of the android dev summit.
The language in question was Kotlin (which would IMO a much bigger contender as the next language for Android). Their response was that adopting a new language means a massive amount of work for them and some very hard questions to answer like 'what about the people that still need/want to write in Java ?'.
Adopting Kotlin is not in their plans right now (it might change if in 2 years 90 % of the devs write their apps in Kotlin), especially since Kotlin already outputs bytecode, so it is 100 % compatible with the java APIs of Android.
This is even far less likely to happen with Swift :
-Apple controls the future of the language, Google can only lose from such a relationship.
-It is not compatible with the java APIs.
It strikes me as similar to how .NET is cross platform. Command line apps will run, but anything with a GUI would have to be written with a cross-platform UI kit.
You could also use an Excel Web App and leverage the JS API or REST API via Excel Web Services .
Other helpful tools:
- Google Refine
- Google Fusion Tables 
- Tableau (doesn't render tabular/grid views)
It's sort of like how Hacker News is for "anything that good hackers would find interesting," which sounds like it means something but really doesn't mean anything specific, and probably just resolves to "anything that correlates with the interests of the mods," like every other moderated community. Other than branding, what even is the point of using "Geek" at all?
But to actually answer you question, personally, no. I think there are already tons of sites which cater to "Geek culture" (or nerd culture or... whatever) of various niches, and of course if what you want in HN, but with invitation only, there is lobste.rs. Someone can basically set what you're describing up as a subreddit. I also don't like invite-only communities on general principle.
How would that be different than what we already have... right here on H/N?
Shameful plug (hope this is ok, this is my first HN comment), but I'm also working on a "social network for geeks" but is more specific to developers and designers: https://codebee.io/ It's a big hurdle to keep users active but it's a side project and haven't been able to devote a lot of time.