Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Land a Good Go Job – Ole Bulbuk

How to Land a Good Go Job – Ole Bulbuk

GopherCon Russia

March 28, 2020
Tweet

More Decks by GopherCon Russia

Other Decks in Programming

Transcript

  1. How to Land a Good Go Job or what to

    watch out for so your new team member won't break the service 2020-03-28 Ole Bulbuk Senior Go Engineer, solarisBank AG; co-organizer of Berlin Go meetup; involved in hiring decisions for 20 years
  2. What to expect? Where to !nd (remote) jobs Peculiarities about

    remote jobs Job situation in Berlin Hiring process 5
  3. What to expect? Where to !nd (remote) jobs Peculiarities about

    remote jobs Job situation in Berlin Hiring process Technical interviews 6
  4. Where to !nd (remote) jobs Gopher Slack: #jobs Newsletter: https://golangweekly.com/

    (https://golangweekly.com/) Work with Go: https://workwithgo.com/ (https://workwithgo.com/) Golang projects: https://www.golangprojects.com/ (https://www.golangprojects.com/) We work remotely: https://weworkremotely.com/ (https://weworkremotely.com/) Remote OK Go jobs: https://remoteok.io/remote-golang-jobs (https://remoteok.io/remote-golang-jobs) Indeed remote Go jobs: https://www.indeed.com/q-golang-l-remote-jobs.html (https://www.indeed.com/q-golang-l-remote-jobs.html) 7
  5. Peculiarities About Remote Jobs Big experiment: currently we all do

    remote jobs Full remote companies have !gured things out 9
  6. Peculiarities About Remote Jobs Big experiment: currently we all do

    remote jobs Full remote companies have !gured things out This is currently getting better 10
  7. Peculiarities About Remote Jobs Big experiment: currently we all do

    remote jobs Full remote companies have !gured things out This is currently getting better It really is a matter of trust 11
  8. Peculiarities About Remote Jobs Big experiment: currently we all do

    remote jobs Full remote companies have !gured things out This is currently getting better It really is a matter of trust Make the employer believe that you perform well when remote 12
  9. Peculiarities About Remote Jobs Big experiment: currently we all do

    remote jobs Full remote companies have !gured things out This is currently getting better It really is a matter of trust Make the employer believe that you perform well when remote It often helps to accept lower pay during probation period 13
  10. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. 15
  11. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. Salaries are highly dependent on the location of the company. 16
  12. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. Salaries are highly dependent on the location of the company. Junior developers earn around 50K. 17
  13. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. Salaries are highly dependent on the location of the company. Junior developers earn around 50K. Senior developers earn around 80K. 18
  14. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. Salaries are highly dependent on the location of the company. Junior developers earn around 50K. Senior developers earn around 80K. Rare lead developers earn more. 19
  15. Job Situation in Berlin Language for almost all Go positions:

    English By far biggest market for Go positions in Germany. Salaries are highly dependent on the location of the company. Junior developers earn around 50K. Senior developers earn around 80K. Rare lead developers earn more. Most jobs are for mid- to senior developers. 20
  16. Hiring Process Screening interview with HR person Coding challenge Technical

    interviews Algorithms and data structures? Brain teasers? 25
  17. Hiring Process Screening interview with HR person Coding challenge Technical

    interviews Algorithms and data structures? Brain teasers? Cultural !t 26
  18. Hiring Process Screening interview with HR person Coding challenge Technical

    interviews Algorithms and data structures? Brain teasers? Cultural !t CTO or other boss 27
  19. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM 32
  20. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM Web API 33
  21. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM Web API Performance critical stu" behind interfaces 34
  22. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM Web API Performance critical stu" behind interfaces Many engineers love high performance stu" 35
  23. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM Web API Performance critical stu" behind interfaces Many engineers love high performance stu" Enough room for normal devs 36
  24. Advertisement bidding Low latency (ca. 50ms) request handling High concurrency

    Scalability matters Knowledge about the world held in RAM Web API Performance critical stu" behind interfaces Many engineers love high performance stu" Enough room for normal devs Few, small companies 37
  25. Cloud technologies Go for system programming Command line tools Low

    level programming Low latency services Highly skilled engineers 42
  26. Cloud technologies Go for system programming Command line tools Low

    level programming Low latency services Highly skilled engineers Few, small companies 43
  27. FinTech Use Go as modern Java Mistakes can cost a

    lot of money Web APIs Room for devs who test carefully 47
  28. FinTech Use Go as modern Java Mistakes can cost a

    lot of money Web APIs Room for devs who test carefully Quite some companies from small to medium 48
  29. Diverse companies building services Use Go as modern Java Web

    APIs Lots of room for devs with diverse backgrounds 55
  30. Diverse companies building services Use Go as modern Java Web

    APIs Lots of room for devs with diverse backgrounds Many companies from small to huge 56
  31. Diverse companies building services Use Go as modern Java Web

    APIs Lots of room for devs with diverse backgrounds Many companies from small to huge Fastest growing segment 57
  32. HTTP Search terms: stateless HTTP, REST (REpresentational State Transfer), HTTP

    methods (GET, POST, DELETE, PUT, PATCH), idempotence, gRPC, GraphQL (nice to know) No Web without HTTP 62
  33. HTTP Search terms: stateless HTTP, REST (REpresentational State Transfer), HTTP

    methods (GET, POST, DELETE, PUT, PATCH), idempotence, gRPC, GraphQL (nice to know) No Web without HTTP If the client doesn't get the response back it will try again: idempotence 63
  34. Authentication Search terms: Cookie + server side session, JWT (JSON

    Web Token), OAuth 2.0 Authentication: Who is it? 64
  35. Authentication Search terms: Cookie + server side session, JWT (JSON

    Web Token), OAuth 2.0 Authentication: Who is it? You really need to know about JWT 65
  36. Authentication Search terms: Cookie + server side session, JWT (JSON

    Web Token), OAuth 2.0 Authentication: Who is it? You really need to know about JWT O"er only 1 good cipher for JWT 66
  37. Authentication Search terms: Cookie + server side session, JWT (JSON

    Web Token), OAuth 2.0 Authentication: Who is it? You really need to know about JWT O"er only 1 good cipher for JWT OAuth 2.0 is nice to know 67
  38. Authorization Search terms: Role based authorization (RBAC) Authorization: What is

    allowed? RBAC is king and many companies use some derivative 69
  39. Database Search terms: SQL, RDBMS (Relational DataBase Management System), SQL

    injection, DB migration, DB transactions, DB lock levels Heart of every business software 70
  40. Database Search terms: SQL, RDBMS (Relational DataBase Management System), SQL

    injection, DB migration, DB transactions, DB lock levels Heart of every business software Long term storage -> hard to change 71
  41. Database Search terms: SQL, RDBMS (Relational DataBase Management System), SQL

    injection, DB migration, DB transactions, DB lock levels Heart of every business software Long term storage -> hard to change Types: relational, document, key-value, graph 72
  42. Database Search terms: SQL, RDBMS (Relational DataBase Management System), SQL

    injection, DB migration, DB transactions, DB lock levels Heart of every business software Long term storage -> hard to change Types: relational, document, key-value, graph Use cases: business data, archiving, caching, ... 73
  43. Database Search terms: SQL, RDBMS (Relational DataBase Management System), SQL

    injection, DB migration, DB transactions, DB lock levels Heart of every business software Long term storage -> hard to change Types: relational, document, key-value, graph Use cases: business data, archiving, caching, ... RDBMS (Relational DataBase Management System) is still the most important 74
  44. 3rd Party API Search terms: service resilience, time-out, circuit breaker,

    retry with randomized exponential back-o" No direct in#uence on third party! 75
  45. 3rd Party API Search terms: service resilience, time-out, circuit breaker,

    retry with randomized exponential back-o" No direct in#uence on third party! Can stop the whole system 76
  46. 3rd Party API Search terms: service resilience, time-out, circuit breaker,

    retry with randomized exponential back-o" No direct in#uence on third party! Can stop the whole system Error handling is paramount 77
  47. 3rd Party API Search terms: service resilience, time-out, circuit breaker,

    retry with randomized exponential back-o" No direct in#uence on third party! Can stop the whole system Error handling is paramount Call to 3rd party in the context of a transaction 78
  48. Testing Search terms: test pyramid, test funnel, stress tests Deployment

    with con!dence A good test suite is the basis for every refactoring 80
  49. Testing Search terms: test pyramid, test funnel, stress tests Deployment

    with con!dence A good test suite is the basis for every refactoring Good tests enable and support changes 81
  50. DevOps Search terms: Docker, Kubernetes, Observability/Telemetry, Prometheus (monitoring), Jaeger (tracing)

    Many problems today arise between systems Being able to debug inter service problems is very important skill 86
  51. Wrap Up Talked about all parts of the hiring process

    Focus on technical interviews 91
  52. Wrap Up Talked about all parts of the hiring process

    Focus on technical interviews Happy applying! 92
  53. Thank you Ole Bulbuk Senior Go Engineer, solarisBank AG; co-organizer

    of Berlin Go meetup; involved in hiring decisions for 20 years https://#owdev.github.io/static/present/2020/go-job/present.html (https://#owdev.github.io/static/present/2020/go-job/present.html) @#owdev_org (http://twitter.com/#owdev_org) Attributions for images: All Gophers have been taken from Maria Letta's excellent 'free-gophers-pack'. Spider web by: I, Luc Viatour / CC BY-SA Passport photo by: Noble / Public domain Stop sign by: United Nations / Public domain Test pyramid by: Abbe98 / CC BY-SA