wasp/web/blog/2022-05-31-filip-intro.md

155 lines
6.5 KiB
Markdown
Raw Normal View History

---
title: Meet the team - Filip Sodić, Founding Engineer
authors: [matijasos]
image: /img/filip-intro-banner.png
tags: [wasp, new-hire]
---
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import InBlogCta from './components/InBlogCta';
import WaspIntro from './_wasp-intro.md';
![Welcome Filip!](../static/img/filip-intro-banner.png)
Find Filip on [GitHub](https://github.com/sodic).
<!--truncate-->
<WaspIntro />
<InBlogCta />
**We are immensely excited to welcome Filip, our latest Founding Software
Engineer!** Filip is an experienced engineer and a passionate computer
scientist - his two biggest passions are building compilers/designing
programming languages and web development (what a lucky coincidence, right?
;)). Before joining Wasp, Filip earned his stripes in various domains, ranging
from bioinformatics and the betting industry to route optimisation software.
Welcome to the team, Filip - we can't wait to see what you build!
#### Lets start with two truths and a lie about yourself.
- I found out about Wasp through a friend/former colleague and still havent
bought him a drink to say thanks.
- Ive designed and implemented my own Turing-complete functional programming
language that compiles to JavaScript.
- I wasted nearly 30 hours customizing my setup to maximize productivity and
2022-11-29 22:35:26 +03:00
probably ended up in a less productive state.
#### Which statement was the lie above? Any interesting stories to share?
The last one was a lie. I wish it were only 30 hours :)
I did design [a programming language](https://sodic.github.io/func). It is
Turing-complete but still far from being practical. For one, it cant print
stuff to the screen (or perform any other side effects).
I never did buy that drink. Hes not letting me forget about it, though.
#### Why did you join Wasp? What did you do before?
I've wanted to work on a project where I'd get a chance to design a language
and build a compiler for quite some time now. While I did develop my own
language on the side (and even graduated with it), I thought getting paid for
doing something similar this early in my career was pretty far-fetched.
Almost all my paid work had something to do with the web, whether on the
client-side or the server-side. I enjoy nearly all parts of web development
(yes, even styling websites with CSS :), but one thing I've always found
annoying was dealing with all the boilerplate. Whenever I start building
something, I spend most of my time implementing the same repetitive stuff
(e.g., authentication, databases, SPA routing, API routes, etc.) and relearning
all the best practices that come with it.
And then, one day, a friend of mine mentioned Wasp - a DSL aiming to eliminate
boilerplate from web apps. The product was a perfect fit based on everything I
know and want to do! Also, I shared a college advisor with the founders (Martin
and Matija) and only heard great things about them.
The whole thing sounded almost too good to be true, so joining them to work on
Wasp was an easy decision.
#### What is your favorite language?
I dont have many favorite things, especially when it comes to technology.
After going through several cycles of falling in love with a
language/framework/tool before becoming annoyed by its shortcomings and
limitations, I made peace with the fact that everythings a tradeoff. Ill
generally choose a language depending on:
- the problem at hand
- its current position in the aforementioned cycle :)
With that said, I'm currently most excited about properly learning Haskell. It
always looked interesting and exotic. I've gotten a few opportunities to play
with the language through university courses and on my own but never really had
an excuse to use it in my day-to-day.
#### What are you most excited about in Wasp?
From a developers perspective, Im definitely most excited about designing the
DSL and working on the compiler.
From a product standpoint, I love the idea of never again having to implement
an authentication system.
#### Whats a feature or project youre most proud of that you worked on in the past three months?
[Definitely this thing](https://www.youtube.com/watch?v=dQw4w9WgXcQ).
#### How did you start coding?
No exciting story to tell here, Im afraid.
I enrolled in computer science college and first started programming as a part
of my regular “Introduction to programming” course.
Before then, I didnt really know what programming was. In fact, I wanted to
study electrical engineering. Unluckily for most but luckily for me, our
college does not let you choose your major (i.e., electrical engineering or
computing) right away. Instead, they make you go through a shared year of
universal (and some not-so-universal) courses, only allowing you to specialize
at the start of your second year. Thanks to this quirk, I had a chance to
encounter programming, change my mind, and enroll in computer science.
#### Your dev setup?
As far as hardware goes, its pretty basic. I use a regular laptop thats
starting to show signs of age (ASUS N550JX), a cheap Lenovo mouse, and my
laptops integrated keyboard.
The software setup is a bit more interesting. Im usually on Manjaro Linux with
the i3 tiling window manager. I jump between editors depending on what Im
doing. Its sometimes Vim, but mainly something more powerful that comes with
Vim emulation (e.g., VS Code or JetBrains IDEs). My preferred shell is zsh
(sorry Frane).
#### `camelCase` or `snake_case`?
NoPreference
#### What is your current favorite gem, library, tool, or anything else that helps you with your work? Why?
That would have to be [ranger](https://github.com/ranger/ranger)!
Ranger is a terminal file manager I use daily, mainly because it makes my work
in the shell much faster. It also gives me a consistent interface for moving
around, previewing files, and interacting with the file system. In other words,
my workflow doesn't have to change much regardless of where I am (Mac, Linux
Desktop, or Linux server).
#### One piece of advice youd give to budding developers?
Its easy to get stuck in an endless loop of polishing and fine-tuning your
projects because you think they arent ready yet. Good enough sometimes truly
is good enough and things can often be considered done before _you_ consider
them done.
I still occasionally need to give this advice to myself :).
#### Lastly, where can people find or connect with you online?
GitHub: [https://github.com/sodic](https://github.com/sodic)
LinkedIn: [https://www.linkedin.com/in/filipsodic/](https://www.linkedin.com/in/filipsodic/)