3 ms·
I just read half of the article and this is painful to read. They’re asking for something relative simple as a take home, that just requires a little bit of ima
by thiht 1y ago
I just read half of the article and this is painful to read. They’re asking for something relative simple as a take home, that just requires a little bit of imagination to fill the gaps. Why does the candidate have to be so fussy about details? Do the best you can, fast, and don’t announce you’re gonna be 2 days late for a take home!
To work in a startup you have to embrace the "just do it" mindset, you have a brain to fill the gaps, and you can always iterate later. I’d be more interested in getting the result of the take home quickly, obviously in a working state, but with a documentation explaining trade offs because of lack of time, ideas for future improvements, design choices, stuff not included (ie. a pretty UI) etc.
My take: they’re literally asking for a CRUD (if you decouple well, you can easily replace the DB with SMTP/IMAP later) with basic email features: send (to, cc, bcc), fetch, reply, reply all, transfer. That’s it, you can do it in 2 hours. Add folders, signatures, "send later", authentication, or whatever if you want to show off.
--
Additionally as an experimented Go developer (8 years working with Go as my main language), the code is not great and tbh I would have rejected it if I received this technical test where I work.
In 5 minutes of reading the code:
- lots of commented out test stuff, don't leave that in a take home or I'm gonna assume you'll do the same in your commits
- lots of println but no logging
- relative imports (eg "mymail/app/router"), don't do this
- weird choice of relatively big dependencies (turso? pocketbase? negroni?)
- no architecture or decoupling, everything is in the router
- bad use of the context (getEmails)
- no tests (no need to test everything for a take home but at least some things can be tested)
People say languages are interchangeable and you're never a "xxx" dev, but that's not true. They asked for "Proficiency in Go" and the candidate is not proficient in Go, that would be the number 1 reason for rejection.
- drewbitt 1y agoI highly doubt you can produce something that would get you an offer in 2 hours for this task, given its breadth and human nature to worry and attempt perfection to impress. You are likely competing with much more engineered solutions.
- thiht 1y agoDamn now I’m curious what I could do in 2 hours, this is the kind of things where you can easily get carried away so 4 hours feel like 2. I don’t have 2 hours (or 4) to waste to do this but it itches a little bit. Anyway in 2 hours I’m pretty sure I can write some Go code that would get me an offer. This is not about the amount of features, it’s about giving them what they want.
- josecodea 1y ago> Anyway in 2 hours I’m pretty sure I can write some Go code that would get me an offer. This is not about the amount of features, it’s about giving them what they want. Please do it, get the offer that I didn't, maybe you could even write a blog post about how easy it is and how wrong I am! ;)
- thiht 1y agoI’m sorry I didn’t want to offend you. The thing is I did a few interviews for Go positions last year and I have a lot of experience with Go so yeah, I’m confident in my skills. I’ve also been on the other side of the process many times and I know exactly what they look for. I’m not saying this test is easy, I’m saying I’m good at it and prepared for these kinds of take homes. I don’t agree that it’s a bad technical test though, and reading your article I can say your approach was suboptimal. If you keep interviewing for startups you need to put yourself in their shoes. To quote the test: > This project tests your ability not only to code, but to deal with ambiguity and open-endedness
- mbsa7 1y agoWould you mind explaining what you mean by relative imports and what the correct approach would be? I'm somewhat confused since I think of relative imports as something like "../.." which you can't do anyway. I'm currently learning Go, so I apologize in advance if I'm missing something.