There and Back Again, a Work’s Experience Tale @thinkWhere by Joshua Fawcett

Ever since I was a child I have been amazed by the wonders of maps. When I was small reading the hobbit I was more intrigued with where the characters were on the map then the actual story. I love how maps can so clearly give you an idea of a place without you never visiting it. This passion has developed since then moving away from story books and on to more advanced maps and the future of the mapping world, Geographic Information Systems (GIS). The GIS world has allowed me to explore the amazing ways in which data can be displayed in map form. Leading me to exploring mapping further by studying a BSc Geography degree at University College London to further explore my passion for GIS. So, when the opportunity to do a week’s placement at one of the UK’s leading GIS mapping companies came up it was one which I could not turn down.

josh pic

Me (Josh Fawcett) with thinkWhere Logo

The first day at the company I was welcomed into the Agile way of working with the 10am daily stand-up ceremony. This was my first ever exposure to the Agile way of working a method of working that is used by many tech companies moving away from the more traditional waterfall method of working. The agile way of working essentially follows the holy Agile Manifesto.

 agile manifesto

Agile Manifesto

During my time at thinkWhere I was allowed to see the inner workings of the business attending various events. As I had joined the team mid-way through a sprint (a 2-week period of work) I was able to get an insight into the Operation Team Backlog Refinement meeting. This is where the team decides together how long each story (task) will take by putting forward a rating of the difficulty of the task rather than giving it a set length of time. Furthermore, I was given my own stories to complete and progress them along the four sections from to-do all the way to done (see image below). This type of management and progress checking is one which I will apply to other large-scale group projects that I will do in the future.

Screenshot

Jira Dashboard Active Sprint Tacker

Alongside observing the various ceremonies at thinkWhere I was allowed the opportunity to speak to the amazingly kind and friendly employees. The team at thinkWhere are from diverse backgrounds allowing me to gain an invaluable insight into the true working of a company that deals with GIS is like in the commercial world. Allowing me to see GIS outside of the academic sphere and in the practical and commercial sector the real world will be beneficial in my future career. Getting the opportunity to present at the valentine’s edition of the companies monthly Meet and Eat was an amazing opportunity to present outside of a university environment. Discussing the work I completed over the summer mapping Biodiversity Opportunity areas for the Tees Valley Area was a true confidence builder. During this session I got the chance to listen to an interesting piece of work about ‘MapAction’ learning how GIS is applied to humanitarian crisis situations around the world.

IMG-20180216-WA0000

Presenting at Meet and Eat

While doing my placement I was given the opportunity to attend a course about the basic introduction to PostGIS. During this daylong session I learnt how to load and manage spatial database something which I have never done before and aim to explore further in the future. Furthermore, following the advice given I have expanded upon my python and other coding skills learning the coding languages that are essential for the development of the open source GIS systems.

POST GIS PICTURE

PostGIS User Training Certificate

Just like Bilbo Baggins on his journey I too have learnt a lot and overall I have gained an experience which is invaluable. I have learnt things from my weeks’ worth of experience that will stay with me forever. Helping me greatly in later life to develop my career path giving me inside knowledge about the workings of the GIS systems. Whilst also giving me advice and tips on how I can improve my CV and help to further enhance my career opportunities.

My gratitude and thanks goes to all the team at thinkWhere who has made my time here unforgettable and thank you for making me feel so welcomed.

thank you

Address Search OS OpenNames with PostGIS, SQLAlchemy and Python – PART 2

Part 1 of this post outlined how to configure a PostGIS database to allow us to run Full Text searches against the OS OpenNames dataset.

In Part 2 we look at writing a simple Python 3 CLI app that will show you how easy it is to integrate this powerful functionality into your apps and APIs. Other than Python the only dependency we need is the SQLAlchemy ORM to let our app communicate with Postgres.

address-search

Installing SQLAlchemy

SQLAlchemy can be installed using pip. It is dependent on psycopg2, which you may struggle to install on Mac without Postgres present, which is frustrating (however solutions can be found on Stack Overflow).

A simple address search CLI

Let me draw your attention to…

Hopefully this script is fairly easy to follow, but there are a couple of lines to draw your attention to

  • Line 4 – Note we have to tell SQLAlchemy we’re using the Postgres dialect so it understands TSVECTOR.
  • Lines 8 – 12 is simply SQLAlchemy boiler plate that sets up our connection and session for the app. You’ll need to swap out the connection details for your own.
  • Lines 17-20 I’ve chosen to map only 3 columns, you’ll probably want to map more.
  • Line 25 – is very important, here we append the OR operator to every word the user has supplied, meaning we’re returning addresses. You could extend this to allow the user to specify on exact match operator and change this to an & search.
  • Line 26 – Finally note we ask SQLAlchemy to match our search, and importantly we must supply the postgresql_reconfig param to say we’re searching in English. This is vital or you wont get the matches you expect.

Running our app

We can run our app from the command line simply by entering the following command:

python address_search.py 'forth street'

And we see our app print out all matching addresses that contain either Forth or Street 🙂

Ends

Hopefully you can see how easy it would be take the above code and integrate it into your apps and APIs. I hope you’ve found these tutorials useful. Happy text searching!

My work placement week @ thinkWhere

My name is Yacouba Traore. I am currently studying my second year BSc (Hons) Information Technology at Teeside University School of Computing.

I have had a great week placement at thinkWhere. During my week placement I was presented with a variety of opportunities. I had a great chance to meet everyone from the various parts of the business including CEO, Portfolio Manager, Business Managers, Accounts Managers, Developers, Service Desk Consultants and Office Administrators.

I have learned how the agile development systems work such as Scrum, as well as the differences between Agile and Waterfall. I have taken part in the different ceremonies including daily stand up, backlog refinement, demo and sprint planning.

Attending the Scrum daily-stand up

I have also learned about GIS (Geographical Information Systems) and the theMapCloud. I have also created my own map using QGIS where I am from in Côte d’Ivoire (Ivory Coast).

My first QGIS map of Côte d’Ivoire

The thinkWhere development team also worked with me to develop my coding skills including help with JavaScript, HTML and CSS using PyCharm. I used these skills to script a page showing a graph of theMapCloud usage metrics.

The role has allowed me to learn key skills and competencies of IT and business systems. On top of this I delivered 30 minutes of presentation about myself and a project I am working on at university.

One of the best things about the company is the people. They were very friendly, approachable and well organised. I have also made a great network of colleagues and made new friends.

I have really enjoyed my work placement. I have learnt a lot and have gained skills that I will take forward with me. I have also been given many opportunities and many new experiences. I’ve gained a deeper understanding of how large IT projects work, which is going to help me in the future.

Developing my JavaScript, HTML & CSS skills using PyCharm.

Being part of this placement has also helped me to develop my interview skills and my job prospects. It is also very valuable experience for my CV.

I hope to be back at thinkWhere again one day!