Due to some big changes involving the company I'm currently working at, I will soon move on to a new challenge.
But what are the challenges I'd like to work on in the next months?
Here is my list with things that excite me and things that don't.
Job Utopia?
Finding a job that would match all the following criteria is impossible. As
with any wishlist, this is just a listing of what currently interests me: some
things are negotiable, some are not. The objective is to collect my thoughts in
one place, so that I have a reference to compare potential job offers with. It
can also help potential employers understand more what kind of person I am.
Company values
One of the most important points for me when looking for a new job is to verify the company values.
Must haves
- A clear purpose: I recently read Start with Why from Simon Sinek and it struck me for its simplicity. A company should be able to answer to a very simple question: Why should it exist?
- A positive impact: Choose a job you love, and you will never have to work a day in your life. If what you do improves people's lives, I'd love to hear from you.
- Good working conditions: This means european levels of social benefits and working conditions that help taking care of a family. A successful company should know better ways to track productivity than using a clock. Quality over quantity!
- Influence: I am enthusiastic and opinionated; I love challenges and I want my work to be impactful. I want the company I work for to be successful, but to do that I must be able to influence it.
Architecture
After 15 years spent in web development, I long for bigger challenges. Making an application perform and scaling it to handle big volumes of traffic is not an easy feat!
- Kubernetes: Containerization has changed the way we deploy our software, but other things haven't changed: vendor lock-ins versus free software. Platforms like AWS are amazing, but I always ask myself if it's wise to be locked to a specific platform. Kubernetes allows you to choose from a wide array of hosting options, and you still have the door open to migrate somewhere else if you ever need to.
- Data streaming: I've worked with DynamoDB and Lambdas to process data in streams, but I found the artificial limitations really bothersome. I want to go a step forward and explore other options like Apache Kafka, Apache Flink or others.
Programming languages
Over my career I've worked with a plethora of different programming languages and while all can accomplish great things I obviously have my preferences. There are interesting newcomers on the scene and I'd love to try out some of them!
Would love to use
- Elixir/Erlang, Elm, Clojure, Haskell, Scala: Functional programming is very hot right now and I find very interesting how some of the concepts helped to solve modern problems (I'm looking at you, state management!). I'd love to work professionally with one of those, also to explore their shortcomings and become a better programmer in the process.
- Rust, Go: Those are relatively new kids on the block! Using modern programming languages to write (relatively) low-level programs must be fun, right?
- Python, Ruby: The old reliables. Yes, I've worked with them already, and yes, they still excite me! I know their limitations, but I also know how to overcome them when necessary.
Not so eager
- Java: I find Java extremely boring. I think Java might be the main reason I'm not a fan of statically typed languages! I mean to this day you need XML (yuck!) and an IDE to generate code for you if you want to keep your sanity. Its love for abstractions really clashes with my minimalist approach.
- C#: Although I've never been a fan of Microsoft, I must admit that in the last years they changed their approach completely. Nonetheless, C# is still very close to Java and I'm not sold on developing on Windows. The vendor lock-in concern is still present with the .NET platform. Maybe I could be swayed with F#, if the project is really interesting.
-
PHP: I've started my career with ASP and PHP, I've worked numerous
times with PHP and... I can't take it anymore! It just doesn't excite me at
all, it is bothersome for me to write (why
->
instead of.
??) and I think the type hinting is actually making the language worse! If I see PHP on a job ad it is very likely to be a deal breaker for me.
Final thoughts
Quite a list, isn't it? If you are a fellow developer, what is your list of dream requisites for a new job? Let me know in the comments!
Are you on the lookout for developers? Do you think I would be a good match for your team, either remotely or in Zurich? Then get in touch!
Top comments (5)
What vendor lock-in is there with C#? The .NET Core framework is free, open-source and runs everywhere. Visual Studio Code is free, open-source and runs everywhere. The full Visual Studio IDE has a free Community and there's now a Mac version.
There are also 3rd-party tools like JetBrains Rider or you can just code in a text editor if you want. C# is also semantically miles ahead of Java (which is recently catching up with Java 9+, with many devs still choosing Scala or Kotlin instead) and one of the top-5 most loved languages on stackoverflow.
It has a very rich standard library, lots of community packages, and has the fastest full-featured web stack as measured by the TechEmpower benchmarks. Unity is also the preeminent cross-platform game development platform today and completely powered with C# on Mono, along with Xamarin for creating any other mobile apps.
The days of .NET being used to make some enterprise Windows desktop apps is long gone and I highly recommend anyone who hasn't tried it yet to discover one of the most productive language environments available today.
After your comment I did a quick research and apparently my information is outdated, just to further highlight how much Microsoft actually changed over the years. Thank you for pointing it out, this lowered my resistance to the .NET platform considerably!
I don't find the list too difficult to ask for. To me that is what a modern company should offer someone, in regards to the company aspect. Though I love that question "Why should you exist?". I may need to incorporate that into my interview process!
It might depend on where you are located. Switzerland is a conservative market from this point of view and while not impossible to find something similar, it's usually only in very small companies.
I know what you mean about C# and Microsoft, (that is, I prefer to work on systems which are cross platform). However I've used C# for many years and it's not really like Java once you get into details. Some notable differences:
1) Generics are properly reified (ie. they are real distinct types).
2) Has value types (though through the surprise when you realize struct != class).
3) Code feels less like running on a VM and more like compiled code (and compiles fast)