USS Dominik @ Pimlico


Basic info:
Opened. 14.09.1972  and that’s all that I can really say about this area. Pimlico station looks quite ordinary but I managed to find few interesting facts:

  • It is the only station on the Victoria line which does not have an interchange with another Underground/Overground line and/or national rail.
  • It is the least used station on Victoria line.
  • This station was last open on Victoria line.

When I started walking around my first impression was … this place looks dodgy as I saw a few weird people but while I  walk around I discovered that Pimlico has an interesting architectural mix and has few interesting little independent shop with cheese, Italian food and old cameras.

Is Good independent coffee place nearby?

My favourite place for coffee is Gastronomia Italia  (8 Upper Tachbrook St, Pimlico, London SW1V 1SH). It is a small independent place where they sell good Italian food and really decent coffee.

Is Good pub nearby?

My favourite pub in this area is Windsor Castle but it is near Victoria Station. I like architecture and ambience. They selling Samuel Smith beers.

Is Good restaurant nearby?

If you fancy a British breakfast then there is an amazing place called Regency Cafe ( Customer service is unique as the man shouting at you and you can sit on the table only when you have a


How looks process of finding job as software developer part 9 : HOMEWORK (Tests, Task ,etc.)




This is a NOT a professional advice.It based on my personal experience only and resources that I read on the internet.It will contain many grammar mistakes.Please drink double espresso and energy drink as an article is long and boring.


Homework (Tests, Task,etc.)

 Quite often in IT sector, you will ask to do:
  • on-line test
  • on-line task
  • off-line task


Some companies doing online tests to check your knowledge and it is pointless as most of them are copied and pasted from the internet. I had few interviews, where questions were the same and it very similar …order. After a quick research, I found few websites, that provide answers to questions. Maybe they check how quick you can find the answer on Usually, these questions ask about basics of language and framework and few ‘tricky’ questions.

Easy to pass, usually and pointless.


The good news is that tasks are more interesting to do. Especially, if you like programming.

They are usually not too hard BUT make sure that you do 1 task at the time and 1-2 per day. Why? If you will have many tests over and over again then you will more tired you are a focus on finish task rather than finish refactor and polish. It gets harder when you currently working.

If You just graduated, you need to make sure that you learn and practice following basics:

  • Know all funky stuff about Java (read many tricky questions about Java ) or your main language.
  • If you struggle with reasonable Code style follow well known open source projects code style like this:
  • Design Pattern (Head First book is the best for start or Gang of Four if you are orthodox programmer;) )
  • TDD (Good way to practice and learn to test with JUnit.).
  • Knows basics command in Windows and Linux.
  • Knows shortcuts in IDE.
  • Ensure you write (or README.txt ) with how to run program and tests

What is important about the task:

  • Should use right solution for the task. For example do not use list, where map is better (i like using lists and made this mistake) or don’t use bubble sort for sorting (I have done it too 😉 )
  • The project should have a reasonable structure.
  • Code must be formatted.
  • The code should be simple.
  • Code style should be consistent. Remember! There are lots of randomises in what person who checks your code likes. There are only two things which you can do:
    • Check if the company has an open source project on GitHub, BitBucket and etc. if yes, download and follow it their code format and style.
    • Ask for what you should focus on and ask how looks they code style.
  • Create Readme.txt to explain how to run the code.
  • Prepare ‘template’ for new projects.
  • Try to apply patterns in right cases.

Your process should look less like that:

  • Prepare Energy drink, coffees, beers or other beverages. Prepare some snacks .(energy bar or breakfast bar are the best).
  • Read question.
  • If you don’t understand anything. Ask for clarification.
  • Design your application.
  • Write tests that will answer questions and tasks.
  • Write a program that passes all tests.
  • Double check it.
  • Write readme how to run a program.
  • Check if your instruction in readme works.
  • Send it.


( and so on)

It is a great idea but very troublesome in practice. They similar to an offline task but they are few extra points:

  • You need practice on that site because writing in the online editor is full of quirky problems.
  • Ensure you are in place where internet connection is stable。
  • I prefer to write in IDE and then copy to the online editor.
  • They can be time-based so be careful. I forgot once about it and let’s face it my result wasn’t impressive.


  • Limit numbers of test to one at the time and 1-2 per day.
  • Read question few times. If you don’t understand anything, ask for clarification.
  • Prepare your process (my process is above, but treat this as an example, not something that you should follow blindly) and follow it.
  • Make code simple, well formatted, sensible structured.
  • Don’t be surprised, if 2 companies will have opposite opinion about your code.
  • Always ask politely for feedback.
  • Always upload your result even if you think rubbish. Always add a comment, if you believe that something could be improved.
  • if You find any company’s source code, follow their code style.

Doms learn Chinese: Word Game v18.1 released.

Doms learn Chinese: Word Game

You can download from here:
It is a content update release.
  1. Add some words. (words that become popular recently in China)
  2. Add few questions and sentences
  3. Correct few mistakes spotted by some user. Thank you
  4. Various minor improvements but nothing worth mentioned.
  5. Complete migration code to Java8 😉


What is the difference between a graduate, a junior, a senior and What is the difference between a developer, engineer, a team leader and an architect in software development?

Let’s start with the obvious and correct answer.
There is NO A CLEAR LINE when you become junior, mid-level, senior developer/engineer. There is NO CLEAR LINE which decides when you are a developer and when you are an engineer.

So .. How to answer questions?

  • What is the difference between Junior / Mid / Senior Developer?
  • What is the difference between Developer and Engineer?
  • What does mean from a company point of view?

Well … My eyes start to bleed when I read some emails from recruiters with some cutting-edge vocabulary from ‘marketing bulls**t’ dictionary to tell me how great role and company are without the focus on the description of what is a Junior role I should apply for (I saw Junior role with 5 years experience in some technology that exists for 4 years and so on).

I know most recruiters (80%) do not care about what they talking about it as they care about commission and Christmas bonus so I can understand them but companies description can be super confusing too.

I did some pseudo-research about it and I realized that there are no clear definitions for junior, senior, developer or engineer. I mean there are many definitions and answer to these question on StackOverflow but … they feel incomplete and incorrect.

I decided to write this to show my ‘loose’ definitions of these word with some explanations and examples.

Let’s start with seniority. Seniority varies from Graduate, Junior, Mid to the Senior role.

The main reason why there is much confusion about distinguishing when you start to become mid-level or senior person due to blurry understating of “Seniority”. For me: Seniority role based on the variety of experience in problem-solving not on expertise in particular language, framework or technology. Seniority does not depend on time duration. For example coding, 5 years in Java do not mean you become a senior person. Yes, you may be an expert in the syntax of that language but still, struggle to solve a simple problem.
Whole life cycle looks more less like this:
  • Student when you learn about problem-solving through exercise.
  • The graduate is a first professional role after you finish learning (at university, at home or online course) where you learn about solving real problems, life cycle and methodology. They are guided by senior and tech lead on how to be a better gamer … I mean … programmer.
  • A junior role is a place in your career when you focus on having fun with writing software and get exciting when you get more and more experience with solving problems and get much help from senior people.
  • Mid-level is a sweet spot where you solve interesting problems and write lots of clever code.
  • Senior Role is when your focus more on leading and helping graduate/ junior developers to become an epic programmer by guiding them through solving the problem and help them to make decisions and trade-offs and you focus less on writing code (you usually solve most complicated problem cases and enjoy more and more meetings).

That’s all.

What’s difference between developer and engineer?

At university* where I studied it means in practice it usually means clever students are engineers and less gifted students are developers who in teamwork behave as engineer’s slavers that perform simple repeatable tasks. In real life is not like that.
(*) It sounds bit negative but my overall impression of study computer science in Aberstywyth was great. I highly recommend.
What it means in the real world? Well, I will start with a conclusion that for me it is the same thing and I can use exchangeably because I  didn’t see any pragmatic reasons to distinguish between developers and engineers. I did some research and I understood that both developers and engineers write software. The difference is that Engineers write software (framework, library and/or fundaments for the platform) that is used by developers to write software that is built on it.
That’s all.

Where is an architect in this?

Software architect* focus on leading architecture solution for the platform and contribute code like engineers (yes, I believe software architect role should exist and they should write software too).
(*I apologize for all ‘Agile’ orthodox for swearing here.)
    It does not mean it follows strict mediaeval hierarchy where that junior developer does donkey work by taking order from tech lead who is a senior engineer who took part of software development build on fundaments of the platform created by Veteran Architect because the success of delivering great software in given time depends on collaboration and knowledge share between all of them in the team.

What about Team/Tech leader?

    For me, It is a person who is most experience with project, domain and has the ability to provide a bridge between business (Product Owner), Software Architecture (Platform) and team.


    When you describe your seniority and when company define who they are looking for then they should treat describe Seniority role based on the variety of experience in problem-solving and how this person will fit in the team. If you feel, you can distinguish between engineers who build core platform/ framework and developers that build functionality on your the platform.

Who am I in this context?

I am Sarcastic (mid-level) Java Developer. Why ? Because I have some experience with problem-solving using Java as my a primary language.
This is my view on what junior/mid-level/senior developer/engineer role means on the team.
What’s your point?
Share with me in comments her or on LinkedIn.