I know, I know. Most of us here are Software Engineers and Developers, who just come over to get some quick insights. However, at least I usually don't think a lot about what each of us actually does all day. I am pretty sure that we all have different positions with different tasks, even though we might do similar things.
So, what's your job? What are your tasks? What's great about it and why do you like it? Do you program a lot, or are you an architect? Do you create UIs, or are you the person in charge of security? Please, tell us!
I wish I could just say that I'm a Web Developer placement student but alas this would be following the lie that my contract is and not accurate of my day-to-day job which is summed up as:
Other than that, I'm a FOSS contributor working on a variety of projects.
What's great about my job?
Hum, let me guess:
Why do I like it?
Pass :s.
As for the other questions, I think I answered them.
I started out as a UI/UX designer, but gradually drifted into a UI Developer over several jobs. I always felt like learning more about software and how it worked would make me a better designer. My specialty is still in CSS, HTML, and interactive JS, but I have done a lot of work in Angular, React, GraphQL and all that fun stuff.
I also enjoy working with Webpack and tooling (I know, masochist...) because I like trying to maximize the efficiency of the development process. I am not sure why this is exciting to me, but if I can reduce the -- change + save + reload and check -- cycle in half for every developer, I see huge GAINZ in productivity $$$ etc. I get a kick out of that for some reason.
My current and previous couple roles have involved building and maintaining Design Systems for organizations. I'm a huge proponent of modular and OOCSS approaches (e.g. BEM, SMACSS). After initially throwing up in my mouth at the idea, I have become a recent convert to CSS in JS approaches (CSS Modules, Styled Components, etc) to address this concern.
My role is split between dev and leadership. On paper I'm an "Engineering Lead" but I had to look that up ;)
Dev -
Leadership duties -
I am a React developer. I love coding. So, decided to avoid administrative / managerial jobs and do 100% coding.
I have a half hour meeting every week, where I demo what I did to the CTO. Ours is a small company and I am the only UI developer. Though I hate meetings, I look forward to this meeting as it is focused and gets over in 20 minutes.
My work week is only 25 hours. The remaining time is spent in thinking what I should do in my free time. Usually, I write a blog post or do some course in Udemy or find something to eat at home!
Co-founder and Software Engineer at Moesif.com , techcrunch just did an article about us.
My tasks:
Hmmm I am a freelancer and also a co-founder in multiple startups so my roles are along the lines
Which basically cotains these parts:
I think that's basically it.... it can be a bit much esp. jumping languages and technologies a lot ... on the other side I love learning .... Still the last 3 days were 14h meetings + administration and only 4 hours of coding ... this is not my favorite part. :)
Just code monkey. I get Jira issues for a large financial product, and I implement them in Java and JS. I get annoyed about design and infrastructure but manage to get only a part of it changed.
It's fairly nice, I have helpful colleagues, learn quite a bit and don't do much overtime. Though I wouldn't mind doing Rust instead, or being in a project with a stronger focus on keeping debt low.
I'm responsible for Application Security of my company's products. It's similar to Syed Fazle Rahman in several ways (hiring, paperwork, meetings, development) but different in others.
I'm a team lead - I'm still a very technical guy and I would say that's where I do provide the most value to the organization but I also teach developers on secure coding practices, threats to look out for, I conduct code audits (blackbox and white box) and also act as a technical project manager for our external security assessments done by vendors.
I manage the bug bounty program which includes working with various developer teams to scope and place their software into the program so that security researchers will "attack" the software, find security vulnerabilities, and report them. My team then reads through those submissions, validates them (are they true or bogus???), triages them (how serious are they? What priority?), produces working exploits, and then files tickets with the proper development team for the finding.
Continuing from the above, I explain the findings to the developers and follow-through to ensure that they are noticed and addressed, as well as provide any security expertise they need to patch the problems.
Since I enjoy writing code, I also write small tools and automation programs where necessary to help facilitate the above.
The scope of the job is HUGE - one day I will be hacking wifi, another day, writing C code, another day, auditing JavaScript code, and another day speaking with the Legal team or engineering management to better understand a security problem. Additionally, the work configuration and tech stack is enormous. I have to operate on Windows, macOS, Linux, Android, embedded, cloud applications, and iOS! It can be hectic at times but the payoff in experience and fun is also gigantic. The job never gets boring and I get to learn something new every day!
I would say one big difference between this job and "standard development" is that the communication skills needed for the job are higher. Yes, all developers must be able to effectively communicate, but the integrity of what I do heavily relies upon my ability to communicate my findings and research with engineers, managers, attorneys, product or program managers, and more. It is not their main job to understand the severity and implications behind security vulnerabilities, so they rely on our team to present this information in a digestible fashion. Additionally, I have to design and write training material, then present it in meetings/trainings to all software engineering teams.
I don't like when people are bored/unhappy at work, so I also make it a point to ensure that members of my team are feeling challenged, excited, and rewarding for the work they do.
Exactly one year ago (16th of February 2018) I started a new job because I felt I need a change.
My last job was interesting enough - my team and I were building a game UI editor (imagine Photoshop that outputs ready to use HTML, CSS, and JS files) and I loved it. It was a dream come true - coding all day, some meetings once in a while, a lot of free coffee and plenty of time for research and side work. And then it happened.
In late December 2017, one sunny day, the whole team received an invite for a meeting with the CEO and the project manager. We knew something was coming, but we didn't know what. Only a couple hours later we were standing in one of the meeting rooms shocked - the project was frozen, all work was stopped and we were assigned to different internal projects. None of us were prepared for that. We tried to find a solution, something that could work for all, but it was too late - the decision was made. Then it came to me - it was time for a change.
Two months later I was standing at my new desk, in the new office of my new company, thinking if I have made the right choice, not knowing that the decision I have made was one of my best.
In the first months, I volunteered for some additional activities - I've made a couple of tech talks and took part in our Internship Program as a presenter and mentor. The lead of our Frontend Unit (a group consisting of all Frontend and JavaScript developers inside the company) saw my interest and invited me to help her develop and extend the frontend community in the company.
I felt wonderful - my dream of taking part in something different than coding was finally happening. But the changes were far from over.
In November, our Frontend Unit lead left the company. I was immediately invited by the CTO for a quick meeting. I left that meeting with a new position - Frontend Unit lead. Shortly after I started doing the Frontend and JavaScript technical interviews.
There were some changes in my project too - I was assigned a small team, that would develop and maintain our new public documentation system - both API documentation and written technical documentation - everything from architecture to deployment. I actually plan to write a story about that soon.
Also, last December we started a new initiative in the company - career coaching. A career coach is a person that would help you and guide you to achieve your goals, whatever they are - technical, management or any other. I went through a training and now I'm one of the 15 people in the company that are career coaches.
So, my work is now 60% coding - 30% management - 10% interviews and other company related work. Management and team leading was something totally new for me. It was tough in the beginning, but it was worth it. It is something that I wanted for a long time and it is so empowering and rewarding. The only downside is that my time is very limited now. There are times where I find myself working for 10-12 hours a day. I had to learn how to plan and prioritize work, but in the end, everything went fine and now I can easily say that I'm fully enjoying it.
I wish I could just code the whole day (something that I really love doing). However, that's far from reality.
Here are a few things I do at Hashnode, every day:
Gergely Polonkai
You have to believe in things that are not true. How else would they become?
I’d say i’m 40% coding, 30% architect, 30% administration.
According to Wakatime, i code about 17 hours per week. After thorough planning, this coding part of my job is pretty mundane. It involves a lot of backend programming in Python, and a small amount of front-end stuff, mostly HTML and a tiny bit of JavaScript; no heavy stuff on that front, i have people for that in my team.
Wakatime also tells me i work around the same amount in my Org-mode repository where a bunch of my planning and administrative tasks happen. These include task management on my end, and all my notes on pretty much everything including even private stuff.
The rest of my time (cca. 6 hours a week) is other things like syncing my notes with our internal knowledge base, ticketing systems, email, and so on, and also some meetings (we consciously try to keep it down to a minimum; the beauty of being a small company.)