<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=60438&amp;fmt=gif">

We’re glad you’re here.

This handbook covers some of the key elements of the Thinslices culture: what our vision and values are, how we're organised, how we work, some of the principles we follow, as well as how you should use this information.

You’ll find this document to be a set of guidelines; it is rich in context and principles and light in formulas and prescriptions. You’ll soon discover that we like autonomy and we treat people as adults. We like clarity, but we don’t confuse clarity with a set of detailed instructions. If you have some questions you can’t find written answers for, don’t worry. We trust you to figure some things out on your own, and if you don’t, just ask. We trust those around you to guide you and we hope you’ll return the favor.

So, go on, try it. Do your best. Use your judgment. Make your own mistakes. Don’t wait to be told. Don’t wait to be given permission. The team is here to support you, but don’t expect someone to hold your hand.

Using this document

This document starts its life in a wiki where all elephants can edit & add whatever they like. They debate, discuss and engage.

Every now and then, Thinslices will take the latest version of the document, review it and discuss it if needed, and will issue an official update.

What makes you stand out?

We build teams that do a great trunking job in working with clients to achieve their technology goals.

Every step of the way, we put our creativity and engineering skills to work to enable them to succeed.

We thrive on solving challenges.

OUR VALUES

In Thinslices we act according to the following values. We understand not all of them will appeal to you equally, but to some degree, you should be comfortable with all of them, or you’re likely to have a tough time being successful here. They are our norms of behavior. This is how we treat each other, our clients and our partners.

award icon

Entrepreneurial attitude

Change is the only constant. Embrace it!
Every pain is an opportunity
Be part of the solution

learn icon

Team player

Care for your teammate
Lend a hand 
Win together (lose together)

transparency icon

Openness

Sweep nothing under the rug
Empower by sharing information
Be receptive to feedback and new ideas

trust icon

Engineering mindset

Find the root cause (ask the 5 whys)
Plan before you act
Solve like an engineer

autonomy icon

Diligence

Take commitment seriously
Be hardworking
Go the extra mile

 
These values are meant to represent specific things in our day to day work, not to be put on a wall and forgotten.

Our Structure

Our most relevant “unit” is the project team, and we’ve developed the entire company around this essential component. We are trying to develop high-performance teams to build and deliver world-class technology products to our clients. As such, our structure includes the following:

  • Project teams
  • Management and support teams

Instead of organizing team members into departments depending on their job titles, we strive to create high-performance teams based on a unique combination of people attributes and the Agile mindset, as follows:

People Attributes

  • Love for tech
  • Resilience & grit
  • Adaptability & low resistance to change
  • Self-development & drive
  • Humor
  • Courage
  • Enthusiasm
  • Altruism

Agile Mindset

  • Satisfy the customer's needs through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Work together daily throughout the project with business people.
  • Convey information to and within a development team through face-to-face conversation.
  • Promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Pay continuous attention to technical excellence and good design.
  • Reflect at regular intervals on how to become more effective, then tune and adjust behavior accordingly.

We don’t like to formalize things too much. We’re not the kind of people that like to build high walls between ourselves. We are all one team and our success is dependent on our collaboration.

Being Good

There’s two halves to being good:

  • One is the craftsmanship of our trade. Writing good clean code. Making realistic plans. Good designs. And so on.
  • The other half is being useful. Helping people. We are good when we produce value, and value is work that satisfies a need. We are good when we know our craft and we use it to add value to our client and those around us by solving their most pressing problems.

Both halves are essential.

Not only the engineer that chases abstract dreams without any connection to the world around them, and not only the one that wants to help, but doesn’t have the skills to do it.

In the end, what endures is that we will have solved real problems for real people. We will have made the lives of some people better by building working solutions for issues that matter to them.

Thinslices Playbooks

The Thinslices Software Developer understands and adheres to the Software Professional Manifesto. They are T-Shaped Software Developers, Responsible Engineers, Software Craftsmen.

The Software Professional Manifesto

Know what you are building

You should understand your client, their needs, their environment and always try to give them the best solution that you can think of.

Don’t be a code monkey!

Don’t deliver bad products

Under no circumstances will we ship something that doesn’t work. No schedule will make us do this, no yelling manager will make us do this.

If it is crap we will not ship it!

Write clean and maintainable code

When you write code you should take into consideration possible scenarios that will change requirements of the product. These changes shouldn’t end up into a rewrite or impossible estimations.

You must not give horrible estimates and you must not let the system reach a point where redesign is a must!

Don’t be afraid to tackle any challenge

When you see something in the code that is wrong, clean it instantly without fear, without hesitation.

You should clean and refactor the code with fearlessness and competence!

Quality should be your goal

You should go home every night and look in the mirror and say: “Man, I did an awesome job today!”.

You should always know that you did the best job that you could do!

Take care of each other

You should learn someone else’s job and know what they are doing. If a team member is absent the team should be able to continue the project.

Team members have each others’ backs!

Give honest estimates

The most honest estimate is I don’t know. You should find out what you don’t know and provide the range of the estimation.

People rely on your estimates!

Learn to say “No”

You were hired because you think before taking action. You are the ones who know and the only ones who have the knowledge to say No.

When you say Yes you make a promise and you will do whatever it takes to deliver on it. The worst is to say “I will try”!

Feedback is a Gift

Feedback has nothing to do with hierarchy. Anyone can and should give feedback to anyone. Feedback is not judgment. Feedback is not absolute truth.

Feedback is someone that cares enough to tell you what they think about you, in the hope that you’ll find the information useful. They may not have all the facts and they may not have interpreted some things accurately. That’s fine, they’re not saying you suck, they’re just calling it as they see it, from their point of view. It’s always better for you to know what they think, rather than to not know.

Thank the colleague who gave you feedback and remember to return the favor when you can.

The best feedback is short, even less than a minute, given on the spot and it is specific. As a general rule, we’re a pretty straightforward company and we don’t go to extremes in sugarcoating what we say. That having been said, do pay some consideration to people’s feelings. We all have them. Praise in public, criticize in private.

Learning

Learning is a big concept and it means different things to different people. We all have different learning styles, preferences and routines, and that’s ok.

We can’t function without deliberate learning. Without it, we don’t evolve as individuals, we don’t perform as teams, we don’t improve and we don’t innovate.

Regardless of the level we are at or the particulars of the job we’re doing we all need to evolve. Our learning affects:

  • our personal performance
  • the quality of our interactions and their result
  • the need to create a better environment for us to work in
  • our satisfaction with our own progress and quality

All in all, we learn so that a year from now our life will be visibly better than it is now.

Learning on the job

As part of the formal learning process or not, one of the best ways to learn is on the job. Especially with juniors, sometimes the most effective way to accelerate their growth is to embed them in a team, even if they are not billable, or for that matter very productive.

The simple fact of being close to a real team, helping with real problems, being guided by experienced colleagues is, very often, a better way to learn than theoretical study and theoretical exercises.

Skills That Create Value

In the future of work, roles are not as relevant as they used to be. For us and for our clients it's skills that matter. Skills that create value for us and our clients are the basis for performance, career development and salaries in Thinslices.

Software Developer Skills

Soft Skills

  • Time management
  • Estimate work items
  • Break work items into sub-tasks
  • Deal with uncertainty and get shit done
  • Understand and communicate requirements
  • Act, Speak and Think as a Professional
  • Software Developer as described in Clean Coder
Hard Skills

General

  • Refactoring
  • Unit testing and TDD
  • Implement well known software design patterns
  • Solve problems and implement algorithms using TypeScript, JavaScript
  • Apply clean code principles as described in Clean Code (there is no other version of clean code, so read the book)

Web Services

  • Design and implement RESTful APIs for web services
  • Design and implement GraphQL APIs for web services

AWS

  • Define and deploy monitoring, metrics, and logging systems on AWS
  • Design, manage, and maintain tools to automate operational processes on AWS
  • Implement systems that are highly available, scalable, and self-healing on the AWS platform
  • Identify key features of AWS services and use the AWS service APIs, AWS CLI, and SDKs to write applications
  • Develop, deploy, and debug cloud-based services using AWS and writing code for serverless applications using CDK
  • Identify which AWS services meet a given technical requirement and define technical requirements for an AWS-based application

React & Web Apps

  • Document React UI components using Storybook
  • Write tests for React UI components and pages
  • Design and implement React UI components and layouts
  • Design and implement Web SPAs with React
  • Design and implement Web PWAs with React

React Native & Mobile Apps

  • Interact with and use native APIs

  • Write tests for mobile UI components and pages

  • Troubleshoot and debug compilation and build issues

  • Design and implement Mobile applications using React-Native

  • Design and implement Mobile (Android, iOS) UI components and layouts using React-Native

Each role has a list of skills that create value. But the list isn't static just as the market isn't static. Skills that created value 5 years ago have evolved, some have even disappeared or have been replaced by new ones.

Autonomy

We believe in giving people autonomy. Not just formally.

Every team is autonomous

We encourage every team to think like a business. They have the autonomy to decide how they want to work to deliver a project, how they assign tasks between members and how they onboard new team members.

They choose the tools they want to use and they manage their learning journeys as well.

The context is comprised of the Thinslices vision, values, work methodology, processes, and general meetings.

Every elephant is autonomous

Regardless of the team or project you're on, as an elephant, you're responsible for your experience.

That means contributing with ideas, taking ownership of tasks, making decisions on matters you're accountable for, reaching out to other colleagues who can help you deliver your objectives.

So no "s-a intamplat", no excuses, no hiding behind processes. We're all here to learn, to grow and to deliver quality, to create value.

We're a team, we help each other and we all contribute to maintaining Thinslices an amazing workplace and a great company to work with.

Become an elephant

Check the link below to see what positions are currently open. 

If you're keen on becoming an elephant but don't see an opening for a specific job, you can upload your CV using the link below and we'll get back to you as soon as a position opens in your area of expertise.

See all job openings  >