Very much this. I think it's worth fighting against anyone who tries to dismiss these as not actually "pay"walls just because they don't require literal money, although I'd understand if other people want to head off that line of apologism in advance.
I'll second "I think it's cookies, but can't authoritatively confim". (I use wget, which doesn't save cookies across processes unless explicitly told to.)
That's great to hear! Just don't take my code as an example of any good practices, I have no background in HDLs and this is my first big project, so it's all very hacky.
We had a similar problem - a lot of pull requests being stuck in a back-and-forth remarks and fixes. The "social" solution was to increase the amount of communication in the team: instead of everyone having their own tasks and working in a silo, we made multiple people (ideally, the whole team) responsible for a task, splitting work as we go. The technical solution was to use pair programming instead, at least for some changes. Both worked really well.
Pair programming achieves a similar result to code reviews (another person knows the code very well, and is able to criticize it and improve on the design). It also does it much better because the review is done as the change is being made, and not after the fact, which improves the understanding of the reviewer and allows them to give immediate feedback.
The old code review process still works as a fallback, and is especially good for small but tricky changes: I need to do something novel, it's not a big change but there are a lot of ways to do it, can you comment on my approach.
One other thing that we also ended up doing is "ping-pong pull requests": if you give me a pull request, I don't just criticize it leaving the issues for you to fix, I fix them and leave that for you to review. Then you can do the same, etc. As a result, both people get better acquainted with the code, instead of just one of them being the "owner" of a change.
We tried a few methods and eventually went to pair programming. But never tried the ping-pong pull requests. It sounds interesting. What gets me off for pair programming is that it's not always feasible. If the other person who could work with you is on another task you spend a lot of time try to play catch up. How well did the ping pong work?
It works well. I think with the original pull-request process we basically had a mental block that only one person is allowed to write the code, and the reviewer can only comment. This can be frustrating especially if you know exactly what needs to be fixed. If you just go ahead and make the change, you save both people's time.
I guess one place where it fails is that it's not very educational. If you're tutoring a less experienced programmer, you don't want to fix the mess after them, you want to teach them how to doing without you the next time around. In that case, I either leave the fix to the author, or fix the issue as they watch.
I'm really curious how the ping pong PRs worked out. I've often wanted to do this - both when reviewing code and having code reviewed. Especially for relatively small changes it can be almost as much work to describe a change as it is to implement it and give a little explanation for why.
We provide an online coding test engine for recruitment screening. Think programming contests/olympiads but much easier (or FizzBuzz but slightly harder). Some of our programming problems are also freely available for training (see https://codility.com/programmers).
We're a small company (about 10 programmers and 30 employees in total) with many ideas how to expand our product. For me, the most interesting part is that at our scale, any contribution you make is very visible, and that there are plenty of opportunities to try out something new. I have been working with Codility for 2.5 years now and it has been real fun to see the team grow, improve our skills and learn new things.
As for the technical details: we are built around Python, Django and Postgres (along with some low-level C, as well as Ruby in the infrastructure code). We practice code reviews, pair programming and continuous delivery.
We are currently looking for full-stack software engineers; as well as people with strong frontend experience. For details, see https://codility.com/jobs/, or just e-mail me at pawel@codility.com.
We're currently looking for experienced software engineers for a full-time position in Warsaw.
Our product is a coding test engine. We're helping companies recruit by providing simple, impartial assessment of programming skills at an initial stage of the process. Currently this means basic algorithmics (e.g. "write a function that does this and this, and figure out how to do it in linear time"), but we're also experimenting with other types of programming tasks.
We're still a small company (less than 30 people) with lots of ideas on what to build next. I've been here for two years now as a programmer, and I really enjoyed seeing how far we have come and how much we have been able to learn.
Our development team has seven software engineers and two sysadmins. We have a continuous integration cycle, code reviews and some pair programming. The technology stack includes Python, Django, Postgres, Celery and Chef.
We're currently looking for experienced software engineers for a full-time position in Warsaw.
Our product is a coding test engine. We're helping companies recruit by providing simple, impartial assessment of programming skills at an initial stage of the process. Currently this means basic algorithmics (e.g. "write a function that does this and this, and figure out how to do it in linear time"), but we're also experimenting with other types of programming tasks.
We're still a small company (less than 30 people) with lots of ideas on what to build next. I've been here for two years now as a programmer, and I really enjoyed seeing how far we have come and how much we have been able to learn.
Our development team has seven software engineers and two sysadmins. We have a continuous integration cycle, code reviews and some pair programming. The technology stack includes Python, Django, Postgres, Celery and Chef.